5个版本 (3个重大更新)
0.4.0-alpha.0 | 2024年7月17日 |
---|---|
0.3.0 | 2024年6月24日 |
0.2.0 | 2024年4月9日 |
0.1.3 | 2024年1月30日 |
0.1.2 | 2024年1月22日 |
#1792 in 加密学
每月21次下载
用于 tfhe
1MB
14K SLoC
TFHE Cuda后端
简介
tfhe-cuda-backend
包含了Zama变体TFHE的GPU加速代码。它实现了CUDA/C++函数,用于在LWE密文上进行同态运算。
它提供了在GPU上分配内存、在CPU和GPU之间复制数据、创建和销毁CUDA流等功能。
cuda_create_stream
,cuda_destroy_stream
cuda_malloc
,cuda_check_valid_malloc
cuda_memcpy_async_to_cpu
,cuda_memcpy_async_to_gpu
cuda_get_number_of_gpus
cuda_synchronize_device
它提供的加密操作包括:- TFHE可编程引导的摊销实现:
cuda_bootstrap_amortized_lwe_ciphertext_vector_32
和cuda_bootstrap_amortized_lwe_ciphertext_vector_64
- TFHE可编程引导的低延迟实现:
cuda_bootstrap_low_latency_lwe_ciphertext_vector_32
和cuda_bootstrap_low_latency_lwe_ciphertext_vector_64
- 密钥交换:
cuda_keyswitch_lwe_ciphertext_vector_32
和cuda_keyswitch_lwe_ciphertext_vector_64
- 更大精度的可编程引导程序(wop PBS,支持多达16位的信息,而经典PBS只支持最多8位的信息)及其子组件:
cuda_wop_pbs_64
,cuda_extract_bits_64
,cuda_circuit_bootstrap_64
,cuda_cmux_tree_64
,cuda_blind_rotation_sample_extraction_64
。 - 分层操作的加速:
cuda_negate_lwe_ciphertext_vector_64
,cuda_add_lwe_ciphertext_vector_64
,cuda_add_lwe_ciphertext_vector_plaintext_vector_64
,cuda_mult_lwe_ciphertext_vector_cleartext_vector
。
依赖关系
免责声明:目前不支持在Windows/Mac上编译。仅支持Nvidia GPU。
- nvidia驱动程序 - 例如,如果您正在运行Ubuntu 20.04,请查看此页面进行安装
- nvcc >= 10.0
- gcc >= 8.0 - 查看此页面以获取有关nvcc/gcc兼容版本的详细信息
- cmake >= 3.24
构建
存储在tfhe-cuda-backend
中的Cuda项目可以独立于TFHE-rs以以下方式编译
git clone [email protected]:zama-ai/tfhe-rs
cd backends/tfhe-cuda-backend/cuda
mkdir build
cd build
cmake ..
make
计算能力会自动检测(使用第一个GPU信息)并相应设置。如果您的计算机没有可用的Nvidia GPU,如果已安装nvcc编译器,则编译将正常工作。生成的可执行文件将针对7.0计算能力(sm_70)。
链接
许可证
本软件根据BSD-3-Clause-Clear许可证分发。如果您有任何问题,请联系我们:hello@zama.ai
。