Crates.io | tfhe-cuda-backend |
lib.rs | tfhe-cuda-backend |
version | 0.6.0 |
source | src |
created_at | 2024-01-22 16:20:30.178872 |
updated_at | 2024-11-06 12:46:03.575511 |
description | Cuda implementation of TFHE-rs primitives. |
homepage | https://www.zama.ai/ |
repository | https://github.com/zama-ai/tfhe-rs |
max_upload_size | |
id | 1108954 |
size | 1,594,462 |
The tfhe-cuda-backend
holds the code for GPU acceleration of Zama's variant of TFHE.
It implements CUDA/C++ functions to perform homomorphic operations on LWE ciphertexts.
It provides functions to allocate memory on the GPU, to copy data back and forth between the CPU and the GPU, to create and destroy Cuda streams, etc.:
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
The cryptographic operations it provides are:cuda_bootstrap_amortized_lwe_ciphertext_vector_32
and cuda_bootstrap_amortized_lwe_ciphertext_vector_64
cuda_bootstrap_low latency_lwe_ciphertext_vector_32
and cuda_bootstrap_low_latency_lwe_ciphertext_vector_64
cuda_keyswitch_lwe_ciphertext_vector_32
and cuda_keyswitch_lwe_ciphertext_vector_64
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
.Disclaimer: Compilation on Windows/Mac is not supported yet. Only Nvidia GPUs are supported.
The Cuda project held in tfhe-cuda-backend
can be compiled independently from TFHE-rs in the following way:
git clone git@github.com:zama-ai/tfhe-rs
cd backends/tfhe-cuda-backend/cuda
mkdir build
cd build
cmake ..
make
The compute capability is detected automatically (with the first GPU information) and set accordingly. If your machine does not have an available Nvidia GPU, the compilation will work if you have the nvcc compiler installed. The generated executable will target a 7.0 compute capability (sm_70).
This software is distributed under the BSD-3-Clause-Clear license. If you have any questions,
please contact us at hello@zama.ai
.