6 | const float* __restrict__ gates,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
7 | const float* __restrict__ prev_c,
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b1_s2_35_lstm_warp_aligned/base/base.cu:6:31: note: the first parameter in the range is 'gates'
6 | const float* __restrict__ gates,
| ^~~~~
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b1_s2_35_lstm_warp_aligned/base/base.cu:7:31: note: the last parameter in the range is 'prev_c'
7 | const float* __restrict__ prev_c,
| ^~~~~~
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b1_s2_35_lstm_warp_aligned/base/base.cu:8:5: warning: 2 adjacent parameters of 'lstm_elementwise_forward' of similar type ('float *__restrict') are easily swapped by mistake [bugprone-easily-swappable-parameters]
8 | float* __restrict__ h,
| ^~~~~~~~~~~~~~~~~~~~~~
9 | float* __restrict__ c,
| ~~~~~~~~~~~~~~~~~~~~~
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b1_s2_35_lstm_warp_aligned/base/base.cu:8:25: note: the first parameter in the range is 'h'
8 | float* __restrict__ h,
| ^
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b1_s2_35_lstm_warp_aligned/base/base.cu:9:25: note: the last parameter in the range is 'c'
9 | float* __restrict__ c,
| ^
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b1_s2_35_lstm_warp_aligned/base/base.cu:15:25: warning: narrowing conversion from 'unsigned int' to signed type 'int' is implementation-defined [bugprone-narrowing-conversions]
15 | const int lane_id = threadIdx.x % warp_size;
| ^
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b1_s2_35_lstm_warp_aligned/base/base.cu:16:25: warning: narrowing conversion from 'unsigned int' to signed type 'int' is implementation-defined [bugprone-narrowing-conversions]
16 | const int warp_id = threadIdx.x / warp_size;
| ^
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b1_s2_35_lstm_warp_aligned/base/base.cu:17:33: warning: narrowing conversion from 'unsigned int' to signed type 'int' is implementation-defined [bugprone-narrowing-conversions]
17 | const int warps_per_block = blockDim.x / warp_size;
| ^
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b1_s2_35_lstm_warp_aligned/base/base.cu:18:32: warning: narrowing conversion from 'unsigned int' to signed type 'int' is implementation-defined [bugprone-narrowing-conversions]
18 | const int global_warp_id = blockIdx.x * warps_per_block + warp_id;
| ^
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b1_s2_35_lstm_warp_aligned/base/base.cu:23:22: warning: narrowing conversion from 'unsigned int' to signed type 'int' is implementation-defined [bugprone-narrowing-conversions]
23 | base_idx += gridDim.x * warps_per_block * warp_size) {
| ^
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b1_s2_35_lstm_warp_aligned/base/base.cu:58:5: warning: 2 adjacent parameters of 'linear_forward_kernel' of similar type ('const float *__restrict') are easily swapped by mistake [bugprone-easily-swappable-parameters]
58 | const float* __restrict__ weight,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
59 | const float* __restrict__ bias,
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b1_s2_35_lstm_warp_aligned/base/base.cu:58:31: note: the first parameter in the range is 'weight'
58 | const float* __restrict__ weight,
| ^~~~~~
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b1_s2_35_lstm_warp_aligned/base/base.cu:59:31: note: the last parameter in the range is 'bias'
59 | const float* __restrict__ bias,
| ^~~~
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b1_s2_35_lstm_warp_aligned/base/base.cu:61:5: warning: 2 adjacent parameters of 'linear_forward_kernel' of similar type ('int') are easily swapped by mistake [bugprone-easily-swappable-parameters]
61 | int batch_size,
| ^~~~~~~~~~~~~~~
62 | int input_dim,
| ~~~~~~~~~~~~~
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b1_s2_35_lstm_warp_aligned/base/base.cu:61:9: note: the first parameter in the range is 'batch_size'
61 | int batch_size,
| ^~~~~~~~~~
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b1_s2_35_lstm_warp_aligned/base/base.cu:62:9: note: the last parameter in the range is 'input_dim'
62 | int input_dim,
| ^~~~~~~~~
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b1_s2_35_lstm_warp_aligned/base/base.cu:66:25: warning: narrowing conversion from 'unsigned int' to signed type 'int' is implementation-defined [bugprone-narrowing-conversions]
66 | const int lane_id = threadIdx.x % warp_size;
| ^
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b1_s2_35_lstm_warp_aligned/base/base.cu:67:25: warning: narrowing conversion from 'unsigned int' to signed type 'int' is implementation-defined [bugprone-narrowing-conversions]
67 | const int warp_id = threadIdx.x / warp_size;
| ^
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b1_s2_35_lstm_warp_aligned/base/base.cu:68:33: warning: narrowing conversion from 'unsigned int' to signed type 'int' is implementation-defined [bugprone-narrowing-conversions]
68 | const int warps_per_block = blockDim.x / warp_size;
| ^
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b1_s2_35_lstm_warp_aligned/base/base.cu:69:32: warning: narrowing conversion from 'unsigned int' to signed type 'int' is implementation-defined [bugprone-narrowing-conversions]
69 | const int global_warp_id = blockIdx.x * warps_per_block + warp_id;
| ^
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b1_s2_35_lstm_warp_aligned/base/base.cu:73:22: warning: narrowing conversion from 'unsigned int' to signed type 'int' is implementation-defined [bugprone-narrowing-conversions]
73 | base_idx += gridDim.x * warps_per_block * warp_size) {
| ^
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b1_s2_35_lstm_warp_aligned/base/base.cu:99:5: warning: 2 adjacent parameters of 'lstm_forward_cuda' of similar type ('torch::Tensor') are easily swapped by mistake [bugprone-easily-swappable-parameters]
99 | torch::Tensor input,
| ^~~~~~~~~~~~~~~~~~~~
100 | torch::Tensor w_ih,
| ~~~~~~~~~~~~~~~~~~
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b1_s2_35_lstm_warp_aligned/base/base.cu:99:19: note: the first parameter in the range is 'input'
99 | torch::Tensor input,
| ^~~~~
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b1_s2_35_lstm_warp_aligned/base/base.cu:100:19: note: the last parameter in the range is 'w_ih'
100 | torch::Tensor w_ih,
| ^~~~
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b1_s2_35_lstm_warp_aligned/base/base.cu:99:19: warning: the parameter 'input' is copied for each invocation but only used as a const reference; consider making it a const reference [performance-unnecessary-value-param]
99 | torch::Tensor input,
| ^
| const &
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b1_s2_35_lstm_warp_aligned/base/base.cu:100:19: warning: the parameter 'w_ih' is copied for each invocation but only used as a const reference; consider making it a const reference [performance-unnecessary-value-param]
100 | torch::Tensor w_ih,
| ^
| const &
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b1_s2_35_lstm_warp_aligned/base/base.cu:101:5: warning: 4 adjacent parameters of 'lstm_forward_cuda' of similar type ('torch::Tensor') are easily swapped by mistake [bugprone-easily-swappable-parameters]
101 | torch::Tensor w_hh,
| ^~~~~~~~~~~~~~~~~~~
102 | torch::Tensor b_ih,
| ~~~~~~~~~~~~~~~~~~~
103 | torch::Tensor b_hh,
| ~~~~~~~~~~~~~~~~~~~
104 | torch::Tensor h0,
| ~~~~~~~~~~~~~~~~
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b1_s2_35_lstm_warp_aligned/base/base.cu:101:19: note: the first parameter in the range is 'w_hh'
101 | torch::Tensor w_hh,
| ^~~~
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b1_s2_35_lstm_warp_aligned/base/base.cu:104:19: note: the last parameter in the range is 'h0'
104 | torch::Tensor h0,
| ^~
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b1_s2_35_lstm_warp_aligned/base/base.cu:101:19: warning: the parameter 'w_hh' is copied for each invocation but only used as a const reference; consider making it a const reference [performance-unnecessary-value-param]
101 | torch::Tensor w_hh,
| ^
| const &
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b1_s2_35_lstm_warp_aligned/base/base.cu:102:19: warning: the parameter 'b_ih' is copied for each invocation but only used as a const reference; consider making it a const reference [performance-unnecessary-value-param]
102 | torch::Tensor b_ih,
| ^
| const &
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b1_s2_35_lstm_warp_aligned/base/base.cu:103:19: warning: the parameter 'b_hh' is copied for each invocation but only used as a const reference; consider making it a const reference [performance-unnecessary-value-param]
103 | torch::Tensor b_hh,
| ^
| const &
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b1_s2_35_lstm_warp_aligned/base/base.cu:104:19: warning: the parameter 'h0' is copied for each invocation but only used as a const reference; consider making it a const reference [performance-unnecessary-value-param]
104 | torch::Tensor h0,
| ^
| const &
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b1_s2_35_lstm_warp_aligned/base/base.cu:105:19: warning: the parameter 'c0' is copied for each invocation but only used as a const reference; consider making it a const reference [performance-unnecessary-value-param]
105 | torch::Tensor c0
| ^
| const &
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b1_s2_35_lstm_warp_aligned/base/base.cu:107:10: warning: Value stored to 'options' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
107 | auto options = torch::TensorOptions().dtype(input.dtype()).device(input.device());
| ^~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b1_s2_35_lstm_warp_aligned/base/base.cu:107:10: note: Value stored to 'options' during its initialization is never read
107 | auto options = torch::TensorOptions().dtype(input.dtype()).device(input.device());
| ^~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b1_s2_35_lstm_warp_aligned/base/base.cu:108:22: warning: narrowing conversion from 'int64_t' (aka 'long') to signed type 'int' is implementation-defined [bugprone-narrowing-conversions]
108 | int batch_size = input.size(0);
| ^
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b1_s2_35_lstm_warp_aligned/base/base.cu:109:19: warning: narrowing conversion from 'int64_t' (aka 'long') to signed type 'int' is implementation-defined [bugprone-narrowing-conversions]
109 | int seq_len = input.size(1);
| ^
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b1_s2_35_lstm_warp_aligned/base/base.cu:110:23: warning: narrowing conversion from 'int64_t' (aka 'long') to signed type 'int' is implementation-defined [bugprone-narrowing-conversions]
110 | int hidden_size = h0.size(1);
| ^
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b1_s2_35_lstm_warp_aligned/base/base.cu:143:19: warning: the parameter 'input' is copied for each invocation but only used as a const reference; consider making it a const reference [performance-unnecessary-value-param]
143 | torch::Tensor input,
| ^
| const &
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b1_s2_35_lstm_warp_aligned/base/base.cu:144:19: warning: the parameter 'weight' is copied for each invocation but only used as a const reference; consider making it a const reference [performance-unnecessary-value-param]
144 | torch::Tensor weight,
| ^
| const &
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b1_s2_35_lstm_warp_aligned/base/base.cu:145:19: warning: the parameter 'bias' is copied for each invocation but only used as a const reference; consider making it a const reference [performance-unnecessary-value-param]
145 | torch::Tensor bias
| ^
| const &
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b1_s2_35_lstm_warp_aligned/base/base.cu:155:24: warning: narrowing conversion from 'int64_t' (aka 'long') to signed type 'int' is implementation-defined [bugprone-narrowing-conversions]
155 | const int blocks = (batch_size * output_dim + threads_per_block - 1) / threads_per_block;
| ^
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b1_s2_35_lstm_warp_aligned/base/base.cu:162:9: warning: narrowing conversion from 'int64_t' (aka 'long') to signed type 'int' is implementation-defined [bugprone-narrowing-conversions]
162 | batch_size,
| ^
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b1_s2_35_lstm_warp_aligned/base/base.cu:163:9: warning: narrowing conversion from 'int64_t' (aka 'long') to signed type 'int' is implementation-defined [bugprone-narrowing-conversions]
163 | input_dim,
| ^
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b1_s2_35_lstm_warp_aligned/base/base.cu:164:9: warning: narrowing conversion from 'int64_t' (aka 'long') to signed type 'int' is implementation-defined [bugprone-narrowing-conversions]
164 | output_dim
| ^
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b1_s2_35_lstm_warp_aligned/base/base.cu:171: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]
171 | torch::Tensor x,
| ^
| const &
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b1_s2_35_lstm_warp_aligned/base/base.cu:172:5: warning: 4 adjacent parameters of 'forward' of similar type ('std::vector<torch::Tensor>') are easily swapped by mistake [bugprone-easily-swappable-parameters]
172 | std::vector<torch::Tensor> lstm_weights_ih,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
173 | std::vector<torch::Tensor> lstm_weights_hh,
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
174 | std::vector<torch::Tensor> lstm_biases_ih,
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
175 | std::vector<torch::Tensor> lstm_biases_hh,
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b1_s2_35_lstm_warp_aligned/base/base.cu:172:32: note: the first parameter in the range is 'lstm_weights_ih'
172 | std::vector<torch::Tensor> lstm_weights_ih,
| ^~~~~~~~~~~~~~~
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b1_s2_35_lstm_warp_aligned/base/base.cu:175:32: note: the last parameter in the range is 'lstm_biases_hh'
175 | std::vector<torch::Tensor> lstm_biases_hh,
| ^~~~~~~~~~~~~~
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b1_s2_35_lstm_warp_aligned/base/base.cu:177:5: warning: 2 adjacent parameters of 'forward' of similar type ('torch::Tensor') are easily swapped by mistake [bugprone-easily-swappable-parameters]
177 | torch::Tensor fc_bias,
| ^~~~~~~~~~~~~~~~~~~~~~
178 | torch::Tensor h0,
| ~~~~~~~~~~~~~~~~
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b1_s2_35_lstm_warp_aligned/base/base.cu:177:19: note: the first parameter in the range is 'fc_bias'
177 | torch::Tensor fc_bias,
| ^~~~~~~
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b1_s2_35_lstm_warp_aligned/base/base.cu:178:19: note: the last parameter in the range is 'h0'
178 | torch::Tensor h0,
| ^~
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b1_s2_35_lstm_warp_aligned/base/base.cu:199:36: warning: parameter 'fc_weight' is passed by value and only copied once; consider moving it to avoid unnecessary copies [performance-unnecessary-value-param]
2 | out = linear_forward_cuda(out, fc_weight, fc_bias);
| ^
| std::move( )
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b1_s2_35_lstm_warp_aligned/base/base.cu:199:47: warning: parameter 'fc_bias' is passed by value and only copied once; consider moving it to avoid unnecessary copies [performance-unnecessary-value-param]
199 | out = linear_forward_cuda(out, fc_weight, fc_bias);
| ^
| std::move( )