warning: rtx-tensor@1.0.0: Compiling CUDA kernels for RTX-Tensor GPU acceleration
warning: rtx-tensor@1.0.0: Compiled src/cuda_kernels/element_wise.cu -> /home/osobh/data/projects/rustytorch/examples/pinn_mre_helmholtz/target/release/build/rtx-tensor-03166d99fa3b05ab/out/element_wise.ptx
warning: rtx-tensor@1.0.0: CUDA kernels compiled successfully
warning: rtx-flash-attention@1.0.0: Compiling CUDA kernel: cuda/flash_attention_forward.cu -> /home/osobh/data/projects/rustytorch/examples/pinn_mre_helmholtz/target/release/build/rtx-flash-attention-224444fb68de13d3/out/flash_attention_forward.ptx
warning: rtx-flash-attention@1.0.0: Successfully compiled flash_attention_forward.cu
warning: rtx-flash-attention@1.0.0: Compiling CUDA kernel: cuda/flash_attention_backward.cu -> /home/osobh/data/projects/rustytorch/examples/pinn_mre_helmholtz/target/release/build/rtx-flash-attention-224444fb68de13d3/out/flash_attention_backward.ptx
warning: rtx-flash-attention@1.0.0: Successfully compiled flash_attention_backward.cu
warning: rtx-flash-attention@1.0.0: Compiling CUDA kernel: cuda/online_softmax.cu -> /home/osobh/data/projects/rustytorch/examples/pinn_mre_helmholtz/target/release/build/rtx-flash-attention-224444fb68de13d3/out/online_softmax.ptx
warning: rtx-flash-attention@1.0.0: Successfully compiled online_softmax.cu
warning: rtx-flash-attention@1.0.0: Compiling CUDA kernel: cuda/utils.cu -> /home/osobh/data/projects/rustytorch/examples/pinn_mre_helmholtz/target/release/build/rtx-flash-attention-224444fb68de13d3/out/utils.ptx
warning: rtx-flash-attention@1.0.0: Successfully compiled utils.cu
warning: rtx-flash-attention@1.0.0: Created combined PTX file: /home/osobh/data/projects/rustytorch/examples/pinn_mre_helmholtz/target/release/build/rtx-flash-attention-224444fb68de13d3/out/flash_attention_kernels.ptx
warning: unused import: `Gemm`
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cublas/mod.rs:35:38
   |
35 | use cudarc::cublas::{safe::CudaBlas, Gemm};
   |                                      ^^^^
   |
   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default

warning: unused doc comment
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusparse/context.rs:331:1
    |
331 | /// Thread-local context manager instance
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
    |
    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
    = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default

warning: unused import: `crate::Device`
 --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusparse/context.rs:7:5
  |
7 | use crate::Device;
  |     ^^^^^^^^^^^^^

warning: unused import: `CuSparseError`
 --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusparse/descriptor.rs:6:30
  |
6 | use crate::cusparse::error::{CuSparseError, CuSparseResult};
  |                              ^^^^^^^^^^^^^

warning: unused import: `DType`
 --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusparse/descriptor.rs:8:13
  |
8 | use crate::{DType, Shape};
  |             ^^^^^

warning: unused import: `CudaSlice`
 --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusparse/descriptor.rs:9:22
  |
9 | use cudarc::driver::{CudaSlice, DevicePtr};
  |                      ^^^^^^^^^

warning: unused import: `std::ptr::NonNull`
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusparse/descriptor.rs:12:5
   |
12 | use std::ptr::NonNull;
   |     ^^^^^^^^^^^^^^^^^

warning: unused import: `CudaSlice`
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusparse/operations.rs:15:22
   |
15 | use cudarc::driver::{CudaSlice, DevicePtr};
   |                      ^^^^^^^^^

warning: unused import: `std::marker::PhantomData`
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusparse/operations.rs:17:5
   |
17 | use std::marker::PhantomData;
   |     ^^^^^^^^^^^^^^^^^^^^^^^^

warning: unused import: `memory::CuSparseAllocator`
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusparse/formats.rs:10:5
   |
10 |     memory::CuSparseAllocator,
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^

warning: unused imports: `DType`, `Result`, and `TensorError`
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusparse/formats.rs:12:21
   |
12 | use crate::{Device, DType, Result, Shape, Tensor, TensorError};
   |                     ^^^^^  ^^^^^^                 ^^^^^^^^^^^

warning: unused import: `std::marker::PhantomData`
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusparse/formats.rs:17:5
   |
17 | use std::marker::PhantomData;
   |     ^^^^^^^^^^^^^^^^^^^^^^^^

warning: unused import: `std::alloc::Layout`
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusparse/memory.rs:13:5
   |
13 | use std::alloc::Layout;
   |     ^^^^^^^^^^^^^^^^^^

warning: unused imports: `CuSparseError` and `CuSparseResult`
 --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusparse/algorithm.rs:6:30
  |
6 | use crate::cusparse::error::{CuSparseError, CuSparseResult};
  |                              ^^^^^^^^^^^^^  ^^^^^^^^^^^^^^

warning: unused import: `std::marker::PhantomData`
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusparse/advanced.rs:17:5
   |
17 | use std::marker::PhantomData;
   |     ^^^^^^^^^^^^^^^^^^^^^^^^

warning: unused import: `TensorError`
 --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/context.rs:6:21
  |
6 | use crate::{Device, TensorError};
  |                     ^^^^^^^^^^^

warning: unused imports: `ErrorContext` and `check_cusolver_status`
 --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/context.rs:7:51
  |
7 | use super::error::{CuSolverError, CuSolverResult, ErrorContext, check_cusolver_status};
  |                                                   ^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^

warning: unused import: `DevicePtr`
 --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/workspace.rs:9:22
  |
9 | use cudarc::driver::{DevicePtr, DevicePtrMut, CudaStream};
  |                      ^^^^^^^^^

warning: unused imports: `DType` and `TensorError`
 --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/dense.rs:6:21
  |
6 | use crate::{Tensor, TensorError, DType};
  |                     ^^^^^^^^^^^  ^^^^^

warning: unused import: `WorkspaceManager`
 --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/dense.rs:9:24
  |
9 | use super::workspace::{WorkspaceManager, AutoWorkspace};
  |                        ^^^^^^^^^^^^^^^^

warning: unused import: `parking_lot::Mutex`
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/dense.rs:12:5
   |
12 | use parking_lot::Mutex;
   |     ^^^^^^^^^^^^^^^^^^

warning: unused import: `SparseCOO`
 --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/sparse.rs:6:48
  |
6 | use crate::{Tensor, Shape, sparse::{SparseCSR, SparseCOO}};
  |                                                ^^^^^^^^^

warning: unused import: `WorkspaceManager`
 --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/sparse.rs:9:24
  |
9 | use super::workspace::{WorkspaceManager, AutoWorkspace};
  |                        ^^^^^^^^^^^^^^^^

warning: unused import: `ErrorContext`
 --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/batched.rs:7:51
  |
7 | use super::error::{CuSolverError, CuSolverResult, ErrorContext};
  |                                                   ^^^^^^^^^^^^

warning: unused imports: `EigenResult` and `LuResult`
 --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/batched.rs:9:41
  |
9 | use super::dense::{SvdResult, QrResult, LuResult, CholeskyResult, EigenResult};
  |                                         ^^^^^^^^                  ^^^^^^^^^^^

warning: unused import: `ComputePrecision`
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/batched.rs:10:58
   |
10 | use super::precision::{PrecisionSelector, PrecisionMode, ComputePrecision};
   |                                                          ^^^^^^^^^^^^^^^^

warning: unused import: `AutoWorkspace`
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/batched.rs:11:24
   |
11 | use super::workspace::{AutoWorkspace};
   |                        ^^^^^^^^^^^^^

warning: unused import: `CuSolverContext`
 --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/algorithms.rs:8:22
  |
8 | use super::context::{CuSolverContext, DeviceProperties};
  |                      ^^^^^^^^^^^^^^^

warning: unused imports: `AlgorithmSelector`, `OptimizationLevel`, `algorithms::MatrixCharacteristics`, and `precision::PrecisionSelector`
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/linalg/cusolver_backend.rs:13:5
   |
13 |     AlgorithmSelector, NumericalAnalysis,
   |     ^^^^^^^^^^^^^^^^^
14 |     precision::PrecisionSelector,
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
15 |     PrecisionMode, OptimizationLevel, algorithms::MatrixCharacteristics
   |                    ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: unused import: `CostMetrics`
 --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/ops/einsum/contract_path/optimization/branch_and_bound.rs:6:34
  |
6 |     TensorInfo, ContractionPath, CostMetrics, OptimizationStrategy
  |                                  ^^^^^^^^^^^

warning: unused import: `CostMetrics`
 --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/ops/einsum/contract_path/optimization/simulated_annealing.rs:6:34
  |
6 |     TensorInfo, ContractionPath, CostMetrics, OptimizationStrategy
  |                                  ^^^^^^^^^^^

warning: unused imports: `CuSparseCOO`, `SpGEMMConfig`, and `SpMatDescriptor`
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/sparse/cusparse_kernels.rs:10:29
   |
10 |     SpMVConfig, SpMMConfig, SpGEMMConfig,
   |                             ^^^^^^^^^^^^
11 |     descriptor::{SpMatDescriptor, DnMatDescriptor, DnVecDescriptor},
   |                  ^^^^^^^^^^^^^^^
12 |     formats::{CuSparseCOO, CuSparseCSR},
   |               ^^^^^^^^^^^

warning: unused import: `cudarc::driver::safe::CudaSlice`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/storage/core.rs:808:13
    |
808 |         use cudarc::driver::safe::CudaSlice;
    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: unused import: `CudaStream`
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/tensor/core.rs:25:41
   |
25 | use cudarc::driver::safe::{CudaContext, CudaStream};
   |                                         ^^^^^^^^^^

warning: unused import: `cudarc::driver::DevicePtr`
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/tensor/core.rs:27:5
   |
27 | use cudarc::driver::DevicePtr;
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^

warning: unused import: `NodeId`
 --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/tensor/binary_ops.rs:8:27
  |
8 | use super::core::{Tensor, NodeId};
  |                           ^^^^^^

warning: unused import: `super::matrix_multiplication::*`
 --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/tensor/matrix_ops.rs:7:9
  |
7 | pub use super::matrix_multiplication::*;
  |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: unused import: `super::reduction_ops::*`
 --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/tensor/matrix_ops.rs:8:9
  |
8 | pub use super::reduction_ops::*;
  |         ^^^^^^^^^^^^^^^^^^^^^^^

warning: unused import: `Device`
 --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/tensor/utilities.rs:9:35
  |
9 | use crate::{Shape, Result, DType, Device};
  |                                   ^^^^^^

warning: unused imports: `Device` and `Shape`
 --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/tensor/advanced/transformations.rs:6:42
  |
6 | use crate::{Tensor, TensorError, Result, Device, Shape};
  |                                          ^^^^^^  ^^^^^

warning: unused imports: `DType` and `Shape`
 --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/tensor/advanced/concatenation.rs:5:42
  |
5 | use crate::{Tensor, TensorError, Result, Shape, Storage, Device, DType};
  |                                          ^^^^^                   ^^^^^

warning: unused imports: `LaunchConfig` and `PushKernelArg`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/tensor/advanced/concatenation.rs:609:43
    |
609 |         use cudarc::driver::{CudaContext, LaunchConfig, PushKernelArg};
    |                                           ^^^^^^^^^^^^  ^^^^^^^^^^^^^

warning: unused import: `cudarc::nvrtc::Ptx`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/tensor/advanced/concatenation.rs:610:13
    |
610 |         use cudarc::nvrtc::Ptx;
    |             ^^^^^^^^^^^^^^^^^^

warning: unused imports: `Device` and `Shape`
 --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/tensor/advanced/statistical.rs:6:42
  |
6 | use crate::{Tensor, TensorError, Result, Device, Shape};
  |                                          ^^^^^^  ^^^^^

warning: unused imports: `Device` and `Shape`
 --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/tensor/advanced/convolution.rs:5:42
  |
5 | use crate::{Tensor, TensorError, Result, Device, Shape};
  |                                          ^^^^^^  ^^^^^

warning: unused import: `std::cmp`
 --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/tensor/advanced/convolution.rs:6:5
  |
6 | use std::cmp;
  |     ^^^^^^^^

warning: unused imports: `Device` and `Shape`
 --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/tensor/advanced/normalization.rs:6:42
  |
6 | use crate::{Tensor, TensorError, Result, Device, Shape};
  |                                          ^^^^^^  ^^^^^

warning: unused imports: `Device` and `Shape`
 --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/tensor/advanced/einsum_ops.rs:6:42
  |
6 | use crate::{Tensor, TensorError, Result, Device, Shape};
  |                                          ^^^^^^  ^^^^^

warning: unused imports: `DType` and `Device`
 --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/tensor/pooling.rs:9:34
  |
9 | use crate::{TensorError, Result, Device, Storage, DType};
  |                                  ^^^^^^           ^^^^^

warning: unused import: `Shape`
 --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/tensor/transformations.rs:9:13
  |
9 | use crate::{Shape, TensorError, Result};
  |             ^^^^^

warning: unused imports: `DType` and `Device`
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/tensor/gpu_optimized.rs:10:13
   |
10 | use crate::{Device, DType, Shape, Storage, TensorError, Result};
   |             ^^^^^^  ^^^^^

warning: unused import: `CudaStream`
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/tensor/gpu_optimized.rs:11:42
   |
11 | use cudarc::driver::{safe::{CudaContext, CudaStream}, CudaSlice};
   |                                          ^^^^^^^^^^

warning: unused import: `cudarc::curand::safe::CudaRng`
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/tensor/gpu_optimized.rs:13:5
   |
13 | use cudarc::curand::safe::CudaRng;
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: unused import: `debug`
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/tensor/gpu_optimized.rs:16:21
   |
16 | use tracing::{info, debug};
   |                     ^^^^^

warning: use of deprecated method `cudarc::driver::CudaStream::memcpy_stod`: Use clone_htod
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cublas/batched.rs:292:44
    |
292 |         let mut scores_slice = self.stream.memcpy_stod(&scores_output)
    |                                            ^^^^^^^^^^^
    |
    = note: `#[warn(deprecated)]` on by default

warning: use of deprecated method `cudarc::driver::CudaStream::memcpy_stod`: Use clone_htod
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusparse/formats.rs:159:38
    |
159 |         let row_indices_dev = stream.memcpy_stod(&device_row_indices)
    |                                      ^^^^^^^^^^^

warning: use of deprecated method `cudarc::driver::CudaStream::memcpy_stod`: Use clone_htod
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusparse/formats.rs:161:38
    |
161 |         let col_indices_dev = stream.memcpy_stod(&device_col_indices)
    |                                      ^^^^^^^^^^^

warning: use of deprecated method `cudarc::driver::CudaStream::memcpy_stod`: Use clone_htod
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusparse/formats.rs:163:33
    |
163 |         let values_dev = stream.memcpy_stod(&device_values)
    |                                 ^^^^^^^^^^^

warning: use of deprecated method `cudarc::driver::CudaStream::memcpy_dtov`: Use clone_dtoh
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusparse/formats.rs:282:47
    |
282 |         let host_row_indices: Vec<I> = stream.memcpy_dtov(&self.row_indices)
    |                                               ^^^^^^^^^^^

warning: use of deprecated method `cudarc::driver::CudaStream::memcpy_dtov`: Use clone_dtoh
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusparse/formats.rs:284:47
    |
284 |         let host_col_indices: Vec<I> = stream.memcpy_dtov(&self.col_indices)
    |                                               ^^^^^^^^^^^

warning: use of deprecated method `cudarc::driver::CudaStream::memcpy_dtov`: Use clone_dtoh
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusparse/formats.rs:286:42
    |
286 |         let host_values: Vec<T> = stream.memcpy_dtov(&self.values)
    |                                          ^^^^^^^^^^^

warning: use of deprecated method `cudarc::driver::CudaStream::memcpy_stod`: Use clone_htod
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusparse/formats.rs:395:34
    |
395 |         let row_ptr_dev = stream.memcpy_stod(&device_row_ptr)
    |                                  ^^^^^^^^^^^

warning: use of deprecated method `cudarc::driver::CudaStream::memcpy_stod`: Use clone_htod
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusparse/formats.rs:397:38
    |
397 |         let col_indices_dev = stream.memcpy_stod(&device_col_indices)
    |                                      ^^^^^^^^^^^

warning: use of deprecated method `cudarc::driver::CudaStream::memcpy_stod`: Use clone_htod
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusparse/formats.rs:399:33
    |
399 |         let values_dev = stream.memcpy_stod(&device_values)
    |                                 ^^^^^^^^^^^

warning: use of deprecated method `cudarc::driver::CudaStream::memcpy_stod`: Use clone_htod
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusparse/formats.rs:644:34
    |
644 |         let col_ptr_dev = stream.memcpy_stod(&device_col_ptr)
    |                                  ^^^^^^^^^^^

warning: use of deprecated method `cudarc::driver::CudaStream::memcpy_stod`: Use clone_htod
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusparse/formats.rs:646:38
    |
646 |         let row_indices_dev = stream.memcpy_stod(&device_row_indices)
    |                                      ^^^^^^^^^^^

warning: use of deprecated method `cudarc::driver::CudaStream::memcpy_stod`: Use clone_htod
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusparse/formats.rs:648:33
    |
648 |         let values_dev = stream.memcpy_stod(&device_values)
    |                                 ^^^^^^^^^^^

warning: use of deprecated method `cudarc::driver::CudaStream::memcpy_stod`: Use clone_htod
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusparse/formats.rs:752:34
    |
752 |         let row_ptr_dev = stream.memcpy_stod(&device_row_ptr)
    |                                  ^^^^^^^^^^^

warning: use of deprecated method `cudarc::driver::CudaStream::memcpy_stod`: Use clone_htod
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusparse/formats.rs:754:38
    |
754 |         let col_indices_dev = stream.memcpy_stod(&device_col_indices)
    |                                      ^^^^^^^^^^^

warning: use of deprecated method `cudarc::driver::CudaStream::memcpy_stod`: Use clone_htod
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusparse/formats.rs:756:33
    |
756 |         let values_dev = stream.memcpy_stod(&device_values)
    |                                 ^^^^^^^^^^^

warning: use of deprecated method `cudarc::driver::CudaStream::memcpy_dtov`: Use clone_dtoh
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/storage/core.rs:335:39
    |
335 |                 let gpu_data = stream.memcpy_dtov(slice)
    |                                       ^^^^^^^^^^^

warning: use of deprecated method `cudarc::driver::CudaStream::memcpy_dtov`: Use clone_dtoh
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/storage/core.rs:390:39
    |
390 |                 let gpu_data = stream.memcpy_dtov(slice)
    |                                       ^^^^^^^^^^^

warning: use of deprecated method `cudarc::driver::CudaStream::memcpy_dtov`: Use clone_dtoh
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/storage/core.rs:449:39
    |
449 |                 let gpu_data = stream.memcpy_dtov(slice)
    |                                       ^^^^^^^^^^^

warning: use of deprecated method `cudarc::driver::CudaStream::memcpy_dtov`: Use clone_dtoh
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/storage/core.rs:612:51
    |
612 |                     let mut current_data = stream.memcpy_dtov(slice)
    |                                                   ^^^^^^^^^^^

warning: use of deprecated method `cudarc::driver::CudaStream::memcpy_dtov`: Use clone_dtoh
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/tensor/advanced/concatenation.rs:648:39
    |
648 |                 let src_data = stream.memcpy_dtov(&src_slice)
    |                                       ^^^^^^^^^^^

warning: use of deprecated method `cudarc::driver::CudaStream::memcpy_dtov`: Use clone_dtoh
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/tensor/advanced/concatenation.rs:653:43
    |
653 |                 let mut dst_data = stream.memcpy_dtov(&dst_slice)
    |                                           ^^^^^^^^^^^

warning: use of deprecated method `cudarc::driver::CudaStream::memcpy_dtov`: Use clone_dtoh
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/tensor/advanced/concatenation.rs:686:39
    |
686 |             let mut dst_data = stream.memcpy_dtov(&dst_slice)
    |                                       ^^^^^^^^^^^

warning: use of deprecated method `cudarc::driver::CudaStream::memcpy_dtov`: Use clone_dtoh
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/tensor/advanced/concatenation.rs:694:39
    |
694 |                 let src_data = stream.memcpy_dtov(src_slice)
    |                                       ^^^^^^^^^^^

warning: unused import: `DevicePtr`
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusparse/operations.rs:15:33
   |
15 | use cudarc::driver::{CudaSlice, DevicePtr};
   |                                 ^^^^^^^^^

warning: unused import: `rand::Rng`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/tensor/core.rs:265:13
    |
265 |         use rand::Rng;
    |             ^^^^^^^^^

warning: unused variable: `x`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cublas/core.rs:214:9
    |
214 |         x: &CudaSlice<f32>,
    |         ^ help: if this is intentional, prefix it with an underscore: `_x`
    |
    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default

warning: unused variable: `incx`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cublas/core.rs:215:9
    |
215 |         incx: usize,
    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_incx`

warning: unused variable: `y`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cublas/core.rs:216:9
    |
216 |         y: &CudaSlice<f32>,
    |         ^ help: if this is intentional, prefix it with an underscore: `_y`

warning: unused variable: `incy`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cublas/core.rs:217:9
    |
217 |         incy: usize,
    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_incy`

warning: unused variable: `x`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cublas/core.rs:237:9
    |
237 |         x: &mut CudaSlice<f32>,
    |         ^ help: if this is intentional, prefix it with an underscore: `_x`

warning: unused variable: `incx`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cublas/core.rs:238:9
    |
238 |         incx: usize,
    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_incx`

warning: unused variable: `incx`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cublas/core.rs:258:9
    |
258 |         incx: usize,
    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_incx`

warning: unused variable: `incy`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cublas/core.rs:260:9
    |
260 |         incy: usize,
    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_incy`

warning: unused variable: `offset_a`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cublas/core.rs:344:17
    |
344 |             let offset_a = i * stride_a;
    |                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset_a`

warning: unused variable: `offset_b`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cublas/core.rs:345:17
    |
345 |             let offset_b = i * stride_b;
    |                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset_b`

warning: unused variable: `offset_c`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cublas/core.rs:346:17
    |
346 |             let offset_c = i * stride_c;
    |                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset_c`

warning: variable does not need to be mutable
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cublas/core.rs:384:13
    |
384 |         let mut a_f32 = self.stream.alloc_zeros::<f32>(a_size)
    |             ----^^^^^
    |             |
    |             help: remove this `mut`
    |
    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default

warning: variable does not need to be mutable
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cublas/core.rs:386:13
    |
386 |         let mut b_f32 = self.stream.alloc_zeros::<f32>(b_size)
    |             ----^^^^^
    |             |
    |             help: remove this `mut`

warning: unused variable: `a`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cublas/core.rs:372:9
    |
372 |         a: &CudaSlice<half::f16>, lda: usize,
    |         ^ help: if this is intentional, prefix it with an underscore: `_a`

warning: unused variable: `b`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cublas/core.rs:373:9
    |
373 |         b: &CudaSlice<half::f16>, ldb: usize,
    |         ^ help: if this is intentional, prefix it with an underscore: `_b`

warning: unused variable: `c`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cublas/core.rs:374:9
    |
374 |         c: &mut CudaSlice<half::f16>, ldc: usize,
    |         ^ help: if this is intentional, prefix it with an underscore: `_c`

warning: unused variable: `transa`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cublas/core.rs:477:9
    |
477 |         transa: bool, transb: bool, m: usize, n: usize, k: usize,
    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_transa`

warning: unused variable: `transb`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cublas/core.rs:477:23
    |
477 |         transa: bool, transb: bool, m: usize, n: usize, k: usize,
    |                       ^^^^^^ help: if this is intentional, prefix it with an underscore: `_transb`

warning: unused variable: `m`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cublas/core.rs:477:37
    |
477 |         transa: bool, transb: bool, m: usize, n: usize, k: usize,
    |                                     ^ help: if this is intentional, prefix it with an underscore: `_m`

warning: unused variable: `n`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cublas/core.rs:477:47
    |
477 |         transa: bool, transb: bool, m: usize, n: usize, k: usize,
    |                                               ^ help: if this is intentional, prefix it with an underscore: `_n`

warning: unused variable: `k`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cublas/core.rs:477:57
    |
477 |         transa: bool, transb: bool, m: usize, n: usize, k: usize,
    |                                                         ^ help: if this is intentional, prefix it with an underscore: `_k`

warning: unused variable: `alpha`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cublas/core.rs:478:9
    |
478 |         alpha: f32, beta: f32,
    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_alpha`

warning: unused variable: `beta`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cublas/core.rs:478:21
    |
478 |         alpha: f32, beta: f32,
    |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_beta`

warning: unused variable: `a`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cublas/core.rs:479:9
    |
479 |         a: &CudaSlice<f32>, lda: usize, stride_a: usize,
    |         ^ help: if this is intentional, prefix it with an underscore: `_a`

warning: unused variable: `lda`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cublas/core.rs:479:29
    |
479 |         a: &CudaSlice<f32>, lda: usize, stride_a: usize,
    |                             ^^^ help: if this is intentional, prefix it with an underscore: `_lda`

warning: unused variable: `b`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cublas/core.rs:480:9
    |
480 |         b: &CudaSlice<f32>, ldb: usize, stride_b: usize,
    |         ^ help: if this is intentional, prefix it with an underscore: `_b`

warning: unused variable: `ldb`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cublas/core.rs:480:29
    |
480 |         b: &CudaSlice<f32>, ldb: usize, stride_b: usize,
    |                             ^^^ help: if this is intentional, prefix it with an underscore: `_ldb`

warning: unused variable: `c`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cublas/core.rs:481:9
    |
481 |         c: &mut CudaSlice<f32>, ldc: usize, stride_c: usize,
    |         ^ help: if this is intentional, prefix it with an underscore: `_c`

warning: unused variable: `ldc`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cublas/core.rs:481:33
    |
481 |         c: &mut CudaSlice<f32>, ldc: usize, stride_c: usize,
    |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_ldc`

warning: unused variable: `workspace`
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cublas/advanced.rs:72:13
   |
72 |         let workspace = manager.get_workspace(device_id, &stream)?;
   |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_workspace`

warning: variable does not need to be mutable
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cublas/advanced.rs:239:19
    |
239 |         if let Ok(mut cache) = manager.algorithm_cache.lock() {
    |                   ----^^^^^
    |                   |
    |                   help: remove this `mut`

warning: variable does not need to be mutable
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cublas/advanced.rs:473:13
    |
473 |         let mut a_f32 = self.stream.alloc_zeros::<f32>(a_size)
    |             ----^^^^^
    |             |
    |             help: remove this `mut`

warning: variable does not need to be mutable
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cublas/advanced.rs:475:13
    |
475 |         let mut b_f32 = self.stream.alloc_zeros::<f32>(b_size)
    |             ----^^^^^
    |             |
    |             help: remove this `mut`

warning: unused variable: `a`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cublas/advanced.rs:460:9
    |
460 |         a: &CudaSlice<half::f16>, lda: usize,
    |         ^ help: if this is intentional, prefix it with an underscore: `_a`

warning: unused variable: `b`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cublas/advanced.rs:461:9
    |
461 |         b: &CudaSlice<half::f16>, ldb: usize,
    |         ^ help: if this is intentional, prefix it with an underscore: `_b`

warning: unused variable: `core`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cublas/precision.rs:559:13
    |
559 |         let core = CublasCore::new(self.device_id, self.stream.clone())?;
    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_core`

warning: variable does not need to be mutable
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cublas/batched.rs:291:13
    |
291 |         let mut scores_output = vec![0.0f32; batch_size * num_heads * seq_len * seq_len];
    |             ----^^^^^^^^^^^^^
    |             |
    |             help: remove this `mut`

warning: variable does not need to be mutable
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusparse/context.rs:235:17
    |
235 |             let mut minor = 0i32;
    |                 ----^^^^^
    |                 |
    |                 help: remove this `mut`

warning: variable does not need to be mutable
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusparse/context.rs:236:17
    |
236 |             let mut patch = 0i32;
    |                 ----^^^^^
    |                 |
    |                 help: remove this `mut`

warning: unused variable: `minor`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusparse/context.rs:235:17
    |
235 |             let mut minor = 0i32;
    |                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_minor`

warning: unused variable: `patch`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusparse/context.rs:236:17
    |
236 |             let mut patch = 0i32;
    |                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_patch`

warning: unused variable: `stream2`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusparse/operations.rs:473:13
    |
473 |         let stream2 = self.context.stream();
    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_stream2`

warning: unused variable: `device`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusparse/formats.rs:529:13
    |
529 |         let device = &self.device;
    |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_device`

warning: unused variable: `block_rows`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusparse/formats.rs:733:13
    |
733 |         let block_rows = (dims[0] + block_size - 1) / block_size;
    |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_block_rows`

warning: unused variable: `block_cols`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusparse/formats.rs:734:13
    |
734 |         let block_cols = (dims[1] + block_size - 1) / block_size;
    |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_block_cols`

warning: unused variable: `profile_a`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusparse/algorithm.rs:389:9
    |
389 |         profile_a: &MatrixProfile,
    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_profile_a`

warning: unused variable: `profile_b`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusparse/algorithm.rs:390:9
    |
390 |         profile_b: &MatrixProfile,
    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_profile_b`

warning: variable does not need to be mutable
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/context.rs:102:13
    |
102 |         let mut handle: *mut std::ffi::c_void = std::ptr::null_mut();
    |             ----^^^^^^
    |             |
    |             help: remove this `mut`

warning: variable does not need to be mutable
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/context.rs:118:13
    |
118 |         let mut handle: *mut std::ffi::c_void = std::ptr::null_mut();
    |             ----^^^^^^
    |             |
    |             help: remove this `mut`

warning: unused variable: `handle`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/context.rs:164:21
    |
164 |         if let Some(handle) = self.dense_handle {
    |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_handle`

warning: unused variable: `handle`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/context.rs:167:21
    |
167 |         if let Some(handle) = self.sparse_handle {
    |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_handle`

warning: unused variable: `handle`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/context.rs:282:21
    |
282 |         if let Some(handle) = self.dense_handle.take() {
    |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_handle`

warning: unused variable: `handle`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/context.rs:287:21
    |
287 |         if let Some(handle) = self.sparse_handle.take() {
    |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_handle`

warning: unused variable: `expected`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/error.rs:256:48
    |
256 |             CuSolverError::InvalidDimensions { ref mut expected, ref mut actual } => {
    |                                                ^^^^^^^^^^^^^^^^ help: try ignoring the field: `expected: _`

warning: unused variable: `min_dim`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/dense.rs:297:13
    |
297 |         let min_dim = m.min(n);
    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_min_dim`

warning: unused variable: `b_cols`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/dense.rs:445:22
    |
445 |         let (b_rows, b_cols) = self.get_matrix_dims(b);
    |                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_b_cols`

warning: unused variable: `precision`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/dense.rs:481:9
    |
481 |         precision: &ComputePrecision,
    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_precision`

warning: unused variable: `workspace`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/dense.rs:482:9
    |
482 |         workspace: &AutoWorkspace,
    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_workspace`

warning: unused variable: `context`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/dense.rs:483:9
    |
483 |         context: &ErrorContext,
    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`

warning: unused variable: `precision`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/dense.rs:563:9
    |
563 |         precision: &ComputePrecision,
    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_precision`

warning: unused variable: `workspace`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/dense.rs:564:9
    |
564 |         workspace: &AutoWorkspace,
    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_workspace`

warning: unused variable: `context`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/dense.rs:565:9
    |
565 |         context: &ErrorContext,
    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`

warning: unused variable: `precision`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/dense.rs:614:9
    |
614 |         precision: &ComputePrecision,
    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_precision`

warning: unused variable: `workspace`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/dense.rs:615:9
    |
615 |         workspace: &AutoWorkspace,
    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_workspace`

warning: unused variable: `context`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/dense.rs:616:9
    |
616 |         context: &ErrorContext,
    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`

warning: unused variable: `precision`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/dense.rs:672:9
    |
672 |         precision: &ComputePrecision,
    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_precision`

warning: unused variable: `workspace`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/dense.rs:673:9
    |
673 |         workspace: &AutoWorkspace,
    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_workspace`

warning: unused variable: `context`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/dense.rs:674:9
    |
674 |         context: &ErrorContext,
    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`

warning: unused variable: `precision`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/dense.rs:712:9
    |
712 |         precision: &ComputePrecision,
    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_precision`

warning: unused variable: `workspace`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/dense.rs:713:9
    |
713 |         workspace: &AutoWorkspace,
    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_workspace`

warning: unused variable: `context`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/dense.rs:714:9
    |
714 |         context: &ErrorContext,
    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`

warning: unused variable: `config`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/dense.rs:752:9
    |
752 |         config: &LinearSolverConfig,
    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`

warning: unused variable: `precision`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/dense.rs:753:9
    |
753 |         precision: &ComputePrecision,
    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_precision`

warning: unused variable: `context`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/dense.rs:754:9
    |
754 |         context: &ErrorContext,
    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`

warning: unused variable: `operation`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/dense.rs:776:51
    |
776 |     fn validate_matrix_2d(&self, matrix: &Tensor, operation: &str) -> CuSolverResult<()> {
    |                                                   ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_operation`

warning: unused variable: `pivoting`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/dense.rs:878:27
    |
878 |     fn lu_cusolver(&self, pivoting: bool) -> CuSolverResult<LuResult> {
    |                           ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pivoting`

warning: unused variable: `upper`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/dense.rs:882:33
    |
882 |     fn cholesky_cusolver(&self, upper: bool) -> CuSolverResult<CholeskyResult> {
    |                                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_upper`

warning: unused variable: `compute_vectors`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/dense.rs:886:31
    |
886 |     fn symeig_cusolver(&self, compute_vectors: bool) -> CuSolverResult<EigenResult> {
    |                               ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_compute_vectors`

warning: unused variable: `b`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/dense.rs:890:30
    |
890 |     fn solve_cusolver(&self, b: &Tensor) -> CuSolverResult<Tensor> {
    |                              ^ help: if this is intentional, prefix it with an underscore: `_b`

warning: unused variable: `sparsity`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/sparse.rs:367:13
    |
367 |         let sparsity = 1.0 - (nnz as f64) / ((m * n) as f64);
    |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sparsity`

warning: unused variable: `precision`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/sparse.rs:526:9
    |
526 |         precision: &ComputePrecision,
    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_precision`

warning: unused variable: `workspace`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/sparse.rs:527:9
    |
527 |         workspace: &AutoWorkspace,
    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_workspace`

warning: unused variable: `context`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/sparse.rs:528:9
    |
528 |         context: &ErrorContext,
    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`

warning: unused variable: `precision`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/sparse.rs:582:9
    |
582 |         precision: &ComputePrecision,
    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_precision`

warning: unused variable: `workspace`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/sparse.rs:583:9
    |
583 |         workspace: &AutoWorkspace,
    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_workspace`

warning: unused variable: `context`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/sparse.rs:584:9
    |
584 |         context: &ErrorContext,
    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`

warning: unused variable: `m`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/sparse.rs:588:14
    |
588 |         let (m, n) = (dims[0], dims[1]);
    |              ^ help: if this is intentional, prefix it with an underscore: `_m`

warning: unused variable: `precision`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/sparse.rs:628:9
    |
628 |         precision: &ComputePrecision,
    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_precision`

warning: unused variable: `workspace`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/sparse.rs:629:9
    |
629 |         workspace: &AutoWorkspace,
    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_workspace`

warning: unused variable: `context`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/sparse.rs:630:9
    |
630 |         context: &ErrorContext,
    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`

warning: unused variable: `matrix`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/sparse.rs:697:9
    |
697 |         matrix: &SparseCSR,
    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_matrix`

warning: unused variable: `precision`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/sparse.rs:700:9
    |
700 |         precision: &ComputePrecision,
    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_precision`

warning: unused variable: `context`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/sparse.rs:701:9
    |
701 |         context: &ErrorContext,
    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`

warning: unused variable: `precision`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/sparse.rs:722:9
    |
722 |         precision: &ComputePrecision,
    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_precision`

warning: unused variable: `context`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/sparse.rs:723:9
    |
723 |         context: &ErrorContext,
    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`

warning: unused variable: `n`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/sparse.rs:820:17
    |
820 |         let (m, n) = (dims[0], dims[1]);
    |                 ^ help: if this is intentional, prefix it with an underscore: `_n`

warning: unused variable: `start_time`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/batched.rs:409:13
    |
409 |         let start_time = std::time::Instant::now();
    |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_start_time`

warning: unused variable: `matrix`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/batched.rs:661:9
    |
661 |         matrix: &Tensor,
    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_matrix`

warning: unused variable: `method`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/batched.rs:663:9
    |
663 |         method: BatchedSolverMethod,
    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_method`

warning: unused variable: `config`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/batched.rs:664:9
    |
664 |         config: &BatchedSolverConfig,
    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`

warning: unused variable: `config`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/batched.rs:707:13
    |
707 |         let config = config.unwrap_or_default();
    |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`

warning: unused variable: `config`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/batched.rs:713:13
    |
713 |         let config = config.unwrap_or_default();
    |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`

warning: unused variable: `config`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/batched.rs:718:13
    |
718 |         let config = config.unwrap_or_default();
    |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`

warning: unused variable: `matrix`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/analysis.rs:312:24
    |
312 |     fn one_norm(&self, matrix: &Tensor) -> CuSolverResult<f64> {
    |                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_matrix`

warning: unused variable: `matrix`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/analysis.rs:318:24
    |
318 |     fn two_norm(&self, matrix: &Tensor) -> CuSolverResult<f64> {
    |                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_matrix`

warning: unused variable: `matrix`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/analysis.rs:323:29
    |
323 |     fn infinity_norm(&self, matrix: &Tensor) -> CuSolverResult<f64> {
    |                             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_matrix`

warning: unused variable: `matrix`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/analysis.rs:329:30
    |
329 |     fn frobenius_norm(&self, matrix: &Tensor) -> CuSolverResult<f64> {
    |                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_matrix`

warning: unused variable: `matrix`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/analysis.rs:398:40
    |
398 |     fn power_iteration_estimate(&self, matrix: &Tensor, norm_type: NormType) -> CuSolverResult<f64> {
    |                                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_matrix`

warning: unused variable: `norm_type`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/analysis.rs:398:57
    |
398 |     fn power_iteration_estimate(&self, matrix: &Tensor, norm_type: NormType) -> CuSolverResult<f64> {
    |                                                         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_norm_type`

warning: unused variable: `matrix`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/analysis.rs:404:34
    |
404 |     fn svd_based_estimate(&self, matrix: &Tensor) -> CuSolverResult<f64> {
    |                                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_matrix`

warning: unused variable: `matrix`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/analysis.rs:409:33
    |
409 |     fn one_norm_estimate(&self, matrix: &Tensor) -> CuSolverResult<f64> {
    |                                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_matrix`

warning: unused variable: `matrix`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/analysis.rs:414:34
    |
414 |     fn frobenius_estimate(&self, matrix: &Tensor) -> CuSolverResult<f64> {
    |                                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_matrix`

warning: unused variable: `matrix`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/analysis.rs:562:9
    |
562 |         matrix: &Tensor,
    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_matrix`

warning: unused variable: `solution`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/analysis.rs:563:9
    |
563 |         solution: &Tensor,
    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_solution`

warning: unused variable: `rhs`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/analysis.rs:564:9
    |
564 |         rhs: &Tensor,
    |         ^^^ help: if this is intentional, prefix it with an underscore: `_rhs`

warning: unused variable: `matrix`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/analysis.rs:573:9
    |
573 |         matrix: &Tensor,
    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_matrix`

warning: unused variable: `solution`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/analysis.rs:574:9
    |
574 |         solution: &Tensor,
    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_solution`

warning: unused variable: `rhs`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/analysis.rs:575:9
    |
575 |         rhs: &Tensor,
    |         ^^^ help: if this is intentional, prefix it with an underscore: `_rhs`

warning: unused variable: `matrix`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/analysis.rs:583:9
    |
583 |         matrix: &Tensor,
    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_matrix`

warning: unused variable: `matrix`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/analysis.rs:592:9
    |
592 |         matrix: &Tensor,
    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_matrix`

warning: unused variable: `solution`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/analysis.rs:593:9
    |
593 |         solution: &Tensor,
    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_solution`

warning: unused variable: `steps`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/ops/einsum/contract_path/optimization/dynamic_programming.rs:193:5
    |
193 |     steps: &[ContractionStep],
    |     ^^^^^ help: if this is intentional, prefix it with an underscore: `_steps`

warning: variable does not need to be mutable
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/ops/einsum.rs:636:9
    |
636 |     let mut result_data = vec![0.0f32; output_shape.iter().product()];
    |         ----^^^^^^^^^^^
    |         |
    |         help: remove this `mut`

warning: unused variable: `data_a`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/ops/einsum.rs:634:9
    |
634 |     let data_a = tensor_a.to_cpu()?;
    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_data_a`

warning: unused variable: `data_b`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/ops/einsum.rs:635:9
    |
635 |     let data_b = tensor_b.to_cpu()?;
    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_data_b`

warning: unused variable: `result_data`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/ops/einsum.rs:636:9
    |
636 |     let mut result_data = vec![0.0f32; output_shape.iter().product()];
    |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_data`

warning: variable does not need to be mutable
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/ops/advanced_math.rs:565:9
    |
565 |     let mut a = data.to_vec();
    |         ----^
    |         |
    |         help: remove this `mut`

warning: variable does not need to be mutable
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/ops/advanced_math.rs:633:9
    |
633 |     let mut real_part = real_data.to_vec();
    |         ----^^^^^^^^^
    |         |
    |         help: remove this `mut`

warning: variable does not need to be mutable
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/ops/advanced_math.rs:634:9
    |
634 |     let mut imag_part: Vec<f32> = imag_data.iter().map(|&x| -x).collect(); // Conjugate
    |         ----^^^^^^^^^
    |         |
    |         help: remove this `mut`

warning: unused variable: `imag_part`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/ops/advanced_math.rs:634:9
    |
634 |     let mut imag_part: Vec<f32> = imag_data.iter().map(|&x| -x).collect(); // Conjugate
    |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_imag_part`

warning: unused variable: `fft_imag`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/ops/advanced_math.rs:637:20
    |
637 |     let (fft_real, fft_imag) = compute_fft_cooley_tukey(&real_part, shape, axis, shape[axis])?;
    |                    ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fft_imag`

warning: unused variable: `num_rows`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/sparse/coo.rs:306:13
    |
306 |         let num_rows = self.shape.dims()[0];
    |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_rows`

warning: unused variable: `num_cols`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/sparse/coo.rs:307:13
    |
307 |         let num_cols = self.shape.dims()[1];
    |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_cols`

warning: variable does not need to be mutable
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/sparse/cusparse_kernels.rs:169:13
    |
169 |         let mut output_tensor = Tensor::zeros(&output_shape, &self.device)?;
    |             ----^^^^^^^^^^^^^
    |             |
    |             help: remove this `mut`

warning: variable does not need to be mutable
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/sparse/cusparse_kernels.rs:205:13
    |
205 |         let mut output_tensor = Tensor::zeros(&output_shape, &self.device)?;
    |             ----^^^^^^^^^^^^^
    |             |
    |             help: remove this `mut`

warning: unused variable: `cusparse_csr_a`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/sparse/cusparse_kernels.rs:249:13
    |
249 |         let cusparse_csr_a = self.convert_csr_to_cusparse(&csr_a, cusparse_ops.context())?;
    |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cusparse_csr_a`

warning: unused variable: `cusparse_csr_b`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/sparse/cusparse_kernels.rs:250:13
    |
250 |         let cusparse_csr_b = self.convert_csr_to_cusparse(&csr_b, cusparse_ops.context())?;
    |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cusparse_csr_b`

warning: unused variable: `tensor`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/sparse/cusparse_kernels.rs:292:46
    |
292 |     fn create_dense_matrix_descriptor(&self, tensor: &Tensor) -> Result<DnMatDescriptor<f32>> {
    |                                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_tensor`

warning: unused variable: `tensor`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/sparse/cusparse_kernels.rs:298:46
    |
298 |     fn create_dense_vector_descriptor(&self, tensor: &Tensor) -> Result<DnVecDescriptor<f32>> {
    |                                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_tensor`

warning: variable does not need to be mutable
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/storage/core.rs:321:13
    |
321 |         let mut inner = self.inner.lock().unwrap();
    |             ----^^^^^
    |             |
    |             help: remove this `mut`

warning: unused variable: `slice`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/storage/core.rs:556:36
    |
556 |             StorageData::CudaGpu { slice, stream } => {
    |                                    ^^^^^ help: try ignoring the field: `slice: _`

warning: unused variable: `stream`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/storage/core.rs:556:43
    |
556 |             StorageData::CudaGpu { slice, stream } => {
    |                                           ^^^^^^ help: try ignoring the field: `stream: _`

warning: variable does not need to be mutable
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/tensor/core.rs:311:13
    |
311 |         let mut rng = CudaRng::new(42u64, stream.clone())  // Use fixed seed for reproducibility
    |             ----^^^
    |             |
    |             help: remove this `mut`

warning: variable does not need to be mutable
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/tensor/core.rs:415:13
    |
415 |         let mut storage_clone = (*self.storage).clone();
    |             ----^^^^^^^^^^^^^
    |             |
    |             help: remove this `mut`

warning: variable does not need to be mutable
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/tensor/core.rs:431:21
    |
431 |                 let mut new_storage = (*self.storage).clone();
    |                     ----^^^^^^^^^^^
    |                     |
    |                     help: remove this `mut`

warning: variable does not need to be mutable
    --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/tensor/core.rs:1595:13
     |
1595 |         let mut new_offset = self.offset + index * self.strides[dim];
     |             ----^^^^^^^^^^
     |             |
     |             help: remove this `mut`

warning: variable does not need to be mutable
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/tensor/matrix_multiplication.rs:54:13
   |
54 |         let mut result = Tensor {
   |             ----^^^^^^
   |             |
   |             help: remove this `mut`

warning: unused variable: `result`
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/tensor/matrix_multiplication.rs:54:13
   |
54 |         let mut result = Tensor {
   |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`

warning: variable does not need to be mutable
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/tensor/advanced/transformations.rs:90:21
   |
90 |                 let mut signal_imag = vec![0.0f32; fft_size];
   |                     ----^^^^^^^^^^^
   |                     |
   |                     help: remove this `mut`

warning: value assigned to `out_idx` is never read
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/tensor/advanced/activations.rs:233:31
    |
233 |             let mut out_idx = 0;
    |                               ^
    |
    = help: maybe it is overwritten before being read?
    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default

warning: value assigned to `out_idx` is never read
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/tensor/advanced/activations.rs:239:21
    |
239 |                     out_idx += coord * out_stride;
    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
    = help: maybe it is overwritten before being read?

warning: unused variable: `batch_size`
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/tensor/advanced/normalization.rs:38:13
   |
38 |         let batch_size = shape[0];
   |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_batch_size`

warning: unused variable: `batch_size`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/tensor/advanced/normalization.rs:218:13
    |
218 |         let batch_size = shape[0];
    |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_batch_size`

warning: unused variable: `label_sizes`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/tensor/advanced/einsum_ops.rs:138:9
    |
138 |         label_sizes: &HashMap<char, usize>,
    |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_label_sizes`

warning: unused variable: `label`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/tensor/advanced/einsum_ops.rs:158:14
    |
158 |         for (label, positions) in label_positions.iter() {
    |              ^^^^^ help: if this is intentional, prefix it with an underscore: `_label`

warning: unused variable: `dilation`
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/tensor/convolution.rs:16:93
   |
16 | ... usize, padding: usize, dilation: usize, groups: usize) -> Result<Self> {
   |                            ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dilation`

warning: unused variable: `groups`
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/tensor/convolution.rs:16:110
   |
16 | ...: usize, dilation: usize, groups: usize) -> Result<Self> {
   |                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_groups`

warning: unused variable: `running_mean`
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/tensor/normalization.rs:11:9
   |
11 |         running_mean: Option<&Self>,
   |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_running_mean`

warning: unused variable: `running_var`
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/tensor/normalization.rs:12:9
   |
12 |         running_var: Option<&Self>,
   |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_running_var`

warning: unused variable: `training`
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/tensor/normalization.rs:15:9
   |
15 |         training: bool,
   |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_training`

warning: unused variable: `seq_len_q`
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/tensor/attention.rs:30:13
   |
30 |         let seq_len_q = query_shape[1];
   |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_seq_len_q`

warning: unused variable: `seq_len_k`
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/tensor/attention.rs:32:13
   |
32 |         let seq_len_k = key_shape[1];
   |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_seq_len_k`

warning: unused variable: `d_v`
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/tensor/attention.rs:33:13
   |
33 |         let d_v = value_shape[2];
   |             ^^^ help: if this is intentional, prefix it with an underscore: `_d_v`

warning: unused variable: `dw_out_channels`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/tensor/conv_advanced.rs:104:13
    |
104 |         let dw_out_channels = in_channels * multiplier;
    |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dw_out_channels`

warning: field `lt_handles` is never read
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cublas/mod.rs:43:5
   |
39 | pub struct CublasManager {
   |            ------------- field in this struct
...
43 |     lt_handles: Arc<Mutex<HashMap<usize, CublasLtHandle>>>,
   |     ^^^^^^^^^^
   |
   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default

warning: fields `device_id`, `device`, and `workspace` are never read
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cublas/core.rs:19:5
   |
18 | pub struct CublasCore {
   |            ---------- fields in this struct
19 |     device_id: usize,
   |     ^^^^^^^^^
20 |     device: Arc<CudaDevice>,
   |     ^^^^^^
...
23 |     workspace: Arc<CublasWorkspaceManager>,
   |     ^^^^^^^^^

warning: field `handle` is never read
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cublas/advanced.rs:62:5
   |
59 | pub struct CublasLt {
   |            -------- field in this struct
...
62 |     handle: CublasLtHandle,
   |     ^^^^^^

warning: fields `memory_pool_enabled` and `allocation_strategy` are never read
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cublas/workspace.rs:51:5
   |
41 | pub struct CublasWorkspaceManager {
   |            ---------------------- fields in this struct
...
51 |     memory_pool_enabled: bool,
   |     ^^^^^^^^^^^^^^^^^^^
...
55 |     allocation_strategy: WorkspaceAllocationStrategy,
   |     ^^^^^^^^^^^^^^^^^^^

warning: field `max_tuning_iterations` is never read
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cublas/algorithms.rs:220:5
    |
217 | pub struct AlgorithmSelector {
    |            ----------------- field in this struct
...
220 |     max_tuning_iterations: usize,
    |     ^^^^^^^^^^^^^^^^^^^^^

warning: field `cublas_lt` is never read
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cublas/precision.rs:135:5
    |
132 | pub struct MixedPrecisionGemm {
    |            ------------------ field in this struct
...
135 |     cublas_lt: CublasLt,
    |     ^^^^^^^^^

warning: field `workspace` is never read
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cublas/batched.rs:94:5
   |
90 | pub struct BatchedCublas {
   |            ------------- field in this struct
...
94 |     workspace: Arc<CublasWorkspaceManager>,
   |     ^^^^^^^^^

warning: field `handle_cache` is never read
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusparse/context.rs:98:5
   |
90 | pub struct CuSparseContext {
   |            --------------- field in this struct
...
98 |     handle_cache: RwLock<HashMap<std::thread::ThreadId, cusparseHandle_t>>,
   |     ^^^^^^^^^^^^
   |
   = note: `CuSparseContext` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis

warning: fields `col_ptr`, `row_indices`, `device`, and `context` are never read
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusparse/formats.rs:595:5
    |
587 | pub struct CuSparseCSC<T = f32, I = i32>
    |            ----------- fields in this struct
...
595 |     col_ptr: CudaSlice<I>,
    |     ^^^^^^^
596 |     /// Row indices on device
597 |     row_indices: CudaSlice<I>,
    |     ^^^^^^^^^^^
...
603 |     device: Arc<CudaDevice>,
    |     ^^^^^^
604 |     /// cuSPARSE context
605 |     context: Arc<CuSparseContext>,
    |     ^^^^^^^
    |
    = note: `CuSparseCSC` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis

warning: fields `row_ptr`, `values`, `device`, and `context` are never read
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusparse/formats.rs:699:5
    |
691 | pub struct CuSparseBSR<T = f32, I = i32>
    |            ----------- fields in this struct
...
699 |     row_ptr: CudaSlice<I>,
    |     ^^^^^^^
...
703 |     values: CudaSlice<T>,
    |     ^^^^^^
...
709 |     device: Arc<CudaDevice>,
    |     ^^^^^^
710 |     /// cuSPARSE context
711 |     context: Arc<CuSparseContext>,
    |     ^^^^^^^
    |
    = note: `CuSparseBSR` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis

warning: field `max_benchmark_algorithms` is never read
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusparse/algorithm.rs:243:5
    |
237 | pub struct AlgorithmSelector {
    |            ----------------- field in this struct
...
243 |     max_benchmark_algorithms: usize,
    |     ^^^^^^^^^^^^^^^^^^^^^^^^
    |
    = note: `AlgorithmSelector` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis

warning: field `algorithm_selector` is never read
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusparse/advanced.rs:134:5
    |
128 | pub struct AdvancedCuSparseOps {
    |            ------------------- field in this struct
...
134 |     algorithm_selector: AlgorithmSelector,
    |     ^^^^^^^^^^^^^^^^^^

warning: field `device` is never read
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/workspace.rs:53:5
   |
51 | pub struct WorkspaceManager {
   |            ---------------- field in this struct
52 |     /// CUDA device for allocations
53 |     device: Arc<CudaDevice>,
   |     ^^^^^^

warning: fields `precision_selector` and `streams` are never read
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/batched.rs:229:5
    |
225 | pub struct BatchedSolver {
    |            ------------- fields in this struct
...
229 |     precision_selector: PrecisionSelector,
    |     ^^^^^^^^^^^^^^^^^^
230 |     /// CUDA streams for parallel processing
231 |     streams: Vec<Arc<cudarc::driver::CudaStream>>,
    |     ^^^^^^^

warning: field `context` is never read
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/analysis.rs:14:5
   |
12 | pub struct NumericalAnalysis {
   |            ----------------- field in this struct
13 |     /// cuSOLVER context
14 |     context: Arc<CuSolverContext>,
   |     ^^^^^^^

warning: field `config` is never read
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/analysis.rs:41:5
   |
37 | pub struct ConditionEstimator {
   |            ------------------ field in this struct
...
41 |     config: AnalysisConfig,
   |     ^^^^^^

warning: field `config` is never read
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/cusolver/analysis.rs:68:5
   |
66 | pub struct ErrorAnalysis {
   |            ------------- field in this struct
67 |     /// Analysis configuration
68 |     config: AnalysisConfig,
   |     ^^^^^^

warning: fields `sparse_solver`, `batched_solver`, and `numerical_analysis` are never read
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/linalg/cusolver_backend.rs:27:5
   |
19 | pub struct CuSolverBackend {
   |            --------------- fields in this struct
...
27 |     sparse_solver: Option<SparseSolver>,
   |     ^^^^^^^^^^^^^
...
30 |     batched_solver: Option<BatchedSolver>,
   |     ^^^^^^^^^^^^^^
...
33 |     numerical_analysis: Option<NumericalAnalysis>,
   |     ^^^^^^^^^^^^^^^^^^

warning: function `compute_output_shape` is never used
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/ops/einsum.rs:238:4
    |
238 | fn compute_output_shape(equation: &EinsumEquation, dim_sizes: &HashMap<char, usize>) -> Vec<usize> {
    |    ^^^^^^^^^^^^^^^^^^^^

warning: function `build_dimension_mapping` is never used
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/ops/einsum.rs:245:4
    |
245 | fn build_dimension_mapping(tensors: &[&Tensor], equation: &EinsumEquation) -> HashMap<char, usize> {
    |    ^^^^^^^^^^^^^^^^^^^^^^^

warning: method `fallback_sparse_mm` is never used
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/sparse/coo.rs:545:8
    |
 38 | impl SparseCOO {
    | -------------- method in this implementation
...
545 |     fn fallback_sparse_mm(&self, other: &SparseCOO) -> Result<SparseCOO> {
    |        ^^^^^^^^^^^^^^^^^^

warning: field `kernel_cache` is never read
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/sparse/cuda_kernels.rs:32:5
   |
29 | pub struct CudaSparseKernels {
   |            ----------------- field in this struct
...
32 |     kernel_cache: Arc<Mutex<HashMap<String, Vec<u8>>>>,
   |     ^^^^^^^^^^^^
   |
   = note: `CudaSparseKernels` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis

warning: field `config` is never read
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/sparse/serialization.rs:218:5
    |
216 | pub struct StreamingSerializer<W: Write> {
    |            ------------------- field in this struct
217 |     writer: W,
218 |     config: SerializationConfig,
    |     ^^^^^^

warning: associated function `randn_cpu` is never used
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/tensor/core.rs:264:8
    |
 93 | impl Tensor {
    | ----------- associated function in this implementation
...
264 |     fn randn_cpu(shape: &[usize], device: &Device) -> Result<Self> {
    |        ^^^^^^^^^

warning: method `cpu_matmul_batched_data` is never used
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/tensor/matrix_multiplication.rs:411:8
    |
 25 | impl Tensor {
    | ----------- method in this implementation
...
411 |     fn cpu_matmul_batched_data(&self, _other: &Self, _a_data: &[f32], _b_data: &[f32], _c_data: &mut [f32]) -> Result<()> {
    |        ^^^^^^^^^^^^^^^^^^^^^^^

warning: function `init_rtx5090_optimization` is never used
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/tensor/gpu_optimized.rs:22:8
   |
22 | pub fn init_rtx5090_optimization(device_id: usize) -> Result<()> {
   |        ^^^^^^^^^^^^^^^^^^^^^^^^^

warning: creating a shared reference to mutable static
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/linalg/cusolver_backend.rs:361:9
    |
361 |         CUSOLVER_BACKEND.as_ref()
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
    |
    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
    = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/sparse/csr.rs:516:22
    |
516 |     pub fn row_slice(&self, row: usize) -> Result<CSRRowSlice> {
    |                      ^^^^^                        ^^^^^^^^^^^ the same lifetime is hidden here
    |                      |
    |                      the lifetime is elided here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
help: use `'_` for type paths
    |
516 |     pub fn row_slice(&self, row: usize) -> Result<CSRRowSlice<'_>> {
    |                                                              ++++

warning: hiding a lifetime that's elided elsewhere is confusing
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/sparse/csr.rs:536:17
    |
536 |     pub fn rows(&self) -> impl Iterator<Item = (usize, CSRRowSlice)> {
    |                 ^^^^^ the lifetime is elided here      ^^^^^^^^^^^ the same lifetime is hidden here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
help: use `'_` for type paths
    |
536 |     pub fn rows(&self) -> impl Iterator<Item = (usize, CSRRowSlice<'_>)> {
    |                                                                   ++++

warning: creating a mutable reference to mutable static
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/storage/core.rs:356:17
    |
356 |                 GPU_CPU_BUFFERS.push(cpu_buffer);
    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
    |
    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives

warning: creating a mutable reference to mutable static
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-tensor/src/storage/core.rs:410:17
    |
410 |                 GPU_CPU_MUT_BUFFERS.push((cpu_buffer, self.numel));
    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
    |
    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives

warning: `rtx-tensor` (lib) generated 275 warnings (run `cargo fix --lib -p rtx-tensor` to apply 217 suggestions)
warning: `rtx-tensor` (lib) generated 275 warnings (275 duplicates)
warning: unused imports: `error` and `warn`
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-kernel/src/lib.rs:72:28
   |
72 | use tracing::{debug, info, error, warn};
   |                            ^^^^^  ^^^^
   |
   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default

warning: unused import: `CudaSlice`
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-kernel/src/lib.rs:75:47
   |
75 | use cudarc::driver::{CudaContext, CudaStream, CudaSlice, CudaModule, CudaFunction};
   |                                               ^^^^^^^^^

warning: unused import: `CompileOptions as NvrtcCompileOptions`
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-kernel/src/lib.rs:76:34
   |
76 | use cudarc::nvrtc::{compile_ptx, CompileOptions as NvrtcCompileOptions};
   |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: unused import: `warn`
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-kernel/src/kernels/sparse.rs:11:28
   |
11 | use tracing::{debug, info, warn};
   |                            ^^^^

warning: unused import: `KernelError`
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-kernel/src/kernels/mod.rs:13:13
   |
13 | use crate::{KernelError, Result};
   |             ^^^^^^^^^^^

warning: unused variable: `kernel`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-kernel/src/lib.rs:435:13
    |
435 |         let kernel = self.kernel_cache.get(kernel_id)
    |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_kernel`
    |
    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default

warning: unused variable: `config`
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-kernel/src/kernels/cudnn_conv_simplified.rs:81:9
   |
81 |         config: &ConvolutionConfig,
   |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`

warning: fields `cuda_stream` and `module_cache` are never read
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-kernel/src/lib.rs:295:5
    |
285 | pub struct KernelSystem {
    |            ------------ fields in this struct
...
295 |     cuda_stream: Arc<CudaStream>,
    |     ^^^^^^^^^^^
296 |     /// Cache of loaded CUDA modules
297 |     module_cache: Arc<DashMap<String, Arc<CudaModule>>>,
    |     ^^^^^^^^^^^^
    |
    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default

warning: multiple fields are never read
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-kernel/src/kernels/sparse.rs:30:5
   |
28 | pub struct SparseKernels {
   |            ------------- fields in this struct
29 |     kernel_system: Arc<KernelSystem>,
30 |     cuda_context: Arc<CudaContext>,
   |     ^^^^^^^^^^^^
...
37 |     csr_transpose_f32_id: Option<String>,
   |     ^^^^^^^^^^^^^^^^^^^^
38 |     csr_add_f32_id: Option<String>,
   |     ^^^^^^^^^^^^^^
39 |     csr_elemwise_mul_f32_id: Option<String>,
   |     ^^^^^^^^^^^^^^^^^^^^^^^
40 |     csr_norm_f32_id: Option<String>,
   |     ^^^^^^^^^^^^^^^
41 |     csr_scale_f32_id: Option<String>,
42 |     csr_extract_diagonal_f32_id: Option<String>,
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
43 |     coo_spmv_f32_id: Option<String>,
   |     ^^^^^^^^^^^^^^^
44 |     block_sparse_spmm_f16_id: Option<String>,
   |     ^^^^^^^^^^^^^^^^^^^^^^^^

warning: field `kernel_system` is never read
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-kernel/src/kernels/cudnn_conv_simplified.rs:60:5
   |
59 | pub struct CuDNNConvolution {
   |            ---------------- field in this struct
60 |     kernel_system: Arc<KernelSystem>,
   |     ^^^^^^^^^^^^^

warning: fields `matrix_mul_f16_id`, `layer_norm_f32_id`, `flash_attention_id`, and `sparse_gemm_csr_id` are never read
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-kernel/src/builtin_kernels.rs:24:5
   |
19 | pub struct BuiltinKernels {
   |            -------------- fields in this struct
...
24 |     matrix_mul_f16_id: Option<String>,
   |     ^^^^^^^^^^^^^^^^^
25 |     softmax_f32_id: Option<String>,
26 |     layer_norm_f32_id: Option<String>,
   |     ^^^^^^^^^^^^^^^^^
27 |     flash_attention_id: Option<String>,
   |     ^^^^^^^^^^^^^^^^^^
28 |     sparse_gemm_csr_id: Option<String>,
   |     ^^^^^^^^^^^^^^^^^^

warning: variable `B` should have a snake case name
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-kernel/src/kernels/sparse.rs:249:9
    |
249 |         B: u64,
    |         ^ help: convert the identifier to snake case: `b`
    |
    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default

warning: variable `C` should have a snake case name
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-kernel/src/kernels/sparse.rs:250:9
    |
250 |         C: u64,
    |         ^ help: convert the identifier to snake case (notice the capitalization): `c`

warning: variable `num_rows_A` should have a snake case name
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-kernel/src/kernels/sparse.rs:251:9
    |
251 |         num_rows_A: usize,
    |         ^^^^^^^^^^ help: convert the identifier to snake case: `num_rows_a`

warning: variable `num_cols_A` should have a snake case name
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-kernel/src/kernels/sparse.rs:252:9
    |
252 |         num_cols_A: usize,
    |         ^^^^^^^^^^ help: convert the identifier to snake case: `num_cols_a`

warning: variable `num_cols_B` should have a snake case name
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-kernel/src/kernels/sparse.rs:253:9
    |
253 |         num_cols_B: usize,
    |         ^^^^^^^^^^ help: convert the identifier to snake case: `num_cols_b`

warning: unused import: `crate::allocator::DevicePtr`
 --> /home/osobh/data/projects/rustytorch/crates/core/rtx-runtime/src/cuda_backend.rs:8:5
  |
8 | use crate::allocator::DevicePtr;
  |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  |
  = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default

warning: unused imports: `info` and `warn`
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-runtime/src/cuda_graph.rs:12:22
   |
12 | use tracing::{debug, info, warn};
   |                      ^^^^  ^^^^

warning: unused import: `Mutex`
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-runtime/src/cuda_kernels.rs:12:22
   |
12 | use std::sync::{Arc, Mutex, RwLock, atomic::{AtomicU64, Ordering}};
   |                      ^^^^^

warning: unused imports: `error` and `warn`
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-runtime/src/cuda_kernels.rs:13:28
   |
13 | use tracing::{debug, info, warn, error};
   |                            ^^^^  ^^^^^

warning: unnecessary parentheses around assigned value
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-runtime/src/fusion/execution.rs:407:60
    |
407 | ...   let memory_bound_time_us = (total_elements as f64 * operations_count as f64 * 4.0 / 1008.0); // 4 bytes per element, 1008 GB/...
    |                                  ^                                                              ^
    |
    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
help: remove these parentheses
    |
407 -                                 let memory_bound_time_us = (total_elements as f64 * operations_count as f64 * 4.0 / 1008.0); // 4 bytes per element, 1008 GB/s bandwidth
407 +                                 let memory_bound_time_us = total_elements as f64 * operations_count as f64 * 4.0 / 1008.0; // 4 bytes per element, 1008 GB/s bandwidth
    |

warning: unused import: `crate::device::DeviceId`
 --> /home/osobh/data/projects/rustytorch/crates/core/rtx-runtime/src/tensor_core/types.rs:6:5
  |
6 | use crate::device::DeviceId;
  |     ^^^^^^^^^^^^^^^^^^^^^^^

warning: unused import: `std::collections::HashMap`
 --> /home/osobh/data/projects/rustytorch/crates/core/rtx-runtime/src/tensor_core/types.rs:8:5
  |
8 | use std::collections::HashMap;
  |     ^^^^^^^^^^^^^^^^^^^^^^^^^

warning: ambiguous glob re-exports
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-runtime/src/lib.rs:80:9
   |
80 | pub use device::*;
   |         ^^^^^^^^^ the name `types` in the type namespace is first re-exported here
...
88 | pub use tensor_core::*;
   |         -------------- but the name `types` in the type namespace is also re-exported here
   |
   = note: `#[warn(ambiguous_glob_reexports)]` on by default

warning: use of deprecated method `cudarc::driver::CudaStream::memcpy_stod`: Use clone_htod
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-runtime/src/cuda_backend.rs:103:28
    |
103 |         let slice = stream.memcpy_stod(data)
    |                            ^^^^^^^^^^^
    |
    = note: `#[warn(deprecated)]` on by default

warning: use of deprecated method `cudarc::driver::CudaStream::memcpy_dtov`: Use clone_dtoh
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-runtime/src/cuda_backend.rs:279:16
    |
279 |         stream.memcpy_dtov(device_slice)
    |                ^^^^^^^^^^^

warning: use of deprecated method `cudarc::driver::CudaStream::memcpy_stod`: Use clone_htod
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-runtime/src/cuda_backend.rs:444:27
    |
444 |         let temp = stream.memcpy_stod(&src[..dst.len()])
    |                           ^^^^^^^^^^^

warning: unused variable: `priority`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-runtime/src/device/core.rs:285:52
    |
285 |     fn allocate_stream_handle_with_priority(&self, priority: StreamPriority) -> Result<*mut std::ffi::c_void> {
    |                                                    ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_priority`
    |
    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default

warning: unnecessary `unsafe` block
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-runtime/src/kernel.rs:397:33
    |
397 |             let module_handle = unsafe {
    |                                 ^^^^^^ unnecessary `unsafe` block
    |
    = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default

warning: unused variable: `stream_handle`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-runtime/src/cuda_backend.rs:575:5
    |
575 |     stream_handle: &CudaStreamHandle,
    |     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_stream_handle`

warning: unused variable: `stream`
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-runtime/src/cuda_graph.rs:74:33
   |
74 |     pub fn begin_capture(&self, stream: &CudaStreamHandle, device_id: DeviceId) -> Result<u64> {
   |                                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_stream`

warning: unused variable: `stream`
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-runtime/src/cuda_graph.rs:90:31
   |
90 |     pub fn end_capture(&self, stream: &CudaStreamHandle, device_id: DeviceId) -> Result<u64> {
   |                               ^^^^^^ help: if this is intentional, prefix it with an underscore: `_stream`

warning: unused variable: `stream`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-runtime/src/cuda_graph.rs:126:44
    |
126 |     pub fn launch(&self, instance_id: u64, stream: &CudaStreamHandle, device_id: DeviceId) -> Result<()> {
    |                                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_stream`

warning: unused variable: `instance`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-runtime/src/cuda_graph.rs:129:21
    |
129 |         if let Some(instance) = instances.get(&instance_id) {
    |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_instance`

warning: unused variable: `stream`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-runtime/src/cuda_kernels.rs:171:9
    |
171 |         stream: &CudaStreamHandle,
    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_stream`

warning: unused variable: `function`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-runtime/src/cuda_kernels.rs:176:21
    |
176 |         if let Some(function) = functions.get(&launch_config.function_name) {
    |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_function`

warning: unused variable: `dynamic_shared_mem`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-runtime/src/cuda_kernels.rs:203:9
    |
203 |         dynamic_shared_mem: u32,
    |         ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dynamic_shared_mem`

warning: unused variable: `stream`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-runtime/src/fusion/execution.rs:336:108
    |
336 | ...                   fn launch_fused_kernel(&self, kernel: &FusedKernel, sequence: &FusionSequence, stream: &Stream) -> Result<()> {
    |                                                                                                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_stream`

warning: field `stats` is never read
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-runtime/src/lib.rs:106:5
    |
102 | pub struct Runtime {
    |            ------- field in this struct
...
106 |     stats: AtomicU64,
    |     ^^^^^
    |
    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default

warning: associated function `new` is never used
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-runtime/src/device/stream.rs:43:19
   |
41 | impl Stream {
   | ----------- associated function in this implementation
42 |     /// Create a new stream with default priority
43 |     pub(crate) fn new(
   |                   ^^^

warning: method `mark_completed` is never used
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-runtime/src/device/event.rs:202:19
    |
 33 | impl Event {
    | ---------- method in this implementation
...
202 |     pub(crate) fn mark_completed(&self) {
    |                   ^^^^^^^^^^^^^^

warning: field `binary_cache` is never read
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-runtime/src/kernel.rs:128:5
    |
122 | pub struct KernelRegistry {
    |            -------------- field in this struct
...
128 |     binary_cache: HashMap<String, u64>, // PTX hash -> binary handle
    |     ^^^^^^^^^^^^

warning: field `next_binary_handle` is never read
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-runtime/src/kernel.rs:138:5
    |
132 | pub struct KernelLauncher {
    |            -------------- field in this struct
...
138 |     next_binary_handle: AtomicU64,
    |     ^^^^^^^^^^^^^^^^^^

warning: fields `id` and `device_id` are never read
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-runtime/src/cuda_graph.rs:29:5
   |
28 | pub struct GraphHandle {
   |            ----------- fields in this struct
29 |     id: u64,
   |     ^^
30 |     device_id: DeviceId,
   |     ^^^^^^^^^
   |
   = note: `GraphHandle` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis

warning: fields `id` and `device_id` are never read
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-runtime/src/cuda_graph.rs:35:5
   |
34 | pub struct InstanceHandle {
   |            -------------- fields in this struct
35 |     id: u64,
   |     ^^
36 |     graph_id: u64,
37 |     device_id: DeviceId,
   |     ^^^^^^^^^
   |
   = note: `InstanceHandle` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis

warning: field `id` is never read
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-runtime/src/cuda_kernels.rs:29:5
   |
28 | pub struct ModuleHandle {
   |            ------------ field in this struct
29 |     id: u64,
   |     ^^
   |
   = note: `ModuleHandle` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis

warning: fields `name` and `device_id` are never read
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-runtime/src/cuda_kernels.rs:36:5
   |
35 | pub struct FunctionHandle {
   |            -------------- fields in this struct
36 |     name: String,
   |     ^^^^
37 |     module_id: u64,
38 |     device_id: DeviceId,
   |     ^^^^^^^^^
   |
   = note: `FunctionHandle` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis

warning: field `bandwidth_threshold` is never read
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-runtime/src/fusion_core.rs:226:5
    |
218 | pub struct FusionAnalyzer {
    |            -------------- field in this struct
...
226 |     bandwidth_threshold: usize,
    |     ^^^^^^^^^^^^^^^^^^^
    |
    = note: `FusionAnalyzer` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis

warning: fields `code_generator` and `cache_manager` are never read
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-runtime/src/fusion_core.rs:318:5
    |
314 | pub struct AdvancedFusionEngine {
    |            -------------------- fields in this struct
...
318 |     code_generator: FusionCodeGenerator,
    |     ^^^^^^^^^^^^^^
...
322 |     cache_manager: FusionCacheManager,
    |     ^^^^^^^^^^^^^
    |
    = note: `AdvancedFusionEngine` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis

warning: field `pattern_cache` is never read
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-runtime/src/fusion_patterns.rs:19:5
   |
15 | pub struct PatternMatcher {
   |            -------------- field in this struct
...
19 |     pattern_cache: HashMap<u64, f64>,
   |     ^^^^^^^^^^^^^
   |
   = note: `PatternMatcher` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis

warning: fields `compute_capability`, `memory_bandwidth`, and `cache_size_mb` are never read
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-runtime/src/fusion_patterns.rs:26:5
   |
24 | pub struct PerformanceEstimator {
   |            -------------------- fields in this struct
25 |     /// Device compute capability
26 |     compute_capability: f64,
   |     ^^^^^^^^^^^^^^^^^^
27 |     /// Memory bandwidth (GB/s)
28 |     memory_bandwidth: f64,
   |     ^^^^^^^^^^^^^^^^
29 |     /// L2 cache size (MB)
30 |     cache_size_mb: usize,
   |     ^^^^^^^^^^^^^
   |
   = note: `PerformanceEstimator` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis

warning: fields `general_efficiency` and `memory_optimization_efficiency` are never read
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-runtime/src/fusion_patterns.rs:41:5
   |
37 | pub struct PerformanceModel {
   |            ---------------- fields in this struct
...
41 |     general_efficiency: f64,
   |     ^^^^^^^^^^^^^^^^^^
42 |     /// Memory optimization efficiency
43 |     memory_optimization_efficiency: f64,
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = note: `PerformanceModel` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis

warning: fields `compute_capability`, `code_cache`, and `compiled_kernels` are never read
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-runtime/src/fusion_execution.rs:20:5
   |
18 | pub struct FusionCodeGenerator {
   |            ------------------- fields in this struct
19 |     /// Target compute capability
20 |     compute_capability: String,
   |     ^^^^^^^^^^^^^^^^^^
21 |     /// Code generation cache
22 |     code_cache: HashMap<String, String>,
   |     ^^^^^^^^^^
23 |     /// Kernel compilation cache
24 |     compiled_kernels: HashMap<u64, CompiledKernel>,
   |     ^^^^^^^^^^^^^^^^
   |
   = note: `FusionCodeGenerator` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis

warning: function `current_time_us` is never used
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-runtime/src/fusion/mod.rs:487:8
    |
487 |     fn current_time_us() -> u64 {
    |        ^^^^^^^^^^^^^^^

warning: struct `PatternMatcher` is never constructed
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-runtime/src/fusion/analyzer.rs:303:16
    |
303 |     pub struct PatternMatcher {
    |                ^^^^^^^^^^^^^^

warning: multiple associated items are never used
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-runtime/src/fusion/analyzer.rs:314:16
    |
312 |     impl PatternMatcher {
    |     ------------------- associated items in this implementation
313 |         /// Create a new pattern matcher with default configurations
314 |         pub fn new() -> Self {
    |                ^^^
...
323 |         pub fn with_configs(
    |                ^^^^^^^^^^^^
...
336 |         pub fn detect_patterns(&self, operations: &[FusionOp]) -> Vec<AdvancedFusionPattern> {
    |                ^^^^^^^^^^^^^^^
...
348 |         fn detect_transformer_patterns(&self, operations: &[FusionOp]) -> Vec<AdvancedFusionPattern> {
    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
370 |         fn detect_quantum_patterns(&self, operations: &[FusionOp]) -> Vec<AdvancedFusionPattern> {
    |            ^^^^^^^^^^^^^^^^^^^^^^^
...
382 |         fn detect_neuromorphic_patterns(&self, operations: &[FusionOp]) -> Vec<AdvancedFusionPattern> {
    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
394 |         fn detect_memory_patterns(&self, operations: &[FusionOp]) -> Vec<AdvancedFusionPattern> {
    |            ^^^^^^^^^^^^^^^^^^^^^^
...
411 |         fn detect_attention_layernorm(&self, _operations: &[FusionOp]) -> Option<AdvancedFusionPattern> {
    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
...
416 |         fn detect_feedforward(&self, _operations: &[FusionOp]) -> Option<AdvancedFusionPattern> {
    |            ^^^^^^^^^^^^^^^^^^
...
421 |         fn detect_transformer_block(&self, _operations: &[FusionOp]) -> Option<AdvancedFusionPattern> {
    |            ^^^^^^^^^^^^^^^^^^^^^^^^
...
426 |         fn detect_quantum_classical_fusion(&self, _operations: &[FusionOp]) -> Option<AdvancedFusionPattern> {
    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
431 |         fn detect_neuromorphic_classical_fusion(&self, _operations: &[FusionOp]) -> Option<AdvancedFusionPattern> {
    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
436 |         fn detect_elementwise_reduction(&self, _operations: &[FusionOp]) -> Option<AdvancedFusionPattern> {
    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
441 |         fn detect_broadcast_elementwise(&self, _operations: &[FusionOp]) -> Option<AdvancedFusionPattern> {
    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: field `compute_capability` is never read
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-runtime/src/fusion/performance.rs:14:5
   |
12 | pub struct PerformanceEstimator {
   |            -------------------- field in this struct
13 |     /// Device compute capability (e.g., 8.9 for RTX 5090)
14 |     compute_capability: f64,
   |     ^^^^^^^^^^^^^^^^^^
   |
   = note: `PerformanceEstimator` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis

warning: fields `sequence_id`, `ptx_code`, and `shared_memory_size` are never read
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-runtime/src/fusion/execution.rs:577:29
    |
575 |                         struct FusedKernel {
    |                                ----------- fields in this struct
576 |                             /// Source sequence ID
577 |                             sequence_id: FusionId,
    |                             ^^^^^^^^^^^
578 |                             /// Compiled PTX code
579 |                             ptx_code: String,
    |                             ^^^^^^^^
...
585 |                             shared_memory_size: usize,
    |                             ^^^^^^^^^^^^^^^^^^
    |
    = note: `FusedKernel` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis

warning: method `hit_rate` is never used
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-runtime/src/fusion/execution.rs:626:36
    |
599 |                         impl KernelCache {
    |                         ---------------- method in this implementation
...
626 |                                 fn hit_rate(&self) -> f64 {
    |                                    ^^^^^^^^

warning: fields `device`, `fusion_system`, and `advanced_engine` are never read
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-runtime/src/fusion/benchmarks.rs:18:5
   |
16 | pub struct FusionBenchmarkSuite {
   |            -------------------- fields in this struct
17 |     /// Device for benchmarking
18 |     device: Device,
   |     ^^^^^^
19 |     /// Fusion system under test
20 |     fusion_system: KernelFusionSystem,
   |     ^^^^^^^^^^^^^
21 |     /// Advanced fusion engine
22 |     advanced_engine: AdvancedFusionEngine,
   |     ^^^^^^^^^^^^^^^

warning: field `overflow_detection` is never read
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-runtime/src/tensor_core/precision.rs:16:5
   |
10 | pub struct PrecisionOptimizer {
   |            ------------------ field in this struct
...
16 |     overflow_detection: bool,
   |     ^^^^^^^^^^^^^^^^^^

warning: field `balancing_config` is never read
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-runtime/src/tensor_core/scheduling.rs:21:5
   |
15 | pub struct SchedulingOptimizer {
   |            ------------------- field in this struct
...
21 |     balancing_config: LoadBalancingConfig,
   |     ^^^^^^^^^^^^^^^^

warning: fields `memory_hierarchy` and `optimization_rules` are never read
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-runtime/src/memory_bandwidth.rs:225:5
    |
224 | pub struct AccessPatternOptimizer {
    |            ---------------------- fields in this struct
225 |     memory_hierarchy: Arc<MemoryHierarchy>,
    |     ^^^^^^^^^^^^^^^^
226 |     pattern_history: Arc<Mutex<VecDeque<AccessPattern>>>,
227 |     optimization_rules: Arc<RwLock<HashMap<String, MemoryOptimization>>>,
    |     ^^^^^^^^^^^^^^^^^^

warning: fields `memory_hierarchy` and `prediction_model` are never read
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-runtime/src/memory_bandwidth.rs:294:17
    |
293 |             pub struct IntelligentPrefetcher {
    |                        --------------------- fields in this struct
294 |                 memory_hierarchy: Arc<MemoryHierarchy>,
    |                 ^^^^^^^^^^^^^^^^
...
297 |                 prediction_model: Arc<RwLock<HashMap<String, f32>>>,
    |                 ^^^^^^^^^^^^^^^^

warning: field `memory_hierarchy` is never read
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-runtime/src/memory_bandwidth.rs:367:21
    |
366 |                 pub struct CoalescingOptimizer {
    |                            ------------------- field in this struct
367 |                     memory_hierarchy: Arc<MemoryHierarchy>,
    |                     ^^^^^^^^^^^^^^^^

warning: field `device_id` is never read
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-runtime/src/dynamic_compilation.rs:500:5
    |
499 | pub struct RuntimeProfiler {
    |            --------------- field in this struct
500 |     device_id: DeviceId,
    |     ^^^^^^^^^

warning: fields `device_id`, `performance_history`, and `learning_rate` are never read
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-runtime/src/dynamic_compilation.rs:573:17
    |
572 |             pub struct AdaptiveOptimizer {
    |                        ----------------- fields in this struct
573 |                 device_id: DeviceId,
    |                 ^^^^^^^^^
574 |                 optimization_history: Arc<RwLock<HashMap<String, Vec<DynamicOptimization>>>>,
575 |                 performance_history: Arc<RwLock<HashMap<String, Vec<f32>>>>,
    |                 ^^^^^^^^^^^^^^^^^^^
576 |                 learning_rate: f32,
    |                 ^^^^^^^^^^^^^

warning: `rtx-kernel` (lib) generated 16 warnings (run `cargo fix --lib -p rtx-kernel` to apply 7 suggestions)
warning: `rtx-runtime` (lib) generated 51 warnings (run `cargo fix --lib -p rtx-runtime` to apply 17 suggestions)
warning: unexpected `cfg` condition value: `edge`
  --> /home/osobh/data/projects/rustytorch/crates/training/rtx-flash-attention/src/error.rs:48:11
   |
48 |     #[cfg(feature = "edge")]
   |           ^^^^^^^^^^^^^^^^
   |
   = note: expected values for `feature` are: `cuda`, `cudarc`, `default`, `experimental`, and `variants`
   = help: consider adding `edge` as a feature in `Cargo.toml`
   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
   = note: `#[warn(unexpected_cfgs)]` on by default

warning: unexpected `cfg` condition value: `edge`
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-flash-attention/src/error.rs:139:11
    |
139 |     #[cfg(feature = "edge")]
    |           ^^^^^^^^^^^^^^^^
    |
    = note: expected values for `feature` are: `cuda`, `cudarc`, `default`, `experimental`, and `variants`
    = help: consider adding `edge` as a feature in `Cargo.toml`
    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration

warning: unexpected `cfg` condition value: `edge`
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-flash-attention/src/error.rs:162:19
    |
162 |             #[cfg(feature = "edge")]
    |                   ^^^^^^^^^^^^^^^^
    |
    = note: expected values for `feature` are: `cuda`, `cudarc`, `default`, `experimental`, and `variants`
    = help: consider adding `edge` as a feature in `Cargo.toml`
    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration

warning: unexpected `cfg` condition value: `edge`
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-flash-attention/src/error.rs:182:19
    |
182 |             #[cfg(feature = "edge")]
    |                   ^^^^^^^^^^^^^^^^
    |
    = note: expected values for `feature` are: `cuda`, `cudarc`, `default`, `experimental`, and `variants`
    = help: consider adding `edge` as a feature in `Cargo.toml`
    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration

warning: unexpected `cfg` condition value: `edge`
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-flash-attention/src/config.rs:139:7
    |
139 | #[cfg(feature = "edge")]
    |       ^^^^^^^^^^^^^^^^
    |
    = note: expected values for `feature` are: `cuda`, `cudarc`, `default`, `experimental`, and `variants`
    = help: consider adding `edge` as a feature in `Cargo.toml`
    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration

warning: unexpected `cfg` condition value: `edge`
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-flash-attention/src/config.rs:158:7
    |
158 | #[cfg(feature = "edge")]
    |       ^^^^^^^^^^^^^^^^
    |
    = note: expected values for `feature` are: `cuda`, `cudarc`, `default`, `experimental`, and `variants`
    = help: consider adding `edge` as a feature in `Cargo.toml`
    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration

warning: unexpected `cfg` condition value: `edge`
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-flash-attention/src/config.rs:167:7
    |
167 | #[cfg(feature = "edge")]
    |       ^^^^^^^^^^^^^^^^
    |
    = note: expected values for `feature` are: `cuda`, `cudarc`, `default`, `experimental`, and `variants`
    = help: consider adding `edge` as a feature in `Cargo.toml`
    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration

warning: unexpected `cfg` condition value: `edge`
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-flash-attention/src/config.rs:381:7
    |
381 | #[cfg(feature = "edge")]
    |       ^^^^^^^^^^^^^^^^
    |
    = note: expected values for `feature` are: `cuda`, `cudarc`, `default`, `experimental`, and `variants`
    = help: consider adding `edge` as a feature in `Cargo.toml`
    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration

warning: unexpected `cfg` condition value: `edge`
  --> /home/osobh/data/projects/rustytorch/crates/training/rtx-flash-attention/src/config.rs:98:11
   |
98 |     #[cfg(feature = "edge")]
   |           ^^^^^^^^^^^^^^^^
   |
   = note: expected values for `feature` are: `cuda`, `cudarc`, `default`, `experimental`, and `variants`
   = help: consider adding `edge` as a feature in `Cargo.toml`
   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration

warning: unexpected `cfg` condition value: `edge`
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-flash-attention/src/config.rs:341:15
    |
341 |         #[cfg(feature = "edge")]
    |               ^^^^^^^^^^^^^^^^
    |
    = note: expected values for `feature` are: `cuda`, `cudarc`, `default`, `experimental`, and `variants`
    = help: consider adding `edge` as a feature in `Cargo.toml`
    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration

warning: unexpected `cfg` condition value: `edge`
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-flash-attention/src/config.rs:409:19
    |
409 |             #[cfg(feature = "edge")]
    |                   ^^^^^^^^^^^^^^^^
    |
    = note: expected values for `feature` are: `cuda`, `cudarc`, `default`, `experimental`, and `variants`
    = help: consider adding `edge` as a feature in `Cargo.toml`
    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration

warning: unused imports: `CudaBackend` and `StreamId`
  --> /home/osobh/data/projects/rustytorch/crates/training/rtx-flash-attention/src/core.rs:10:19
   |
10 | use rtx_runtime::{CudaBackend, Stream, DeviceManager, StreamId};
   |                   ^^^^^^^^^^^                         ^^^^^^^^
   |
   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default

warning: unused import: `error`
  --> /home/osobh/data/projects/rustytorch/crates/training/rtx-flash-attention/src/core.rs:14:34
   |
14 | use tracing::{info, debug, warn, error};
   |                                  ^^^^^

warning: unexpected `cfg` condition value: `edge`
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-flash-attention/src/core.rs:643:11
    |
643 |     #[cfg(feature = "edge")]
    |           ^^^^^^^^^^^^^^^^
    |
    = note: expected values for `feature` are: `cuda`, `cudarc`, `default`, `experimental`, and `variants`
    = help: consider adding `edge` as a feature in `Cargo.toml`
    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration

warning: unexpected `cfg` condition value: `edge`
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-flash-attention/src/core.rs:654:15
    |
654 |         #[cfg(feature = "edge")]
    |               ^^^^^^^^^^^^^^^^
    |
    = note: expected values for `feature` are: `cuda`, `cudarc`, `default`, `experimental`, and `variants`
    = help: consider adding `edge` as a feature in `Cargo.toml`
    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration

warning: unused import: `CudaBackend`
 --> /home/osobh/data/projects/rustytorch/crates/training/rtx-flash-attention/src/kernels/flash_forward.rs:5:27
  |
5 | use rtx_runtime::{Stream, CudaBackend};
  |                           ^^^^^^^^^^^

warning: unused import: `CudaFunction`
 --> /home/osobh/data/projects/rustytorch/crates/training/rtx-flash-attention/src/kernels/flash_forward.rs:6:47
  |
6 | use cudarc::driver::{CudaContext, CudaStream, CudaFunction, CudaModule, LaunchConfig, PushKernelArg};
  |                                               ^^^^^^^^^^^^

warning: unused import: `warn`
  --> /home/osobh/data/projects/rustytorch/crates/training/rtx-flash-attention/src/kernels/flash_forward.rs:10:28
   |
10 | use tracing::{debug, info, warn};
   |                            ^^^^

warning: unused import: `CudaFunction`
 --> /home/osobh/data/projects/rustytorch/crates/training/rtx-flash-attention/src/kernels/flash_backward.rs:7:47
  |
7 | use cudarc::driver::{CudaContext, CudaStream, CudaFunction, LaunchConfig, PushKernelArg};
  |                                               ^^^^^^^^^^^^

warning: unused import: `warn`
  --> /home/osobh/data/projects/rustytorch/crates/training/rtx-flash-attention/src/kernels/flash_backward.rs:10:28
   |
10 | use tracing::{debug, info, warn, error};
   |                            ^^^^

warning: unused import: `CudaBackend`
 --> /home/osobh/data/projects/rustytorch/crates/training/rtx-flash-attention/src/kernels/simple.rs:9:19
  |
9 | use rtx_runtime::{CudaBackend, Stream};
  |                   ^^^^^^^^^^^

warning: unused import: `CudaFunction`
  --> /home/osobh/data/projects/rustytorch/crates/training/rtx-flash-attention/src/kernels/simple.rs:10:47
   |
10 | use cudarc::driver::{CudaContext, CudaStream, CudaFunction, CudaModule, LaunchConfig, PushKernelArg};
   |                                               ^^^^^^^^^^^^

warning: unused imports: `FlashError`, `FlashResult`, and `config::FlashAttentionConfig`
  --> /home/osobh/data/projects/rustytorch/crates/training/rtx-flash-attention/src/kernels/mod.rs:22:5
   |
22 |     config::FlashAttentionConfig,
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
23 |     error::{FlashError, FlashResult},
   |             ^^^^^^^^^^  ^^^^^^^^^^^

warning: unused import: `rtx_tensor::Tensor`
  --> /home/osobh/data/projects/rustytorch/crates/training/rtx-flash-attention/src/kernels/mod.rs:25:5
   |
25 | use rtx_tensor::Tensor;
   |     ^^^^^^^^^^^^^^^^^^

warning: unused imports: `CudaBackend` and `Stream`
  --> /home/osobh/data/projects/rustytorch/crates/training/rtx-flash-attention/src/kernels/mod.rs:26:19
   |
26 | use rtx_runtime::{CudaBackend, Stream};
   |                   ^^^^^^^^^^^  ^^^^^^

warning: unused import: `std::sync::Arc`
  --> /home/osobh/data/projects/rustytorch/crates/training/rtx-flash-attention/src/kernels/mod.rs:27:5
   |
27 | use std::sync::Arc;
   |     ^^^^^^^^^^^^^^

warning: unused imports: `debug`, `info`, and `warn`
  --> /home/osobh/data/projects/rustytorch/crates/training/rtx-flash-attention/src/kernels/mod.rs:28:15
   |
28 | use tracing::{debug, info, warn};
   |               ^^^^^  ^^^^  ^^^^

warning: unused import: `warn`
  --> /home/osobh/data/projects/rustytorch/crates/training/rtx-flash-attention/src/memory/sram_manager.rs:10:28
   |
10 | use tracing::{debug, info, warn};
   |                            ^^^^

warning: unused import: `warn`
  --> /home/osobh/data/projects/rustytorch/crates/training/rtx-flash-attention/src/memory/pool.rs:11:28
   |
11 | use tracing::{debug, info, warn};
   |                            ^^^^

warning: unused import: `warn`
  --> /home/osobh/data/projects/rustytorch/crates/training/rtx-flash-attention/src/memory/mod.rs:14:28
   |
14 | use tracing::{debug, info, warn};
   |                            ^^^^

warning: unused imports: `DType` and `Device`
  --> /home/osobh/data/projects/rustytorch/crates/training/rtx-flash-attention/src/lib.rs:14:26
   |
14 | use rtx_tensor::{Tensor, Device, DType};
   |                          ^^^^^^  ^^^^^

warning: unused imports: `CudaBackend`, `DeviceId`, `DeviceManager`, `StreamId`, and `Stream`
  --> /home/osobh/data/projects/rustytorch/crates/training/rtx-flash-attention/src/lib.rs:15:19
   |
15 | use rtx_runtime::{CudaBackend, DeviceManager, Stream, StreamId, DeviceId};
   |                   ^^^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^  ^^^^^^^^  ^^^^^^^^

warning: unused import: `std::sync::Arc`
  --> /home/osobh/data/projects/rustytorch/crates/training/rtx-flash-attention/src/lib.rs:16:5
   |
16 | use std::sync::Arc;
   |     ^^^^^^^^^^^^^^

warning: unused imports: `debug`, `info`, and `warn`
  --> /home/osobh/data/projects/rustytorch/crates/training/rtx-flash-attention/src/lib.rs:17:15
   |
17 | use tracing::{debug, info, warn};
   |               ^^^^^  ^^^^  ^^^^

warning: variable does not need to be mutable
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-flash-attention/src/core.rs:652:13
    |
652 |         let mut backends = vec!["ProductionFlashAttention"];
    |             ----^^^^^^^^
    |             |
    |             help: remove this `mut`
    |
    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default

warning: unused variable: `context`
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-flash-attention/src/core.rs:667:13
    |
667 |         let context = CudaContext::new(0)
    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
    |
    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default

warning: unused variable: `output`
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-flash-attention/src/kernels/flash_backward.rs:261:9
    |
261 |         output: &Tensor,
    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`

warning: unused variable: `grid_dim`
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-flash-attention/src/kernels/flash_backward.rs:410:44
    |
410 |     fn calculate_backward_occupancy(&self, grid_dim: (u32, u32, u32), block_dim: (u32, u32, u32), shared_mem: usize) -> FlashResult...
    |                                            ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_grid_dim`

warning: unused variable: `grid_dim`
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-flash-attention/src/kernels/simple.rs:518:44
    |
518 |     fn calculate_backward_occupancy(&self, grid_dim: (u32, u32, u32), block_dim: (u32, u32, u32), shared_mem: usize) -> f32 {
    |                                            ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_grid_dim`

warning: unused variable: `max_threads`
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-flash-attention/src/kernels/simple.rs:647:13
    |
647 |         let max_threads = 2048; // Maximum threads per block
    |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_threads`

warning: unused variable: `bucket_size`
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-flash-attention/src/memory/pool.rs:238:18
    |
238 |             for (bucket_size, entries) in buckets.iter_mut() {
    |                  ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_bucket_size`

warning: fields `cuda_context` and `device_manager` are never read
  --> /home/osobh/data/projects/rustytorch/crates/training/rtx-flash-attention/src/core.rs:55:5
   |
53 | pub struct FlashAttention {
   |            -------------- fields in this struct
54 |     config: FlashAttentionConfig,
55 |     cuda_context: Arc<CudaContext>,
   |     ^^^^^^^^^^^^
...
59 |     device_manager: Arc<DeviceManager>,
   |     ^^^^^^^^^^^^^^
   |
   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default

warning: field `cuda_context` is never read
  --> /home/osobh/data/projects/rustytorch/crates/training/rtx-flash-attention/src/kernels/flash_forward.rs:18:5
   |
17 | pub struct FlashForwardKernel {
   |            ------------------ field in this struct
18 |     cuda_context: Arc<CudaContext>,
   |     ^^^^^^^^^^^^
   |
   = note: `FlashForwardKernel` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis

warning: fields `sequential_ratio`, `transposed_ratio`, and `random_ratio` are never read
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-flash-attention/src/memory/mod.rs:362:13
    |
360 |         struct AccessPatternAnalysis {
    |                --------------------- fields in this struct
361 |             dominant_pattern: AccessPattern,
362 |             sequential_ratio: f32,
    |             ^^^^^^^^^^^^^^^^
363 |             transposed_ratio: f32,
    |             ^^^^^^^^^^^^^^^^
364 |             random_ratio: f32,
    |             ^^^^^^^^^^^^
    |
    = note: `AccessPatternAnalysis` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis

warning: field `cuda_backend` is never read
  --> /home/osobh/data/projects/rustytorch/crates/training/rtx-flash-attention/src/memory/sram_manager.rs:64:5
   |
60 | pub struct SRAMManager {
   |            ----------- field in this struct
...
64 |     cuda_backend: Arc<CudaBackend>,
   |     ^^^^^^^^^^^^

warning: field `config` is never read
  --> /home/osobh/data/projects/rustytorch/crates/training/rtx-flash-attention/src/memory/block_manager.rs:43:5
   |
41 | pub struct BlockManager {
   |            ------------ field in this struct
42 |     /// Configuration
43 |     config: FlashAttentionConfig,
   |     ^^^^^^

warning: field `config` is never read
  --> /home/osobh/data/projects/rustytorch/crates/training/rtx-flash-attention/src/memory/pool.rs:50:5
   |
48 | pub struct MemoryPool {
   |            ---------- field in this struct
49 |     /// Configuration
50 |     config: FlashAttentionConfig,
   |     ^^^^^^

warning: `rtx-kernel` (lib) generated 16 warnings (16 duplicates)
warning: `rtx-flash-attention` (lib) generated 47 warnings (run `cargo fix --lib -p rtx-flash-attention` to apply 28 suggestions)
warning: unused import: `Device`
 --> /home/osobh/data/projects/rustytorch/crates/core/rtx-autograd/src/backward/activations.rs:5:34
  |
5 | use rtx_tensor::{NodeId, Tensor, Device};
  |                                  ^^^^^^
  |
  = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default

warning: unused imports: `ComplexBackwardFunction` and `ComplexGradient`
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-autograd/src/backward/gpu_accelerated.rs:10:31
   |
10 | use super::{BackwardFunction, ComplexBackwardFunction, ComplexGradient, BackwardContext};
   |                               ^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^

warning: unused import: `Device`
 --> /home/osobh/data/projects/rustytorch/crates/core/rtx-autograd/src/backward/testing.rs:9:34
  |
9 | use rtx_tensor::{NodeId, Tensor, Device};
  |                                  ^^^^^^

warning: unused import: `ComplexGradient`
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-autograd/src/backward/testing.rs:14:56
   |
14 | use super::{BackwardFunction, ComplexBackwardFunction, ComplexGradient};
   |                                                        ^^^^^^^^^^^^^^^

warning: unused imports: `AutogradTape`, `TapeNode`, and `record_operation`
 --> /home/osobh/data/projects/rustytorch/crates/core/rtx-autograd/src/higher_order.rs:6:13
  |
6 | use crate::{AutogradTape, TapeNode, record_operation, is_grad_enabled, get_current_tape};
  |             ^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^^^^^^

warning: unused import: `BackwardContext`
 --> /home/osobh/data/projects/rustytorch/crates/core/rtx-autograd/src/higher_order.rs:7:41
  |
7 | use crate::backward::{BackwardFunction, BackwardContext};
  |                                         ^^^^^^^^^^^^^^^

warning: unused import: `Shape`
 --> /home/osobh/data/projects/rustytorch/crates/core/rtx-autograd/src/higher_order.rs:8:42
  |
8 | use rtx_tensor::{Tensor, NodeId, Device, Shape};
  |                                          ^^^^^

warning: unused imports: `TapeNode` and `record_operation`
 --> /home/osobh/data/projects/rustytorch/crates/core/rtx-autograd/src/checkpointing.rs:7:27
  |
7 | use crate::{AutogradTape, TapeNode, record_operation, BackwardFunction};
  |                           ^^^^^^^^  ^^^^^^^^^^^^^^^^

warning: unused import: `Device`
 --> /home/osobh/data/projects/rustytorch/crates/core/rtx-autograd/src/checkpointing.rs:8:34
  |
8 | use rtx_tensor::{Tensor, NodeId, Device};
  |                                  ^^^^^^

warning: unused import: `VecDeque`
 --> /home/osobh/data/projects/rustytorch/crates/core/rtx-autograd/src/computation_graph.rs:8:42
  |
8 | use std::collections::{HashMap, HashSet, VecDeque};
  |                                          ^^^^^^^^

warning: unused import: `GraphNode`
 --> /home/osobh/data/projects/rustytorch/crates/core/rtx-autograd/src/graph_traversal.rs:4:50
  |
4 | use crate::computation_graph::{ComputationGraph, GraphNode, Operation};
  |                                                  ^^^^^^^^^

warning: unused imports: `Arc` and `Mutex`
 --> /home/osobh/data/projects/rustytorch/crates/core/rtx-autograd/src/graph_traversal.rs:8:17
  |
8 | use std::sync::{Arc, Mutex};
  |                 ^^^  ^^^^^

warning: unused import: `crate::integration::TensorAutograd`
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-autograd/src/backward/basic_ops.rs:73:13
   |
73 |         use crate::integration::TensorAutograd;
   |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: unused import: `crate::integration::TensorAutograd`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-autograd/src/backward/basic_ops.rs:505:13
    |
505 |         use crate::integration::TensorAutograd;
    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: unused import: `integration::TensorAutograd`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-autograd/src/lib.rs:342:9
    |
342 |     use integration::TensorAutograd;
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: unused import: `ComplexBackwardFunction`
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-autograd/src/backward/testing.rs:14:31
   |
14 | use super::{BackwardFunction, ComplexBackwardFunction, ComplexGradient};
   |                               ^^^^^^^^^^^^^^^^^^^^^^^

warning: unused import: `BackwardFunction`
 --> /home/osobh/data/projects/rustytorch/crates/core/rtx-autograd/src/higher_order.rs:7:23
  |
7 | use crate::backward::{BackwardFunction, BackwardContext};
  |                       ^^^^^^^^^^^^^^^^

warning: unused variable: `existing_node_id`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-autograd/src/tape.rs:345:65
    |
345 | ...                   if let Some((existing_grad, existing_node_id)) = gradients.remove(&input_id) {
    |                                                   ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_existing_node_id`
    |
    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default

warning: unused variable: `grad_output_node_id`
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-autograd/src/backward/traits.rs:41:9
   |
41 |         grad_output_node_id: Option<NodeId>,
   |         ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_grad_output_node_id`

warning: unused variable: `create_graph`
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-autograd/src/backward/traits.rs:43:9
   |
43 |         create_graph: bool,
   |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_create_graph`

warning: unused variable: `order`
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-autograd/src/higher_order.rs:64:9
   |
64 |         order: usize,
   |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_order`

warning: unused variable: `gradient`
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-autograd/src/higher_order.rs:94:36
   |
94 |     fn create_gradient_node(&self, gradient: &Tensor) -> Result<NodeId> {
   |                                    ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_gradient`

warning: unused variable: `num_inputs`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-autograd/src/higher_order.rs:161:13
    |
161 |         let num_inputs = inputs.len();
    |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_inputs`

warning: unused variable: `gradient`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-autograd/src/higher_order.rs:195:48
    |
195 |     fn create_gradient_node_for_hessian(&self, gradient: &Tensor) -> Result<NodeId> {
    |                                                ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_gradient`

warning: unused variable: `node_id`
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-autograd/src/checkpointing.rs:53:37
   |
53 |     pub fn should_checkpoint(&self, node_id: NodeId, operation_name: &str, step: usize) -> bool {
   |                                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_node_id`

warning: unused variable: `grad_input`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-autograd/src/computation_graph.rs:128:21
    |
128 |                 let grad_input = grad_output.clone();
    |                     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_grad_input`

warning: unused variable: `grad_input`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-autograd/src/computation_graph.rs:134:21
    |
134 |                 let grad_input = grad_output.clone();
    |                     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_grad_input`

warning: unused variable: `grad_input`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-autograd/src/computation_graph.rs:139:21
    |
139 |                 let grad_input = grad_output.clone();
    |                     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_grad_input`

warning: variable does not need to be mutable
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-autograd/src/graph_traversal.rs:40:9
   |
40 |     let mut adjacency = HashMap::new();
   |         ----^^^^^^^^^
   |         |
   |         help: remove this `mut`
   |
   = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default

warning: unused variable: `graph`
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-autograd/src/graph_traversal.rs:39:28
   |
39 | fn build_reverse_adjacency(graph: &ComputationGraph) -> HashMap<NodeId, Vec<NodeId>> {
   |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_graph`

warning: unused variable: `graph`
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-autograd/src/graph_traversal.rs:74:5
   |
74 |     graph: &ComputationGraph,
   |     ^^^^^ help: if this is intentional, prefix it with an underscore: `_graph`

warning: unused variable: `node`
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-autograd/src/graph_traversal.rs:86:20
   |
86 |     while let Some(node) = queue.pop_front() {
   |                    ^^^^ help: if this is intentional, prefix it with an underscore: `_node`

warning: unused variable: `node`
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-autograd/src/graph_traversal.rs:95:20
   |
95 |     while let Some(node) = queue.pop_front() {
   |                    ^^^^ help: if this is intentional, prefix it with an underscore: `_node`

warning: unused variable: `graph`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-autograd/src/graph_traversal.rs:236:20
    |
236 | fn get_node_tensor(graph: &ComputationGraph, node_id: NodeId) -> Result<Tensor> {
    |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_graph`

warning: unused variable: `node_id`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-autograd/src/graph_traversal.rs:236:46
    |
236 | fn get_node_tensor(graph: &ComputationGraph, node_id: NodeId) -> Result<Tensor> {
    |                                              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_node_id`

warning: unused variable: `graph`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-autograd/src/graph_traversal.rs:243:23
    |
243 | fn get_node_operation(graph: &ComputationGraph, node_id: NodeId) -> Result<Option<Operation>> {
    |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_graph`

warning: unused variable: `node_id`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-autograd/src/graph_traversal.rs:243:49
    |
243 | fn get_node_operation(graph: &ComputationGraph, node_id: NodeId) -> Result<Option<Operation>> {
    |                                                 ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_node_id`

warning: field `context` is never read
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-autograd/src/backward/basic_ops.rs:607:5
    |
605 | pub struct ScalarMulBackward {
    |            ----------------- field in this struct
606 |     /// Context for this operation
607 |     context: BackwardContext,
    |     ^^^^^^^
    |
    = note: `ScalarMulBackward` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default

warning: field `context` is never read
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-autograd/src/backward/activations.rs:15:5
   |
13 | pub struct ReLUBackward {
   |            ------------ field in this struct
14 |     /// Context for this operation
15 |     context: BackwardContext,
   |     ^^^^^^^
   |
   = note: `ReLUBackward` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis

warning: field `context` is never read
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-autograd/src/backward/activations.rs:135:5
    |
133 | pub struct SigmoidBackward {
    |            --------------- field in this struct
134 |     /// Context for this operation
135 |     context: BackwardContext,
    |     ^^^^^^^
    |
    = note: `SigmoidBackward` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis

warning: field `context` is never read
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-autograd/src/backward/activations.rs:250:5
    |
248 | pub struct TanhBackward {
    |            ------------ field in this struct
249 |     /// Context for this operation
250 |     context: BackwardContext,
    |     ^^^^^^^
    |
    = note: `TanhBackward` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis

warning: field `context` is never read
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-autograd/src/backward/activations.rs:365:5
    |
363 | pub struct LeakyReLUBackward {
    |            ----------------- field in this struct
364 |     /// Context for this operation
365 |     context: BackwardContext,
    |     ^^^^^^^
    |
    = note: `LeakyReLUBackward` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis

warning: field `context` is never read
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-autograd/src/backward/activations.rs:449:5
    |
447 | pub struct ELUBackward {
    |            ----------- field in this struct
448 |     /// Context for this operation
449 |     context: BackwardContext,
    |     ^^^^^^^
    |
    = note: `ELUBackward` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis

warning: field `context` is never read
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-autograd/src/backward/losses.rs:15:5
   |
13 | pub struct MSEBackward {
   |            ----------- field in this struct
14 |     /// Context for this operation
15 |     context: BackwardContext,
   |     ^^^^^^^
   |
   = note: `MSEBackward` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis

warning: fields `context` and `logits` are never read
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-autograd/src/backward/losses.rs:107:5
    |
105 | pub struct CrossEntropyBackward {
    |            -------------------- fields in this struct
106 |     /// Context for this operation
107 |     context: BackwardContext,
    |     ^^^^^^^
108 |     /// Input logits
109 |     logits: Tensor,
    |     ^^^^^^
    |
    = note: `CrossEntropyBackward` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis

warning: field `context` is never read
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-autograd/src/backward/losses.rs:207:5
    |
205 | pub struct BCEBackward {
    |            ----------- field in this struct
206 |     /// Context for this operation
207 |     context: BackwardContext,
    |     ^^^^^^^
    |
    = note: `BCEBackward` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis

warning: field `context` is never read
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-autograd/src/backward/losses.rs:302:5
    |
300 | pub struct HuberBackward {
    |            ------------- field in this struct
301 |     /// Context for this operation
302 |     context: BackwardContext,
    |     ^^^^^^^
    |
    = note: `HuberBackward` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis

warning: fields `input_z1_imag`, `input_z2_real`, and `input_z2_imag` are never read
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-autograd/src/backward/complex_extended.rs:19:5
   |
14 | pub struct ComplexDivBackward {
   |            ------------------ fields in this struct
...
19 |     input_z1_imag: Tensor,
   |     ^^^^^^^^^^^^^
20 |     /// Second complex input (stored as real/imag tensors)
21 |     input_z2_real: Tensor,
   |     ^^^^^^^^^^^^^
22 |     input_z2_imag: Tensor,
   |     ^^^^^^^^^^^^^
   |
   = note: `ComplexDivBackward` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis

warning: field `context` is never read
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-autograd/src/backward/complex_extended.rs:80:5
   |
78 | pub struct ComplexMagnitudeBackward {
   |            ------------------------ field in this struct
79 |     /// Context for this operation
80 |     context: BackwardContext,
   |     ^^^^^^^
   |
   = note: `ComplexMagnitudeBackward` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis

warning: field `input_imag` is never read
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-autograd/src/backward/complex_extended.rs:171:5
    |
165 | pub struct ComplexPhaseBackward {
    |            -------------------- field in this struct
...
171 |     input_imag: Tensor,
    |     ^^^^^^^^^^
    |
    = note: `ComplexPhaseBackward` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis

warning: fields `input_a_imag` and `input_b_imag` are never read
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-autograd/src/backward/complex_extended.rs:222:5
    |
217 | pub struct ComplexMatMulBackward {
    |            --------------------- fields in this struct
...
222 |     input_a_imag: Tensor,
    |     ^^^^^^^^^^^^
...
225 |     input_b_imag: Tensor,
    |     ^^^^^^^^^^^^
    |
    = note: `ComplexMatMulBackward` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis

warning: fields `context` and `norm_mode` are never read
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-autograd/src/backward/complex_extended.rs:282:5
    |
280 | pub struct ComplexFFTBackward {
    |            ------------------ fields in this struct
281 |     /// Context for this operation
282 |     context: BackwardContext,
    |     ^^^^^^^
283 |     /// FFT normalization mode
284 |     norm_mode: String,
    |     ^^^^^^^^^
    |
    = note: `ComplexFFTBackward` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis

warning: fields `context` and `norm_mode` are never read
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-autograd/src/backward/complex_extended.rs:333:5
    |
331 | pub struct ComplexIFFTBackward {
    |            ------------------- fields in this struct
332 |     /// Context for this operation
333 |     context: BackwardContext,
    |     ^^^^^^^
334 |     /// IFFT normalization mode
335 |     norm_mode: String,
    |     ^^^^^^^^^
    |
    = note: `ComplexIFFTBackward` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis

warning: field `context` is never read
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-autograd/src/backward/gpu_accelerated.rs:17:5
   |
15 | pub struct GpuMatMulBackward {
   |            ----------------- field in this struct
16 |     /// Context for this operation
17 |     context: BackwardContext,
   |     ^^^^^^^
   |
   = note: `GpuMatMulBackward` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis

warning: fields `stride`, `padding`, and `dilation` are never read
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-autograd/src/backward/gpu_accelerated.rs:177:5
    |
169 | pub struct GpuConvBackward {
    |            --------------- fields in this struct
...
177 |     stride: Vec<usize>,
    |     ^^^^^^
178 |     padding: Vec<usize>,
    |     ^^^^^^^
179 |     dilation: Vec<usize>,
    |     ^^^^^^^^
    |
    = note: `GpuConvBackward` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis

warning: field `retain_graph` is never read
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-autograd/src/higher_order.rs:17:5
   |
13 | pub struct HigherOrderGradient {
   |            ------------------- field in this struct
...
17 |     retain_graph: bool,
   |     ^^^^^^^^^^^^

warning: unused `std::result::Result` that must be used
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-autograd/src/variable_extensions.rs:86:13
   |
86 |             graph.add_edge(self.node_id(), node.lock().unwrap().node_id);
   |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = note: this `Result` may be an `Err` variant, which should be handled
   = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
help: use `let _ = ...` to ignore the resulting value
   |
86 |             let _ = graph.add_edge(self.node_id(), node.lock().unwrap().node_id);
   |             +++++++

warning: unused `std::result::Result` that must be used
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-autograd/src/variable_extensions.rs:105:13
    |
105 |             graph.add_edge(self.node_id(), node.lock().unwrap().node_id);
    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
    = note: this `Result` may be an `Err` variant, which should be handled
help: use `let _ = ...` to ignore the resulting value
    |
105 |             let _ = graph.add_edge(self.node_id(), node.lock().unwrap().node_id);
    |             +++++++

warning: `rtx-autograd` (lib) generated 58 warnings (run `cargo fix --lib -p rtx-autograd` to apply 32 suggestions)
warning: `rtx-runtime` (lib) generated 51 warnings (51 duplicates)
warning: unused import: `DType`
 --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/conv/common.rs:4:34
  |
4 | use rtx_tensor::{Tensor, Device, DType};
  |                                  ^^^^^
  |
  = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default

warning: unused import: `Shape`
 --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/conv/conv1d.rs:4:34
  |
4 | use rtx_tensor::{Tensor, Device, Shape};
  |                                  ^^^^^

warning: unused import: `Shape`
 --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/conv/conv2d.rs:4:34
  |
4 | use rtx_tensor::{Tensor, Device, Shape};
  |                                  ^^^^^

warning: variable does not need to be mutable
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/conv/common.rs:141:13
    |
141 |         let mut padded = Tensor::zeros([batch, channels, padded_height, padded_width], device)?;
    |             ----^^^^^^
    |             |
    |             help: remove this `mut`
    |
    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default

warning: unused variable: `stride`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/conv/common.rs:180:9
    |
180 |         stride: (usize, usize),
    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_stride`
    |
    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default

warning: unused variable: `padding`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/conv/common.rs:181:9
    |
181 |         padding: (usize, usize),
    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_padding`

warning: unused variable: `dilation`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/conv/common.rs:182:9
    |
182 |         dilation: (usize, usize),
    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dilation`

warning: unused variable: `kernel_size`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/conv/common.rs:206:9
    |
206 |         kernel_size: (usize, usize),
    |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_kernel_size`

warning: unused variable: `stride`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/conv/common.rs:207:9
    |
207 |         stride: (usize, usize),
    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_stride`

warning: unused variable: `padding`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/conv/common.rs:208:9
    |
208 |         padding: (usize, usize),
    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_padding`

warning: unused variable: `dilation`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/conv/common.rs:209:9
    |
209 |         dilation: (usize, usize),
    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dilation`

warning: unused variable: `input_length`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/conv/conv1d.rs:250:13
    |
250 |         let input_length = input_shape.dims()[2];
    |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_input_length`

warning: variable does not need to be mutable
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/conv/conv1d.rs:297:13
    |
297 |         let mut padded = Tensor::zeros([batch_size, in_channels, padded_length], &self.device)?;
    |             ----^^^^^^
    |             |
    |             help: remove this `mut`

warning: unused variable: `batch_size`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/conv/conv1d.rs:309:9
    |
309 |         batch_size: usize,
    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_batch_size`

warning: unused variable: `output_length`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/conv/conv1d.rs:310:9
    |
310 |         output_length: usize,
    |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_output_length`

warning: unused variable: `input_height`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/conv/conv2d.rs:275:13
    |
275 |         let input_height = input_shape.dims()[2];
    |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_input_height`

warning: unused variable: `input_width`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/conv/conv2d.rs:276:13
    |
276 |         let input_width = input_shape.dims()[3];
    |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_input_width`

warning: unused variable: `padded_input`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/conv/conv2d.rs:279:13
    |
279 |         let padded_input = if self.config.padding.0 > 0 || self.config.padding.1 > 0 {
    |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_padded_input`

warning: unused variable: `batch_size`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/conv/conv2d.rs:323:9
    |
323 |         batch_size: usize,
    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_batch_size`

warning: unused variable: `output_spatial`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/conv/conv2d.rs:324:9
    |
324 |         output_spatial: usize,
    |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_output_spatial`

warning: variable does not need to be mutable
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/pooling/maxpool2d.rs:170:13
    |
170 |         let mut output = Tensor::zeros(output_shape.clone(), &self.device)?;
    |             ----^^^^^^
    |             |
    |             help: remove this `mut`

warning: unused variable: `b`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/pooling/maxpool2d.rs:182:13
    |
182 |         for b in 0..batch_size {
    |             ^ help: if this is intentional, prefix it with an underscore: `_b`

warning: unused variable: `c`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/pooling/maxpool2d.rs:183:17
    |
183 |             for c in 0..channels {
    |                 ^ help: if this is intentional, prefix it with an underscore: `_c`

warning: variable does not need to be mutable
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/pooling/maxpool2d.rs:238:13
    |
238 |         let mut padded = Tensor::full(
    |             ----^^^^^^
    |             |
    |             help: remove this `mut`

warning: variable does not need to be mutable
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/pooling/avgpool2d.rs:164:13
    |
164 |         let mut output = Tensor::zeros(output_shape.clone(), &self.device)?;
    |             ----^^^^^^
    |             |
    |             help: remove this `mut`

warning: unused variable: `b`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/pooling/avgpool2d.rs:174:13
    |
174 |         for b in 0..batch_size {
    |             ^ help: if this is intentional, prefix it with an underscore: `_b`

warning: unused variable: `c`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/pooling/avgpool2d.rs:175:17
    |
175 |             for c in 0..channels {
    |                 ^ help: if this is intentional, prefix it with an underscore: `_c`

warning: unused variable: `avg`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/pooling/avgpool2d.rs:214:29
    |
214 |                         let avg = sum / divisor;
    |                             ^^^ help: if this is intentional, prefix it with an underscore: `_avg`

warning: unused variable: `kernel_h`
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/pooling/adaptive.rs:64:14
   |
64 |         let (kernel_h, kernel_w, stride_h, stride_w) = self.calculate_adaptive_params(input_h, input_w);
   |              ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_kernel_h`

warning: unused variable: `kernel_w`
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/pooling/adaptive.rs:64:24
   |
64 |         let (kernel_h, kernel_w, stride_h, stride_w) = self.calculate_adaptive_params(input_h, input_w);
   |                        ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_kernel_w`

warning: unused variable: `stride_h`
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/pooling/adaptive.rs:64:34
   |
64 |         let (kernel_h, kernel_w, stride_h, stride_w) = self.calculate_adaptive_params(input_h, input_w);
   |                                  ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_stride_h`

warning: unused variable: `stride_w`
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/pooling/adaptive.rs:64:44
   |
64 |         let (kernel_h, kernel_w, stride_h, stride_w) = self.calculate_adaptive_params(input_h, input_w);
   |                                            ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_stride_w`

warning: unused variable: `padding`
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/pooling/mod.rs:59:9
   |
59 |         padding: usize,
   |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_padding`

warning: unused variable: `low`
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/init.rs:26:37
   |
26 | pub fn uniform(tensor: &mut Tensor, low: f32, high: f32) -> Result<()> {
   |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_low`

warning: unused variable: `high`
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/init.rs:26:47
   |
26 | pub fn uniform(tensor: &mut Tensor, low: f32, high: f32) -> Result<()> {
   |                                               ^^^^ help: if this is intentional, prefix it with an underscore: `_high`

warning: unused variable: `mean`
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/init.rs:33:36
   |
33 | pub fn normal(tensor: &mut Tensor, mean: f32, std: f32) -> Result<()> {
   |                                    ^^^^ help: if this is intentional, prefix it with an underscore: `_mean`

warning: unused variable: `std`
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/init.rs:33:47
   |
33 | pub fn normal(tensor: &mut Tensor, mean: f32, std: f32) -> Result<()> {
   |                                               ^^^ help: if this is intentional, prefix it with an underscore: `_std`

warning: method `update_weight_transpose` is never used
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/linear.rs:54:8
   |
18 | impl Linear {
   | ----------- method in this implementation
...
54 |     fn update_weight_transpose(&mut self) -> Result<()> {
   |        ^^^^^^^^^^^^^^^^^^^^^^^
   |
   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default

warning: field `inplace` is never read
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/activation.rs:10:5
   |
 9 | pub struct ReLU {
   |            ---- field in this struct
10 |     inplace: bool,
   |     ^^^^^^^
   |
   = note: `ReLU` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis

warning: field `num_batches_tracked` is never read
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/norm/batch_norm.rs:363:5
    |
357 | pub struct BatchNorm1d {
    |            ----------- field in this struct
...
363 |     num_batches_tracked: usize,
    |     ^^^^^^^^^^^^^^^^^^^
    |
    = note: `BatchNorm1d` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis

warning: field `num_batches_tracked` is never read
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/norm/batch_norm.rs:524:5
    |
518 | pub struct BatchNorm3d {
    |            ----------- field in this struct
...
524 |     num_batches_tracked: usize,
    |     ^^^^^^^^^^^^^^^^^^^
    |
    = note: `BatchNorm3d` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis

warning: method `has_nan_check` is never used
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/norm/layer_norm.rs:105:8
    |
 23 | impl LayerNorm {
    | -------------- method in this implementation
...
105 |     fn has_nan_check(&self, tensor: &Tensor) -> Result<bool> {
    |        ^^^^^^^^^^^^^

warning: trait `TensorExt` is never used
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/norm/layer_norm.rs:342:7
    |
342 | trait TensorExt {
    |       ^^^^^^^^^

warning: missing documentation for a struct field
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/conv/conv1d.rs:10:5
   |
10 |     pub in_channels: usize,
   |     ^^^^^^^^^^^^^^^^^^^^^^
   |
note: the lint level is defined here
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/lib.rs:5:9
   |
 5 | #![warn(missing_docs)]
   |         ^^^^^^^^^^^^

warning: missing documentation for a struct field
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/conv/conv1d.rs:11:5
   |
11 |     pub out_channels: usize,
   |     ^^^^^^^^^^^^^^^^^^^^^^^

warning: missing documentation for a struct field
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/conv/conv1d.rs:12:5
   |
12 |     pub kernel_size: usize,
   |     ^^^^^^^^^^^^^^^^^^^^^^

warning: missing documentation for a struct field
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/conv/conv1d.rs:13:5
   |
13 |     pub stride: usize,
   |     ^^^^^^^^^^^^^^^^^

warning: missing documentation for a struct field
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/conv/conv1d.rs:14:5
   |
14 |     pub padding: usize,
   |     ^^^^^^^^^^^^^^^^^^

warning: missing documentation for a struct field
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/conv/conv1d.rs:15:5
   |
15 |     pub dilation: usize,
   |     ^^^^^^^^^^^^^^^^^^^

warning: missing documentation for a struct field
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/conv/conv1d.rs:16:5
   |
16 |     pub groups: usize,
   |     ^^^^^^^^^^^^^^^^^

warning: missing documentation for a struct field
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/conv/conv1d.rs:17:5
   |
17 |     pub bias: bool,
   |     ^^^^^^^^^^^^^^

warning: missing documentation for a struct field
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/conv/conv2d.rs:10:5
   |
10 |     pub in_channels: usize,
   |     ^^^^^^^^^^^^^^^^^^^^^^

warning: missing documentation for a struct field
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/conv/conv2d.rs:11:5
   |
11 |     pub out_channels: usize,
   |     ^^^^^^^^^^^^^^^^^^^^^^^

warning: missing documentation for a struct field
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/conv/conv2d.rs:12:5
   |
12 |     pub kernel_size: (usize, usize),
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: missing documentation for a struct field
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/conv/conv2d.rs:13:5
   |
13 |     pub stride: (usize, usize),
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: missing documentation for a struct field
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/conv/conv2d.rs:14:5
   |
14 |     pub padding: (usize, usize),
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: missing documentation for a struct field
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/conv/conv2d.rs:15:5
   |
15 |     pub dilation: (usize, usize),
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: missing documentation for a struct field
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/conv/conv2d.rs:16:5
   |
16 |     pub groups: usize,
   |     ^^^^^^^^^^^^^^^^^

warning: missing documentation for a struct field
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/conv/conv2d.rs:17:5
   |
17 |     pub bias: bool,
   |     ^^^^^^^^^^^^^^

warning: missing documentation for a struct field
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/norm/batch_norm.rs:16:5
   |
16 |     pub num_features: usize,
   |     ^^^^^^^^^^^^^^^^^^^^^^^

warning: missing documentation for a struct field
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/norm/batch_norm.rs:17:5
   |
17 |     pub eps: f32,
   |     ^^^^^^^^^^^^

warning: missing documentation for a struct field
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/norm/batch_norm.rs:18:5
   |
18 |     pub momentum: f32,
   |     ^^^^^^^^^^^^^^^^^

warning: missing documentation for a struct field
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/norm/batch_norm.rs:19:5
   |
19 |     pub affine: bool,
   |     ^^^^^^^^^^^^^^^^

warning: missing documentation for a struct field
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/norm/batch_norm.rs:20:5
   |
20 |     pub track_running_stats: bool,
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: missing documentation for a struct field
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/norm/batch_norm.rs:21:5
   |
21 |     pub dtype: DType,
   |     ^^^^^^^^^^^^^^^^

warning: missing documentation for a module
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/pooling/mod.rs:22:1
   |
22 | pub mod utils {
   | ^^^^^^^^^^^^^

warning: missing documentation for a struct field
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/pooling/maxpool2d.rs:10:5
   |
10 |     pub kernel_size: (usize, usize),
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: missing documentation for a struct field
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/pooling/maxpool2d.rs:11:5
   |
11 |     pub stride: Option<(usize, usize)>,
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: missing documentation for a struct field
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/pooling/maxpool2d.rs:12:5
   |
12 |     pub padding: (usize, usize),
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: missing documentation for a struct field
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/pooling/maxpool2d.rs:13:5
   |
13 |     pub dilation: (usize, usize),
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: missing documentation for a struct field
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/pooling/maxpool2d.rs:14:5
   |
14 |     pub ceil_mode: bool,
   |     ^^^^^^^^^^^^^^^^^^^

warning: missing documentation for a struct field
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/pooling/maxpool2d.rs:15:5
   |
15 |     pub return_indices: bool,
   |     ^^^^^^^^^^^^^^^^^^^^^^^^

warning: missing documentation for a struct field
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/pooling/avgpool2d.rs:10:5
   |
10 |     pub kernel_size: (usize, usize),
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: missing documentation for a struct field
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/pooling/avgpool2d.rs:11:5
   |
11 |     pub stride: Option<(usize, usize)>,
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: missing documentation for a struct field
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/pooling/avgpool2d.rs:12:5
   |
12 |     pub padding: (usize, usize),
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: missing documentation for a struct field
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/pooling/avgpool2d.rs:13:5
   |
13 |     pub ceil_mode: bool,
   |     ^^^^^^^^^^^^^^^^^^^

warning: missing documentation for a struct field
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/pooling/avgpool2d.rs:14:5
   |
14 |     pub count_include_pad: bool,
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: missing documentation for a struct field
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/layers/pooling/avgpool2d.rs:15:5
   |
15 |     pub divisor_override: Option<usize>,
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: missing documentation for a struct field
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/utils.rs:111:5
    |
111 |     pub mean: f32,
    |     ^^^^^^^^^^^^^

warning: missing documentation for a struct field
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/utils.rs:112:5
    |
112 |     pub std: f32,
    |     ^^^^^^^^^^^^

warning: missing documentation for a struct field
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/utils.rs:113:5
    |
113 |     pub min: f32,
    |     ^^^^^^^^^^^^

warning: missing documentation for a struct field
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/utils.rs:114:5
    |
114 |     pub max: f32,
    |     ^^^^^^^^^^^^

warning: missing documentation for a struct field
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/utils.rs:115:5
    |
115 |     pub shape: Vec<usize>,
    |     ^^^^^^^^^^^^^^^^^^^^^

warning: missing documentation for a struct field
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-nn/src/utils.rs:116:5
    |
116 |     pub dtype: rtx_tensor::DType,
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: unused import: `MinimalDevice`
 --> /home/osobh/data/projects/rustytorch/crates/core/rtx-losses/src/info_nce_minimal.rs:6:44
  |
6 | use crate::minimal_tensor::{MinimalTensor, MinimalDevice};
  |                                            ^^^^^^^^^^^^^
  |
  = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default

warning: unused import: `MinimalDevice`
 --> /home/osobh/data/projects/rustytorch/crates/core/rtx-losses/src/swav_minimal.rs:7:44
  |
7 | use crate::minimal_tensor::{MinimalTensor, MinimalDevice};
  |                                            ^^^^^^^^^^^^^

warning: unused import: `MinimalDevice`
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-losses/src/triplet_loss.rs:15:28
   |
15 | use crate::{MinimalTensor, MinimalDevice, Result, LossError, Reduction, MinimalLoss};
   |                            ^^^^^^^^^^^^^

warning: unused import: `MinimalDevice`
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-losses/src/huber_loss.rs:13:28
   |
13 | use crate::{MinimalTensor, MinimalDevice, Result, LossError, Reduction, MinimalLoss};
   |                            ^^^^^^^^^^^^^

warning: unused import: `MinimalDevice`
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-losses/src/quantile_loss.rs:17:28
   |
17 | use crate::{MinimalTensor, MinimalDevice, Result, LossError, Reduction, MinimalLoss};
   |                            ^^^^^^^^^^^^^

warning: unused import: `MinimalDevice`
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-losses/src/logcosh_loss.rs:16:28
   |
16 | use crate::{MinimalTensor, MinimalDevice, Result, LossError, Reduction, MinimalLoss};
   |                            ^^^^^^^^^^^^^

warning: unused variable: `batch_size`
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-losses/src/swav_minimal.rs:92:13
   |
92 |         let batch_size = first_shape[0];
   |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_batch_size`
   |
   = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default

warning: unused variable: `embed_dim`
  --> /home/osobh/data/projects/rustytorch/crates/core/rtx-losses/src/simclr_minimal.rs:69:13
   |
69 |         let embed_dim = view1.shape()[1];
   |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_embed_dim`

warning: unused variable: `log_mean`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-losses/src/kl_divergence_loss.rs:318:13
    |
318 |         let log_mean = mean_dist.log()?;
    |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_log_mean`

warning: unused variable: `i`
   --> /home/osobh/data/projects/rustytorch/crates/core/rtx-losses/src/combined_loss.rs:221:14
    |
221 |         for (i, loss_tensor) in valid_losses.iter().enumerate().skip(1) {
    |              ^ help: if this is intentional, prefix it with an underscore: `_i`

warning: `rtx-flash-attention` (lib) generated 47 warnings (47 duplicates)
warning: `rtx-autograd` (lib) generated 58 warnings (58 duplicates)
warning: `rtx-nn` (lib) generated 84 warnings (run `cargo fix --lib -p rtx-nn` to apply 37 suggestions)
warning: `rtx-losses` (lib) generated 10 warnings (run `cargo fix --lib -p rtx-losses` to apply 10 suggestions)
warning: unexpected `cfg` condition value: `serde`
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/error.rs:356:7
    |
356 | #[cfg(feature = "serde")]
    |       ^^^^^^^^^^^^^^^^^
    |
    = note: expected values for `feature` are: `cuda`, `cudarc`, and `default`
    = help: consider adding `serde` as a feature in `Cargo.toml`
    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
    = note: `#[warn(unexpected_cfgs)]` on by default

warning: unexpected `cfg` condition value: `bincode`
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/error.rs:364:7
    |
364 | #[cfg(feature = "bincode")]
    |       ^^^^^^^^^^^^^^^^^^^
    |
    = note: expected values for `feature` are: `cuda`, `cudarc`, and `default`
    = help: consider adding `bincode` as a feature in `Cargo.toml`
    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration

warning: variant `WASM_SIMD` should have an upper camel case name
  --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/revolutionary/edge_capabilities.rs:53:5
   |
53 |     WASM_SIMD,
   |     ^^^^^^^^^ help: convert the identifier to upper camel case: `WasmSimd`
   |
   = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default

warning: unexpected `cfg` condition value: `std`
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/revolutionary/edge_capabilities.rs:440:15
    |
440 |         #[cfg(feature = "std")]
    |               ^^^^^^^^^^^^^^^
    |
    = note: expected values for `feature` are: `cuda`, `cudarc`, and `default`
    = help: consider adding `std` as a feature in `Cargo.toml`
    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration

warning: unexpected `cfg` condition value: `std`
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/revolutionary/edge_capabilities.rs:446:19
    |
446 |         #[cfg(not(feature = "std"))]
    |                   ^^^^^^^^^^^^^^^
    |
    = note: expected values for `feature` are: `cuda`, `cudarc`, and `default`
    = help: consider adding `std` as a feature in `Cargo.toml`
    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration

warning: unexpected `cfg` condition value: `std`
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/revolutionary/edge_capabilities.rs:454:19
    |
454 |         #[cfg(all(feature = "std", target_os = "linux"))]
    |                   ^^^^^^^^^^^^^^^
    |
    = note: expected values for `feature` are: `cuda`, `cudarc`, and `default`
    = help: consider adding `std` as a feature in `Cargo.toml`
    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration

warning: unreachable expression
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/revolutionary/edge_capabilities.rs:526:9
    |
523 |             return PowerClass::Unlimited; // Assume wall power for desktop/server
    |             ---------------------------- any code following this expression is unreachable
...
526 |         PowerClass::LowPower // Conservative default for embedded
    |         ^^^^^^^^^^^^^^^^^^^^ unreachable expression
    |
    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default

warning: unreachable expression
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/revolutionary/edge_capabilities.rs:540:9
    |
538 |         return NetworkClass::HighSpeed; // Desktop/server high-speed
    |         ------------------------------ any code following this expression is unreachable
539 |
540 |         NetworkClass::LowBandwidth // Conservative for embedded
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable expression

warning: unused import: `TensorAutograd`
 --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/training/transformer_trainer.rs:8:20
  |
8 | use rtx_autograd::{TensorAutograd, backward, clear_tape};
  |                    ^^^^^^^^^^^^^^
  |
  = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default

warning: unused import: `TransformerArchitecture`
 --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/training/integration_example.rs:9:28
  |
9 | use crate::architectures::{TransformerArchitecture, bert::{BertModel, BertConfig}};
  |                            ^^^^^^^^^^^^^^^^^^^^^^^

warning: unused import: `crate::tensor_bridge::TensorBridge`
  --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/layers/multi_query_attention.rs:10:5
   |
10 | use crate::tensor_bridge::TensorBridge;
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: unused import: `crate::tensor_bridge::TensorBridgeStatic`
  --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/architectures/bert/embeddings.rs:37:13
   |
37 |         use crate::tensor_bridge::TensorBridgeStatic;
   |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: unused import: `crate::tensor_bridge::TensorBridge`
  --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/architectures/bert/embeddings.rs:81:13
   |
81 |         use crate::tensor_bridge::TensorBridge;
   |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: unused import: `crate::layers::Layer`
  --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/architectures/bert/embeddings.rs:10:5
   |
10 | use crate::layers::Layer;
   |     ^^^^^^^^^^^^^^^^^^^^

warning: unused import: `crate::tensor_bridge::TensorBridgeStatic`
  --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/architectures/bert/attention.rs:47:13
   |
47 |         use crate::tensor_bridge::TensorBridgeStatic;
   |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: unused import: `crate::tensor_bridge::TensorBridge`
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/architectures/bert/attention.rs:142:13
    |
142 |         use crate::tensor_bridge::TensorBridge;
    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: unused import: `crate::tensor_bridge::TensorBridge`
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/architectures/bert/attention.rs:157:13
    |
157 |         use crate::tensor_bridge::TensorBridge;
    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: unused import: `crate::tensor_bridge::TensorBridge`
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/architectures/bert/attention.rs:180:13
    |
180 |         use crate::tensor_bridge::TensorBridge;
    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: unused import: `crate::tensor_bridge::TensorBridgeStatic`
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/architectures/bert/attention.rs:247:13
    |
247 |         use crate::tensor_bridge::TensorBridgeStatic;
    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: unused import: `crate::tensor_bridge::TensorBridgeStatic`
  --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/architectures/bert/feedforward.rs:28:13
   |
28 |         use crate::tensor_bridge::TensorBridgeStatic;
   |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: unused import: `crate::tensor_bridge::TensorBridgeStatic`
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/architectures/bert/feedforward.rs:113:13
    |
113 |         use crate::tensor_bridge::TensorBridgeStatic;
    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: unused import: `crate::tensor_bridge::TensorBridgeStatic`
  --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/architectures/bert/heads.rs:36:13
   |
36 |         use crate::tensor_bridge::TensorBridgeStatic;
   |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: unused import: `crate::tensor_bridge::TensorBridge`
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/architectures/bert/heads.rs:100:13
    |
100 |         use crate::tensor_bridge::TensorBridge;
    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: unused import: `crate::tensor_bridge::TensorBridgeStatic`
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/architectures/bert/heads.rs:176:13
    |
176 |         use crate::tensor_bridge::TensorBridgeStatic;
    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: unused import: `crate::tensor_bridge::TensorBridge`
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/architectures/bert/heads.rs:214:13
    |
214 |         use crate::tensor_bridge::TensorBridge;
    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: unused import: `crate::tensor_bridge::TensorBridgeStatic`
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/architectures/bert/heads.rs:276:13
    |
276 |         use crate::tensor_bridge::TensorBridgeStatic;
    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: unused import: `crate::tensor_bridge::TensorBridge`
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/architectures/bert/heads.rs:322:13
    |
322 |         use crate::tensor_bridge::TensorBridge;
    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: unused import: `crate::tensor_bridge::TensorBridgeStatic`
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/architectures/bert/heads.rs:406:13
    |
406 |         use crate::tensor_bridge::TensorBridgeStatic;
    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: unused import: `crate::tensor_bridge::TensorBridge`
 --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/architectures/bert/layer_norm.rs:7:5
  |
7 | use crate::tensor_bridge::TensorBridge;
  |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: unused import: `crate::tensor_bridge::TensorBridgeStatic`
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/architectures/bert/models.rs:124:13
    |
124 |         use crate::tensor_bridge::TensorBridgeStatic;
    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: unused variable: `data`
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/tensor_bridge.rs:177:13
    |
177 |         let data = self.to_cpu()?;
    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
    |
    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default

warning: unused variable: `dim`
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/tensor_bridge.rs:254:33
    |
254 |     fn cat(tensors: &[&Tensor], dim: usize) -> Result<Tensor> {
    |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_dim`

warning: unused variable: `dim`
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/tensor_bridge.rs:264:35
    |
264 |     fn stack(tensors: &[&Tensor], dim: i32) -> Result<Tensor> {
    |                                   ^^^ help: if this is intentional, prefix it with an underscore: `_dim`

warning: unused variable: `keepdim`
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/tensor_bridge.rs:345:46
    |
345 |     fn sum_dims(&self, dims: Option<&[i32]>, keepdim: bool) -> Result<Tensor> {
    |                                              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_keepdim`

warning: unused variable: `largest`
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/tensor_bridge.rs:444:48
    |
444 |     fn topk(&self, k: usize, dim: Option<i32>, largest: bool) -> Result<(Tensor, Tensor)> {
    |                                                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_largest`

warning: unused variable: `device`
  --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/optimizers/matrix_utils.rs:59:9
   |
59 |     let device = matrix.device();
   |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_device`

warning: unused variable: `lambda1`
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/optimizers/matrix_utils.rs:131:13
    |
131 |         let lambda1 = lambda1 + reg;
    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_lambda1`

warning: unused variable: `lambda2`
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/optimizers/matrix_utils.rs:132:13
    |
132 |         let lambda2 = lambda2 + reg;
    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_lambda2`

warning: unused variable: `device`
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/optimizers/matrix_utils.rs:286:9
    |
286 |     let device = matrix.device();
    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_device`

warning: unused variable: `adaptive_config`
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/training/gradient_clipping.rs:168:29
    |
168 |                 if let Some(adaptive_config) = &self.config.adaptive {
    |                             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_adaptive_config`

warning: unused variable: `name`
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/training/mixed_precision.rs:376:30
    |
376 |                         for (name, gradient) in gradients.iter_mut() {
    |                              ^^^^ help: if this is intentional, prefix it with an underscore: `_name`

warning: unused variable: `tensor`
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/training/transformer_trainer.rs:711:29
    |
711 |     fn tensor_to_vec(&self, tensor: &Tensor) -> Result<Vec<f32>> {
    |                             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_tensor`

warning: unused variable: `model_config`
  --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/training/end_to_end_training_example.rs:66:13
   |
66 |         let model_config = LLaMAConfig {
   |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_model_config`

warning: unused variable: `optimizer`
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/training/end_to_end_training_example.rs:270:13
    |
270 |         let optimizer = AdamOptimizer::new(AdamConfig {
    |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_optimizer`

warning: unused variable: `step_count`
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/training/integration_example.rs:139:9
    |
139 |     let step_count = 0;
    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_step_count`

warning: unused variable: `position_ids`
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/layers/multi_query_attention.rs:171:9
    |
171 |         position_ids: Option<&Tensor>,
    |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_position_ids`

warning: unused variable: `attention_mask`
  --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/architectures/gpt/attention.rs:70:51
   |
70 |     pub fn forward(&self, hidden_states: &Tensor, attention_mask: Option<&Tensor>) -> Result<Tensor> {
   |                                                   ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_attention_mask`

warning: unused variable: `temperature`
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/architectures/gpt_old.rs:143:5
    |
143 |     temperature: f32,
    |     ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_temperature`

warning: unused variable: `mask`
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/architectures/bert/attention.rs:162:21
    |
162 |         if let Some(mask) = attention_mask {
    |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_mask`

warning: unused variable: `start_pos`
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/architectures/bert/models.rs:513:32
    |
513 |         let loss = if let Some(start_pos) = start_positions {
    |                                ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_start_pos`

warning: function cannot return without recursing
  --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/architectures/bert_trait_impl.rs:58:5
   |
58 |     fn update_parameters(&mut self, updates: &HashMap<String, Tensor>) -> Result<()> {
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot return without recursing
59 |         // Use the BertModel's own update_parameters method
60 |         self.update_parameters(updates)
   |         ------------------------------- recursive call site
   |
   = help: a `loop` may express intention better if this is on purpose
   = note: `#[warn(unconditional_recursion)]` on by default

warning: unused variable: `position_ids`
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/architectures/llama_attention.rs:359:51
    |
359 |     pub fn forward(&self, hidden_states: &Tensor, position_ids: Option<&Tensor>) -> Result<Tensor> {
    |                                                   ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_position_ids`

warning: unused variable: `device_tx_chan`
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/revolutionary/federated_coordination.rs:363:14
    |
363 |         let (device_tx_chan, device_rx) = mpsc::unbounded_channel();
    |              ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_device_tx_chan`

warning: unused variable: `model_updates`
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/revolutionary/federated_coordination.rs:378:46
    |
378 |     pub async fn start_training_round(&self, model_updates: Vec<u8>) -> Result<u64> {
    |                                              ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_model_updates`

warning: unused variable: `training_config`
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/revolutionary/federated_coordination.rs:384:13
    |
384 |         let training_config = TrainingConfig {
    |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_training_config`

warning: unused variable: `gradients`
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/revolutionary/federated_coordination.rs:411:70
    |
411 |             DeviceMessage::GradientSubmission { device_id, round_id, gradients, signature } => {
    |                                                                      ^^^^^^^^^ help: try ignoring the field: `gradients: _`

warning: unused variable: `signature`
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/revolutionary/federated_coordination.rs:411:81
    |
411 |             DeviceMessage::GradientSubmission { device_id, round_id, gradients, signature } => {
    |                                                                                 ^^^^^^^^^ help: try ignoring the field: `signature: _`

warning: value assigned to `last_error` is never read
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/revolutionary/orchestrator_core.rs:123:30
    |
123 |         let mut last_error = None;
    |                              ^^^^
    |
    = help: maybe it is overwritten before being read?
    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default

warning: unused variable: `success`
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/revolutionary/orchestrator_edge.rs:226:95
    |
226 |     pub async fn update_edge_metrics(&mut self, execution_time: Duration, memory_used: usize, success: bool) {
    |                                                                                               ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_success`

warning: unused variable: `edge`
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/revolutionary/mod.rs:147:21
    |
147 |         if let Some(ref edge) = self.edge_aware {
    |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_edge`

warning: unused variable: `edge`
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/revolutionary/mod.rs:160:21
    |
160 |         if let Some(ref edge) = self.edge_aware {
    |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_edge`

warning: unused variable: `edge`
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/revolutionary/mod.rs:190:29
    |
190 |                 if let Some(ref mut edge) = self.edge_aware {
    |                             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_edge`

warning: unused variable: `edge`
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/revolutionary/mod.rs:251:21
    |
251 |         if let Some(ref mut edge) = self.edge_aware {
    |                     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_edge`

warning: method `update_parameter` is never used
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/optimizers/adamw.rs:211:8
    |
 70 | impl AdamWOptimizer {
    | ------------------- method in this implementation
...
211 |     fn update_parameter(
    |        ^^^^^^^^^^^^^^^^
    |
    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default

warning: method `cross_entropy_loss` is never used
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/training/training_loop.rs:411:20
    |
 21 | impl TrainingLoop {
    | ----------------- method in this implementation
...
411 |                 fn cross_entropy_loss(&self, outputs: &Tensor, targets: &Tensor) -> Result<Tensor> {
    |                    ^^^^^^^^^^^^^^^^^^

warning: field `config` is never read
  --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/layers/glu_activations.rs:60:5
   |
59 | pub struct SwiGLU {
   |            ------ field in this struct
60 |     config: SwiGLUConfig,
   |     ^^^^^^
   |
   = note: `SwiGLU` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis

warning: field `config` is never read
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/layers/glu_activations.rs:241:5
    |
240 | pub struct GeGLU {
    |            ----- field in this struct
241 |     config: GeGLUConfig,
    |     ^^^^^^
    |
    = note: `GeGLU` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis

warning: field `config` is never read
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/layers/glu_activations.rs:400:5
    |
399 | pub struct ReGLU {
    |            ----- field in this struct
400 |     config: ReGLUConfig,
    |     ^^^^^^
    |
    = note: `ReGLU` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis

warning: field `embed_dim` is never read
  --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/architectures/gpt/embeddings.rs:15:5
   |
13 | pub struct TokenEmbedding {
   |            -------------- field in this struct
14 |     vocab_size: usize,
15 |     embed_dim: usize,
   |     ^^^^^^^^^
   |
   = note: `TokenEmbedding` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis

warning: field `embed_dim` is never read
  --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/architectures/gpt/embeddings.rs:93:5
   |
91 | pub struct PositionalEmbedding {
   |            ------------------- field in this struct
92 |     max_seq_len: usize,
93 |     embed_dim: usize,
   |     ^^^^^^^^^
   |
   = note: `PositionalEmbedding` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis

warning: field `use_bias` is never read
  --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/architectures/gpt/attention.rs:17:5
   |
13 | pub struct MultiHeadAttention {
   |            ------------------ field in this struct
...
17 |     use_bias: bool,
   |     ^^^^^^^^
   |
   = note: `MultiHeadAttention` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis

warning: fields `hidden_size`, `intermediate_size`, and `use_bias` are never read
  --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/architectures/gpt/feedforward.rs:14:5
   |
13 | pub struct FeedForward {
   |            ----------- fields in this struct
14 |     hidden_size: usize,
   |     ^^^^^^^^^^^
15 |     intermediate_size: usize,
   |     ^^^^^^^^^^^^^^^^^
16 |     use_bias: bool,
   |     ^^^^^^^^
   |
   = note: `FeedForward` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis

warning: field `tie_word_embeddings` is never read
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/architectures/gpt/models.rs:187:5
    |
184 | pub struct GPTLMHeadModel {
    |            -------------- field in this struct
...
187 |     tie_word_embeddings: bool,
    |     ^^^^^^^^^^^^^^^^^^^
    |
    = note: `GPTLMHeadModel` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis

warning: field `num_labels` is never read
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/architectures/bert/models.rs:376:5
    |
374 | pub struct BertForSequenceClassification {
    |            ----------------------------- field in this struct
375 |     bert: BertModel,
376 |     num_labels: usize,
    |     ^^^^^^^^^^
    |
    = note: `BertForSequenceClassification` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis

warning: field `num_labels` is never read
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/architectures/bert/models.rs:433:5
    |
431 | pub struct BertForTokenClassification {
    |            -------------------------- field in this struct
432 |     bert: BertModel,
433 |     num_labels: usize,
    |     ^^^^^^^^^^
    |
    = note: `BertForTokenClassification` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis

warning: field `hidden_size` is never read
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/architectures/llama_attention.rs:305:5
    |
301 | pub struct LLaMAAttention {
    |            -------------- field in this struct
...
305 |     hidden_size: usize,
    |     ^^^^^^^^^^^
    |
    = note: `LLaMAAttention` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis

warning: field `hidden_size` is never read
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/architectures/llama_attention.rs:491:5
    |
490 | pub struct RMSNorm {
    |            ------- field in this struct
491 |     hidden_size: usize,
    |     ^^^^^^^^^^^
    |
    = note: `RMSNorm` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis

warning: fields `layers` and `norm` are never read
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/architectures/llama_attention.rs:670:5
    |
668 | pub struct LLaMAModel {
    |            ---------- fields in this struct
669 |     config: LLaMAConfig,
670 |     layers: Vec<LLaMADecoderLayer>,
    |     ^^^^^^
671 |     norm: RMSNorm,
    |     ^^^^
    |
    = note: `LLaMAModel` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis

warning: fields `d_model` and `d_conv` are never read
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/architectures/hybrid_ssm_transformer.rs:187:5
    |
186 | pub struct SsmBlock {
    |            -------- fields in this struct
187 |     d_model: usize,
    |     ^^^^^^^
188 |     d_state: usize,
189 |     d_conv: usize,
    |     ^^^^^^
    |
    = note: `SsmBlock` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis

warning: field `device` is never read
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/architectures/hybrid_ssm_transformer.rs:299:5
    |
295 | pub struct HybridCache {
    |            ----------- field in this struct
...
299 |     device: Device,
    |     ^^^^^^
    |
    = note: `HybridCache` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis

warning: multiple fields are never read
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/architectures/hybrid_ssm_transformer.rs:425:5
    |
424 | pub struct HybridSsmTransformer {
    |            -------------------- fields in this struct
425 |     config: HybridConfig,
    |     ^^^^^^
426 |     pattern: LayerPattern,
    |     ^^^^^^^
427 |     ssm_blocks: Vec<SsmBlock>,
    |     ^^^^^^^^^^
428 |     attention_blocks: Vec<AttentionBlock>,
    |     ^^^^^^^^^^^^^^^^
429 |     router: Option<AdaptiveRouter>,
    |     ^^^^^^
430 |     cache: HybridCache,
    |     ^^^^^
431 |     performance_tracker: PerformanceTracker,
    |     ^^^^^^^^^^^^^^^^^^^
    |
    = note: `HybridSsmTransformer` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis

warning: fields `config` and `device` are never read
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/revolutionary/mod.rs:102:5
    |
 98 | pub struct EdgeAwareTransformer {
    |            -------------------- fields in this struct
...
102 |     config: RevolutionaryConfig,
    |     ^^^^^^
...
108 |     device: Device,
    |     ^^^^^^
    |
    = note: `EdgeAwareTransformer` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis

warning: fields `config` and `device` are never read
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/revolutionary/hybrid_orchestrator.rs:153:5
    |
151 | pub struct HybridOrchestrator {
    |            ------------------ fields in this struct
152 |     /// Configuration
153 |     config: RevolutionaryConfig,
    |     ^^^^^^
154 |     /// Device
155 |     device: Device,
    |     ^^^^^^
    |
    = note: `HybridOrchestrator` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis

warning: field `memory_intensity` is never read
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/revolutionary/hybrid_orchestrator.rs:545:5
    |
541 | struct WorkloadAnalysis {
    |        ---------------- field in this struct
...
545 |     memory_intensity: f64,
    |     ^^^^^^^^^^^^^^^^
    |
    = note: `WorkloadAnalysis` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis

warning: associated functions `check_arm_sve`, `check_riscv_vector_extensions`, `detect_riscv_vlen`, `detect_android_gpu`, `check_metal_available`, and `detect_battery_status` are never used
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/revolutionary/edge_capabilities.rs:415:8
    |
129 | impl EdgeCapabilityDetector {
    | --------------------------- associated functions in this implementation
...
415 |     fn check_arm_sve() -> bool { false }
    |        ^^^^^^^^^^^^^
416 |     fn check_riscv_vector_extensions() -> bool { true } // Assume available for RISC-V
    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
417 |     fn detect_riscv_vlen() -> u32 { 128 } // Common VLEN
    |        ^^^^^^^^^^^^^^^^^
...
423 |     fn detect_android_gpu() -> GpuInfo { GpuInfo { vendor: "Mali".to_string(), memory_mb: 1024 } }
    |        ^^^^^^^^^^^^^^^^^^
...
426 |     fn check_metal_available() -> bool { false }
    |        ^^^^^^^^^^^^^^^^^^^^^
427 |     fn check_vulkan_compute() -> bool { false }
428 |     fn detect_battery_status() -> BatteryInfo { BatteryInfo { level: 80, charging: false } }
    |        ^^^^^^^^^^^^^^^^^^^^^

warning: fields `device_tx` and `device_rx` are never read
   --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/revolutionary/federated_coordination.rs:337:5
    |
331 | pub struct FederatedCoordinator {
    |            -------------------- fields in this struct
...
337 |     device_tx: Arc<Mutex<HashMap<DeviceId, mpsc::UnboundedSender<CoordinatorMessage>>>>,
    |     ^^^^^^^^^
338 |     device_rx: Arc<Mutex<mpsc::UnboundedReceiver<DeviceMessage>>>,
    |     ^^^^^^^^^
    |
    = note: `FederatedCoordinator` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis

warning: field `capabilities` is never read
  --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/revolutionary/edge_deployment.rs:38:5
   |
37 | pub struct EdgeDeploymentValidator {
   |            ----------------------- field in this struct
38 |     capabilities: EdgeCapabilities,
   |     ^^^^^^^^^^^^
   |
   = note: `EdgeDeploymentValidator` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis

warning: fields `device` and `federated_coordinator` are never read
  --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/revolutionary/edge_trainer.rs:45:5
   |
39 | pub struct EdgeAwareTraining {
   |            ----------------- fields in this struct
...
45 |     device: Device,
   |     ^^^^^^
...
61 |     federated_coordinator: Option<FederatedCoordinator>,
   |     ^^^^^^^^^^^^^^^^^^^^^
   |
   = note: `EdgeAwareTraining` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis

warning: fields `device` and `task_queues` are never read
  --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/revolutionary/orchestrator_core.rs:22:5
   |
20 | pub struct HybridOrchestrator {
   |            ------------------ fields in this struct
21 |     /// Device for tensor operations
22 |     device: Device,
   |     ^^^^^^
...
30 |     task_queues: Arc<RwLock<HashMap<ComputeModality, VecDeque<TaskProfile>>>>,
   |     ^^^^^^^^^^^
   |
   = note: `HybridOrchestrator` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis

warning: field `device` is never read
  --> /home/osobh/data/projects/rustytorch/crates/training/rtx-transformers/src/revolutionary/orchestrator_edge.rs:25:5
   |
23 | pub struct EdgeOrchestrator {
   |            ---------------- field in this struct
24 |     /// Device for tensor operations
25 |     device: Device,
   |     ^^^^^^
   |
   = note: `EdgeOrchestrator` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis

warning: `rtx-transformers` (lib) generated 90 warnings (run `cargo fix --lib -p rtx-transformers` to apply 31 suggestions)
warning: `rtx-nn` (lib) generated 84 warnings (84 duplicates)
warning: `rtx-losses` (lib) generated 10 warnings (10 duplicates)
warning: unused import: `std::collections::HashMap`
 --> src/lib.rs:8:5
  |
8 | use std::collections::HashMap;
  |     ^^^^^^^^^^^^^^^^^^^^^^^^^
  |
  = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default

warning: fields `ff_dim` and `device` are never read
   --> src/lib.rs:210:5
    |
207 | pub struct LffnUNet1D {
    |            ---------- fields in this struct
...
210 |     ff_dim: usize,
    |     ^^^^^^
211 |     device: Device,
    |     ^^^^^^
    |
    = note: `LffnUNet1D` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default

warning: fields `g_prime`, `g_double`, and `optimizer` are never read
   --> src/lib.rs:329:5
    |
320 | pub struct Mre1DPinnSolver {
    |            --------------- fields in this struct
...
329 |     g_prime: f64,
    |     ^^^^^^^
330 |     g_double: f64,
    |     ^^^^^^^^
331 |     optimizer: AdamOptimizer,
    |     ^^^^^^^^^

warning: `pinn_mre_helmholtz` (lib) generated 3 warnings (run `cargo fix --lib -p pinn_mre_helmholtz` to apply 1 suggestion)
warning: `rtx-transformers` (lib) generated 90 warnings (90 duplicates)
warning: `pinn_mre_helmholtz` (lib) generated 3 warnings (3 duplicates)
warning: unused import: `LffnUNet1D`
  --> benches/pinn_benchmark.rs:12:51
   |
12 | use pinn_mre_helmholtz::{Config, Mre1DPinnSolver, LffnUNet1D, ForwardWorkspace, synthesize_displacement, calculate_k};
   |                                                   ^^^^^^^^^^
   |
   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default

warning: `pinn_mre_helmholtz` (bench "pinn_benchmark") generated 1 warning (run `cargo fix --bench "pinn_benchmark" -p pinn_mre_helmholtz` to apply 1 suggestion)
    Finished `bench` profile [optimized] target(s) in 0.13s
     Running benches/pinn_benchmark.rs (target/release/deps/pinn_benchmark-cdd7c0057ab0554f)
Gnuplot not found, using plotters backend
Benchmarking calculate_k
Benchmarking calculate_k: Warming up for 3.0000 s
Benchmarking calculate_k: Collecting 100 samples in estimated 5.0001 s (161M iterations)
Benchmarking calculate_k: Analyzing
calculate_k             time:   [29.504 ns 29.755 ns 30.042 ns]
                        change: [+5.9369% +6.8341% +7.6673%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 24 outliers among 100 measurements (24.00%)
  15 (15.00%) low severe
  3 (3.00%) low mild
  1 (1.00%) high mild
  5 (5.00%) high severe

Benchmarking data_generation/synthesize_displacement/200
Benchmarking data_generation/synthesize_displacement/200: Warming up for 3.0000 s
Benchmarking data_generation/synthesize_displacement/200: Collecting 100 samples in estimated 5.0156 s (1.5M iterations)
Benchmarking data_generation/synthesize_displacement/200: Analyzing
data_generation/synthesize_displacement/200
                        time:   [3.1839 µs 3.2243 µs 3.2656 µs]
                        thrpt:  [61.244 Melem/s 62.028 Melem/s 62.817 Melem/s]
                 change:
                        time:   [+5.0038% +6.5667% +8.0666%] (p = 0.00 < 0.05)
                        thrpt:  [-7.4645% -6.1620% -4.7653%]
                        Performance has regressed.
Found 15 outliers among 100 measurements (15.00%)
  4 (4.00%) low severe
  6 (6.00%) high mild
  5 (5.00%) high severe
Benchmarking data_generation/synthesize_displacement/1000
Benchmarking data_generation/synthesize_displacement/1000: Warming up for 3.0000 s
Benchmarking data_generation/synthesize_displacement/1000: Collecting 100 samples in estimated 5.0508 s (354k iterations)
Benchmarking data_generation/synthesize_displacement/1000: Analyzing
data_generation/synthesize_displacement/1000
                        time:   [14.147 µs 14.282 µs 14.431 µs]
                        thrpt:  [69.296 Melem/s 70.018 Melem/s 70.685 Melem/s]
                 change:
                        time:   [-0.3402% +0.8785% +2.1008%] (p = 0.16 > 0.05)
                        thrpt:  [-2.0576% -0.8709% +0.3414%]
                        No change in performance detected.
Found 2 outliers among 100 measurements (2.00%)
  2 (2.00%) high mild
Benchmarking data_generation/synthesize_displacement/10000
Benchmarking data_generation/synthesize_displacement/10000: Warming up for 3.0000 s
Benchmarking data_generation/synthesize_displacement/10000: Collecting 100 samples in estimated 5.1054 s (35k iterations)
Benchmarking data_generation/synthesize_displacement/10000: Analyzing
data_generation/synthesize_displacement/10000
                        time:   [136.27 µs 137.01 µs 137.81 µs]
                        thrpt:  [72.563 Melem/s 72.987 Melem/s 73.384 Melem/s]
                 change:
                        time:   [-1.8504% -0.9552% -0.0310%] (p = 0.05 < 0.05)
                        thrpt:  [+0.0310% +0.9644% +1.8853%]
                        Change within noise threshold.
Found 11 outliers among 100 measurements (11.00%)
  5 (5.00%) high mild
  6 (6.00%) high severe
Benchmarking data_generation/synthesize_displacement/100000
Benchmarking data_generation/synthesize_displacement/100000: Warming up for 3.0000 s

Warning: Unable to complete 100 samples in 5.0s. You may wish to increase target time to 7.2s, enable flat sampling, or reduce sample count to 50.
Benchmarking data_generation/synthesize_displacement/100000: Collecting 100 samples in estimated 7.1706 s (5050 iterations)
Benchmarking data_generation/synthesize_displacement/100000: Analyzing
data_generation/synthesize_displacement/100000
                        time:   [1.4275 ms 1.4851 ms 1.5695 ms]
                        thrpt:  [63.715 Melem/s 67.336 Melem/s 70.055 Melem/s]
                 change:
                        time:   [-4.2651% -1.6156% +1.6946%] (p = 0.38 > 0.05)
                        thrpt:  [-1.6663% +1.6422% +4.4551%]
                        No change in performance detected.
Found 8 outliers among 100 measurements (8.00%)
  4 (4.00%) high mild
  4 (4.00%) high severe

Benchmarking forward_pass/lffn_mlp/200
Benchmarking forward_pass/lffn_mlp/200: Warming up for 3.0000 s

Warning: Unable to complete 50 samples in 5.0s. You may wish to increase target time to 5.3s, enable flat sampling, or reduce sample count to 30.
Benchmarking forward_pass/lffn_mlp/200: Collecting 50 samples in estimated 5.2878 s (1275 iterations)
Benchmarking forward_pass/lffn_mlp/200: Analyzing
forward_pass/lffn_mlp/200
                        time:   [3.9617 ms 4.0329 ms 4.1072 ms]
                        thrpt:  [48.695 Kelem/s 49.592 Kelem/s 50.484 Kelem/s]
Benchmarking forward_pass/lffn_mlp/1000
Benchmarking forward_pass/lffn_mlp/1000: Warming up for 3.0000 s
Benchmarking forward_pass/lffn_mlp/1000: Collecting 50 samples in estimated 5.5876 s (350 iterations)
Benchmarking forward_pass/lffn_mlp/1000: Analyzing
forward_pass/lffn_mlp/1000
                        time:   [15.834 ms 15.950 ms 16.075 ms]
                        thrpt:  [62.207 Kelem/s 62.694 Kelem/s 63.155 Kelem/s]
Benchmarking forward_pass/lffn_mlp/10000
Benchmarking forward_pass/lffn_mlp/10000: Warming up for 3.0000 s

Warning: Unable to complete 50 samples in 5.0s. You may wish to increase target time to 8.1s, or reduce sample count to 30.
Benchmarking forward_pass/lffn_mlp/10000: Collecting 50 samples in estimated 8.1346 s (50 iterations)
Benchmarking forward_pass/lffn_mlp/10000: Analyzing
forward_pass/lffn_mlp/10000
                        time:   [158.82 ms 160.05 ms 161.28 ms]
                        thrpt:  [62.003 Kelem/s 62.480 Kelem/s 62.964 Kelem/s]

Benchmarking forward_pass_optimized/lffn_mlp_workspace/200
Benchmarking forward_pass_optimized/lffn_mlp_workspace/200: Warming up for 3.0000 s

thread 'main' (115815) panicked at benches/pinn_benchmark.rs:75:26:
Forward pass failed: Device error: cuBLAS GEMM failed: CublasError(CUBLAS_STATUS_INVALID_VALUE)
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

 ** On entry to SGEMM  parameter number 8 had an illegal value
error: bench failed, to rerun pass `--bench pinn_benchmark`
