pub fn round_up(value: usize, multiple: usize) -> usize {
value.div_ceil(multiple) * multiple
}
pub fn calculate_block_size(problem_size: usize, max_threads: usize) -> usize {
const BLOCK_SIZES: &[usize] = &[1024, 512, 256, 128, 64, 32];
for &size in BLOCK_SIZES {
if size <= max_threads && problem_size >= size {
return size;
}
}
32
}
pub fn calculate_grid_size(problem_size: usize, block_size: usize) -> usize {
problem_size.div_ceil(block_size)
}