19 | const float* __restrict__ a,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
20 | const float* __restrict__ w,
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/robert_sakana_ai/llm_cuda/experiments/20250212_optimize_b5_s4_e1_v2/level_3/task_33/b5_s2_modular_warp_rnn/base/base.cu:19:31: note: the first parameter in the range is 'a'
19 | const float* __restrict__ a,
| ^
/home/robert_sakana_ai/llm_cuda/experiments/20250212_optimize_b5_s4_e1_v2/level_3/task_33/b5_s2_modular_warp_rnn/base/base.cu:20:31: note: the last parameter in the range is 'w'
20 | const float* __restrict__ w,
| ^
/home/robert_sakana_ai/llm_cuda/experiments/20250212_optimize_b5_s4_e1_v2/level_3/task_33/b5_s2_modular_warp_rnn/base/base.cu:21:5: warning: 2 adjacent parameters of 'linear_transformation' of similar type ('int') are easily swapped by mistake [bugprone-easily-swappable-parameters]
21 | int row,
| ^~~~~~~~
22 | int col,
| ~~~~~~~
/home/robert_sakana_ai/llm_cuda/experiments/20250212_optimize_b5_s4_e1_v2/level_3/task_33/b5_s2_modular_warp_rnn/base/base.cu:21:9: note: the first parameter in the range is 'row'
21 | int row,
| ^~~
/home/robert_sakana_ai/llm_cuda/experiments/20250212_optimize_b5_s4_e1_v2/level_3/task_33/b5_s2_modular_warp_rnn/base/base.cu:22:9: note: the last parameter in the range is 'col'
22 | int col,
| ^~~
/home/robert_sakana_ai/llm_cuda/experiments/20250212_optimize_b5_s4_e1_v2/level_3/task_33/b5_s2_modular_warp_rnn/base/base.cu:26:21: warning: narrowing conversion from 'unsigned int' to signed type 'int' is implementation-defined [bugprone-narrowing-conversions]
26 | const int tid = threadIdx.x % 32;
| ^
/home/robert_sakana_ai/llm_cuda/experiments/20250212_optimize_b5_s4_e1_v2/level_3/task_33/b5_s2_modular_warp_rnn/base/base.cu:27:26: 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]
27 | const float* a_row = a + row * K;
| ^
/home/robert_sakana_ai/llm_cuda/experiments/20250212_optimize_b5_s4_e1_v2/level_3/task_33/b5_s2_modular_warp_rnn/base/base.cu:27:30: note: make conversion explicit to silence this warning
6 | const float* a_row = a + row * K;
| ^~~~~~~
| static_cast<ptrdiff_t>( )
/home/robert_sakana_ai/llm_cuda/experiments/20250212_optimize_b5_s4_e1_v2/level_3/task_33/b5_s2_modular_warp_rnn/base/base.cu:27:30: note: perform multiplication in a wider type
27 | const float* a_row = a + row * K;
| ^~~
| static_cast<ptrdiff_t>( )
/home/robert_sakana_ai/llm_cuda/experiments/20250212_optimize_b5_s4_e1_v2/level_3/task_33/b5_s2_modular_warp_rnn/base/base.cu:28:26: 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]
28 | const float* w_row = w + col * K;
| ^
/home/robert_sakana_ai/llm_cuda/experiments/20250212_optimize_b5_s4_e1_v2/level_3/task_33/b5_s2_modular_warp_rnn/base/base.cu:28:30: note: make conversion explicit to silence this warning
28 | const float* w_row = w + col * K;
| ^~~~~~~
| static_cast<ptrdiff_t>( )
/home/robert_sakana_ai/llm_cuda/experiments/20250212_optimize_b5_s4_e1_v2/level_3/task_33/b5_s2_modular_warp_rnn/base/base.cu:28:30: note: perform multiplication in a wider type
28 | const float* w_row = w + col * K;
| ^~~
| static_cast<ptrdiff_t>( )
/home/robert_sakana_ai/llm_cuda/experiments/20250212_optimize_b5_s4_e1_v2/level_3/task_33/b5_s2_modular_warp_rnn/base/base.cu:38:5: warning: 2 adjacent parameters of 'linear_tanh_kernel' of similar type ('const float *__restrict') are easily swapped by mistake [bugprone-easily-swappable-parameters]
38 | const float* __restrict__ weight,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
39 | const float* __restrict__ bias,
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/robert_sakana_ai/llm_cuda/experiments/20250212_optimize_b5_s4_e1_v2/level_3/task_33/b5_s2_modular_warp_rnn/base/base.cu:38:31: note: the first parameter in the range is 'weight'
38 | const float* __restrict__ weight,
| ^~~~~~
/home/robert_sakana_ai/llm_cuda/experiments/20250212_optimize_b5_s4_e1_v2/level_3/task_33/b5_s2_modular_warp_rnn/base/base.cu:39:31: note: the last parameter in the range is 'bias'
39 | const float* __restrict__ bias,
| ^~~~
/home/robert_sakana_ai/llm_cuda/experiments/20250212_optimize_b5_s4_e1_v2/level_3/task_33/b5_s2_modular_warp_rnn/base/base.cu:41:5: warning: 3 adjacent parameters of 'linear_tanh_kernel' of similar type ('int') are easily swapped by mistake [bugprone-easily-swappable-parameters]
41 | int B, int K, int M
| ^~~~~~~~~~~~~~~~~~~
/home/robert_sakana_ai/llm_cuda/experiments/20250212_optimize_b5_s4_e1_v2/level_3/task_33/b5_s2_modular_warp_rnn/base/base.cu:41:9: note: the first parameter in the range is 'B'
41 | int B, int K, int M
| ^
/home/robert_sakana_ai/llm_cuda/experiments/20250212_optimize_b5_s4_e1_v2/level_3/task_33/b5_s2_modular_warp_rnn/base/base.cu:41:23: note: the last parameter in the range is 'M'
41 | int B, int K, int M
| ^
/home/robert_sakana_ai/llm_cuda/experiments/20250212_optimize_b5_s4_e1_v2/level_3/task_33/b5_s2_modular_warp_rnn/base/base.cu:43:28: warning: narrowing conversion from 'unsigned int' to signed type 'int' is implementation-defined [bugprone-narrowing-conversions]
43 | const int global_tid = blockIdx.x * blockDim.x + threadIdx.x;
| ^
/home/robert_sakana_ai/llm_cuda/experiments/20250212_optimize_b5_s4_e1_v2/level_3/task_33/b5_s2_modular_warp_rnn/base/base.cu:63:5: warning: 2 adjacent parameters of 'concat_kernel' of similar type ('int') are easily swapped by mistake [bugprone-easily-swappable-parameters]
63 | int batch_size,
| ^~~~~~~~~~~~~~~
64 | int x_size,
| ~~~~~~~~~~
/home/robert_sakana_ai/llm_cuda/experiments/20250212_optimize_b5_s4_e1_v2/level_3/task_33/b5_s2_modular_warp_rnn/base/base.cu:63:9: note: the first parameter in the range is 'batch_size'
63 | int batch_size,
| ^~~~~~~~~~
/home/robert_sakana_ai/llm_cuda/experiments/20250212_optimize_b5_s4_e1_v2/level_3/task_33/b5_s2_modular_warp_rnn/base/base.cu:64:9: note: the last parameter in the range is 'x_size'
64 | int x_size,
| ^~~~~~
/home/robert_sakana_ai/llm_cuda/experiments/20250212_optimize_b5_s4_e1_v2/level_3/task_33/b5_s2_modular_warp_rnn/base/base.cu:65:5: warning: 2 adjacent parameters of 'concat_kernel' of similar type ('int') are easily swapped by mistake [bugprone-easily-swappable-parameters]
65 | int hidden_size,
| ^~~~~~~~~~~~~~~~
66 | int total_elements
| ~~~~~~~~~~~~~~~~~~
/home/robert_sakana_ai/llm_cuda/experiments/20250212_optimize_b5_s4_e1_v2/level_3/task_33/b5_s2_modular_warp_rnn/base/base.cu:65:9: note: the first parameter in the range is 'hidden_size'
65 | int hidden_size,
| ^~~~~~~~~~~
/home/robert_sakana_ai/llm_cuda/experiments/20250212_optimize_b5_s4_e1_v2/level_3/task_33/b5_s2_modular_warp_rnn/base/base.cu:66:9: note: the last parameter in the range is 'total_elements'
66 | int total_elements
| ^~~~~~~~~~~~~~
/home/robert_sakana_ai/llm_cuda/experiments/20250212_optimize_b5_s4_e1_v2/level_3/task_33/b5_s2_modular_warp_rnn/base/base.cu:68:21: warning: narrowing conversion from 'unsigned int' to signed type 'int' is implementation-defined [bugprone-narrowing-conversions]
68 | const int idx = blockIdx.x * blockDim.x + threadIdx.x;
| ^
/home/robert_sakana_ai/llm_cuda/experiments/20250212_optimize_b5_s4_e1_v2/level_3/task_33/b5_s2_modular_warp_rnn/base/base.cu:71:48: warning: narrowing conversion from 'unsigned int' to signed type 'int' is implementation-defined [bugprone-narrowing-conversions]
71 | for (int i = idx; i < total_elements; i += blockDim.x * gridDim.x) {
| ^
/home/robert_sakana_ai/llm_cuda/experiments/20250212_optimize_b5_s4_e1_v2/level_3/task_33/b5_s2_modular_warp_rnn/base/base.cu:95:28: warning: narrowing conversion from 'int64_t' (aka 'long') to signed type 'int' is implementation-defined [bugprone-narrowing-conversions]
95 | const int batch_size = x.size(0);
| ^
/home/robert_sakana_ai/llm_cuda/experiments/20250212_optimize_b5_s4_e1_v2/level_3/task_33/b5_s2_modular_warp_rnn/base/base.cu:96:24: warning: narrowing conversion from 'int64_t' (aka 'long') to signed type 'int' is implementation-defined [bugprone-narrowing-conversions]
96 | const int x_size = x.size(1);
| ^
/home/robert_sakana_ai/llm_cuda/experiments/20250212_optimize_b5_s4_e1_v2/level_3/task_33/b5_s2_modular_warp_rnn/base/base.cu:97:29: warning: narrowing conversion from 'int64_t' (aka 'long') to signed type 'int' is implementation-defined [bugprone-narrowing-conversions]
97 | const int hidden_size = hidden.size(1);
| ^
/home/robert_sakana_ai/llm_cuda/experiments/20250212_optimize_b5_s4_e1_v2/level_3/task_33/b5_s2_modular_warp_rnn/base/base.cu:115:19: warning: narrowing conversion from 'int64_t' (aka 'long') to signed type 'int' is implementation-defined [bugprone-narrowing-conversions]
115 | const int M = i2h_weight.size(0);
| ^