Skip to content

Latest commit

 

History

History
8 lines (6 loc) · 1.06 KB

README.md

File metadata and controls

8 lines (6 loc) · 1.06 KB

Parallel AES Implementation

This repository contains parallelized implementations of AES (Advanced Encryption Standard) in Julia, written as part of a final project for MIT's Spring 2022 Parallel Computing and Scientific Machine Learning course. The code is structured as follows:

  • src/AES-old contains a reference serial implementation of AES in Julia, written by faf0.
  • src/AES-cpu contains a parallelized CPU implementation of AES in Julia that makes use of multithreading. We use some performance optimizations to get around 20x speedup in serial execution over the reference implementation, with further speedups from multithreading (scaling approximately linearly with the number of threads).
  • aes-c-cuda contains a reference GPU implementation of AES with C CUDA kernels, written by Canhui.
  • aes-julia-cuda contains a GPU implementation of AES written with the CUDA.jl Julia package. We find performance comparable to the C CUDA implementation.