This repository includes GPU implementations of the core functions for CKKS (e.g., base conversions, NTT, key-switching, etc.) to reproduce the results in the paper Over 100x Faster Bootstrapping in Fully Homomorphic Encryption through Memory-centric Optimization with GPUs submitted to TCHES 2021.
The implementations included largely contribute to CRYPTOLAB INC. and HEAAN.
- NVIDIA GPU (compute capability over 7.0)
- cmake v3.18 or over.
Tested under ubuntu 18.04 with g++ 9.3.0 and NVIDIA V100.
Check out this notebook.
Alternatively, use the included dockerfile (make sure NVIDIA Container Toolkit is installed).
docker build -t ckks-gpu-core .
docker run --gpus all --rm ckks-gpu-core build/benchmark/Benchmark
Wonkyung Jung jungwk@scale.snu.ac.kr