2个版本
0.1.1 | 2022年10月19日 |
---|---|
0.1.0 | 2022年7月6日 |
#2382 in 密码学
在2个crate中使用(通过concrete-core)
680KB
9K SLoC
concrete-cuda
简介
本仓库包含Zama团队TFHE变种的GPU加速代码。它实现了CUDA/C++函数,以在LWE密文上执行同态操作。
在这个第一个API中,它提供了在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
这些C++/CUDA函数通过一个专门的Rust API对Concrete-core实现可用,该API被封装在backend_cuda
中。
依赖关系
免责声明:Windows/Mac上的编译尚未支持。仅支持Nvidia GPU。
- nvidia驱动程序 - 例如,如果您正在运行Ubuntu 20.04,请检查此页面进行安装
- nvcc >= 10.0
- gcc >= 8.0 - 检查此页面获取关于nvcc/gcc兼容版本的详细信息
- cmake >= 3.8
构建
concrete-cuda
函数通过backend_cuda
在concrete-core
中可用。要使用Cuda后端编译concrete-core
,安装上述依赖项,然后在concrete-core
中输入
cargo build --release --features=backend_cuda
独立Cuda文件编译
存储在concrete-cuda
中的Cuda项目可以以下方式独立于Rust项目进行编译
git clone [email protected]:zama-ai/concrete-core
cd concrete-core/concrete-cuda/cuda
mkdir build
cd build
cmake ..
make
计算能力会自动检测(使用第一个GPU信息)并相应设置。
链接
许可
本软件根据BSD-3-Clause-Clear许可进行分发。如果您有任何问题,请联系我们:hello@zama.ai
。
依赖关系
~0.3–1MB
~23K SLoC