This repo is the official repo for Lancelot: Towards Efficient and Privacy-Preserving Byzantine-Robust Federated Learning within Fully Homomorphic Encryption.
To evaluate Lancelot, we first install HomoMul GPU Accelerator (cahel) and then using our example code in lancelot-main-GPU.
Device: NVIDIA GPU RAM > 24G (such as 4090) cmake version >= 3.25.0 gcc version >= 9.4.0
- 🔥 Will provide code ocean link soon.
- 🔥🔥 We have already passed the code testing in the code ocean.
- 🔥🔥 We provide a new end-to-end script for excuting Lancelot. Please find run.sh.
Note that specify your GPU architecture (e.g. 75 is for T4, 89 is for 4090) in CMAKE (Line 32 in run.sh).
bash run.sh
sudo apt-get update
sudo apt-get install -y software-properties-common lsb-release
sudo apt-get clean all
sudo apt-add-repository 'deb` `https://apt.kitware.com/ubuntu/ focal main'
wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc | sudo apt-key add -
sudo apt-get update
sudo dpkg --configure -a
sudo apt install cmake
https://github.com/siyang-jiang/Lancelot-Dev.git
cd cahel-main
conda deactivate (If you open the conda environment)
cmake -S. -Bbuild -DCMAKE_CUDA_ARCHITECTURES=89
cmake --build build -j8
cd build
conda activate
conda develop lib
(pleae make sure you have already install conda-build, otherwise)
conda install conda-build
cd lancelot-main-GPU
bash run_lancelot.sh