7 | const float* __restrict__ gates,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
8 | const float* __restrict__ prev_c,
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b5_s1_35_lstm_ldg_aligned_v2/base/base.cu:7:31: note: the first parameter in the range is 'gates'
7 | const float* __restrict__ gates,
| ^~~~~
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b5_s1_35_lstm_ldg_aligned_v2/base/base.cu:8:31: note: the last parameter in the range is 'prev_c'
8 | const float* __restrict__ prev_c,
| ^~~~~~
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b5_s1_35_lstm_ldg_aligned_v2/base/base.cu:9:5: warning: 2 adjacent parameters of 'lstm_elementwise_forward_aligned' of similar type ('float *__restrict') are easily swapped by mistake [bugprone-easily-swappable-parameters]
9 | float* __restrict__ h,
| ^~~~~~~~~~~~~~~~~~~~~~
10 | float* __restrict__ c,
| ~~~~~~~~~~~~~~~~~~~~~
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b5_s1_35_lstm_ldg_aligned_v2/base/base.cu:9:25: note: the first parameter in the range is 'h'
9 | float* __restrict__ h,
| ^
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b5_s1_35_lstm_ldg_aligned_v2/base/base.cu:10:25: note: the last parameter in the range is 'c'
10 | float* __restrict__ c,
| ^
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b5_s1_35_lstm_ldg_aligned_v2/base/base.cu:14:15: warning: narrowing conversion from 'unsigned int' to signed type 'int' is implementation-defined [bugprone-narrowing-conversions]
14 | int idx = blockIdx.x * blockDim.x + threadIdx.x;
| ^
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b5_s1_35_lstm_ldg_aligned_v2/base/base.cu:43:5: warning: 3 adjacent parameters of 'linear_forward_kernel_aligned' of similar type ('const float *__restrict') are easily swapped by mistake [bugprone-easily-swappable-parameters]
43 | const float* __restrict__ input, // [batch_size, input_dim]
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
44 | const float* __restrict__ weight, // [output_dim, input_dim]
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
45 | const float* __restrict__ bias, // [output_dim]
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b5_s1_35_lstm_ldg_aligned_v2/base/base.cu:43:31: note: the first parameter in the range is 'input'
43 | const float* __restrict__ input, // [batch_size, input_dim]
| ^~~~~
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b5_s1_35_lstm_ldg_aligned_v2/base/base.cu:45:31: note: the last parameter in the range is 'bias'
45 | const float* __restrict__ bias, // [output_dim]
| ^~~~
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b5_s1_35_lstm_ldg_aligned_v2/base/base.cu:47:5: warning: 2 adjacent parameters of 'linear_forward_kernel_aligned' of similar type ('int') are easily swapped by mistake [bugprone-easily-swappable-parameters]
47 | int batch_size,
| ^~~~~~~~~~~~~~~
48 | int input_dim,
| ~~~~~~~~~~~~~
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b5_s1_35_lstm_ldg_aligned_v2/base/base.cu:47:9: note: the first parameter in the range is 'batch_size'
47 | int batch_size,
| ^~~~~~~~~~
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b5_s1_35_lstm_ldg_aligned_v2/base/base.cu:48:9: note: the last parameter in the range is 'input_dim'
48 | int input_dim,
| ^~~~~~~~~
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b5_s1_35_lstm_ldg_aligned_v2/base/base.cu:51:15: warning: narrowing conversion from 'unsigned int' to signed type 'int' is implementation-defined [bugprone-narrowing-conversions]
51 | int idx = blockIdx.x * blockDim.x + threadIdx.x;
| ^
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b5_s1_35_lstm_ldg_aligned_v2/base/base.cu:73:5: warning: 2 adjacent parameters of 'lstm_forward_cuda' of similar type ('torch::Tensor') are easily swapped by mistake [bugprone-easily-swappable-parameters]
73 | torch::Tensor input,
| ^~~~~~~~~~~~~~~~~~~~
74 | torch::Tensor w_ih,
| ~~~~~~~~~~~~~~~~~~
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b5_s1_35_lstm_ldg_aligned_v2/base/base.cu:73:19: note: the first parameter in the range is 'input'
73 | torch::Tensor input,
| ^~~~~
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b5_s1_35_lstm_ldg_aligned_v2/base/base.cu:74:19: note: the last parameter in the range is 'w_ih'
74 | torch::Tensor w_ih,
| ^~~~
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b5_s1_35_lstm_ldg_aligned_v2/base/base.cu:73: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]
73 | torch::Tensor input,
| ^
| const &
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b5_s1_35_lstm_ldg_aligned_v2/base/base.cu:74: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]
74 | torch::Tensor w_ih,
| ^
| const &
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b5_s1_35_lstm_ldg_aligned_v2/base/base.cu:75:5: warning: 4 adjacent parameters of 'lstm_forward_cuda' of similar type ('torch::Tensor') are easily swapped by mistake [bugprone-easily-swappable-parameters]
75 | torch::Tensor w_hh,
| ^~~~~~~~~~~~~~~~~~~
76 | torch::Tensor b_ih,
| ~~~~~~~~~~~~~~~~~~~
77 | torch::Tensor b_hh,
| ~~~~~~~~~~~~~~~~~~~
78 | torch::Tensor h0,
| ~~~~~~~~~~~~~~~~
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b5_s1_35_lstm_ldg_aligned_v2/base/base.cu:75:19: note: the first parameter in the range is 'w_hh'
75 | torch::Tensor w_hh,
| ^~~~
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b5_s1_35_lstm_ldg_aligned_v2/base/base.cu:78:19: note: the last parameter in the range is 'h0'
78 | torch::Tensor h0,
| ^~
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b5_s1_35_lstm_ldg_aligned_v2/base/base.cu:75: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]
75 | torch::Tensor w_hh,
| ^
| const &
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b5_s1_35_lstm_ldg_aligned_v2/base/base.cu:76: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]
76 | torch::Tensor b_ih,
| ^
| const &
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b5_s1_35_lstm_ldg_aligned_v2/base/base.cu:77: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]
77 | torch::Tensor b_hh,
| ^
| const &
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b5_s1_35_lstm_ldg_aligned_v2/base/base.cu:78: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]
78 | torch::Tensor h0,
| ^
| const &
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b5_s1_35_lstm_ldg_aligned_v2/base/base.cu:79: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]
79 | torch::Tensor c0
| ^
| const &
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b5_s1_35_lstm_ldg_aligned_v2/base/base.cu:81:22: warning: narrowing conversion from 'int64_t' (aka 'long') to signed type 'int' is implementation-defined [bugprone-narrowing-conversions]
81 | int batch_size = input.size(0);
| ^
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b5_s1_35_lstm_ldg_aligned_v2/base/base.cu:82:19: warning: narrowing conversion from 'int64_t' (aka 'long') to signed type 'int' is implementation-defined [bugprone-narrowing-conversions]
82 | int seq_len = input.size(1);
| ^
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b5_s1_35_lstm_ldg_aligned_v2/base/base.cu:83:23: warning: narrowing conversion from 'int64_t' (aka 'long') to signed type 'int' is implementation-defined [bugprone-narrowing-conversions]
83 | int hidden_size = h0.size(1);
| ^
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b5_s1_35_lstm_ldg_aligned_v2/base/base.cu:120: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]
120 | torch::Tensor input,
| ^
| const &
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b5_s1_35_lstm_ldg_aligned_v2/base/base.cu:121: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]
121 | torch::Tensor weight,
| ^
| const &
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b5_s1_35_lstm_ldg_aligned_v2/base/base.cu:122: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]
122 | torch::Tensor bias
| ^
| const &
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b5_s1_35_lstm_ldg_aligned_v2/base/base.cu:124:22: warning: narrowing conversion from 'int64_t' (aka 'long') to signed type 'int' is implementation-defined [bugprone-narrowing-conversions]
124 | int batch_size = input.size(0);
| ^
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b5_s1_35_lstm_ldg_aligned_v2/base/base.cu:125:21: warning: narrowing conversion from 'int64_t' (aka 'long') to signed type 'int' is implementation-defined [bugprone-narrowing-conversions]
125 | int input_dim = input.size(1);
| ^
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b5_s1_35_lstm_ldg_aligned_v2/base/base.cu:126:22: warning: narrowing conversion from 'int64_t' (aka 'long') to signed type 'int' is implementation-defined [bugprone-narrowing-conversions]
126 | int output_dim = weight.size(0);
| ^
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b5_s1_35_lstm_ldg_aligned_v2/base/base.cu:150: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]
150 | torch::Tensor x,
| ^
| const &
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b5_s1_35_lstm_ldg_aligned_v2/base/base.cu:151:5: warning: 4 adjacent parameters of 'forward' of similar type ('std::vector<torch::Tensor>') are easily swapped by mistake [bugprone-easily-swappable-parameters]
151 | std::vector<torch::Tensor> lstm_weights_ih,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
152 | std::vector<torch::Tensor> lstm_weights_hh,
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
153 | std::vector<torch::Tensor> lstm_biases_ih,
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
154 | std::vector<torch::Tensor> lstm_biases_hh,
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b5_s1_35_lstm_ldg_aligned_v2/base/base.cu:151:32: note: the first parameter in the range is 'lstm_weights_ih'
151 | std::vector<torch::Tensor> lstm_weights_ih,
| ^~~~~~~~~~~~~~~
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b5_s1_35_lstm_ldg_aligned_v2/base/base.cu:154:32: note: the last parameter in the range is 'lstm_biases_hh'
154 | std::vector<torch::Tensor> lstm_biases_hh,
| ^~~~~~~~~~~~~~
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b5_s1_35_lstm_ldg_aligned_v2/base/base.cu:156:5: warning: 2 adjacent parameters of 'forward' of similar type ('torch::Tensor') are easily swapped by mistake [bugprone-easily-swappable-parameters]
156 | torch::Tensor fc_bias,
| ^~~~~~~~~~~~~~~~~~~~~~
157 | torch::Tensor h0,
| ~~~~~~~~~~~~~~~~
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b5_s1_35_lstm_ldg_aligned_v2/base/base.cu:156:19: note: the first parameter in the range is 'fc_bias'
156 | torch::Tensor fc_bias,
| ^~~~~~~
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b5_s1_35_lstm_ldg_aligned_v2/base/base.cu:157:19: note: the last parameter in the range is 'h0'
157 | torch::Tensor h0,
| ^~
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b5_s1_35_lstm_ldg_aligned_v2/base/base.cu:165:22: warning: narrowing conversion from 'size_type' (aka 'unsigned long') to signed type 'int' is implementation-defined [bugprone-narrowing-conversions]
165 | int num_layers = lstm_weights_ih.size();
| ^
/home/robert_sakana_ai/llm_cuda/experiments/20250203_optimize_b10_s4_e0_sweep/level_3/task_35/b5_s1_35_lstm_ldg_aligned_v2/base/base.cu:182: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/b5_s1_35_lstm_ldg_aligned_v2/base/base.cu:182:47: warning: parameter 'fc_bias' is passed by value and only copied once; consider moving it to avoid unnecessary copies [performance-unnecessary-value-param]
182 | out = linear_forward_cuda(out, fc_weight, fc_bias);
| ^
| std::move( )