Skip to content

Commit acfa092

Browse files
committed
feat(gpu): implement shuffle
1 parent f144516 commit acfa092

15 files changed

Lines changed: 2300 additions & 8 deletions

File tree

backends/tfhe-cuda-backend/cuda/include/integer/integer.h

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -961,6 +961,44 @@ void cuda_cast_to_signed_64_async(CudaStreamsFFI streams,
961961

962962
void cleanup_cuda_cast_to_signed_64(CudaStreamsFFI streams,
963963
int8_t **mem_ptr_void);
964+
965+
uint64_t scratch_cuda_integer_bitonic_shuffle_64_async(
966+
CudaStreamsFFI streams, int8_t **mem_ptr, uint32_t glwe_dimension,
967+
uint32_t polynomial_size, uint32_t big_lwe_dimension,
968+
uint32_t small_lwe_dimension, uint32_t ks_level, uint32_t ks_base_log,
969+
uint32_t pbs_level, uint32_t pbs_base_log, uint32_t grouping_factor,
970+
uint32_t key_num_radix_blocks, uint32_t data_num_radix_blocks,
971+
uint32_t num_values, uint32_t message_modulus, uint32_t carry_modulus,
972+
PBS_TYPE pbs_type, bool allocate_gpu_memory,
973+
PBS_MS_REDUCTION_T noise_reduction_type);
974+
975+
void cuda_integer_bitonic_shuffle_64_async(CudaStreamsFFI streams,
976+
CudaRadixCiphertextFFI **keys,
977+
CudaRadixCiphertextFFI **values,
978+
uint32_t num_values, int8_t *mem_ptr,
979+
void *const *bsks,
980+
void *const *ksks);
981+
982+
void cleanup_cuda_integer_bitonic_shuffle_64(CudaStreamsFFI streams,
983+
int8_t **mem_ptr_void);
984+
985+
uint64_t scratch_cuda_integer_oprf_bitonic_shuffle_64_async(
986+
CudaStreamsFFI streams, int8_t **mem_ptr, uint32_t glwe_dimension,
987+
uint32_t polynomial_size, uint32_t big_lwe_dimension,
988+
uint32_t small_lwe_dimension, uint32_t ks_level, uint32_t ks_base_log,
989+
uint32_t pbs_level, uint32_t pbs_base_log, uint32_t grouping_factor,
990+
uint32_t key_num_radix_blocks, uint32_t data_num_radix_blocks,
991+
uint32_t num_values, uint32_t message_modulus, uint32_t carry_modulus,
992+
PBS_TYPE pbs_type, bool allocate_gpu_memory,
993+
PBS_MS_REDUCTION_T noise_reduction_type);
994+
995+
void cuda_integer_oprf_bitonic_shuffle_64_async(
996+
CudaStreamsFFI streams, CudaRadixCiphertextFFI **values,
997+
uint32_t num_values, const void *seeded_lwe_input, int8_t *mem_ptr,
998+
void *const *bsks, void *const *ksks);
999+
1000+
void cleanup_cuda_integer_oprf_bitonic_shuffle_64(CudaStreamsFFI streams,
1001+
int8_t **mem_ptr_void);
9641002
} // extern C
9651003

9661004
#endif // CUDA_INTEGER_H

0 commit comments

Comments
 (0)