cuda_rust_wasm/utils/
mod.rs

1//! Utility functions and helpers
2
3/// Round up to nearest multiple
4pub fn round_up(value: usize, multiple: usize) -> usize {
5    value.div_ceil(multiple) * multiple
6}
7
8/// Calculate optimal block size for given problem size
9pub fn calculate_block_size(problem_size: usize, max_threads: usize) -> usize {
10    // Common block sizes to try
11    const BLOCK_SIZES: &[usize] = &[1024, 512, 256, 128, 64, 32];
12    
13    for &size in BLOCK_SIZES {
14        if size <= max_threads && problem_size >= size {
15            return size;
16        }
17    }
18    
19    // Fallback to warp size
20    32
21}
22
23/// Calculate grid size for given problem and block size
24pub fn calculate_grid_size(problem_size: usize, block_size: usize) -> usize {
25    problem_size.div_ceil(block_size)
26}