[INFO] cloning repository https://github.com/rafaele85/rust-inference
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/rafaele85/rust-inference" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frafaele85%2Frust-inference", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frafaele85%2Frust-inference'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] ff46a1c83892ee7360eb53d1b8c96e5fe52f1514
[INFO] checking rafaele85/rust-inference against master#57f772f25c5ce2bd870d6f8c3ab318eaee5a3326 for pr-133502-22
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frafaele85%2Frust-inference" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/rafaele85/rust-inference
[INFO] finished tweaking git repo https://github.com/rafaele85/rust-inference
[INFO] tweaked toml for git repo https://github.com/rafaele85/rust-inference written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/rafaele85/rust-inference on toolchain 57f772f25c5ce2bd870d6f8c3ab318eaee5a3326
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+57f772f25c5ce2bd870d6f8c3ab318eaee5a3326" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/rafaele85/rust-inference already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+57f772f25c5ce2bd870d6f8c3ab318eaee5a3326" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded cudarc v0.17.8
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+57f772f25c5ce2bd870d6f8c3ab318eaee5a3326" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] ae492c8ca5ad60e808d5c8d539e205184d6401b1523cc46905eda5b991fe8ba8
[INFO] running `Command { std: "docker" "start" "-a" "ae492c8ca5ad60e808d5c8d539e205184d6401b1523cc46905eda5b991fe8ba8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ae492c8ca5ad60e808d5c8d539e205184d6401b1523cc46905eda5b991fe8ba8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ae492c8ca5ad60e808d5c8d539e205184d6401b1523cc46905eda5b991fe8ba8", kill_on_drop: false }`
[INFO] [stdout] ae492c8ca5ad60e808d5c8d539e205184d6401b1523cc46905eda5b991fe8ba8
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+57f772f25c5ce2bd870d6f8c3ab318eaee5a3326" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] dcc8605d049a5c74ff9c1ddc13cb29dc21a752c75283e73ab8f3bbd9f8ab8e03
[INFO] running `Command { std: "docker" "start" "-a" "dcc8605d049a5c74ff9c1ddc13cb29dc21a752c75283e73ab8f3bbd9f8ab8e03", kill_on_drop: false }`
[INFO] [stderr]    Compiling unicode-ident v1.0.23
[INFO] [stderr]    Compiling cudarc v0.17.8
[INFO] [stderr]     Checking memmap2 v0.9.10
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling quote v1.0.44
[INFO] [stderr]    Compiling syn v2.0.116
[INFO] [stderr]    Compiling zerocopy-derive v0.8.39
[INFO] [stderr]     Checking zerocopy v0.8.39
[INFO] [stderr]     Checking half v2.7.1
[INFO] [stderr]     Checking cuda_matmul v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `CudaBlas`
[INFO] [stdout]  --> src/matmul.rs:2:22
[INFO] [stdout]   |
[INFO] [stdout] 2 | use cudarc::cublas::{CudaBlas, Gemm, GemmConfig};
[INFO] [stdout]   |                      ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `cudarc::driver::CudaContext`
[INFO] [stdout]  --> src/matmul.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use cudarc::driver::CudaContext;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CudaKernels`
[INFO] [stdout]  --> src/matmul.rs:5:40
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::cuda_kernels::{get_kernels, CudaKernels};
[INFO] [stdout]   |                                        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CudaKernels`
[INFO] [stdout]  --> src/softmax.rs:9:40
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::cuda_kernels::{get_kernels, CudaKernels};
[INFO] [stdout]   |                                        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CudaKernels`
[INFO] [stdout]  --> src/scale.rs:3:40
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::cuda_kernels::{get_kernels, CudaKernels};
[INFO] [stdout]   |                                        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CudaKernels`
[INFO] [stdout]  --> src/head_ops.rs:3:40
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::cuda_kernels::{get_kernels, CudaKernels};
[INFO] [stdout]   |                                        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CudaKernels`
[INFO] [stdout]  --> src/residual.rs:3:40
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::cuda_kernels::{get_kernels, CudaKernels};
[INFO] [stdout]   |                                        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]   --> src/ffn.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 |     Ok((output))
[INFO] [stdout]    |        ^      ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 13 -     Ok((output))
[INFO] [stdout] 13 +     Ok(output )
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]   --> src/ffn.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 23 |     Ok((output))
[INFO] [stdout]    |        ^      ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 23 -     Ok((output))
[INFO] [stdout] 23 +     Ok(output )
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]   --> src/layer_norm.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 34 |     Ok((out))
[INFO] [stdout]    |        ^   ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 34 -     Ok((out))
[INFO] [stdout] 34 +     Ok(out )
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]   --> src/rms_norm.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 34 |     Ok((out))
[INFO] [stdout]    |        ^   ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 34 -     Ok((out))
[INFO] [stdout] 34 +     Ok(out )
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/gguf/metadata.rs:131:8
[INFO] [stdout]     |
[INFO] [stdout] 131 |     if (typ == 8) {
[INFO] [stdout]     |        ^        ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 131 -     if (typ == 8) {
[INFO] [stdout] 131 +     if typ == 8 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CudaContext`
[INFO] [stdout]  --> src/model.rs:5:22
[INFO] [stdout]   |
[INFO] [stdout] 5 | use cudarc::driver::{CudaContext, CudaStream};
[INFO] [stdout]   |                      ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `load_tensor`
[INFO] [stdout]  --> src/model.rs:8:32
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::gguf::tensor_data::{load_tensor, read_tensor_f32, read_tensor_q4_0_transposed, read_tensor_q6_k};
[INFO] [stdout]   |                                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `attention_gpu`
[INFO] [stdout]   --> src/main.rs:27:24
[INFO] [stdout]    |
[INFO] [stdout] 27 | use crate::attention::{attention_gpu, attention_gqa};
[INFO] [stdout]    |                        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `matmul_gpu_bt`
[INFO] [stdout]   --> src/main.rs:31:33
[INFO] [stdout]    |
[INFO] [stdout] 31 | use crate::matmul::{matmul_gpu, matmul_gpu_bt};
[INFO] [stdout]    |                                 ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CudaBlas`
[INFO] [stdout]  --> src/matmul.rs:2:22
[INFO] [stdout]   |
[INFO] [stdout] 2 | use cudarc::cublas::{CudaBlas, Gemm, GemmConfig};
[INFO] [stdout]   |                      ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `cudarc::driver::CudaContext`
[INFO] [stdout]  --> src/matmul.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use cudarc::driver::CudaContext;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CudaKernels`
[INFO] [stdout]  --> src/matmul.rs:5:40
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::cuda_kernels::{get_kernels, CudaKernels};
[INFO] [stdout]   |                                        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CudaKernels`
[INFO] [stdout]  --> src/softmax.rs:9:40
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::cuda_kernels::{get_kernels, CudaKernels};
[INFO] [stdout]   |                                        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CudaKernels`
[INFO] [stdout]  --> src/scale.rs:3:40
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::cuda_kernels::{get_kernels, CudaKernels};
[INFO] [stdout]   |                                        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CudaKernels`
[INFO] [stdout]  --> src/head_ops.rs:3:40
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::cuda_kernels::{get_kernels, CudaKernels};
[INFO] [stdout]   |                                        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CudaKernels`
[INFO] [stdout]  --> src/residual.rs:3:40
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::cuda_kernels::{get_kernels, CudaKernels};
[INFO] [stdout]   |                                        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]   --> src/ffn.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 |     Ok((output))
[INFO] [stdout]    |        ^      ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 13 -     Ok((output))
[INFO] [stdout] 13 +     Ok(output )
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]   --> src/ffn.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 23 |     Ok((output))
[INFO] [stdout]    |        ^      ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 23 -     Ok((output))
[INFO] [stdout] 23 +     Ok(output )
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]   --> src/layer_norm.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 34 |     Ok((out))
[INFO] [stdout]    |        ^   ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 34 -     Ok((out))
[INFO] [stdout] 34 +     Ok(out )
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]   --> src/rms_norm.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 34 |     Ok((out))
[INFO] [stdout]    |        ^   ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 34 -     Ok((out))
[INFO] [stdout] 34 +     Ok(out )
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/gguf/metadata.rs:131:8
[INFO] [stdout]     |
[INFO] [stdout] 131 |     if (typ == 8) {
[INFO] [stdout]     |        ^        ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 131 -     if (typ == 8) {
[INFO] [stdout] 131 +     if typ == 8 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CudaContext`
[INFO] [stdout]  --> src/model.rs:5:22
[INFO] [stdout]   |
[INFO] [stdout] 5 | use cudarc::driver::{CudaContext, CudaStream};
[INFO] [stdout]   |                      ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `load_tensor`
[INFO] [stdout]  --> src/model.rs:8:32
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::gguf::tensor_data::{load_tensor, read_tensor_f32, read_tensor_q4_0_transposed, read_tensor_q6_k};
[INFO] [stdout]   |                                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `attention_gpu`
[INFO] [stdout]   --> src/main.rs:27:24
[INFO] [stdout]    |
[INFO] [stdout] 27 | use crate::attention::{attention_gpu, attention_gqa};
[INFO] [stdout]    |                        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `matmul_gpu_bt`
[INFO] [stdout]   --> src/main.rs:31:33
[INFO] [stdout]    |
[INFO] [stdout] 31 | use crate::matmul::{matmul_gpu, matmul_gpu_bt};
[INFO] [stdout]    |                                 ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cuda_kernels`
[INFO] [stdout]   --> src/attention.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 |     let cuda_kernels = get_kernels();
[INFO] [stdout]    |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cuda_kernels`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/attention.rs:95:9
[INFO] [stdout]    |
[INFO] [stdout] 95 |     let mut k = matmul_gpu(
[INFO] [stdout]    |         ----^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/attention.rs:103:9
[INFO] [stdout]     |
[INFO] [stdout] 103 |     let mut v = matmul_gpu(
[INFO] [stdout]     |         ----^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cuda_kernels`
[INFO] [stdout]   --> src/attention.rs:84:9
[INFO] [stdout]    |
[INFO] [stdout] 84 |     let cuda_kernels = get_kernels();
[INFO] [stdout]    |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cuda_kernels`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/gguf/metadata.rs:122:9
[INFO] [stdout]     |
[INFO] [stdout] 122 |     let mut arr = Vec::with_capacity(elem_count as usize);
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cuda_kernels`
[INFO] [stdout]   --> src/attention.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 |     let cuda_kernels = get_kernels();
[INFO] [stdout]    |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cuda_kernels`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/attention.rs:95:9
[INFO] [stdout]    |
[INFO] [stdout] 95 |     let mut k = matmul_gpu(
[INFO] [stdout]    |         ----^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/attention.rs:103:9
[INFO] [stdout]     |
[INFO] [stdout] 103 |     let mut v = matmul_gpu(
[INFO] [stdout]     |         ----^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cuda_kernels`
[INFO] [stdout]   --> src/attention.rs:84:9
[INFO] [stdout]    |
[INFO] [stdout] 84 |     let cuda_kernels = get_kernels();
[INFO] [stdout]    |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cuda_kernels`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_block_vs_hf` is never used
[INFO] [stdout]   --> src/main.rs:40:4
[INFO] [stdout]    |
[INFO] [stdout] 40 | fn test_block_vs_hf() -> Result<(), Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_attention_vs_hf` is never used
[INFO] [stdout]   --> src/main.rs:91:4
[INFO] [stdout]    |
[INFO] [stdout] 91 | fn test_attention_vs_hf() -> Result<(), Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_rope_vs_hf` is never used
[INFO] [stdout]    --> src/main.rs:140:4
[INFO] [stdout]     |
[INFO] [stdout] 140 | fn test_rope_vs_hf() -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_qkv_proj_vs_hf` is never used
[INFO] [stdout]    --> src/main.rs:187:4
[INFO] [stdout]     |
[INFO] [stdout] 187 | fn test_qkv_proj_vs_hf() -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_rms_norm_vs_hf` is never used
[INFO] [stdout]    --> src/main.rs:231:4
[INFO] [stdout]     |
[INFO] [stdout] 231 | fn test_rms_norm_vs_hf() -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_attention_gqa_kernel` is never used
[INFO] [stdout]    --> src/main.rs:260:4
[INFO] [stdout]     |
[INFO] [stdout] 260 | fn test_attention_gqa_kernel() -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_f32_bin` is never used
[INFO] [stdout]    --> src/main.rs:334:4
[INFO] [stdout]     |
[INFO] [stdout] 334 | fn load_f32_bin(path: &str) -> Vec<f32> {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_rope_kernel` is never used
[INFO] [stdout]    --> src/main.rs:345:4
[INFO] [stdout]     |
[INFO] [stdout] 345 | fn test_rope_kernel() -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_layer0` is never used
[INFO] [stdout]    --> src/main.rs:392:4
[INFO] [stdout]     |
[INFO] [stdout] 392 | fn test_layer0() -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_rope` is never used
[INFO] [stdout]    --> src/main.rs:513:4
[INFO] [stdout]     |
[INFO] [stdout] 513 | fn test_rope() -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `matmul_gpu` is never used
[INFO] [stdout]  --> src/matmul.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn matmul_gpu(a: &GpuTensor, b: &GpuTensor, m: i32, n: i32, k: i32) -> Result<GpuTensor, Box<dyn Error>> {
[INFO] [stdout]   |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `matmul_gpu_bt` is never used
[INFO] [stdout]   --> src/matmul.rs:45:8
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub fn matmul_gpu_bt(a: &GpuTensor, b: &GpuTensor, m: i32, n: i32, k: i32) -> Result<GpuTensor, Box<dyn Error>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `softmax_cpu` is never used
[INFO] [stdout]   --> src/softmax.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn softmax_cpu(x: &mut Vec<f32>) {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `softmax_cudnn_gpu` is never used
[INFO] [stdout]   --> src/softmax.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub fn softmax_cudnn_gpu(x: &mut GpuTensor) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `softmax_cudnn_gpu_2d` is never used
[INFO] [stdout]   --> src/softmax.rs:65:8
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub fn softmax_cudnn_gpu_2d(x: &mut GpuTensor) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `scale_gpu` is never used
[INFO] [stdout]  --> src/scale.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn scale_gpu(x: &mut GpuTensor, factor: f32) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]   |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `attention_gpu` is never used
[INFO] [stdout]   --> src/attention.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn attention_gpu(
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `attention_multihead_gpu` is never used
[INFO] [stdout]   --> src/attention.rs:73:8
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub fn attention_multihead_gpu (
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `attention_gqa` is never used
[INFO] [stdout]    --> src/attention.rs:160:8
[INFO] [stdout]     |
[INFO] [stdout] 160 | pub fn attention_gqa (
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `data`, `shape`, and `stream` are never read
[INFO] [stdout]  --> src/gpu_tensor.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct GpuTensor {
[INFO] [stdout]   |            --------- fields in this struct
[INFO] [stdout] 6 |     pub data: CudaSlice<f32>,
[INFO] [stdout]   |         ^^^^
[INFO] [stdout] 7 |     pub shape: Vec<usize>,
[INFO] [stdout]   |         ^^^^^
[INFO] [stdout] 8 |     pub stream: Arc<CudaStream>,
[INFO] [stdout]   |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `to_cpu`, `len`, `alloc_zeros`, and `copy` are never used
[INFO] [stdout]   --> src/gpu_tensor.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl GpuTensor {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 12 |     pub fn to_cpu(&self) -> Result<Vec<f32>, Box<dyn Error>> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn len(&self) -> usize {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn alloc_zeros(stream: Arc<CudaStream>, len: usize, shape: Vec<usize>) -> Result<Self, Box<dyn Error>> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn copy(&self) -> Result<Self, Box<dyn Error>> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_head` is never used
[INFO] [stdout]  --> src/head_ops.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn extract_head(
[INFO] [stdout]   |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `combine_heads` is never used
[INFO] [stdout]   --> src/head_ops.rs:53:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub fn combine_heads(
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CudaKernels` is never constructed
[INFO] [stdout]  --> src/cuda_kernels.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct CudaKernels {
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/cuda_kernels.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl CudaKernels {
[INFO] [stdout]    | ---------------- associated function in this implementation
[INFO] [stdout] 27 |     pub fn new(ctx: &Arc<CudaContext>) -> Result<Self, Box<dyn Error>> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `CUDA_KERNELS` is never used
[INFO] [stdout]   --> src/cuda_kernels.rs:61:8
[INFO] [stdout]    |
[INFO] [stdout] 61 | static CUDA_KERNELS: OnceLock<CudaKernels> = OnceLock::new();
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_kernels` is never used
[INFO] [stdout]   --> src/cuda_kernels.rs:63:8
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub fn get_kernels() -> &'static CudaKernels {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `residual_add` is never used
[INFO] [stdout]  --> src/residual.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn residual_add(
[INFO] [stdout]   |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gelu` is never used
[INFO] [stdout]  --> src/gelu.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn gelu(x: &mut GpuTensor) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ffn` is never used
[INFO] [stdout]  --> src/ffn.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn ffn(x: &GpuTensor, w1: &GpuTensor, w2: &GpuTensor, seq_len: usize, dim: usize, hidden_dim: usize) -> Result<GpuTensor, Box<dyn...
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ffn_swiglu` is never used
[INFO] [stdout]   --> src/ffn.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn ffn_swiglu(x: &GpuTensor, w_gate: &GpuTensor,  w_up: &GpuTensor,  w_down: &GpuTensor, seq_len: usize, dim: usize, hidden_dim:...
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `layer_norm` is never used
[INFO] [stdout]  --> src/layer_norm.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn layer_norm(x: &GpuTensor, gamma: &GpuTensor, beta: &GpuTensor, epsilon: f32) -> Result<GpuTensor, Box<dyn Error>> {
[INFO] [stdout]   |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `transformer_block` is never used
[INFO] [stdout]  --> src/transformer_block.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn transformer_block(
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `transformer_block_llama` is never used
[INFO] [stdout]   --> src/transformer_block.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub fn transformer_block_llama(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `output_projections` is never used
[INFO] [stdout]  --> src/output_projections.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn output_projections(
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_last_logits` is never used
[INFO] [stdout]   --> src/output_projections.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub fn get_last_logits(logits: &GpuTensor) -> Result<Vec<f32>, Box<dyn Error>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `arg_max` is never used
[INFO] [stdout]   --> src/output_projections.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub fn arg_max(arr: &[f32]) -> usize {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `embeddings` is never used
[INFO] [stdout]  --> src/embeddings.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn embeddings(token_ids: &[i32], embed_table: &GpuTensor) -> Result<GpuTensor, Box<dyn Error>> {
[INFO] [stdout]   |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rope` is never used
[INFO] [stdout]  --> src/rope.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn rope(x: &mut GpuTensor) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rms_norm` is never used
[INFO] [stdout]  --> src/rms_norm.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn rms_norm(x: &GpuTensor, gamma: &GpuTensor) -> Result<GpuTensor, Box<dyn Error>> {
[INFO] [stdout]   |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `silu` is never used
[INFO] [stdout]  --> src/silu.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn silu(
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mul` is never used
[INFO] [stdout]  --> src/mul.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn mul(a: &mut GpuTensor, b: &GpuTensor) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/gguf/metadata.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 |     String(String),
[INFO] [stdout]   |     ------ ^^^^^^
[INFO] [stdout]   |     |
[INFO] [stdout]   |     field in this variant
[INFO] [stdout]   |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]   |
[INFO] [stdout] 9 -     String(String),
[INFO] [stdout] 9 +     String(()),
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/gguf/metadata.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 |     F32(f32),
[INFO] [stdout]    |     --- ^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 11 -     F32(f32),
[INFO] [stdout] 11 +     F32(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/gguf/metadata.rs:13:14
[INFO] [stdout]    |
[INFO] [stdout] 13 |     ArrayF32(Vec<f32>),
[INFO] [stdout]    |     -------- ^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 13 -     ArrayF32(Vec<f32>),
[INFO] [stdout] 13 +     ArrayF32(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/gguf/metadata.rs:14:14
[INFO] [stdout]    |
[INFO] [stdout] 14 |     ArrayU32(Vec<u32>),
[INFO] [stdout]    |     -------- ^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 14 -     ArrayU32(Vec<u32>),
[INFO] [stdout] 14 +     ArrayU32(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/gguf/metadata.rs:15:14
[INFO] [stdout]    |
[INFO] [stdout] 15 |     ArrayI32(Vec<i32>),
[INFO] [stdout]    |     -------- ^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 15 -     ArrayI32(Vec<i32>),
[INFO] [stdout] 15 +     ArrayI32(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `n_dims` is never read
[INFO] [stdout]   --> src/gguf/metadata.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct TensorMetadata {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] 19 |     pub name: String,
[INFO] [stdout] 20 |     pub n_dims: u32,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_tensor_f32_transposed` is never used
[INFO] [stdout]   --> src/gguf/tensor_data.rs:38:8
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub fn read_tensor_f32_transposed(file: &mut File, tensor: &TensorMetadata, data_start_offset: u64, rows: usize, cols: usize) -> Res...
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_tensor` is never used
[INFO] [stdout]    --> src/gguf/tensor_data.rs:164:8
[INFO] [stdout]     |
[INFO] [stdout] 164 | pub fn load_tensor(file: &mut File, tensor: &TensorMetadata, data_start_offset: u64, rows: usize, cols: usize) -> Result<Vec<f32>, ...
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/model.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct LayerWeights {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 41 |     pub attn_norm: GpuTensor,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 42 |     pub ffn_norm: GpuTensor,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 43 |     pub w_q: GpuTensor,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 44 |     pub w_k: GpuTensor,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 45 |     pub w_v: GpuTensor,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 46 |     pub w_o: GpuTensor,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 47 |     pub w_gate: GpuTensor,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 48 |     pub w_up: GpuTensor,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 49 |     pub w_down: GpuTensor,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/gguf/metadata.rs:122:9
[INFO] [stdout]     |
[INFO] [stdout] 122 |     let mut arr = Vec::with_capacity(elem_count as usize);
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `embed_tokens`, `final_norm`, and `output_weights` are never read
[INFO] [stdout]    --> src/model.rs:102:9
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub struct ModelWeights {
[INFO] [stdout]     |            ------------ fields in this struct
[INFO] [stdout] 102 |     pub embed_tokens: GpuTensor,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 103 |     pub final_norm: GpuTensor,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 104 |     pub output_weights: GpuTensor,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/attention.rs:118:9
[INFO] [stdout]     |
[INFO] [stdout] 118 |         rope(&mut q_head);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 118 |         let _ = rope(&mut q_head);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/attention.rs:119:9
[INFO] [stdout]     |
[INFO] [stdout] 119 |         rope(&mut k_head);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 119 |         let _ = rope(&mut k_head);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `BLOCK_SIZE` should have a snake case name
[INFO] [stdout]   --> src/embeddings.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 |     let BLOCK_SIZE: u32 = 256;
[INFO] [stdout]    |         ^^^^^^^^^^ help: convert the identifier to snake case: `block_size`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `epsilon` should have an upper case name
[INFO] [stdout]   --> src/rms_norm.rs:15:11
[INFO] [stdout]    |
[INFO] [stdout] 15 |     const epsilon: f32 = 1e-5;
[INFO] [stdout]    |           ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_upper_case_globals)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]    |
[INFO] [stdout] 15 -     const epsilon: f32 = 1e-5;
[INFO] [stdout] 15 +     const EPSILON: f32 = 1e-5;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_block_vs_hf` is never used
[INFO] [stdout]   --> src/main.rs:40:4
[INFO] [stdout]    |
[INFO] [stdout] 40 | fn test_block_vs_hf() -> Result<(), Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_attention_vs_hf` is never used
[INFO] [stdout]   --> src/main.rs:91:4
[INFO] [stdout]    |
[INFO] [stdout] 91 | fn test_attention_vs_hf() -> Result<(), Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_rope_vs_hf` is never used
[INFO] [stdout]    --> src/main.rs:140:4
[INFO] [stdout]     |
[INFO] [stdout] 140 | fn test_rope_vs_hf() -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_qkv_proj_vs_hf` is never used
[INFO] [stdout]    --> src/main.rs:187:4
[INFO] [stdout]     |
[INFO] [stdout] 187 | fn test_qkv_proj_vs_hf() -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_rms_norm_vs_hf` is never used
[INFO] [stdout]    --> src/main.rs:231:4
[INFO] [stdout]     |
[INFO] [stdout] 231 | fn test_rms_norm_vs_hf() -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_attention_gqa_kernel` is never used
[INFO] [stdout]    --> src/main.rs:260:4
[INFO] [stdout]     |
[INFO] [stdout] 260 | fn test_attention_gqa_kernel() -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_f32_bin` is never used
[INFO] [stdout]    --> src/main.rs:334:4
[INFO] [stdout]     |
[INFO] [stdout] 334 | fn load_f32_bin(path: &str) -> Vec<f32> {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_rope_kernel` is never used
[INFO] [stdout]    --> src/main.rs:345:4
[INFO] [stdout]     |
[INFO] [stdout] 345 | fn test_rope_kernel() -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_layer0` is never used
[INFO] [stdout]    --> src/main.rs:392:4
[INFO] [stdout]     |
[INFO] [stdout] 392 | fn test_layer0() -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_rope` is never used
[INFO] [stdout]    --> src/main.rs:513:4
[INFO] [stdout]     |
[INFO] [stdout] 513 | fn test_rope() -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `matmul_gpu` is never used
[INFO] [stdout]  --> src/matmul.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn matmul_gpu(a: &GpuTensor, b: &GpuTensor, m: i32, n: i32, k: i32) -> Result<GpuTensor, Box<dyn Error>> {
[INFO] [stdout]   |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `matmul_gpu_bt` is never used
[INFO] [stdout]   --> src/matmul.rs:45:8
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub fn matmul_gpu_bt(a: &GpuTensor, b: &GpuTensor, m: i32, n: i32, k: i32) -> Result<GpuTensor, Box<dyn Error>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `softmax_cpu` is never used
[INFO] [stdout]   --> src/softmax.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn softmax_cpu(x: &mut Vec<f32>) {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `softmax_cudnn_gpu` is never used
[INFO] [stdout]   --> src/softmax.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub fn softmax_cudnn_gpu(x: &mut GpuTensor) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `softmax_cudnn_gpu_2d` is never used
[INFO] [stdout]   --> src/softmax.rs:65:8
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub fn softmax_cudnn_gpu_2d(x: &mut GpuTensor) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `scale_gpu` is never used
[INFO] [stdout]  --> src/scale.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn scale_gpu(x: &mut GpuTensor, factor: f32) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]   |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `attention_gpu` is never used
[INFO] [stdout]   --> src/attention.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn attention_gpu(
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `attention_multihead_gpu` is never used
[INFO] [stdout]   --> src/attention.rs:73:8
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub fn attention_multihead_gpu (
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `attention_gqa` is never used
[INFO] [stdout]    --> src/attention.rs:160:8
[INFO] [stdout]     |
[INFO] [stdout] 160 | pub fn attention_gqa (
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `data`, `shape`, and `stream` are never read
[INFO] [stdout]  --> src/gpu_tensor.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct GpuTensor {
[INFO] [stdout]   |            --------- fields in this struct
[INFO] [stdout] 6 |     pub data: CudaSlice<f32>,
[INFO] [stdout]   |         ^^^^
[INFO] [stdout] 7 |     pub shape: Vec<usize>,
[INFO] [stdout]   |         ^^^^^
[INFO] [stdout] 8 |     pub stream: Arc<CudaStream>,
[INFO] [stdout]   |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `to_cpu`, `len`, `alloc_zeros`, and `copy` are never used
[INFO] [stdout]   --> src/gpu_tensor.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl GpuTensor {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 12 |     pub fn to_cpu(&self) -> Result<Vec<f32>, Box<dyn Error>> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn len(&self) -> usize {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn alloc_zeros(stream: Arc<CudaStream>, len: usize, shape: Vec<usize>) -> Result<Self, Box<dyn Error>> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn copy(&self) -> Result<Self, Box<dyn Error>> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_head` is never used
[INFO] [stdout]  --> src/head_ops.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn extract_head(
[INFO] [stdout]   |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `combine_heads` is never used
[INFO] [stdout]   --> src/head_ops.rs:53:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub fn combine_heads(
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CudaKernels` is never constructed
[INFO] [stdout]  --> src/cuda_kernels.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct CudaKernels {
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/cuda_kernels.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl CudaKernels {
[INFO] [stdout]    | ---------------- associated function in this implementation
[INFO] [stdout] 27 |     pub fn new(ctx: &Arc<CudaContext>) -> Result<Self, Box<dyn Error>> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `CUDA_KERNELS` is never used
[INFO] [stdout]   --> src/cuda_kernels.rs:61:8
[INFO] [stdout]    |
[INFO] [stdout] 61 | static CUDA_KERNELS: OnceLock<CudaKernels> = OnceLock::new();
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_kernels` is never used
[INFO] [stdout]   --> src/cuda_kernels.rs:63:8
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub fn get_kernels() -> &'static CudaKernels {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `residual_add` is never used
[INFO] [stdout]  --> src/residual.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn residual_add(
[INFO] [stdout]   |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gelu` is never used
[INFO] [stdout]  --> src/gelu.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn gelu(x: &mut GpuTensor) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ffn` is never used
[INFO] [stdout]  --> src/ffn.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn ffn(x: &GpuTensor, w1: &GpuTensor, w2: &GpuTensor, seq_len: usize, dim: usize, hidden_dim: usize) -> Result<GpuTensor, Box<dyn...
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ffn_swiglu` is never used
[INFO] [stdout]   --> src/ffn.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn ffn_swiglu(x: &GpuTensor, w_gate: &GpuTensor,  w_up: &GpuTensor,  w_down: &GpuTensor, seq_len: usize, dim: usize, hidden_dim:...
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `layer_norm` is never used
[INFO] [stdout]  --> src/layer_norm.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn layer_norm(x: &GpuTensor, gamma: &GpuTensor, beta: &GpuTensor, epsilon: f32) -> Result<GpuTensor, Box<dyn Error>> {
[INFO] [stdout]   |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `transformer_block` is never used
[INFO] [stdout]  --> src/transformer_block.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn transformer_block(
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `transformer_block_llama` is never used
[INFO] [stdout]   --> src/transformer_block.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub fn transformer_block_llama(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `output_projections` is never used
[INFO] [stdout]  --> src/output_projections.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn output_projections(
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_last_logits` is never used
[INFO] [stdout]   --> src/output_projections.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub fn get_last_logits(logits: &GpuTensor) -> Result<Vec<f32>, Box<dyn Error>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `arg_max` is never used
[INFO] [stdout]   --> src/output_projections.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub fn arg_max(arr: &[f32]) -> usize {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `embeddings` is never used
[INFO] [stdout]  --> src/embeddings.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn embeddings(token_ids: &[i32], embed_table: &GpuTensor) -> Result<GpuTensor, Box<dyn Error>> {
[INFO] [stdout]   |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rope` is never used
[INFO] [stdout]  --> src/rope.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn rope(x: &mut GpuTensor) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rms_norm` is never used
[INFO] [stdout]  --> src/rms_norm.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn rms_norm(x: &GpuTensor, gamma: &GpuTensor) -> Result<GpuTensor, Box<dyn Error>> {
[INFO] [stdout]   |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `silu` is never used
[INFO] [stdout]  --> src/silu.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn silu(
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mul` is never used
[INFO] [stdout]  --> src/mul.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn mul(a: &mut GpuTensor, b: &GpuTensor) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/gguf/metadata.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 |     String(String),
[INFO] [stdout]   |     ------ ^^^^^^
[INFO] [stdout]   |     |
[INFO] [stdout]   |     field in this variant
[INFO] [stdout]   |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]   |
[INFO] [stdout] 9 -     String(String),
[INFO] [stdout] 9 +     String(()),
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/gguf/metadata.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 |     F32(f32),
[INFO] [stdout]    |     --- ^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 11 -     F32(f32),
[INFO] [stdout] 11 +     F32(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/gguf/metadata.rs:13:14
[INFO] [stdout]    |
[INFO] [stdout] 13 |     ArrayF32(Vec<f32>),
[INFO] [stdout]    |     -------- ^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 13 -     ArrayF32(Vec<f32>),
[INFO] [stdout] 13 +     ArrayF32(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/gguf/metadata.rs:14:14
[INFO] [stdout]    |
[INFO] [stdout] 14 |     ArrayU32(Vec<u32>),
[INFO] [stdout]    |     -------- ^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 14 -     ArrayU32(Vec<u32>),
[INFO] [stdout] 14 +     ArrayU32(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/gguf/metadata.rs:15:14
[INFO] [stdout]    |
[INFO] [stdout] 15 |     ArrayI32(Vec<i32>),
[INFO] [stdout]    |     -------- ^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 15 -     ArrayI32(Vec<i32>),
[INFO] [stdout] 15 +     ArrayI32(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `n_dims` is never read
[INFO] [stdout]   --> src/gguf/metadata.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct TensorMetadata {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] 19 |     pub name: String,
[INFO] [stdout] 20 |     pub n_dims: u32,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_tensor_f32_transposed` is never used
[INFO] [stdout]   --> src/gguf/tensor_data.rs:38:8
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub fn read_tensor_f32_transposed(file: &mut File, tensor: &TensorMetadata, data_start_offset: u64, rows: usize, cols: usize) -> Res...
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_tensor` is never used
[INFO] [stdout]    --> src/gguf/tensor_data.rs:164:8
[INFO] [stdout]     |
[INFO] [stdout] 164 | pub fn load_tensor(file: &mut File, tensor: &TensorMetadata, data_start_offset: u64, rows: usize, cols: usize) -> Result<Vec<f32>, ...
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/model.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct LayerWeights {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 41 |     pub attn_norm: GpuTensor,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 42 |     pub ffn_norm: GpuTensor,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 43 |     pub w_q: GpuTensor,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 44 |     pub w_k: GpuTensor,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 45 |     pub w_v: GpuTensor,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 46 |     pub w_o: GpuTensor,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 47 |     pub w_gate: GpuTensor,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 48 |     pub w_up: GpuTensor,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 49 |     pub w_down: GpuTensor,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `embed_tokens`, `final_norm`, and `output_weights` are never read
[INFO] [stdout]    --> src/model.rs:102:9
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub struct ModelWeights {
[INFO] [stdout]     |            ------------ fields in this struct
[INFO] [stdout] 102 |     pub embed_tokens: GpuTensor,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 103 |     pub final_norm: GpuTensor,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 104 |     pub output_weights: GpuTensor,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/attention.rs:118:9
[INFO] [stdout]     |
[INFO] [stdout] 118 |         rope(&mut q_head);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 118 |         let _ = rope(&mut q_head);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/attention.rs:119:9
[INFO] [stdout]     |
[INFO] [stdout] 119 |         rope(&mut k_head);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 119 |         let _ = rope(&mut k_head);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `BLOCK_SIZE` should have a snake case name
[INFO] [stdout]   --> src/embeddings.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 |     let BLOCK_SIZE: u32 = 256;
[INFO] [stdout]    |         ^^^^^^^^^^ help: convert the identifier to snake case: `block_size`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `epsilon` should have an upper case name
[INFO] [stdout]   --> src/rms_norm.rs:15:11
[INFO] [stdout]    |
[INFO] [stdout] 15 |     const epsilon: f32 = 1e-5;
[INFO] [stdout]    |           ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_upper_case_globals)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]    |
[INFO] [stdout] 15 -     const epsilon: f32 = 1e-5;
[INFO] [stdout] 15 +     const EPSILON: f32 = 1e-5;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 13.59s
[INFO] running `Command { std: "docker" "inspect" "dcc8605d049a5c74ff9c1ddc13cb29dc21a752c75283e73ab8f3bbd9f8ab8e03", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "dcc8605d049a5c74ff9c1ddc13cb29dc21a752c75283e73ab8f3bbd9f8ab8e03", kill_on_drop: false }`
[INFO] [stdout] dcc8605d049a5c74ff9c1ddc13cb29dc21a752c75283e73ab8f3bbd9f8ab8e03
