@@ -1681,8 +1681,19 @@ template <typename Torus> struct int_sum_ciphertexts_vec_memory {
16811681 new int_radix_lut<Torus>(streams, gpu_indexes, gpu_count, params, 2 ,
16821682 pbs_count, true , size_tracker);
16831683 allocated_luts_message_carry = true ;
1684+ uint64_t message_modulus_bits =
1685+ (uint64_t )std::log2 (params.message_modulus );
1686+ uint64_t carry_modulus_bits = (uint64_t )std::log2 (params.carry_modulus );
1687+ uint64_t total_bits_per_block =
1688+ message_modulus_bits + carry_modulus_bits;
1689+ uint64_t denominator =
1690+ (uint64_t )std::ceil ((pow (2 , total_bits_per_block) - 1 ) /
1691+ (pow (2 , message_modulus_bits) - 1 ));
1692+
1693+ uint64_t upper_bound_num_blocks =
1694+ num_blocks_in_radix * num_blocks_in_radix * 2 / denominator;
16841695 luts_message_carry->allocate_lwe_vector_for_non_trivial_indexes (
1685- streams, gpu_indexes, gpu_count, this -> max_total_blocks_in_vec ,
1696+ streams, gpu_indexes, gpu_count, upper_bound_num_blocks ,
16861697 size_tracker, true );
16871698 }
16881699 }
@@ -1781,9 +1792,19 @@ template <typename Torus> struct int_sum_ciphertexts_vec_memory {
17811792 this ->current_blocks = current_blocks;
17821793 this ->small_lwe_vector = small_lwe_vector;
17831794 this ->luts_message_carry = reused_lut;
1795+
1796+ uint64_t message_modulus_bits = (uint64_t )std::log2 (params.message_modulus );
1797+ uint64_t carry_modulus_bits = (uint64_t )std::log2 (params.carry_modulus );
1798+ uint64_t total_bits_per_block = message_modulus_bits + carry_modulus_bits;
1799+ uint64_t denominator =
1800+ (uint64_t )std::ceil ((pow (2 , total_bits_per_block) - 1 ) /
1801+ (pow (2 , message_modulus_bits) - 1 ));
1802+
1803+ uint64_t upper_bound_num_blocks =
1804+ num_blocks_in_radix * num_blocks_in_radix * 2 / denominator;
17841805 this ->luts_message_carry ->allocate_lwe_vector_for_non_trivial_indexes (
1785- streams, gpu_indexes, gpu_count, this -> max_total_blocks_in_vec ,
1786- size_tracker, allocate_gpu_memory);
1806+ streams, gpu_indexes, gpu_count, upper_bound_num_blocks, size_tracker ,
1807+ allocate_gpu_memory);
17871808 setup_index_buffers (streams, gpu_indexes, size_tracker);
17881809 }
17891810
0 commit comments