19 | __device__ float apply_min_subtract(float computed, float bias, float constant) {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_2/task_68/b6_s1_stride_loop_optimization_base/base/base.cu:19:59: note: the first parameter in the range is 'bias'
19 | __device__ float apply_min_subtract(float computed, float bias, float constant) {
| ^~~~
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_2/task_68/b6_s1_stride_loop_optimization_base/base/base.cu:19:71: note: the last parameter in the range is 'constant'
19 | __device__ float apply_min_subtract(float computed, float bias, float constant) {
| ^~~~~~~~
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_2/task_68/b6_s1_stride_loop_optimization_base/base/base.cu:29:5: warning: 4 adjacent parameters of 'my_kernel' of similar type ('const float *') are easily swapped by mistake [bugprone-easily-swappable-parameters]
29 | const float* x,
| ^~~~~~~~~~~~~~~
30 | const float* linear_weight,
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~
31 | const float* linear_bias,
| ~~~~~~~~~~~~~~~~~~~~~~~~~
32 | const float* constant,
| ~~~~~~~~~~~~~~~~~~~~~
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_2/task_68/b6_s1_stride_loop_optimization_base/base/base.cu:29:18: note: the first parameter in the range is 'x'
29 | const float* x,
| ^
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_2/task_68/b6_s1_stride_loop_optimization_base/base/base.cu:32:18: note: the last parameter in the range is 'constant'
32 | const float* constant,
| ^~~~~~~~
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_2/task_68/b6_s1_stride_loop_optimization_base/base/base.cu:34:5: warning: 2 adjacent parameters of 'my_kernel' of similar type ('int') are easily swapped by mistake [bugprone-easily-swappable-parameters]
34 | int batch_size,
| ^~~~~~~~~~~~~~~
35 | int in_features,
| ~~~~~~~~~~~~~~~
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_2/task_68/b6_s1_stride_loop_optimization_base/base/base.cu:34:9: note: the first parameter in the range is 'batch_size'
34 | int batch_size,
| ^~~~~~~~~~
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_2/task_68/b6_s1_stride_loop_optimization_base/base/base.cu:35:9: note: the last parameter in the range is 'in_features'
35 | int in_features,
| ^~~~~~~~~~~
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_2/task_68/b6_s1_stride_loop_optimization_base/base/base.cu:37:21: warning: narrowing conversion from 'unsigned int' to signed type 'int' is implementation-defined [bugprone-narrowing-conversions]
37 | int batch_idx = blockIdx.x * blockDim.x + threadIdx.x;
| ^
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_2/task_68/b6_s1_stride_loop_optimization_base/base/base.cu:38:19: warning: narrowing conversion from 'unsigned int' to signed type 'int' is implementation-defined [bugprone-narrowing-conversions]
38 | int out_idx = blockIdx.y * blockDim.y + threadIdx.y;
| ^
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_2/task_68/b6_s1_stride_loop_optimization_base/base/base.cu:42:30: warning: result of multiplication in type 'int' is used as a pointer offset after an implicit widening conversion to type 'ptrdiff_t' [bugprone-implicit-widening-of-multiplication-result]
42 | const float* x_row = x + batch_idx * in_features;
| ^
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_2/task_68/b6_s1_stride_loop_optimization_base/base/base.cu:42:34: note: make conversion explicit to silence this warning
5 | const float* x_row = x + batch_idx * in_features;
| ^~~~~~~~~~~~~~~~~~~~~~~
| static_cast<ptrdiff_t>()
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_2/task_68/b6_s1_stride_loop_optimization_base/base/base.cu:42:34: note: perform multiplication in a wider type
42 | const float* x_row = x + batch_idx * in_features;
| ^~~~~~~~~
| static_cast<ptrdiff_t>()
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_2/task_68/b6_s1_stride_loop_optimization_base/base/base.cu:43:35: warning: result of multiplication in type 'int' is used as a pointer offset after an implicit widening conversion to type 'ptrdiff_t' [bugprone-implicit-widening-of-multiplication-result]
43 | const float* weight_row = linear_weight + out_idx * in_features;
| ^
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_2/task_68/b6_s1_stride_loop_optimization_base/base/base.cu:43:51: note: make conversion explicit to silence this warning
43 | const float* weight_row = linear_weight + out_idx * in_features;
| ^~~~~~~~~~~~~~~~~~~~~
| static_cast<ptrdiff_t>( )
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_2/task_68/b6_s1_stride_loop_optimization_base/base/base.cu:43:51: note: perform multiplication in a wider type
43 | const float* weight_row = linear_weight + out_idx * in_features;
| ^~~~~~~
| static_cast<ptrdiff_t>( )
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_2/task_68/b6_s1_stride_loop_optimization_base/base/base.cu:56:19: warning: the parameter 'x' is copied for each invocation but only used as a const reference; consider making it a const reference [performance-unnecessary-value-param]
56 | torch::Tensor x,
| ^
| const &
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_2/task_68/b6_s1_stride_loop_optimization_base/base/base.cu:57:19: warning: the parameter 'linear_weight' is copied for each invocation but only used as a const reference; consider making it a const reference [performance-unnecessary-value-param]
57 | torch::Tensor linear_weight,
| ^
| const &
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_2/task_68/b6_s1_stride_loop_optimization_base/base/base.cu:58:19: warning: the parameter 'linear_bias' is copied for each invocation but only used as a const reference; consider making it a const reference [performance-unnecessary-value-param]
58 | torch::Tensor linear_bias,
| ^
| const &
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_2/task_68/b6_s1_stride_loop_optimization_base/base/base.cu:59:19: warning: the parameter 'constant' is copied for each invocation but only used as a const reference; consider making it a const reference [performance-unnecessary-value-param]
59 | torch::Tensor constant) {
| ^
| const &
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_2/task_68/b6_s1_stride_loop_optimization_base/base/base.cu:65:22: warning: narrowing conversion from 'int64_t' (aka 'long') to signed type 'int' is implementation-defined [bugprone-narrowing-conversions]
65 | int batch_size = x.size(0);
| ^
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_2/task_68/b6_s1_stride_loop_optimization_base/base/base.cu:66:23: warning: narrowing conversion from 'int64_t' (aka 'long') to signed type 'int' is implementation-defined [bugprone-narrowing-conversions]
66 | int in_features = x.size(1);
| ^
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_2/task_68/b6_s1_stride_loop_optimization_base/base/base.cu:67:24: warning: narrowing conversion from 'int64_t' (aka 'long') to signed type 'int' is implementation-defined [bugprone-narrowing-conversions]
67 | int out_features = linear_weight.size(0);
| ^