[INFO] cloning repository https://github.com/TheSandwichCoder/MachineLearningGPU
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/TheSandwichCoder/MachineLearningGPU" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTheSandwichCoder%2FMachineLearningGPU", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTheSandwichCoder%2FMachineLearningGPU'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 13a599df118929965f805f14bdc677a7d2367b1d
[INFO] testing TheSandwichCoder/MachineLearningGPU against master#7704328ba5ae8d6ce0ac303c9d5a1a1605906766 for pr-150681-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTheSandwichCoder%2FMachineLearningGPU" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/TheSandwichCoder/MachineLearningGPU
[INFO] finished tweaking git repo https://github.com/TheSandwichCoder/MachineLearningGPU
[INFO] tweaked toml for git repo https://github.com/TheSandwichCoder/MachineLearningGPU written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/TheSandwichCoder/MachineLearningGPU on toolchain 7704328ba5ae8d6ce0ac303c9d5a1a1605906766
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+7704328ba5ae8d6ce0ac303c9d5a1a1605906766" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/TheSandwichCoder/MachineLearningGPU already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+7704328ba5ae8d6ce0ac303c9d5a1a1605906766" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded windows-core v0.58.0
[INFO] [stderr]   Downloaded thiserror v2.0.14
[INFO] [stderr]   Downloaded bytemuck_derive v1.10.1
[INFO] [stderr]   Downloaded thiserror-impl v2.0.14
[INFO] [stderr]   Downloaded windows-interface v0.58.0
[INFO] [stderr]   Downloaded gpu-alloc-types v0.3.0
[INFO] [stderr]   Downloaded glutin_wgl_sys v0.6.1
[INFO] [stderr]   Downloaded wgpu-core-deps-emscripten v26.0.0
[INFO] [stderr]   Downloaded wgpu-core-deps-windows-linux-android v26.0.0
[INFO] [stderr]   Downloaded windows-result v0.2.0
[INFO] [stderr]   Downloaded gpu-descriptor v0.3.2
[INFO] [stderr]   Downloaded core-graphics-types v0.2.0
[INFO] [stderr]   Downloaded hermit-abi v0.5.2
[INFO] [stderr]   Downloaded async-channel v2.5.0
[INFO] [stderr]   Downloaded async-lock v3.4.1
[INFO] [stderr]   Downloaded wit-bindgen v0.45.0
[INFO] [stderr]   Downloaded polling v3.10.0
[INFO] [stderr]   Downloaded async-io v2.5.0
[INFO] [stderr]   Downloaded wgpu-types v26.0.0
[INFO] [stderr]   Downloaded slotmap v1.0.7
[INFO] [stderr]   Downloaded itertools v0.14.0
[INFO] [stderr]   Downloaded wasi v0.14.3+wasi-0.2.4
[INFO] [stderr]   Downloaded glow v0.16.0
[INFO] [stderr]   Downloaded portable-atomic v1.11.1
[INFO] [stderr]   Downloaded syn v2.0.105
[INFO] [stderr]   Downloaded wgpu v26.0.1
[INFO] [stderr]   Downloaded xml-rs v0.8.27
[INFO] [stderr]   Downloaded gpu-allocator v0.27.0
[INFO] [stderr]   Downloaded libloading v0.8.8
[INFO] [stderr]   Downloaded wgpu-core v26.0.1
[INFO] [stderr]   Downloaded wgpu-hal v26.0.4
[INFO] [stderr]   Downloaded codespan-reporting v0.12.0
[INFO] [stderr]   Downloaded half v2.6.0
[INFO] [stderr]   Downloaded proc-macro2 v1.0.97
[INFO] [stderr]   Downloaded futures-lite v2.6.1
[INFO] [stderr]   Downloaded bit-vec v0.8.0
[INFO] [stderr]   Downloaded termcolor v1.4.1
[INFO] [stderr]   Downloaded ash v0.38.0+1.3.281
[INFO] [stderr]   Downloaded ordered-float v5.0.0
[INFO] [stderr]   Downloaded portable-atomic-util v0.2.4
[INFO] [stderr]   Downloaded blocking v1.6.2
[INFO] [stderr]   Downloaded csv-core v0.1.12
[INFO] [stderr]   Downloaded gl_generator v0.14.0
[INFO] [stderr]   Downloaded gpu-alloc v0.6.0
[INFO] [stderr]   Downloaded khronos_api v3.1.0
[INFO] [stderr]   Downloaded presser v0.3.1
[INFO] [stderr]   Downloaded khronos-egl v6.0.0
[INFO] [stderr]   Downloaded core-foundation v0.10.1
[INFO] [stderr]   Downloaded paste v1.0.15
[INFO] [stderr]   Downloaded spirv v0.3.0+sdk-1.3.268.0
[INFO] [stderr]   Downloaded profiling v1.0.17
[INFO] [stderr]   Downloaded pollster v0.4.0
[INFO] [stderr]   Downloaded wgpu-core-deps-apple v26.0.0
[INFO] [stderr]   Downloaded range-alloc v0.1.4
[INFO] [stderr]   Downloaded windows-implement v0.58.0
[INFO] [stderr]   Downloaded windows-strings v0.1.0
[INFO] [stderr]   Downloaded naga v26.0.0
[INFO] [stderr]   Downloaded winapi-util v0.1.9
[INFO] [stderr]   Downloaded rustc-hash v1.1.0
[INFO] [stderr]   Downloaded renderdoc-sys v1.1.0
[INFO] [stderr]   Downloaded csv v1.3.1
[INFO] [stderr]   Downloaded hexf-parse v0.2.1
[INFO] [stderr]   Downloaded block v0.1.6
[INFO] [stderr]   Downloaded gpu-descriptor-types v0.2.0
[INFO] [stderr]   Downloaded bit-set v0.8.0
[INFO] [stderr]   Downloaded crunchy v0.2.4
[INFO] [stderr]   Downloaded metal v0.32.0
[INFO] [stderr]   Downloaded windows v0.58.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+7704328ba5ae8d6ce0ac303c9d5a1a1605906766" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] f466d118fa671af3a54f3d57fb4c9fc88555750088b8473d16c1d469bb301979
[INFO] running `Command { std: "docker" "start" "-a" "f466d118fa671af3a54f3d57fb4c9fc88555750088b8473d16c1d469bb301979", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f466d118fa671af3a54f3d57fb4c9fc88555750088b8473d16c1d469bb301979", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f466d118fa671af3a54f3d57fb4c9fc88555750088b8473d16c1d469bb301979", kill_on_drop: false }`
[INFO] [stdout] f466d118fa671af3a54f3d57fb4c9fc88555750088b8473d16c1d469bb301979
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+7704328ba5ae8d6ce0ac303c9d5a1a1605906766" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] ae7cf850d9bc0f34fc704e83e420fdf6f557e62f0216cbe15849eb28870b281a
[INFO] running `Command { std: "docker" "start" "-a" "ae7cf850d9bc0f34fc704e83e420fdf6f557e62f0216cbe15849eb28870b281a", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]    Compiling cfg-if v1.0.1
[INFO] [stderr]    Compiling autocfg v1.5.0
[INFO] [stderr]    Compiling proc-macro2 v1.0.97
[INFO] [stderr]    Compiling unicode-ident v1.0.18
[INFO] [stderr]    Compiling cfg_aliases v0.2.1
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling libc v0.2.175
[INFO] [stderr]    Compiling libm v0.2.15
[INFO] [stderr]    Compiling pin-project-lite v0.2.16
[INFO] [stderr]    Compiling parking v2.2.1
[INFO] [stderr]    Compiling value-bag v1.11.1
[INFO] [stderr]    Compiling foldhash v0.1.5
[INFO] [stderr]    Compiling thiserror v2.0.14
[INFO] [stderr]    Compiling futures-core v0.3.31
[INFO] [stderr]    Compiling futures-io v0.3.31
[INFO] [stderr]    Compiling parking_lot_core v0.9.11
[INFO] [stderr]    Compiling fastrand v2.3.0
[INFO] [stderr]    Compiling once_cell v1.21.3
[INFO] [stderr]    Compiling naga v26.0.0
[INFO] [stderr]    Compiling libloading v0.8.8
[INFO] [stderr]    Compiling rustix v1.0.8
[INFO] [stderr]    Compiling equivalent v1.0.2
[INFO] [stderr]    Compiling hashbrown v0.15.5
[INFO] [stderr]    Compiling khronos-egl v6.0.0
[INFO] [stderr]    Compiling scopeguard v1.2.0
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling ash v0.38.0+1.3.281
[INFO] [stderr]    Compiling bit-vec v0.8.0
[INFO] [stderr]    Compiling unicode-width v0.2.1
[INFO] [stderr]    Compiling futures-lite v2.6.1
[INFO] [stderr]    Compiling wgpu-hal v26.0.4
[INFO] [stderr]    Compiling log v0.4.27
[INFO] [stderr]    Compiling rustc-hash v1.1.0
[INFO] [stderr]    Compiling linux-raw-sys v0.9.4
[INFO] [stderr]    Compiling zerocopy v0.8.26
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling lock_api v0.4.13
[INFO] [stderr]    Compiling codespan-reporting v0.12.0
[INFO] [stderr]    Compiling bit-set v0.8.0
[INFO] [stderr]    Compiling getrandom v0.3.3
[INFO] [stderr]    Compiling hexf-parse v0.2.1
[INFO] [stderr]    Compiling arrayvec v0.7.6
[INFO] [stderr]    Compiling concurrent-queue v2.5.0
[INFO] [stderr]    Compiling raw-window-handle v0.6.2
[INFO] [stderr]    Compiling event-listener v5.4.1
[INFO] [stderr]    Compiling atomic-waker v1.1.2
[INFO] [stderr]    Compiling renderdoc-sys v1.1.0
[INFO] [stderr]    Compiling glow v0.16.0
[INFO] [stderr]    Compiling async-task v4.7.1
[INFO] [stderr]    Compiling slab v0.4.11
[INFO] [stderr]    Compiling quote v1.0.40
[INFO] [stderr]    Compiling profiling v1.0.17
[INFO] [stderr]    Compiling piper v0.2.4
[INFO] [stderr]    Compiling event-listener-strategy v0.5.4
[INFO] [stderr]    Compiling indexmap v2.10.0
[INFO] [stderr]    Compiling wgpu-core v26.0.1
[INFO] [stderr]    Compiling litrs v0.4.2
[INFO] [stderr]    Compiling async-lock v3.4.1
[INFO] [stderr]    Compiling syn v2.0.105
[INFO] [stderr]    Compiling async-channel v2.5.0
[INFO] [stderr]    Compiling parking_lot v0.12.4
[INFO] [stderr]    Compiling memchr v2.7.5
[INFO] [stderr]    Compiling rand_core v0.9.3
[INFO] [stderr]    Compiling wgpu v26.0.1
[INFO] [stderr]    Compiling event-listener v2.5.3
[INFO] [stderr]    Compiling async-channel v1.9.0
[INFO] [stderr]    Compiling async-executor v1.13.2
[INFO] [stderr]    Compiling blocking v1.6.2
[INFO] [stderr]    Compiling document-features v0.2.11
[INFO] [stderr]    Compiling kv-log-macro v1.0.7
[INFO] [stderr]    Compiling itoa v1.0.15
[INFO] [stderr]    Compiling half v2.6.0
[INFO] [stderr]    Compiling ordered-float v5.0.0
[INFO] [stderr]    Compiling pin-utils v0.1.0
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling ryu v1.0.20
[INFO] [stderr]    Compiling static_assertions v1.1.0
[INFO] [stderr]    Compiling pollster v0.4.0
[INFO] [stderr]    Compiling csv-core v0.1.12
[INFO] [stderr]    Compiling itertools v0.14.0
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling rand v0.9.2
[INFO] [stderr]    Compiling thiserror-impl v2.0.14
[INFO] [stderr]    Compiling bytemuck_derive v1.10.1
[INFO] [stderr]    Compiling bitflags v2.9.1
[INFO] [stderr]    Compiling csv v1.3.1
[INFO] [stderr]    Compiling gpu-descriptor-types v0.2.0
[INFO] [stderr]    Compiling spirv v0.3.0+sdk-1.3.268.0
[INFO] [stderr]    Compiling gpu-alloc-types v0.3.0
[INFO] [stderr]    Compiling gpu-descriptor v0.3.2
[INFO] [stderr]    Compiling gpu-alloc v0.6.0
[INFO] [stderr]    Compiling bytemuck v1.23.2
[INFO] [stderr]    Compiling wgpu-types v26.0.0
[INFO] [stderr]    Compiling polling v3.10.0
[INFO] [stderr]    Compiling async-io v2.5.0
[INFO] [stderr]    Compiling async-global-executor v2.4.1
[INFO] [stderr]    Compiling async-std v1.13.1
[INFO] [stderr]    Compiling wgpu-core-deps-windows-linux-android v26.0.0
[INFO] [stderr]    Compiling MachineLearningGPU v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `Pod` and `Zeroable`
[INFO] [stdout]  --> src/main.rs:1:16
[INFO] [stdout]   |
[INFO] [stdout] 1 | use bytemuck::{Pod, Zeroable};
[INFO] [stdout]   |                ^^^  ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::num::NonZeroU64`
[INFO] [stdout]  --> src/main.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::num::NonZeroU64;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Instant`
[INFO] [stdout]  --> src/main.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::time::Instant;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `wgpu::util::DeviceExt`
[INFO] [stdout]  --> src/main.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use wgpu::util::DeviceExt;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs::File`
[INFO] [stdout]  --> src/data_reader.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fs::File;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::string`
[INFO] [stdout]  --> src/data_reader.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::string;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::data_reader::DataReader`
[INFO] [stdout]  --> src/datatypes/nn_datatypes.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::data_reader::DataReader;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::distr::uniform::UniformUsize`
[INFO] [stdout]  --> src/datatypes/nn_datatypes.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use rand::distr::uniform::UniformUsize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::model`
[INFO] [stdout]  --> src/datatypes/conv_datatypes.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::model;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::dispatch::conv_dispatch`
[INFO] [stdout]  --> src/dispatch/conv_dispatch.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::dispatch::conv_dispatch;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Pod` and `Zeroable`
[INFO] [stdout]  --> src/dispatch/conv_dispatch.rs:8:16
[INFO] [stdout]   |
[INFO] [stdout] 8 | use bytemuck::{Pod, Zeroable};
[INFO] [stdout]   |                ^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::num::NonZeroU64`
[INFO] [stdout]  --> src/dispatch/conv_dispatch.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::num::NonZeroU64;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs`
[INFO] [stdout]   --> src/dispatch/conv_dispatch.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::fs;
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Pod` and `Zeroable`
[INFO] [stdout]  --> src/dispatch/data_dispatch.rs:1:16
[INFO] [stdout]   |
[INFO] [stdout] 1 | use bytemuck::{Pod, Zeroable};
[INFO] [stdout]   |                ^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs`
[INFO] [stdout]  --> src/dispatch/data_dispatch.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::fs;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::num::NonZeroU64`
[INFO] [stdout]  --> src/dispatch/data_dispatch.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::num::NonZeroU64;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::datatypes::*`
[INFO] [stdout]  --> src/dispatch/data_dispatch.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::datatypes::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nn_datatypes::*`
[INFO] [stdout]  --> src/dispatch/data_dispatch.rs:8:24
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::datatypes::{nn_datatypes::*, workgroup::*};
[INFO] [stdout]   |                        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/dispatch/data_dispatch.rs:709:25
[INFO] [stdout]     |
[INFO] [stdout] 709 |         let data_slot = (self.data_reader.data_value_size + 1);
[INFO] [stdout]     |                         ^                                    ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 709 -         let data_slot = (self.data_reader.data_value_size + 1);
[INFO] [stdout] 709 +         let data_slot = self.data_reader.data_value_size + 1 ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/dispatch/data_dispatch.rs:751:25
[INFO] [stdout]     |
[INFO] [stdout] 751 |         let data_slot = (self.data_reader.data_value_size + 1);
[INFO] [stdout]     |                         ^                                    ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 751 -         let data_slot = (self.data_reader.data_value_size + 1);
[INFO] [stdout] 751 +         let data_slot = self.data_reader.data_value_size + 1 ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Pod` and `Zeroable`
[INFO] [stdout]  --> src/dispatch/nn_dispatch.rs:1:16
[INFO] [stdout]   |
[INFO] [stdout] 1 | use bytemuck::{Pod, Zeroable};
[INFO] [stdout]   |                ^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::data_reader::*`
[INFO] [stdout]  --> src/dispatch/nn_dispatch.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::data_reader::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `csv::Error`
[INFO] [stdout]  --> src/gpu_dirs/nn_dirs.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use csv::Error;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::dispatch::data_dispatch`
[INFO] [stdout]  --> src/model.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::dispatch::data_dispatch;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `conv_dispatch::*` and `gpu_instance::GPUInstance`
[INFO] [stdout]   --> src/main.rs:15:23
[INFO] [stdout]    |
[INFO] [stdout] 15 | use crate::dispatch::{conv_dispatch::*, gpu_instance::GPUInstance};
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::conv_datatypes::*`
[INFO] [stdout]   --> src/main.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use crate::conv_datatypes::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]    --> src/datatypes/nn_datatypes.rs:482:29
[INFO] [stdout]     |
[INFO] [stdout] 482 |         let mut rng = rand::thread_rng();
[INFO] [stdout]     |                             ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]    --> src/datatypes/conv_datatypes.rs:706:29
[INFO] [stdout]     |
[INFO] [stdout] 706 |         let mut rng = rand::thread_rng();
[INFO] [stdout]     |                             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen_range`: Renamed to `random_range`
[INFO] [stdout]    --> src/datatypes/nn_datatypes.rs:485:26
[INFO] [stdout]     |
[INFO] [stdout] 485 |             .map(|_| rng.gen_range(-0.1..=0.1))
[INFO] [stdout]     |                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen_range`: Renamed to `random_range`
[INFO] [stdout]    --> src/datatypes/conv_datatypes.rs:708:66
[INFO] [stdout]     |
[INFO] [stdout] 708 |         let random_floats: Vec<f32> = (0..self.size).map(|_| rng.gen_range(-1.0..=1.0)).collect();
[INFO] [stdout]     |                                                                  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `counter` is assigned to, but never used
[INFO] [stdout]    --> src/data_reader.rs:242:13
[INFO] [stdout]     |
[INFO] [stdout] 242 |         let mut counter: usize = 0;
[INFO] [stdout]     |             ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_counter` instead
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `counter` is never read
[INFO] [stdout]    --> src/data_reader.rs:249:13
[INFO] [stdout]     |
[INFO] [stdout] 249 |             counter += 1;
[INFO] [stdout]     |             ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/data_reader.rs:254:13
[INFO] [stdout]     |
[INFO] [stdout] 254 |         for i in 0..10000 {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `z`
[INFO] [stdout]   --> src/datatypes/nn_datatypes.rs:13:21
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn deriv_activation(z: f32) -> f32 {
[INFO] [stdout]    |                     ^ help: if this is intentional, prefix it with an underscore: `_z`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/datatypes/nn_datatypes.rs:93:13
[INFO] [stdout]    |
[INFO] [stdout] 93 |         let mut new_nn_dim = model_constructor.nn_dim.clone();
[INFO] [stdout]    |             ----^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/datatypes/nn_datatypes.rs:307:13
[INFO] [stdout]     |
[INFO] [stdout] 307 |         let mut buf = vec![1.0; self.nn_length];
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/datatypes/nn_datatypes.rs:525:13
[INFO] [stdout]     |
[INFO] [stdout] 525 |         let mut v = vec![0.0; self.buffer_size];
[INFO] [stdout]     |             ----^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `kernal_i`
[INFO] [stdout]    --> src/datatypes/conv_datatypes.rs:325:17
[INFO] [stdout]     |
[INFO] [stdout] 325 |             for kernal_i in 0..conv_layer.n_kernals {
[INFO] [stdout]     |                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_kernal_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/datatypes/conv_datatypes.rs:343:13
[INFO] [stdout]     |
[INFO] [stdout] 343 |         let mut layer_i = 0;
[INFO] [stdout]     |             ----^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `layer_i`
[INFO] [stdout]    --> src/datatypes/conv_datatypes.rs:343:13
[INFO] [stdout]     |
[INFO] [stdout] 343 |         let mut layer_i = 0;
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_layer_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/datatypes/conv_datatypes.rs:414:13
[INFO] [stdout]     |
[INFO] [stdout] 414 |         let mut size = 0;
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/datatypes/conv_datatypes.rs:416:13
[INFO] [stdout]     |
[INFO] [stdout] 416 |         let mut kernal_info = KernalInfo::new(kernal_dim);
[INFO] [stdout]     |             ----^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `size`
[INFO] [stdout]    --> src/datatypes/conv_datatypes.rs:414:13
[INFO] [stdout]     |
[INFO] [stdout] 414 |         let mut size = 0;
[INFO] [stdout]     |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c`
[INFO] [stdout]    --> src/datatypes/conv_datatypes.rs:477:13
[INFO] [stdout]     |
[INFO] [stdout] 477 |         let c = kernal_dim[2];
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/datatypes/conv_datatypes.rs:586:13
[INFO] [stdout]     |
[INFO] [stdout] 586 |         let mut empty = vec![1.0; self.storage_buffer_size];
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/datatypes/conv_datatypes.rs:607:13
[INFO] [stdout]     |
[INFO] [stdout] 607 |         let mut empty = vec![0; self.storage_buffer_size];
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `b_offset` is never read
[INFO] [stdout]    --> src/datatypes/conv_datatypes.rs:641:28
[INFO] [stdout]     |
[INFO] [stdout] 641 |         let mut b_offset = 0;
[INFO] [stdout]     |                            ^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data_constructor`
[INFO] [stdout]   --> src/dispatch/conv_dispatch.rs:93:9
[INFO] [stdout]    |
[INFO] [stdout] 93 |         data_constructor: &DataConstructor,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_data_constructor`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `layer_i`
[INFO] [stdout]     --> src/dispatch/conv_dispatch.rs:1836:17
[INFO] [stdout]      |
[INFO] [stdout] 1836 |             let layer_i = 0;
[INFO] [stdout]      |                 ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_layer_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `error_dir_buffer_size`
[INFO] [stdout]    --> src/dispatch/data_dispatch.rs:114:13
[INFO] [stdout]     |
[INFO] [stdout] 114 |         let error_dir_buffer_size = error_slot as u64 * 1;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_error_dir_buffer_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conv_dispatch`
[INFO] [stdout]    --> src/dispatch/data_dispatch.rs:380:9
[INFO] [stdout]     |
[INFO] [stdout] 380 |         conv_dispatch: &ConvDispatch,
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_conv_dispatch`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `error_dir_buffer_size`
[INFO] [stdout]    --> src/dispatch/data_dispatch.rs:427:13
[INFO] [stdout]     |
[INFO] [stdout] 427 |         let error_dir_buffer_size = error_slot as u64 * 1;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_error_dir_buffer_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dir_i`
[INFO] [stdout]   --> src/gpu_dirs/nn_dirs.rs:19:48
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub fn new_nn(nn_info: &NeuralNetworkInfo, dir_i: usize) -> Self {
[INFO] [stdout]    |                                                ^^^^^ help: if this is intentional, prefix it with an underscore: `_dir_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dir_i`
[INFO] [stdout]   --> src/gpu_dirs/nn_dirs.rs:30:50
[INFO] [stdout]    |
[INFO] [stdout] 30 |     pub fn new_conv(conv_info: &ConvolutionInfo, dir_i: usize) -> Self {
[INFO] [stdout]    |                                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_dir_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ping_switch`
[INFO] [stdout]    --> src/gpu_dirs/nn_dirs.rs:305:13
[INFO] [stdout]     |
[INFO] [stdout] 305 |         let ping_switch = (dir_i + 1) % 2;
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ping_switch`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `next_conv_layer`
[INFO] [stdout]    --> src/gpu_dirs/conv_dirs.rs:120:13
[INFO] [stdout]     |
[INFO] [stdout] 120 |         let next_conv_layer = &conv_info.conv_layers[dir_i + 1];
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_next_conv_layer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/model.rs:330:13
[INFO] [stdout]     |
[INFO] [stdout] 330 |         let mut sub_batch_i = 0;
[INFO] [stdout]     |             ----^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sub_batch_i`
[INFO] [stdout]    --> src/model.rs:330:13
[INFO] [stdout]     |
[INFO] [stdout] 330 |         let mut sub_batch_i = 0;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sub_batch_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LARGEST_BUFFER_SIZE` is never used
[INFO] [stdout]  --> src/constants.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub const LARGEST_BUFFER_SIZE: u32 = 134217728 / 4;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/data_reader.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl DataConstructor {
[INFO] [stdout]    | -------------------- associated function in this implementation
[INFO] [stdout] 18 |     pub fn new(
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `data_size` is never read
[INFO] [stdout]   --> src/data_reader.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub struct DataValue {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 48 |     data_size: usize,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `from_mnist`, `from_mnist_downsampled`, `from_testing`, and `from_debug` are never used
[INFO] [stdout]    --> src/data_reader.rs:52:12
[INFO] [stdout]     |
[INFO] [stdout]  51 | impl DataValue {
[INFO] [stdout]     | -------------- associated functions in this implementation
[INFO] [stdout]  52 |     pub fn from_mnist(srecord: &csv::StringRecord) -> DataValue {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  90 |     pub fn from_mnist_downsampled(srecord: &csv::StringRecord) -> DataValue {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn from_testing(srecord: &csv::StringRecord) -> DataValue {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |     pub fn from_debug() -> DataValue {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `dataset_length` is never read
[INFO] [stdout]    --> src/data_reader.rs:145:9
[INFO] [stdout]     |
[INFO] [stdout] 141 | pub struct DataReader {
[INFO] [stdout]     |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 145 |     pub dataset_length: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `load_batch_debug`, `load_batch_testing`, and `show_all_specs` are never used
[INFO] [stdout]    --> src/data_reader.rs:253:12
[INFO] [stdout]     |
[INFO] [stdout] 157 | impl DataReader {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 253 |     pub fn load_batch_debug(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 259 |     pub fn load_batch_testing(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 274 |     pub fn show_all_specs(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `activation` is never used
[INFO] [stdout]  --> src/datatypes/nn_datatypes.rs:9:4
[INFO] [stdout]   |
[INFO] [stdout] 9 | fn activation(z: f32) -> f32 {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `deriv_activation` is never used
[INFO] [stdout]   --> src/datatypes/nn_datatypes.rs:13:4
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn deriv_activation(z: f32) -> f32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_activity_deriv_buffer_size` is never used
[INFO] [stdout]   --> src/datatypes/nn_datatypes.rs:43:4
[INFO] [stdout]    |
[INFO] [stdout] 43 | fn get_activity_deriv_buffer_size(a_dim: &Vec<usize>) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `default`, `update_input_n_dim`, `set_dim`, `set_n_batches`, `set_lr`, and `set_mr` are never used
[INFO] [stdout]    --> src/datatypes/nn_datatypes.rs:81:12
[INFO] [stdout]     |
[INFO] [stdout]  80 | impl NNConstructor {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout]  81 |     pub fn default() -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |     pub fn update_input_n_dim(&mut self, input_dim: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn set_dim(&mut self, dim: Vec<usize>) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 113 |     pub fn set_n_batches(&mut self, n_batches: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     pub fn set_lr(&mut self, lr: f32) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     pub fn set_mr(&mut self, mr: f32) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `null`, `get_index`, and `get_slice` are never used
[INFO] [stdout]    --> src/datatypes/nn_datatypes.rs:148:12
[INFO] [stdout]     |
[INFO] [stdout] 147 | impl NNActivityInfo {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout] 148 |     pub fn null() -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 193 |     pub fn get_index(&self, idx_coord: &Vec<usize>) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub fn get_slice(&self, start_coord: &Vec<usize>, slice_length: usize) -> (usize, usize) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `nn_length` and `wd` are never read
[INFO] [stdout]    --> src/datatypes/nn_datatypes.rs:209:9
[INFO] [stdout]     |
[INFO] [stdout] 204 | pub struct NeuralNetworkInfo {
[INFO] [stdout]     |            ----------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 209 |     pub nn_length: usize,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 215 |     pub wd: f32,
[INFO] [stdout]     |         ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/datatypes/nn_datatypes.rs:230:12
[INFO] [stdout]     |
[INFO] [stdout] 218 | impl NeuralNetworkInfo {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 230 |     pub fn null() -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 298 |     pub fn get_nn_length(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 302 |     pub fn get_n_batches(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 306 |     pub fn create_buffer(&self) -> Vec<f32> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 312 |     pub fn load_param_buffer(&self, file_string: &str) -> Vec<f32> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 398 |     pub fn read_readback(&self, param_slice: &[f32]) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 418 |     pub fn get_save_string(&self, param_slice: &[f32]) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `layer_dim`, `n_layers`, and `param_info` are never read
[INFO] [stdout]    --> src/datatypes/nn_datatypes.rs:452:9
[INFO] [stdout]     |
[INFO] [stdout] 451 | pub struct ParamsDir {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 452 |     pub layer_dim: Vec<usize>,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 453 |     pub n_layers: usize,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 454 |
[INFO] [stdout] 455 |     pub param_info: Vec<TensorInfo>,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `layer_dim`, `n_layers`, `n_batches`, `activities_info`, and `single_buffer_size` are never read
[INFO] [stdout]    --> src/datatypes/nn_datatypes.rs:493:5
[INFO] [stdout]     |
[INFO] [stdout] 492 | pub struct ActivityDir {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout] 493 |     layer_dim: Vec<usize>,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 494 |     n_layers: usize,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 495 |     n_batches: usize,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 496 |
[INFO] [stdout] 497 |     activities_info: Vec<NNActivityInfo>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 498 |     buffer_size: usize,
[INFO] [stdout] 499 |     single_buffer_size: usize,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConvConstructor` is never constructed
[INFO] [stdout]   --> src/datatypes/conv_datatypes.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct ConvConstructor {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/datatypes/conv_datatypes.rs:55:12
[INFO] [stdout]     |
[INFO] [stdout]  54 | impl ConvConstructor {
[INFO] [stdout]     | -------------------- associated items in this implementation
[INFO] [stdout]  55 |     pub fn default() -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  75 |     pub fn from_model_constructor(model_constructor: &ModelConstructor) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  93 |     pub fn add_layer(&mut self, kernal_size: usize, pool_size: usize, n_kernals: usize) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  99 |     pub fn set_inputs(&mut self, input_dim: Vec<usize>, n_layers: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub fn set_n_batches(&mut self, n_batches: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     pub fn set_lr(&mut self, lr: f32) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     pub fn set_mr(&mut self, mr: f32) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConvolutionInfo` is never constructed
[INFO] [stdout]    --> src/datatypes/conv_datatypes.rs:121:12
[INFO] [stdout]     |
[INFO] [stdout] 121 | pub struct ConvolutionInfo {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `construct`, `get_n_flops`, `show_all_specs`, `load_param_buffer`, and `get_save_string` are never used
[INFO] [stdout]    --> src/datatypes/conv_datatypes.rs:138:12
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl ConvolutionInfo {
[INFO] [stdout]     | -------------------- associated items in this implementation
[INFO] [stdout] 138 |     pub fn construct(constructor: &ConvConstructor) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 211 |     pub fn get_n_flops(&self) -> (usize, usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 225 |     pub fn show_all_specs(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 298 |     pub fn load_param_buffer(&self, file_string: &str) -> Vec<f32> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 342 |     pub fn get_save_string(&self, param_slice: &[f32]) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConvLayerInfo` is never constructed
[INFO] [stdout]    --> src/datatypes/conv_datatypes.rs:392:12
[INFO] [stdout]     |
[INFO] [stdout] 392 | pub struct ConvLayerInfo {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/datatypes/conv_datatypes.rs:406:12
[INFO] [stdout]     |
[INFO] [stdout] 405 | impl ConvLayerInfo {
[INFO] [stdout]     | ------------------ associated function in this implementation
[INFO] [stdout] 406 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PoolingInfo` is never constructed
[INFO] [stdout]    --> src/datatypes/conv_datatypes.rs:447:12
[INFO] [stdout]     |
[INFO] [stdout] 447 | pub struct PoolingInfo {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/datatypes/conv_datatypes.rs:453:12
[INFO] [stdout]     |
[INFO] [stdout] 452 | impl PoolingInfo {
[INFO] [stdout]     | ---------------- associated function in this implementation
[INFO] [stdout] 453 |     pub fn new(pool_dim: &Vec<usize>, pool_size: usize) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `KernalInfo` is never constructed
[INFO] [stdout]    --> src/datatypes/conv_datatypes.rs:463:12
[INFO] [stdout]     |
[INFO] [stdout] 463 | pub struct KernalInfo {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/datatypes/conv_datatypes.rs:472:12
[INFO] [stdout]     |
[INFO] [stdout] 471 | impl KernalInfo {
[INFO] [stdout]     | --------------- associated function in this implementation
[INFO] [stdout] 472 |     pub fn new(kernal_dim: Vec<usize>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConvActivityInfo` is never constructed
[INFO] [stdout]    --> src/datatypes/conv_datatypes.rs:502:12
[INFO] [stdout]     |
[INFO] [stdout] 502 | pub struct ConvActivityInfo {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `create_output_swap_buffer`, `create_deriv_swap_buffer`, `create_output_storage_buffer`, and `create_pool_idx_storage_buffer` are never used
[INFO] [stdout]    --> src/datatypes/conv_datatypes.rs:517:12
[INFO] [stdout]     |
[INFO] [stdout] 516 | impl ConvActivityInfo {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout] 517 |     pub fn new(layer_info: &Vec<ConvLayerInfo>, n_batches: usize) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 560 |     pub fn create_output_swap_buffer(&self) -> Vec<f32> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 572 |     pub fn create_deriv_swap_buffer(&self) -> Vec<f32> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 585 |     pub fn create_output_storage_buffer(&self) -> Vec<f32> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 606 |     pub fn create_pool_idx_storage_buffer(&self) -> Vec<u32> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConvParamInfo` is never constructed
[INFO] [stdout]    --> src/datatypes/conv_datatypes.rs:618:12
[INFO] [stdout]     |
[INFO] [stdout] 618 | pub struct ConvParamInfo {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `create_buffer`, `create_accumulate_buffer_empty`, and `create_buffer_empty` are never used
[INFO] [stdout]    --> src/datatypes/conv_datatypes.rs:634:12
[INFO] [stdout]     |
[INFO] [stdout] 633 | impl ConvParamInfo {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] 634 |     pub fn new(layer_info: &Vec<ConvLayerInfo>, split_k: usize) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 684 |     pub fn create_buffer(&self) -> Vec<f32> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 713 |     pub fn create_accumulate_buffer_empty(&self, n_batches: usize) -> Vec<f32> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 717 |     pub fn create_buffer_empty(&self, n_batches: usize) -> Vec<f32> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_vec_product` is never used
[INFO] [stdout]    --> src/datatypes/conv_datatypes.rs:722:4
[INFO] [stdout]     |
[INFO] [stdout] 722 | fn get_vec_product(vec: &Vec<usize>) -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_layer_max` is never used
[INFO] [stdout]    --> src/datatypes/conv_datatypes.rs:732:8
[INFO] [stdout]     |
[INFO] [stdout] 732 | pub fn get_layer_max(layer_info: &Vec<ConvLayerInfo>) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_kernal_max` is never used
[INFO] [stdout]    --> src/datatypes/conv_datatypes.rs:744:8
[INFO] [stdout]     |
[INFO] [stdout] 744 | pub fn get_kernal_max(layer_info: &Vec<ConvLayerInfo>) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `tens_n_dim` and `tens_strides` are never read
[INFO] [stdout]  --> src/datatypes/tensor.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct TensorInfo{
[INFO] [stdout]   |            ---------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 6 |     pub tens_n_dim: usize,
[INFO] [stdout]   |         ^^^^^^^^^^
[INFO] [stdout] 7 |     pub tens_strides: Vec<usize>,
[INFO] [stdout]   |         ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `TensorInfo` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `null`, `get_slice`, and `get_index` are never used
[INFO] [stdout]   --> src/datatypes/tensor.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl TensorInfo{
[INFO] [stdout]    | --------------- associated items in this implementation
[INFO] [stdout] 12 |     pub fn null() -> Self{
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn get_slice(&self, idx_coord: &Vec<usize>, slice_length: usize) -> (usize, usize){
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub fn get_index(&self, idx_coord: &Vec<usize>) -> usize{
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `vec_dot` is never used
[INFO] [stdout]   --> src/datatypes/tensor.rs:71:4
[INFO] [stdout]    |
[INFO] [stdout] 71 | fn vec_dot(vec1: &Vec<usize>, vec2: &Vec<usize>) -> usize{
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `vec_dot_f` is never used
[INFO] [stdout]   --> src/datatypes/tensor.rs:90:4
[INFO] [stdout]    |
[INFO] [stdout] 90 | fn vec_dot_f(vec1: &[f32], vec2: &[f32]) -> f32{
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `KernalRange` is never constructed
[INFO] [stdout]  --> src/datatypes/range.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct KernalRange{
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]  --> src/datatypes/range.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | impl KernalRange{
[INFO] [stdout]   | ---------------- associated function in this implementation
[INFO] [stdout] 9 |     pub fn new(start: i32, end: i32) -> Self{
[INFO] [stdout]   |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `z` is never read
[INFO] [stdout]  --> src/datatypes/workgroup.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub struct WorkgroupDim{
[INFO] [stdout]   |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 4 |     pub z: usize,
[INFO] [stdout]   |         ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConvPassInfo` is never constructed
[INFO] [stdout]   --> src/dispatch/conv_dispatch.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct ConvPassInfo {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/dispatch/conv_dispatch.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | impl ConvPassInfo {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] 31 |     pub fn new(
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConvDispatch` is never constructed
[INFO] [stdout]   --> src/dispatch/conv_dispatch.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub struct ConvDispatch {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]     --> src/dispatch/conv_dispatch.rs:82:12
[INFO] [stdout]      |
[INFO] [stdout]   81 | impl ConvDispatch {
[INFO] [stdout]      | ----------------- associated items in this implementation
[INFO] [stdout]   82 |     pub fn get_act_buffer_ref(&self) -> &wgpu::Buffer {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]   86 |     pub fn get_storage_buffer_ref(&self) -> &wgpu::Buffer {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]   90 |     pub fn new(
[INFO] [stdout]      |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 1631 |     pub fn load_params(&self, gpu_instance: &GPUInstance, file_str: &str) {
[INFO] [stdout]      |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1639 |     pub fn update_momentum(&self, gpu_instance: &GPUInstance, t_i: u32) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1676 |     pub fn accumulate_gradients(&self, gpu_instance: &GPUInstance) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1713 |     pub fn backward_conv_mat(&self, gpu_instance: &GPUInstance) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1758 |     pub fn backward_conv_mat_deriv(&self, gpu_instance: &GPUInstance) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1798 |     pub fn temp_forward_copy(&self, gpu_instance: &GPUInstance) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1822 |     pub fn forward_conv_mat(&self, gpu_instance: &GPUInstance) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1885 |     pub fn transfer_nn_deriv(&self, gpu_instance: &GPUInstance, nn_dispatch: &NNDispatch) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1916 |     pub fn backward_conv_full(&self, gpu_instance: &GPUInstance) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2069 |     pub fn get_param_slice(&self, gpu_instance: &GPUInstance) -> Vec<f32> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2100 |     pub fn read_back_act_single(&self, gpu_instance: &GPUInstance) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `dir_buffer`, `shader`, and `dir_slot_size` are never read
[INFO] [stdout]   --> src/dispatch/data_dispatch.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct DataPassInfo {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 16 |     pub dir_buffer: wgpu::Buffer, // for metas
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 17 |
[INFO] [stdout] 18 |     pub shader: wgpu::ShaderModule,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub dir_slot_size: u64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new_convnn`, `set_data_convnn`, and `read_back_data` are never used
[INFO] [stdout]    --> src/dispatch/data_dispatch.rs:377:12
[INFO] [stdout]     |
[INFO] [stdout]  64 | impl DataDispatch {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 377 |     pub fn new_convnn(
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 743 |     pub fn set_data_convnn(&self, gpu_instance: &GPUInstance, conv_dispatch: &ConvDispatch) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 903 |     pub fn read_back_data(&self, gpu_instance: &GPUInstance) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `instance` and `adapter` are never read
[INFO] [stdout]  --> src/dispatch/gpu_instance.rs:3:9
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub struct GPUInstance{
[INFO] [stdout]   |            ----------- fields in this struct
[INFO] [stdout] 3 |     pub instance: wgpu::Instance,
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout] 4 |     pub adapter: wgpu::Adapter,
[INFO] [stdout]   |         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `dir_buffer` and `shader` are never read
[INFO] [stdout]   --> src/dispatch/nn_dispatch.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct NNPassInfo {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 13 |     pub dir_buffer: wgpu::Buffer, // for metas
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 14 |
[INFO] [stdout] 15 |     pub shader: wgpu::ShaderModule,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `param_buffer`, `gradient_buffer`, `momentum_buffer`, `variance_buffer`, and `out_buffer` are never read
[INFO] [stdout]   --> src/dispatch/nn_dispatch.rs:51:5
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub struct NNDispatch {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 51 |     param_buffer: wgpu::Buffer,    // holds the params for the model
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 52 |     gradient_buffer: wgpu::Buffer, // holds the param gradients
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 53 |     momentum_buffer: wgpu::Buffer, // holds the param momentum
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 54 |     variance_buffer: wgpu::Buffer,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 55 |     act_buffer: wgpu::Buffer, // holds intermediate layer outputs and gradients
[INFO] [stdout] 56 |     out_buffer: wgpu::Buffer, // retrieves parameters and debug stuff
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]     --> src/dispatch/nn_dispatch.rs:790:12
[INFO] [stdout]      |
[INFO] [stdout]   67 | impl NNDispatch {
[INFO] [stdout]      | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  790 |     pub fn backward_mat_convnn(&self, gpu_instance: &GPUInstance) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  859 |     pub fn transfer_conv_forward(&self, gpu_instance: &GPUInstance, conv_dispatch: &ConvDispatch) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  934 |     pub fn read_back_params(&self, gpu_instance: &GPUInstance) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  966 |     pub fn read_back_save(&self, gpu_instance: &GPUInstance) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1000 |     pub fn read_back_act_single(&self, gpu_instance: &GPUInstance) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1097 |     pub fn read_back_gradients(&self, gpu_instance: &GPUInstance) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1129 |     pub fn read_back_raw(&self, gpu_instance: &GPUInstance, n_floats: u64) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1155 |     pub fn load_params(&self, gpu_instance: &GPUInstance, file_str: &str) {
[INFO] [stdout]      |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1163 |     pub fn get_param_slice(&self, gpu_instance: &GPUInstance) -> Vec<f32> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ceil_div_inv_y` is never used
[INFO] [stdout]  --> src/functions.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn ceil_div_inv_y(c: usize, x: usize) -> usize {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `floor_div` is never used
[INFO] [stdout]   --> src/functions.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn floor_div(x: usize, y: usize) -> usize {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new_conv` is never used
[INFO] [stdout]   --> src/gpu_dirs/nn_dirs.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl FlatApplyDir {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn new_conv(conv_info: &ConvolutionInfo, dir_i: usize) -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/gpu_dirs/conv_dirs.rs:42:12
[INFO] [stdout]    |
[INFO] [stdout] 41 | impl Im2ColDir_F {
[INFO] [stdout]    | ---------------- associated function in this implementation
[INFO] [stdout] 42 |     pub fn new(conv_info: &ConvolutionInfo, dir_i: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/gpu_dirs/conv_dirs.rs:118:12
[INFO] [stdout]     |
[INFO] [stdout] 117 | impl Im2ColDir_BG {
[INFO] [stdout]     | ----------------- associated function in this implementation
[INFO] [stdout] 118 |     pub fn new(conv_info: &ConvolutionInfo, dir_i: usize) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/gpu_dirs/conv_dirs.rs:200:12
[INFO] [stdout]     |
[INFO] [stdout] 199 | impl Im2ColDir_BD {
[INFO] [stdout]     | ----------------- associated function in this implementation
[INFO] [stdout] 200 |     pub fn new(conv_info: &ConvolutionInfo, dir_i: usize) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `forward_new` and `backward_new` are never used
[INFO] [stdout]    --> src/gpu_dirs/conv_dirs.rs:269:12
[INFO] [stdout]     |
[INFO] [stdout] 268 | impl PoolDir {
[INFO] [stdout]     | ------------ associated functions in this implementation
[INFO] [stdout] 269 |     pub fn forward_new(conv_info: &ConvolutionInfo, dir_i: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 301 |     pub fn backward_new(conv_info: &ConvolutionInfo, dir_i: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/gpu_dirs/conv_dirs.rs:350:12
[INFO] [stdout]     |
[INFO] [stdout] 349 | impl BiasGradientDir {
[INFO] [stdout]     | -------------------- associated function in this implementation
[INFO] [stdout] 350 |     pub fn new(conv_info: &ConvolutionInfo, dir_i: usize) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new_weight` and `new_bias` are never used
[INFO] [stdout]    --> src/gpu_dirs/conv_dirs.rs:378:12
[INFO] [stdout]     |
[INFO] [stdout] 377 | impl AccDir {
[INFO] [stdout]     | ----------- associated functions in this implementation
[INFO] [stdout] 378 |     pub fn new_weight(conv_info: &ConvolutionInfo, dir_i: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 389 |     pub fn new_bias(conv_info: &ConvolutionInfo, dir_i: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `conv_n_layers`, `conv_input_layer_dim`, `conv_pooling_dim`, `conv_kernal_dim`, `conv_layer_output`, and `split_k` are never read
[INFO] [stdout]   --> src/model.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct ModelConstructor {
[INFO] [stdout]    |            ---------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 17 |     pub conv_n_layers: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 18 |     pub conv_input_layer_dim: Vec<usize>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 19 |     pub conv_pooling_dim: Vec<usize>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 20 |     pub conv_kernal_dim: Vec<usize>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 21 |     pub conv_layer_output: Vec<usize>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 22 |     pub split_k: usize,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ModelConstructor` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/model.rs:64:12
[INFO] [stdout]     |
[INFO] [stdout]  38 | impl ModelConstructor {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  64 |     pub fn load_specs() -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 129 |     pub fn set_conv_n_layers(&mut self, n_layers: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub fn set_conv_input_layer_dim(&mut self, input_dim: Vec<usize>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     pub fn add_kernal_layer(&mut self, kernal_size: usize, pool_size: usize, n_kernals: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 171 |     pub fn set_split_k(&mut self, split_k: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 175 |     pub fn set_split_k_auto(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 200 |     pub fn set_data_mnist_downsampled(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 210 |     pub fn set_data_mnist(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 239 |     pub fn load_all_data(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `show_params`, `save`, and `debug` are never used
[INFO] [stdout]    --> src/model.rs:278:12
[INFO] [stdout]     |
[INFO] [stdout] 253 | impl NNModel {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 278 |     pub fn show_params(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 282 |     pub fn save(&self) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 286 |     pub fn debug(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConvNNModel` is never constructed
[INFO] [stdout]    --> src/model.rs:419:12
[INFO] [stdout]     |
[INFO] [stdout] 419 | pub struct ConvNNModel {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/model.rs:432:12
[INFO] [stdout]     |
[INFO] [stdout] 431 | impl ConvNNModel {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] 432 |     pub fn construct(constructor: ModelConstructor) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 467 |     pub fn show_all_specs(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 473 |     pub fn show_epoch_specs(&self, time_taken: Duration) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 495 |     pub fn debug(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 523 |     pub fn load(&mut self) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 532 |     pub fn train(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 593 |     pub fn test(&mut self) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 638 |     pub fn save(&self) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/dispatch/nn_dispatch.rs:994:9
[INFO] [stdout]     |
[INFO] [stdout] 994 |         fs::write("./saves/saved_nn.txt", save_string);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 994 |         let _ = fs::write("./saves/saved_nn.txt", save_string);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/model.rs:649:9
[INFO] [stdout]     |
[INFO] [stdout] 649 |         fs::write("./saves/saved_convnn.txt", save_string);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 649 |         let _ = fs::write("./saves/saved_convnn.txt", save_string);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 18s
[INFO] running `Command { std: "docker" "inspect" "ae7cf850d9bc0f34fc704e83e420fdf6f557e62f0216cbe15849eb28870b281a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ae7cf850d9bc0f34fc704e83e420fdf6f557e62f0216cbe15849eb28870b281a", kill_on_drop: false }`
[INFO] [stdout] ae7cf850d9bc0f34fc704e83e420fdf6f557e62f0216cbe15849eb28870b281a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+7704328ba5ae8d6ce0ac303c9d5a1a1605906766" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 4e74b6d57282f24175998da44ce3b8ee190a18ec02739b7bb8ea915a500018e5
[INFO] running `Command { std: "docker" "start" "-a" "4e74b6d57282f24175998da44ce3b8ee190a18ec02739b7bb8ea915a500018e5", kill_on_drop: false }`
[INFO] [stderr]    Compiling MachineLearningGPU v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `Pod` and `Zeroable`
[INFO] [stdout]  --> src/main.rs:1:16
[INFO] [stdout]   |
[INFO] [stdout] 1 | use bytemuck::{Pod, Zeroable};
[INFO] [stdout]   |                ^^^  ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::num::NonZeroU64`
[INFO] [stdout]  --> src/main.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::num::NonZeroU64;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Instant`
[INFO] [stdout]  --> src/main.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::time::Instant;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `wgpu::util::DeviceExt`
[INFO] [stdout]  --> src/main.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use wgpu::util::DeviceExt;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs::File`
[INFO] [stdout]  --> src/data_reader.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fs::File;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::string`
[INFO] [stdout]  --> src/data_reader.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::string;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::data_reader::DataReader`
[INFO] [stdout]  --> src/datatypes/nn_datatypes.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::data_reader::DataReader;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::distr::uniform::UniformUsize`
[INFO] [stdout]  --> src/datatypes/nn_datatypes.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use rand::distr::uniform::UniformUsize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::model`
[INFO] [stdout]  --> src/datatypes/conv_datatypes.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::model;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::dispatch::conv_dispatch`
[INFO] [stdout]  --> src/dispatch/conv_dispatch.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::dispatch::conv_dispatch;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Pod` and `Zeroable`
[INFO] [stdout]  --> src/dispatch/conv_dispatch.rs:8:16
[INFO] [stdout]   |
[INFO] [stdout] 8 | use bytemuck::{Pod, Zeroable};
[INFO] [stdout]   |                ^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::num::NonZeroU64`
[INFO] [stdout]  --> src/dispatch/conv_dispatch.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::num::NonZeroU64;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs`
[INFO] [stdout]   --> src/dispatch/conv_dispatch.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::fs;
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Pod` and `Zeroable`
[INFO] [stdout]  --> src/dispatch/data_dispatch.rs:1:16
[INFO] [stdout]   |
[INFO] [stdout] 1 | use bytemuck::{Pod, Zeroable};
[INFO] [stdout]   |                ^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs`
[INFO] [stdout]  --> src/dispatch/data_dispatch.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::fs;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::num::NonZeroU64`
[INFO] [stdout]  --> src/dispatch/data_dispatch.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::num::NonZeroU64;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::datatypes::*`
[INFO] [stdout]  --> src/dispatch/data_dispatch.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::datatypes::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nn_datatypes::*`
[INFO] [stdout]  --> src/dispatch/data_dispatch.rs:8:24
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::datatypes::{nn_datatypes::*, workgroup::*};
[INFO] [stdout]   |                        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/dispatch/data_dispatch.rs:709:25
[INFO] [stdout]     |
[INFO] [stdout] 709 |         let data_slot = (self.data_reader.data_value_size + 1);
[INFO] [stdout]     |                         ^                                    ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 709 -         let data_slot = (self.data_reader.data_value_size + 1);
[INFO] [stdout] 709 +         let data_slot = self.data_reader.data_value_size + 1 ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/dispatch/data_dispatch.rs:751:25
[INFO] [stdout]     |
[INFO] [stdout] 751 |         let data_slot = (self.data_reader.data_value_size + 1);
[INFO] [stdout]     |                         ^                                    ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 751 -         let data_slot = (self.data_reader.data_value_size + 1);
[INFO] [stdout] 751 +         let data_slot = self.data_reader.data_value_size + 1 ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Pod` and `Zeroable`
[INFO] [stdout]  --> src/dispatch/nn_dispatch.rs:1:16
[INFO] [stdout]   |
[INFO] [stdout] 1 | use bytemuck::{Pod, Zeroable};
[INFO] [stdout]   |                ^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::data_reader::*`
[INFO] [stdout]  --> src/dispatch/nn_dispatch.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::data_reader::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `csv::Error`
[INFO] [stdout]  --> src/gpu_dirs/nn_dirs.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use csv::Error;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::dispatch::data_dispatch`
[INFO] [stdout]  --> src/model.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::dispatch::data_dispatch;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `conv_dispatch::*` and `gpu_instance::GPUInstance`
[INFO] [stdout]   --> src/main.rs:15:23
[INFO] [stdout]    |
[INFO] [stdout] 15 | use crate::dispatch::{conv_dispatch::*, gpu_instance::GPUInstance};
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::conv_datatypes::*`
[INFO] [stdout]   --> src/main.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use crate::conv_datatypes::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]    --> src/datatypes/nn_datatypes.rs:482:29
[INFO] [stdout]     |
[INFO] [stdout] 482 |         let mut rng = rand::thread_rng();
[INFO] [stdout]     |                             ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]    --> src/datatypes/conv_datatypes.rs:706:29
[INFO] [stdout]     |
[INFO] [stdout] 706 |         let mut rng = rand::thread_rng();
[INFO] [stdout]     |                             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen_range`: Renamed to `random_range`
[INFO] [stdout]    --> src/datatypes/nn_datatypes.rs:485:26
[INFO] [stdout]     |
[INFO] [stdout] 485 |             .map(|_| rng.gen_range(-0.1..=0.1))
[INFO] [stdout]     |                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen_range`: Renamed to `random_range`
[INFO] [stdout]    --> src/datatypes/conv_datatypes.rs:708:66
[INFO] [stdout]     |
[INFO] [stdout] 708 |         let random_floats: Vec<f32> = (0..self.size).map(|_| rng.gen_range(-1.0..=1.0)).collect();
[INFO] [stdout]     |                                                                  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `counter` is assigned to, but never used
[INFO] [stdout]    --> src/data_reader.rs:242:13
[INFO] [stdout]     |
[INFO] [stdout] 242 |         let mut counter: usize = 0;
[INFO] [stdout]     |             ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_counter` instead
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `counter` is never read
[INFO] [stdout]    --> src/data_reader.rs:249:13
[INFO] [stdout]     |
[INFO] [stdout] 249 |             counter += 1;
[INFO] [stdout]     |             ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/data_reader.rs:254:13
[INFO] [stdout]     |
[INFO] [stdout] 254 |         for i in 0..10000 {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `z`
[INFO] [stdout]   --> src/datatypes/nn_datatypes.rs:13:21
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn deriv_activation(z: f32) -> f32 {
[INFO] [stdout]    |                     ^ help: if this is intentional, prefix it with an underscore: `_z`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/datatypes/nn_datatypes.rs:93:13
[INFO] [stdout]    |
[INFO] [stdout] 93 |         let mut new_nn_dim = model_constructor.nn_dim.clone();
[INFO] [stdout]    |             ----^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/datatypes/nn_datatypes.rs:307:13
[INFO] [stdout]     |
[INFO] [stdout] 307 |         let mut buf = vec![1.0; self.nn_length];
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/datatypes/nn_datatypes.rs:525:13
[INFO] [stdout]     |
[INFO] [stdout] 525 |         let mut v = vec![0.0; self.buffer_size];
[INFO] [stdout]     |             ----^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `kernal_i`
[INFO] [stdout]    --> src/datatypes/conv_datatypes.rs:325:17
[INFO] [stdout]     |
[INFO] [stdout] 325 |             for kernal_i in 0..conv_layer.n_kernals {
[INFO] [stdout]     |                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_kernal_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/datatypes/conv_datatypes.rs:343:13
[INFO] [stdout]     |
[INFO] [stdout] 343 |         let mut layer_i = 0;
[INFO] [stdout]     |             ----^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `layer_i`
[INFO] [stdout]    --> src/datatypes/conv_datatypes.rs:343:13
[INFO] [stdout]     |
[INFO] [stdout] 343 |         let mut layer_i = 0;
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_layer_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/datatypes/conv_datatypes.rs:414:13
[INFO] [stdout]     |
[INFO] [stdout] 414 |         let mut size = 0;
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/datatypes/conv_datatypes.rs:416:13
[INFO] [stdout]     |
[INFO] [stdout] 416 |         let mut kernal_info = KernalInfo::new(kernal_dim);
[INFO] [stdout]     |             ----^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `size`
[INFO] [stdout]    --> src/datatypes/conv_datatypes.rs:414:13
[INFO] [stdout]     |
[INFO] [stdout] 414 |         let mut size = 0;
[INFO] [stdout]     |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c`
[INFO] [stdout]    --> src/datatypes/conv_datatypes.rs:477:13
[INFO] [stdout]     |
[INFO] [stdout] 477 |         let c = kernal_dim[2];
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/datatypes/conv_datatypes.rs:586:13
[INFO] [stdout]     |
[INFO] [stdout] 586 |         let mut empty = vec![1.0; self.storage_buffer_size];
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/datatypes/conv_datatypes.rs:607:13
[INFO] [stdout]     |
[INFO] [stdout] 607 |         let mut empty = vec![0; self.storage_buffer_size];
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `b_offset` is never read
[INFO] [stdout]    --> src/datatypes/conv_datatypes.rs:641:28
[INFO] [stdout]     |
[INFO] [stdout] 641 |         let mut b_offset = 0;
[INFO] [stdout]     |                            ^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data_constructor`
[INFO] [stdout]   --> src/dispatch/conv_dispatch.rs:93:9
[INFO] [stdout]    |
[INFO] [stdout] 93 |         data_constructor: &DataConstructor,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_data_constructor`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `layer_i`
[INFO] [stdout]     --> src/dispatch/conv_dispatch.rs:1836:17
[INFO] [stdout]      |
[INFO] [stdout] 1836 |             let layer_i = 0;
[INFO] [stdout]      |                 ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_layer_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `error_dir_buffer_size`
[INFO] [stdout]    --> src/dispatch/data_dispatch.rs:114:13
[INFO] [stdout]     |
[INFO] [stdout] 114 |         let error_dir_buffer_size = error_slot as u64 * 1;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_error_dir_buffer_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conv_dispatch`
[INFO] [stdout]    --> src/dispatch/data_dispatch.rs:380:9
[INFO] [stdout]     |
[INFO] [stdout] 380 |         conv_dispatch: &ConvDispatch,
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_conv_dispatch`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `error_dir_buffer_size`
[INFO] [stdout]    --> src/dispatch/data_dispatch.rs:427:13
[INFO] [stdout]     |
[INFO] [stdout] 427 |         let error_dir_buffer_size = error_slot as u64 * 1;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_error_dir_buffer_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dir_i`
[INFO] [stdout]   --> src/gpu_dirs/nn_dirs.rs:19:48
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub fn new_nn(nn_info: &NeuralNetworkInfo, dir_i: usize) -> Self {
[INFO] [stdout]    |                                                ^^^^^ help: if this is intentional, prefix it with an underscore: `_dir_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dir_i`
[INFO] [stdout]   --> src/gpu_dirs/nn_dirs.rs:30:50
[INFO] [stdout]    |
[INFO] [stdout] 30 |     pub fn new_conv(conv_info: &ConvolutionInfo, dir_i: usize) -> Self {
[INFO] [stdout]    |                                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_dir_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ping_switch`
[INFO] [stdout]    --> src/gpu_dirs/nn_dirs.rs:305:13
[INFO] [stdout]     |
[INFO] [stdout] 305 |         let ping_switch = (dir_i + 1) % 2;
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ping_switch`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `next_conv_layer`
[INFO] [stdout]    --> src/gpu_dirs/conv_dirs.rs:120:13
[INFO] [stdout]     |
[INFO] [stdout] 120 |         let next_conv_layer = &conv_info.conv_layers[dir_i + 1];
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_next_conv_layer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/model.rs:330:13
[INFO] [stdout]     |
[INFO] [stdout] 330 |         let mut sub_batch_i = 0;
[INFO] [stdout]     |             ----^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sub_batch_i`
[INFO] [stdout]    --> src/model.rs:330:13
[INFO] [stdout]     |
[INFO] [stdout] 330 |         let mut sub_batch_i = 0;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sub_batch_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LARGEST_BUFFER_SIZE` is never used
[INFO] [stdout]  --> src/constants.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub const LARGEST_BUFFER_SIZE: u32 = 134217728 / 4;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/data_reader.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl DataConstructor {
[INFO] [stdout]    | -------------------- associated function in this implementation
[INFO] [stdout] 18 |     pub fn new(
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `data_size` is never read
[INFO] [stdout]   --> src/data_reader.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub struct DataValue {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 48 |     data_size: usize,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `from_mnist`, `from_mnist_downsampled`, `from_testing`, and `from_debug` are never used
[INFO] [stdout]    --> src/data_reader.rs:52:12
[INFO] [stdout]     |
[INFO] [stdout]  51 | impl DataValue {
[INFO] [stdout]     | -------------- associated functions in this implementation
[INFO] [stdout]  52 |     pub fn from_mnist(srecord: &csv::StringRecord) -> DataValue {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  90 |     pub fn from_mnist_downsampled(srecord: &csv::StringRecord) -> DataValue {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn from_testing(srecord: &csv::StringRecord) -> DataValue {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |     pub fn from_debug() -> DataValue {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `dataset_length` is never read
[INFO] [stdout]    --> src/data_reader.rs:145:9
[INFO] [stdout]     |
[INFO] [stdout] 141 | pub struct DataReader {
[INFO] [stdout]     |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 145 |     pub dataset_length: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `load_batch_debug`, `load_batch_testing`, and `show_all_specs` are never used
[INFO] [stdout]    --> src/data_reader.rs:253:12
[INFO] [stdout]     |
[INFO] [stdout] 157 | impl DataReader {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 253 |     pub fn load_batch_debug(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 259 |     pub fn load_batch_testing(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 274 |     pub fn show_all_specs(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `activation` is never used
[INFO] [stdout]  --> src/datatypes/nn_datatypes.rs:9:4
[INFO] [stdout]   |
[INFO] [stdout] 9 | fn activation(z: f32) -> f32 {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `deriv_activation` is never used
[INFO] [stdout]   --> src/datatypes/nn_datatypes.rs:13:4
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn deriv_activation(z: f32) -> f32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_activity_deriv_buffer_size` is never used
[INFO] [stdout]   --> src/datatypes/nn_datatypes.rs:43:4
[INFO] [stdout]    |
[INFO] [stdout] 43 | fn get_activity_deriv_buffer_size(a_dim: &Vec<usize>) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `default`, `update_input_n_dim`, `set_dim`, `set_n_batches`, `set_lr`, and `set_mr` are never used
[INFO] [stdout]    --> src/datatypes/nn_datatypes.rs:81:12
[INFO] [stdout]     |
[INFO] [stdout]  80 | impl NNConstructor {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout]  81 |     pub fn default() -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |     pub fn update_input_n_dim(&mut self, input_dim: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn set_dim(&mut self, dim: Vec<usize>) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 113 |     pub fn set_n_batches(&mut self, n_batches: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     pub fn set_lr(&mut self, lr: f32) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     pub fn set_mr(&mut self, mr: f32) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `null`, `get_index`, and `get_slice` are never used
[INFO] [stdout]    --> src/datatypes/nn_datatypes.rs:148:12
[INFO] [stdout]     |
[INFO] [stdout] 147 | impl NNActivityInfo {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout] 148 |     pub fn null() -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 193 |     pub fn get_index(&self, idx_coord: &Vec<usize>) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub fn get_slice(&self, start_coord: &Vec<usize>, slice_length: usize) -> (usize, usize) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `nn_length` and `wd` are never read
[INFO] [stdout]    --> src/datatypes/nn_datatypes.rs:209:9
[INFO] [stdout]     |
[INFO] [stdout] 204 | pub struct NeuralNetworkInfo {
[INFO] [stdout]     |            ----------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 209 |     pub nn_length: usize,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 215 |     pub wd: f32,
[INFO] [stdout]     |         ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/datatypes/nn_datatypes.rs:230:12
[INFO] [stdout]     |
[INFO] [stdout] 218 | impl NeuralNetworkInfo {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 230 |     pub fn null() -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 298 |     pub fn get_nn_length(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 302 |     pub fn get_n_batches(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 306 |     pub fn create_buffer(&self) -> Vec<f32> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 312 |     pub fn load_param_buffer(&self, file_string: &str) -> Vec<f32> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 398 |     pub fn read_readback(&self, param_slice: &[f32]) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 418 |     pub fn get_save_string(&self, param_slice: &[f32]) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `layer_dim`, `n_layers`, and `param_info` are never read
[INFO] [stdout]    --> src/datatypes/nn_datatypes.rs:452:9
[INFO] [stdout]     |
[INFO] [stdout] 451 | pub struct ParamsDir {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 452 |     pub layer_dim: Vec<usize>,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 453 |     pub n_layers: usize,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 454 |
[INFO] [stdout] 455 |     pub param_info: Vec<TensorInfo>,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `layer_dim`, `n_layers`, `n_batches`, `activities_info`, and `single_buffer_size` are never read
[INFO] [stdout]    --> src/datatypes/nn_datatypes.rs:493:5
[INFO] [stdout]     |
[INFO] [stdout] 492 | pub struct ActivityDir {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout] 493 |     layer_dim: Vec<usize>,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 494 |     n_layers: usize,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 495 |     n_batches: usize,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 496 |
[INFO] [stdout] 497 |     activities_info: Vec<NNActivityInfo>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 498 |     buffer_size: usize,
[INFO] [stdout] 499 |     single_buffer_size: usize,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConvConstructor` is never constructed
[INFO] [stdout]   --> src/datatypes/conv_datatypes.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct ConvConstructor {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/datatypes/conv_datatypes.rs:55:12
[INFO] [stdout]     |
[INFO] [stdout]  54 | impl ConvConstructor {
[INFO] [stdout]     | -------------------- associated items in this implementation
[INFO] [stdout]  55 |     pub fn default() -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  75 |     pub fn from_model_constructor(model_constructor: &ModelConstructor) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  93 |     pub fn add_layer(&mut self, kernal_size: usize, pool_size: usize, n_kernals: usize) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  99 |     pub fn set_inputs(&mut self, input_dim: Vec<usize>, n_layers: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub fn set_n_batches(&mut self, n_batches: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     pub fn set_lr(&mut self, lr: f32) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     pub fn set_mr(&mut self, mr: f32) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConvolutionInfo` is never constructed
[INFO] [stdout]    --> src/datatypes/conv_datatypes.rs:121:12
[INFO] [stdout]     |
[INFO] [stdout] 121 | pub struct ConvolutionInfo {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `construct`, `get_n_flops`, `show_all_specs`, `load_param_buffer`, and `get_save_string` are never used
[INFO] [stdout]    --> src/datatypes/conv_datatypes.rs:138:12
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl ConvolutionInfo {
[INFO] [stdout]     | -------------------- associated items in this implementation
[INFO] [stdout] 138 |     pub fn construct(constructor: &ConvConstructor) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 211 |     pub fn get_n_flops(&self) -> (usize, usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 225 |     pub fn show_all_specs(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 298 |     pub fn load_param_buffer(&self, file_string: &str) -> Vec<f32> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 342 |     pub fn get_save_string(&self, param_slice: &[f32]) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConvLayerInfo` is never constructed
[INFO] [stdout]    --> src/datatypes/conv_datatypes.rs:392:12
[INFO] [stdout]     |
[INFO] [stdout] 392 | pub struct ConvLayerInfo {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/datatypes/conv_datatypes.rs:406:12
[INFO] [stdout]     |
[INFO] [stdout] 405 | impl ConvLayerInfo {
[INFO] [stdout]     | ------------------ associated function in this implementation
[INFO] [stdout] 406 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PoolingInfo` is never constructed
[INFO] [stdout]    --> src/datatypes/conv_datatypes.rs:447:12
[INFO] [stdout]     |
[INFO] [stdout] 447 | pub struct PoolingInfo {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/datatypes/conv_datatypes.rs:453:12
[INFO] [stdout]     |
[INFO] [stdout] 452 | impl PoolingInfo {
[INFO] [stdout]     | ---------------- associated function in this implementation
[INFO] [stdout] 453 |     pub fn new(pool_dim: &Vec<usize>, pool_size: usize) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `KernalInfo` is never constructed
[INFO] [stdout]    --> src/datatypes/conv_datatypes.rs:463:12
[INFO] [stdout]     |
[INFO] [stdout] 463 | pub struct KernalInfo {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/datatypes/conv_datatypes.rs:472:12
[INFO] [stdout]     |
[INFO] [stdout] 471 | impl KernalInfo {
[INFO] [stdout]     | --------------- associated function in this implementation
[INFO] [stdout] 472 |     pub fn new(kernal_dim: Vec<usize>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConvActivityInfo` is never constructed
[INFO] [stdout]    --> src/datatypes/conv_datatypes.rs:502:12
[INFO] [stdout]     |
[INFO] [stdout] 502 | pub struct ConvActivityInfo {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `create_output_swap_buffer`, `create_deriv_swap_buffer`, `create_output_storage_buffer`, and `create_pool_idx_storage_buffer` are never used
[INFO] [stdout]    --> src/datatypes/conv_datatypes.rs:517:12
[INFO] [stdout]     |
[INFO] [stdout] 516 | impl ConvActivityInfo {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout] 517 |     pub fn new(layer_info: &Vec<ConvLayerInfo>, n_batches: usize) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 560 |     pub fn create_output_swap_buffer(&self) -> Vec<f32> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 572 |     pub fn create_deriv_swap_buffer(&self) -> Vec<f32> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 585 |     pub fn create_output_storage_buffer(&self) -> Vec<f32> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 606 |     pub fn create_pool_idx_storage_buffer(&self) -> Vec<u32> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConvParamInfo` is never constructed
[INFO] [stdout]    --> src/datatypes/conv_datatypes.rs:618:12
[INFO] [stdout]     |
[INFO] [stdout] 618 | pub struct ConvParamInfo {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `create_buffer`, `create_accumulate_buffer_empty`, and `create_buffer_empty` are never used
[INFO] [stdout]    --> src/datatypes/conv_datatypes.rs:634:12
[INFO] [stdout]     |
[INFO] [stdout] 633 | impl ConvParamInfo {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] 634 |     pub fn new(layer_info: &Vec<ConvLayerInfo>, split_k: usize) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 684 |     pub fn create_buffer(&self) -> Vec<f32> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 713 |     pub fn create_accumulate_buffer_empty(&self, n_batches: usize) -> Vec<f32> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 717 |     pub fn create_buffer_empty(&self, n_batches: usize) -> Vec<f32> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_vec_product` is never used
[INFO] [stdout]    --> src/datatypes/conv_datatypes.rs:722:4
[INFO] [stdout]     |
[INFO] [stdout] 722 | fn get_vec_product(vec: &Vec<usize>) -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_layer_max` is never used
[INFO] [stdout]    --> src/datatypes/conv_datatypes.rs:732:8
[INFO] [stdout]     |
[INFO] [stdout] 732 | pub fn get_layer_max(layer_info: &Vec<ConvLayerInfo>) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_kernal_max` is never used
[INFO] [stdout]    --> src/datatypes/conv_datatypes.rs:744:8
[INFO] [stdout]     |
[INFO] [stdout] 744 | pub fn get_kernal_max(layer_info: &Vec<ConvLayerInfo>) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `tens_n_dim` and `tens_strides` are never read
[INFO] [stdout]  --> src/datatypes/tensor.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct TensorInfo{
[INFO] [stdout]   |            ---------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 6 |     pub tens_n_dim: usize,
[INFO] [stdout]   |         ^^^^^^^^^^
[INFO] [stdout] 7 |     pub tens_strides: Vec<usize>,
[INFO] [stdout]   |         ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `TensorInfo` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `null`, `get_slice`, and `get_index` are never used
[INFO] [stdout]   --> src/datatypes/tensor.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl TensorInfo{
[INFO] [stdout]    | --------------- associated items in this implementation
[INFO] [stdout] 12 |     pub fn null() -> Self{
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn get_slice(&self, idx_coord: &Vec<usize>, slice_length: usize) -> (usize, usize){
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub fn get_index(&self, idx_coord: &Vec<usize>) -> usize{
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `vec_dot` is never used
[INFO] [stdout]   --> src/datatypes/tensor.rs:71:4
[INFO] [stdout]    |
[INFO] [stdout] 71 | fn vec_dot(vec1: &Vec<usize>, vec2: &Vec<usize>) -> usize{
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `vec_dot_f` is never used
[INFO] [stdout]   --> src/datatypes/tensor.rs:90:4
[INFO] [stdout]    |
[INFO] [stdout] 90 | fn vec_dot_f(vec1: &[f32], vec2: &[f32]) -> f32{
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `KernalRange` is never constructed
[INFO] [stdout]  --> src/datatypes/range.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct KernalRange{
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]  --> src/datatypes/range.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | impl KernalRange{
[INFO] [stdout]   | ---------------- associated function in this implementation
[INFO] [stdout] 9 |     pub fn new(start: i32, end: i32) -> Self{
[INFO] [stdout]   |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `z` is never read
[INFO] [stdout]  --> src/datatypes/workgroup.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub struct WorkgroupDim{
[INFO] [stdout]   |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 4 |     pub z: usize,
[INFO] [stdout]   |         ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConvPassInfo` is never constructed
[INFO] [stdout]   --> src/dispatch/conv_dispatch.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct ConvPassInfo {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/dispatch/conv_dispatch.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | impl ConvPassInfo {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] 31 |     pub fn new(
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConvDispatch` is never constructed
[INFO] [stdout]   --> src/dispatch/conv_dispatch.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub struct ConvDispatch {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]     --> src/dispatch/conv_dispatch.rs:82:12
[INFO] [stdout]      |
[INFO] [stdout]   81 | impl ConvDispatch {
[INFO] [stdout]      | ----------------- associated items in this implementation
[INFO] [stdout]   82 |     pub fn get_act_buffer_ref(&self) -> &wgpu::Buffer {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]   86 |     pub fn get_storage_buffer_ref(&self) -> &wgpu::Buffer {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]   90 |     pub fn new(
[INFO] [stdout]      |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 1631 |     pub fn load_params(&self, gpu_instance: &GPUInstance, file_str: &str) {
[INFO] [stdout]      |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1639 |     pub fn update_momentum(&self, gpu_instance: &GPUInstance, t_i: u32) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1676 |     pub fn accumulate_gradients(&self, gpu_instance: &GPUInstance) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1713 |     pub fn backward_conv_mat(&self, gpu_instance: &GPUInstance) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1758 |     pub fn backward_conv_mat_deriv(&self, gpu_instance: &GPUInstance) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1798 |     pub fn temp_forward_copy(&self, gpu_instance: &GPUInstance) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1822 |     pub fn forward_conv_mat(&self, gpu_instance: &GPUInstance) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1885 |     pub fn transfer_nn_deriv(&self, gpu_instance: &GPUInstance, nn_dispatch: &NNDispatch) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1916 |     pub fn backward_conv_full(&self, gpu_instance: &GPUInstance) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2069 |     pub fn get_param_slice(&self, gpu_instance: &GPUInstance) -> Vec<f32> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2100 |     pub fn read_back_act_single(&self, gpu_instance: &GPUInstance) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `dir_buffer`, `shader`, and `dir_slot_size` are never read
[INFO] [stdout]   --> src/dispatch/data_dispatch.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct DataPassInfo {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 16 |     pub dir_buffer: wgpu::Buffer, // for metas
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 17 |
[INFO] [stdout] 18 |     pub shader: wgpu::ShaderModule,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub dir_slot_size: u64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new_convnn`, `set_data_convnn`, and `read_back_data` are never used
[INFO] [stdout]    --> src/dispatch/data_dispatch.rs:377:12
[INFO] [stdout]     |
[INFO] [stdout]  64 | impl DataDispatch {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 377 |     pub fn new_convnn(
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 743 |     pub fn set_data_convnn(&self, gpu_instance: &GPUInstance, conv_dispatch: &ConvDispatch) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 903 |     pub fn read_back_data(&self, gpu_instance: &GPUInstance) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `instance` and `adapter` are never read
[INFO] [stdout]  --> src/dispatch/gpu_instance.rs:3:9
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub struct GPUInstance{
[INFO] [stdout]   |            ----------- fields in this struct
[INFO] [stdout] 3 |     pub instance: wgpu::Instance,
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout] 4 |     pub adapter: wgpu::Adapter,
[INFO] [stdout]   |         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `dir_buffer` and `shader` are never read
[INFO] [stdout]   --> src/dispatch/nn_dispatch.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct NNPassInfo {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 13 |     pub dir_buffer: wgpu::Buffer, // for metas
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 14 |
[INFO] [stdout] 15 |     pub shader: wgpu::ShaderModule,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `param_buffer`, `gradient_buffer`, `momentum_buffer`, `variance_buffer`, and `out_buffer` are never read
[INFO] [stdout]   --> src/dispatch/nn_dispatch.rs:51:5
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub struct NNDispatch {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 51 |     param_buffer: wgpu::Buffer,    // holds the params for the model
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 52 |     gradient_buffer: wgpu::Buffer, // holds the param gradients
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 53 |     momentum_buffer: wgpu::Buffer, // holds the param momentum
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 54 |     variance_buffer: wgpu::Buffer,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 55 |     act_buffer: wgpu::Buffer, // holds intermediate layer outputs and gradients
[INFO] [stdout] 56 |     out_buffer: wgpu::Buffer, // retrieves parameters and debug stuff
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]     --> src/dispatch/nn_dispatch.rs:790:12
[INFO] [stdout]      |
[INFO] [stdout]   67 | impl NNDispatch {
[INFO] [stdout]      | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  790 |     pub fn backward_mat_convnn(&self, gpu_instance: &GPUInstance) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  859 |     pub fn transfer_conv_forward(&self, gpu_instance: &GPUInstance, conv_dispatch: &ConvDispatch) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  934 |     pub fn read_back_params(&self, gpu_instance: &GPUInstance) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  966 |     pub fn read_back_save(&self, gpu_instance: &GPUInstance) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1000 |     pub fn read_back_act_single(&self, gpu_instance: &GPUInstance) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1097 |     pub fn read_back_gradients(&self, gpu_instance: &GPUInstance) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1129 |     pub fn read_back_raw(&self, gpu_instance: &GPUInstance, n_floats: u64) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1155 |     pub fn load_params(&self, gpu_instance: &GPUInstance, file_str: &str) {
[INFO] [stdout]      |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1163 |     pub fn get_param_slice(&self, gpu_instance: &GPUInstance) -> Vec<f32> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ceil_div_inv_y` is never used
[INFO] [stdout]  --> src/functions.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn ceil_div_inv_y(c: usize, x: usize) -> usize {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `floor_div` is never used
[INFO] [stdout]   --> src/functions.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn floor_div(x: usize, y: usize) -> usize {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new_conv` is never used
[INFO] [stdout]   --> src/gpu_dirs/nn_dirs.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl FlatApplyDir {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn new_conv(conv_info: &ConvolutionInfo, dir_i: usize) -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/gpu_dirs/conv_dirs.rs:42:12
[INFO] [stdout]    |
[INFO] [stdout] 41 | impl Im2ColDir_F {
[INFO] [stdout]    | ---------------- associated function in this implementation
[INFO] [stdout] 42 |     pub fn new(conv_info: &ConvolutionInfo, dir_i: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/gpu_dirs/conv_dirs.rs:118:12
[INFO] [stdout]     |
[INFO] [stdout] 117 | impl Im2ColDir_BG {
[INFO] [stdout]     | ----------------- associated function in this implementation
[INFO] [stdout] 118 |     pub fn new(conv_info: &ConvolutionInfo, dir_i: usize) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/gpu_dirs/conv_dirs.rs:200:12
[INFO] [stdout]     |
[INFO] [stdout] 199 | impl Im2ColDir_BD {
[INFO] [stdout]     | ----------------- associated function in this implementation
[INFO] [stdout] 200 |     pub fn new(conv_info: &ConvolutionInfo, dir_i: usize) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `forward_new` and `backward_new` are never used
[INFO] [stdout]    --> src/gpu_dirs/conv_dirs.rs:269:12
[INFO] [stdout]     |
[INFO] [stdout] 268 | impl PoolDir {
[INFO] [stdout]     | ------------ associated functions in this implementation
[INFO] [stdout] 269 |     pub fn forward_new(conv_info: &ConvolutionInfo, dir_i: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 301 |     pub fn backward_new(conv_info: &ConvolutionInfo, dir_i: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/gpu_dirs/conv_dirs.rs:350:12
[INFO] [stdout]     |
[INFO] [stdout] 349 | impl BiasGradientDir {
[INFO] [stdout]     | -------------------- associated function in this implementation
[INFO] [stdout] 350 |     pub fn new(conv_info: &ConvolutionInfo, dir_i: usize) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new_weight` and `new_bias` are never used
[INFO] [stdout]    --> src/gpu_dirs/conv_dirs.rs:378:12
[INFO] [stdout]     |
[INFO] [stdout] 377 | impl AccDir {
[INFO] [stdout]     | ----------- associated functions in this implementation
[INFO] [stdout] 378 |     pub fn new_weight(conv_info: &ConvolutionInfo, dir_i: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 389 |     pub fn new_bias(conv_info: &ConvolutionInfo, dir_i: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `conv_n_layers`, `conv_input_layer_dim`, `conv_pooling_dim`, `conv_kernal_dim`, `conv_layer_output`, and `split_k` are never read
[INFO] [stdout]   --> src/model.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct ModelConstructor {
[INFO] [stdout]    |            ---------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 17 |     pub conv_n_layers: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 18 |     pub conv_input_layer_dim: Vec<usize>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 19 |     pub conv_pooling_dim: Vec<usize>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 20 |     pub conv_kernal_dim: Vec<usize>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 21 |     pub conv_layer_output: Vec<usize>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 22 |     pub split_k: usize,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ModelConstructor` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/model.rs:64:12
[INFO] [stdout]     |
[INFO] [stdout]  38 | impl ModelConstructor {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  64 |     pub fn load_specs() -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 129 |     pub fn set_conv_n_layers(&mut self, n_layers: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub fn set_conv_input_layer_dim(&mut self, input_dim: Vec<usize>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     pub fn add_kernal_layer(&mut self, kernal_size: usize, pool_size: usize, n_kernals: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 171 |     pub fn set_split_k(&mut self, split_k: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 175 |     pub fn set_split_k_auto(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 200 |     pub fn set_data_mnist_downsampled(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 210 |     pub fn set_data_mnist(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 239 |     pub fn load_all_data(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `show_params`, `save`, and `debug` are never used
[INFO] [stdout]    --> src/model.rs:278:12
[INFO] [stdout]     |
[INFO] [stdout] 253 | impl NNModel {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 278 |     pub fn show_params(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 282 |     pub fn save(&self) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 286 |     pub fn debug(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConvNNModel` is never constructed
[INFO] [stdout]    --> src/model.rs:419:12
[INFO] [stdout]     |
[INFO] [stdout] 419 | pub struct ConvNNModel {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/model.rs:432:12
[INFO] [stdout]     |
[INFO] [stdout] 431 | impl ConvNNModel {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] 432 |     pub fn construct(constructor: ModelConstructor) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 467 |     pub fn show_all_specs(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 473 |     pub fn show_epoch_specs(&self, time_taken: Duration) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 495 |     pub fn debug(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 523 |     pub fn load(&mut self) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 532 |     pub fn train(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 593 |     pub fn test(&mut self) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 638 |     pub fn save(&self) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/dispatch/nn_dispatch.rs:994:9
[INFO] [stdout]     |
[INFO] [stdout] 994 |         fs::write("./saves/saved_nn.txt", save_string);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 994 |         let _ = fs::write("./saves/saved_nn.txt", save_string);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/model.rs:649:9
[INFO] [stdout]     |
[INFO] [stdout] 649 |         fs::write("./saves/saved_convnn.txt", save_string);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 649 |         let _ = fs::write("./saves/saved_convnn.txt", save_string);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1.36s
[INFO] running `Command { std: "docker" "inspect" "4e74b6d57282f24175998da44ce3b8ee190a18ec02739b7bb8ea915a500018e5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4e74b6d57282f24175998da44ce3b8ee190a18ec02739b7bb8ea915a500018e5", kill_on_drop: false }`
[INFO] [stdout] 4e74b6d57282f24175998da44ce3b8ee190a18ec02739b7bb8ea915a500018e5
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+7704328ba5ae8d6ce0ac303c9d5a1a1605906766" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] ffbab228bb5bf9aa4471afa06fd8376fc73b0083bafa8ee293d94b74495e8708
[INFO] running `Command { std: "docker" "start" "-a" "ffbab228bb5bf9aa4471afa06fd8376fc73b0083bafa8ee293d94b74495e8708", kill_on_drop: false }`
[INFO] [stderr] warning: unused imports: `Pod` and `Zeroable`
[INFO] [stderr]  --> src/main.rs:1:16
[INFO] [stderr]   |
[INFO] [stderr] 1 | use bytemuck::{Pod, Zeroable};
[INFO] [stderr]   |                ^^^  ^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::num::NonZeroU64`
[INFO] [stderr]  --> src/main.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use std::num::NonZeroU64;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::time::Instant`
[INFO] [stderr]  --> src/main.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use std::time::Instant;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `wgpu::util::DeviceExt`
[INFO] [stderr]  --> src/main.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use wgpu::util::DeviceExt;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::fs::File`
[INFO] [stderr]  --> src/data_reader.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::fs::File;
[INFO] [stderr]   |     ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::string`
[INFO] [stderr]  --> src/data_reader.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use std::string;
[INFO] [stderr]   |     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::data_reader::DataReader`
[INFO] [stderr]  --> src/datatypes/nn_datatypes.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use crate::data_reader::DataReader;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `rand::distr::uniform::UniformUsize`
[INFO] [stderr]  --> src/datatypes/nn_datatypes.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 7 | use rand::distr::uniform::UniformUsize;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::model`
[INFO] [stderr]  --> src/datatypes/conv_datatypes.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use crate::model;
[INFO] [stderr]   |     ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::dispatch::conv_dispatch`
[INFO] [stderr]  --> src/dispatch/conv_dispatch.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use crate::dispatch::conv_dispatch;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Pod` and `Zeroable`
[INFO] [stderr]  --> src/dispatch/conv_dispatch.rs:8:16
[INFO] [stderr]   |
[INFO] [stderr] 8 | use bytemuck::{Pod, Zeroable};
[INFO] [stderr]   |                ^^^  ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::num::NonZeroU64`
[INFO] [stderr]  --> src/dispatch/conv_dispatch.rs:9:5
[INFO] [stderr]   |
[INFO] [stderr] 9 | use std::num::NonZeroU64;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::fs`
[INFO] [stderr]   --> src/dispatch/conv_dispatch.rs:12:5
[INFO] [stderr]    |
[INFO] [stderr] 12 | use std::fs;
[INFO] [stderr]    |     ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Pod` and `Zeroable`
[INFO] [stderr]  --> src/dispatch/data_dispatch.rs:1:16
[INFO] [stderr]   |
[INFO] [stderr] 1 | use bytemuck::{Pod, Zeroable};
[INFO] [stderr]   |                ^^^  ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::fs`
[INFO] [stderr]  --> src/dispatch/data_dispatch.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use std::fs;
[INFO] [stderr]   |     ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::num::NonZeroU64`
[INFO] [stderr]  --> src/dispatch/data_dispatch.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use std::num::NonZeroU64;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::datatypes::*`
[INFO] [stderr]  --> src/dispatch/data_dispatch.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 7 | use crate::datatypes::*;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `nn_datatypes::*`
[INFO] [stderr]  --> src/dispatch/data_dispatch.rs:8:24
[INFO] [stderr]   |
[INFO] [stderr] 8 | use crate::datatypes::{nn_datatypes::*, workgroup::*};
[INFO] [stderr]   |                        ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/dispatch/data_dispatch.rs:709:25
[INFO] [stderr]     |
[INFO] [stderr] 709 |         let data_slot = (self.data_reader.data_value_size + 1);
[INFO] [stderr]     |                         ^                                    ^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 709 -         let data_slot = (self.data_reader.data_value_size + 1);
[INFO] [stderr] 709 +         let data_slot = self.data_reader.data_value_size + 1 ;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/dispatch/data_dispatch.rs:751:25
[INFO] [stderr]     |
[INFO] [stderr] 751 |         let data_slot = (self.data_reader.data_value_size + 1);
[INFO] [stderr]     |                         ^                                    ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 751 -         let data_slot = (self.data_reader.data_value_size + 1);
[INFO] [stderr] 751 +         let data_slot = self.data_reader.data_value_size + 1 ;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Pod` and `Zeroable`
[INFO] [stderr]  --> src/dispatch/nn_dispatch.rs:1:16
[INFO] [stderr]   |
[INFO] [stderr] 1 | use bytemuck::{Pod, Zeroable};
[INFO] [stderr]   |                ^^^  ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::data_reader::*`
[INFO] [stderr]  --> src/dispatch/nn_dispatch.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use crate::data_reader::*;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `csv::Error`
[INFO] [stderr]  --> src/gpu_dirs/nn_dirs.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use csv::Error;
[INFO] [stderr]   |     ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::dispatch::data_dispatch`
[INFO] [stderr]  --> src/model.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use crate::dispatch::data_dispatch;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `conv_dispatch::*` and `gpu_instance::GPUInstance`
[INFO] [stderr]   --> src/main.rs:15:23
[INFO] [stderr]    |
[INFO] [stderr] 15 | use crate::dispatch::{conv_dispatch::*, gpu_instance::GPUInstance};
[INFO] [stderr]    |                       ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::conv_datatypes::*`
[INFO] [stderr]   --> src/main.rs:18:5
[INFO] [stderr]    |
[INFO] [stderr] 18 | use crate::conv_datatypes::*;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stderr]    --> src/datatypes/nn_datatypes.rs:482:29
[INFO] [stderr]     |
[INFO] [stderr] 482 |         let mut rng = rand::thread_rng();
[INFO] [stderr]     |                             ^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stderr]    --> src/datatypes/conv_datatypes.rs:706:29
[INFO] [stderr]     |
[INFO] [stderr] 706 |         let mut rng = rand::thread_rng();
[INFO] [stderr]     |                             ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `rand::Rng::gen_range`: Renamed to `random_range`
[INFO] [stderr]    --> src/datatypes/nn_datatypes.rs:485:26
[INFO] [stderr]     |
[INFO] [stderr] 485 |             .map(|_| rng.gen_range(-0.1..=0.1))
[INFO] [stderr]     |                          ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `rand::Rng::gen_range`: Renamed to `random_range`
[INFO] [stderr]    --> src/datatypes/conv_datatypes.rs:708:66
[INFO] [stderr]     |
[INFO] [stderr] 708 |         let random_floats: Vec<f32> = (0..self.size).map(|_| rng.gen_range(-1.0..=1.0)).collect();
[INFO] [stderr]     |                                                                  ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variable `counter` is assigned to, but never used
[INFO] [stderr]    --> src/data_reader.rs:242:13
[INFO] [stderr]     |
[INFO] [stderr] 242 |         let mut counter: usize = 0;
[INFO] [stderr]     |             ^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: consider using `_counter` instead
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `counter` is never read
[INFO] [stderr]    --> src/data_reader.rs:249:13
[INFO] [stderr]     |
[INFO] [stderr] 249 |             counter += 1;
[INFO] [stderr]     |             ^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]    --> src/data_reader.rs:254:13
[INFO] [stderr]     |
[INFO] [stderr] 254 |         for i in 0..10000 {
[INFO] [stderr]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `z`
[INFO] [stderr]   --> src/datatypes/nn_datatypes.rs:13:21
[INFO] [stderr]    |
[INFO] [stderr] 13 | fn deriv_activation(z: f32) -> f32 {
[INFO] [stderr]    |                     ^ help: if this is intentional, prefix it with an underscore: `_z`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/datatypes/nn_datatypes.rs:93:13
[INFO] [stderr]    |
[INFO] [stderr] 93 |         let mut new_nn_dim = model_constructor.nn_dim.clone();
[INFO] [stderr]    |             ----^^^^^^^^^^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/datatypes/nn_datatypes.rs:307:13
[INFO] [stderr]     |
[INFO] [stderr] 307 |         let mut buf = vec![1.0; self.nn_length];
[INFO] [stderr]     |             ----^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/datatypes/nn_datatypes.rs:525:13
[INFO] [stderr]     |
[INFO] [stderr] 525 |         let mut v = vec![0.0; self.buffer_size];
[INFO] [stderr]     |             ----^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `kernal_i`
[INFO] [stderr]    --> src/datatypes/conv_datatypes.rs:325:17
[INFO] [stderr]     |
[INFO] [stderr] 325 |             for kernal_i in 0..conv_layer.n_kernals {
[INFO] [stderr]     |                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_kernal_i`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/datatypes/conv_datatypes.rs:343:13
[INFO] [stderr]     |
[INFO] [stderr] 343 |         let mut layer_i = 0;
[INFO] [stderr]     |             ----^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `layer_i`
[INFO] [stderr]    --> src/datatypes/conv_datatypes.rs:343:13
[INFO] [stderr]     |
[INFO] [stderr] 343 |         let mut layer_i = 0;
[INFO] [stderr]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_layer_i`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/datatypes/conv_datatypes.rs:414:13
[INFO] [stderr]     |
[INFO] [stderr] 414 |         let mut size = 0;
[INFO] [stderr]     |             ----^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/datatypes/conv_datatypes.rs:416:13
[INFO] [stderr]     |
[INFO] [stderr] 416 |         let mut kernal_info = KernalInfo::new(kernal_dim);
[INFO] [stderr]     |             ----^^^^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `size`
[INFO] [stderr]    --> src/datatypes/conv_datatypes.rs:414:13
[INFO] [stderr]     |
[INFO] [stderr] 414 |         let mut size = 0;
[INFO] [stderr]     |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_size`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `c`
[INFO] [stderr]    --> src/datatypes/conv_datatypes.rs:477:13
[INFO] [stderr]     |
[INFO] [stderr] 477 |         let c = kernal_dim[2];
[INFO] [stderr]     |             ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/datatypes/conv_datatypes.rs:586:13
[INFO] [stderr]     |
[INFO] [stderr] 586 |         let mut empty = vec![1.0; self.storage_buffer_size];
[INFO] [stderr]     |             ----^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/datatypes/conv_datatypes.rs:607:13
[INFO] [stderr]     |
[INFO] [stderr] 607 |         let mut empty = vec![0; self.storage_buffer_size];
[INFO] [stderr]     |             ----^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `b_offset` is never read
[INFO] [stderr]    --> src/datatypes/conv_datatypes.rs:641:28
[INFO] [stderr]     |
[INFO] [stderr] 641 |         let mut b_offset = 0;
[INFO] [stderr]     |                            ^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `data_constructor`
[INFO] [stderr]   --> src/dispatch/conv_dispatch.rs:93:9
[INFO] [stderr]    |
[INFO] [stderr] 93 |         data_constructor: &DataConstructor,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_data_constructor`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `layer_i`
[INFO] [stderr]     --> src/dispatch/conv_dispatch.rs:1836:17
[INFO] [stderr]      |
[INFO] [stderr] 1836 |             let layer_i = 0;
[INFO] [stderr]      |                 ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_layer_i`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `error_dir_buffer_size`
[INFO] [stderr]    --> src/dispatch/data_dispatch.rs:114:13
[INFO] [stderr]     |
[INFO] [stderr] 114 |         let error_dir_buffer_size = error_slot as u64 * 1;
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_error_dir_buffer_size`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `conv_dispatch`
[INFO] [stderr]    --> src/dispatch/data_dispatch.rs:380:9
[INFO] [stderr]     |
[INFO] [stderr] 380 |         conv_dispatch: &ConvDispatch,
[INFO] [stderr]     |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_conv_dispatch`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `error_dir_buffer_size`
[INFO] [stderr]    --> src/dispatch/data_dispatch.rs:427:13
[INFO] [stderr]     |
[INFO] [stderr] 427 |         let error_dir_buffer_size = error_slot as u64 * 1;
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_error_dir_buffer_size`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `dir_i`
[INFO] [stderr]   --> src/gpu_dirs/nn_dirs.rs:19:48
[INFO] [stderr]    |
[INFO] [stderr] 19 |     pub fn new_nn(nn_info: &NeuralNetworkInfo, dir_i: usize) -> Self {
[INFO] [stderr]    |                                                ^^^^^ help: if this is intentional, prefix it with an underscore: `_dir_i`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `dir_i`
[INFO] [stderr]   --> src/gpu_dirs/nn_dirs.rs:30:50
[INFO] [stderr]    |
[INFO] [stderr] 30 |     pub fn new_conv(conv_info: &ConvolutionInfo, dir_i: usize) -> Self {
[INFO] [stderr]    |                                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_dir_i`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `ping_switch`
[INFO] [stderr]    --> src/gpu_dirs/nn_dirs.rs:305:13
[INFO] [stderr]     |
[INFO] [stderr] 305 |         let ping_switch = (dir_i + 1) % 2;
[INFO] [stderr]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ping_switch`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `next_conv_layer`
[INFO] [stderr]    --> src/gpu_dirs/conv_dirs.rs:120:13
[INFO] [stderr]     |
[INFO] [stderr] 120 |         let next_conv_layer = &conv_info.conv_layers[dir_i + 1];
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_next_conv_layer`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/model.rs:330:13
[INFO] [stderr]     |
[INFO] [stderr] 330 |         let mut sub_batch_i = 0;
[INFO] [stderr]     |             ----^^^^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `sub_batch_i`
[INFO] [stderr]    --> src/model.rs:330:13
[INFO] [stderr]     |
[INFO] [stderr] 330 |         let mut sub_batch_i = 0;
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sub_batch_i`
[INFO] [stderr] 
[INFO] [stderr] warning: constant `LARGEST_BUFFER_SIZE` is never used
[INFO] [stderr]  --> src/constants.rs:1:11
[INFO] [stderr]   |
[INFO] [stderr] 1 | pub const LARGEST_BUFFER_SIZE: u32 = 134217728 / 4;
[INFO] [stderr]   |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]   --> src/data_reader.rs:18:12
[INFO] [stderr]    |
[INFO] [stderr] 17 | impl DataConstructor {
[INFO] [stderr]    | -------------------- associated function in this implementation
[INFO] [stderr] 18 |     pub fn new(
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `data_size` is never read
[INFO] [stderr]   --> src/data_reader.rs:48:5
[INFO] [stderr]    |
[INFO] [stderr] 45 | pub struct DataValue {
[INFO] [stderr]    |            --------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 48 |     data_size: usize,
[INFO] [stderr]    |     ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated functions `from_mnist`, `from_mnist_downsampled`, `from_testing`, and `from_debug` are never used
[INFO] [stderr]    --> src/data_reader.rs:52:12
[INFO] [stderr]     |
[INFO] [stderr]  51 | impl DataValue {
[INFO] [stderr]     | -------------- associated functions in this implementation
[INFO] [stderr]  52 |     pub fn from_mnist(srecord: &csv::StringRecord) -> DataValue {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  90 |     pub fn from_mnist_downsampled(srecord: &csv::StringRecord) -> DataValue {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 109 |     pub fn from_testing(srecord: &csv::StringRecord) -> DataValue {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 128 |     pub fn from_debug() -> DataValue {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `dataset_length` is never read
[INFO] [stderr]    --> src/data_reader.rs:145:9
[INFO] [stderr]     |
[INFO] [stderr] 141 | pub struct DataReader {
[INFO] [stderr]     |            ---------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 145 |     pub dataset_length: usize,
[INFO] [stderr]     |         ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `load_batch_debug`, `load_batch_testing`, and `show_all_specs` are never used
[INFO] [stderr]    --> src/data_reader.rs:253:12
[INFO] [stderr]     |
[INFO] [stderr] 157 | impl DataReader {
[INFO] [stderr]     | --------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 253 |     pub fn load_batch_debug(&mut self) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 259 |     pub fn load_batch_testing(&mut self) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 274 |     pub fn show_all_specs(&self) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `activation` is never used
[INFO] [stderr]  --> src/datatypes/nn_datatypes.rs:9:4
[INFO] [stderr]   |
[INFO] [stderr] 9 | fn activation(z: f32) -> f32 {
[INFO] [stderr]   |    ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `deriv_activation` is never used
[INFO] [stderr]   --> src/datatypes/nn_datatypes.rs:13:4
[INFO] [stderr]    |
[INFO] [stderr] 13 | fn deriv_activation(z: f32) -> f32 {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_activity_deriv_buffer_size` is never used
[INFO] [stderr]   --> src/datatypes/nn_datatypes.rs:43:4
[INFO] [stderr]    |
[INFO] [stderr] 43 | fn get_activity_deriv_buffer_size(a_dim: &Vec<usize>) -> usize {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `default`, `update_input_n_dim`, `set_dim`, `set_n_batches`, `set_lr`, and `set_mr` are never used
[INFO] [stderr]    --> src/datatypes/nn_datatypes.rs:81:12
[INFO] [stderr]     |
[INFO] [stderr]  80 | impl NNConstructor {
[INFO] [stderr]     | ------------------ associated items in this implementation
[INFO] [stderr]  81 |     pub fn default() -> Self {
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 105 |     pub fn update_input_n_dim(&mut self, input_dim: usize) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 109 |     pub fn set_dim(&mut self, dim: Vec<usize>) {
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 113 |     pub fn set_n_batches(&mut self, n_batches: usize) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 117 |     pub fn set_lr(&mut self, lr: f32) {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 121 |     pub fn set_mr(&mut self, mr: f32) {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `null`, `get_index`, and `get_slice` are never used
[INFO] [stderr]    --> src/datatypes/nn_datatypes.rs:148:12
[INFO] [stderr]     |
[INFO] [stderr] 147 | impl NNActivityInfo {
[INFO] [stderr]     | ------------------- associated items in this implementation
[INFO] [stderr] 148 |     pub fn null() -> Self {
[INFO] [stderr]     |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 193 |     pub fn get_index(&self, idx_coord: &Vec<usize>) -> usize {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 197 |     pub fn get_slice(&self, start_coord: &Vec<usize>, slice_length: usize) -> (usize, usize) {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `nn_length` and `wd` are never read
[INFO] [stderr]    --> src/datatypes/nn_datatypes.rs:209:9
[INFO] [stderr]     |
[INFO] [stderr] 204 | pub struct NeuralNetworkInfo {
[INFO] [stderr]     |            ----------------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 209 |     pub nn_length: usize,
[INFO] [stderr]     |         ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 215 |     pub wd: f32,
[INFO] [stderr]     |         ^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]    --> src/datatypes/nn_datatypes.rs:230:12
[INFO] [stderr]     |
[INFO] [stderr] 218 | impl NeuralNetworkInfo {
[INFO] [stderr]     | ---------------------- associated items in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 230 |     pub fn null() -> Self {
[INFO] [stderr]     |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 298 |     pub fn get_nn_length(&self) -> usize {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 302 |     pub fn get_n_batches(&self) -> usize {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 306 |     pub fn create_buffer(&self) -> Vec<f32> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 312 |     pub fn load_param_buffer(&self, file_string: &str) -> Vec<f32> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 398 |     pub fn read_readback(&self, param_slice: &[f32]) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 418 |     pub fn get_save_string(&self, param_slice: &[f32]) -> String {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `layer_dim`, `n_layers`, and `param_info` are never read
[INFO] [stderr]    --> src/datatypes/nn_datatypes.rs:452:9
[INFO] [stderr]     |
[INFO] [stderr] 451 | pub struct ParamsDir {
[INFO] [stderr]     |            --------- fields in this struct
[INFO] [stderr] 452 |     pub layer_dim: Vec<usize>,
[INFO] [stderr]     |         ^^^^^^^^^
[INFO] [stderr] 453 |     pub n_layers: usize,
[INFO] [stderr]     |         ^^^^^^^^
[INFO] [stderr] 454 |
[INFO] [stderr] 455 |     pub param_info: Vec<TensorInfo>,
[INFO] [stderr]     |         ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `layer_dim`, `n_layers`, `n_batches`, `activities_info`, and `single_buffer_size` are never read
[INFO] [stderr]    --> src/datatypes/nn_datatypes.rs:493:5
[INFO] [stderr]     |
[INFO] [stderr] 492 | pub struct ActivityDir {
[INFO] [stderr]     |            ----------- fields in this struct
[INFO] [stderr] 493 |     layer_dim: Vec<usize>,
[INFO] [stderr]     |     ^^^^^^^^^
[INFO] [stderr] 494 |     n_layers: usize,
[INFO] [stderr]     |     ^^^^^^^^
[INFO] [stderr] 495 |     n_batches: usize,
[INFO] [stderr]     |     ^^^^^^^^^
[INFO] [stderr] 496 |
[INFO] [stderr] 497 |     activities_info: Vec<NNActivityInfo>,
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 498 |     buffer_size: usize,
[INFO] [stderr] 499 |     single_buffer_size: usize,
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ConvConstructor` is never constructed
[INFO] [stderr]   --> src/datatypes/conv_datatypes.rs:36:12
[INFO] [stderr]    |
[INFO] [stderr] 36 | pub struct ConvConstructor {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]    --> src/datatypes/conv_datatypes.rs:55:12
[INFO] [stderr]     |
[INFO] [stderr]  54 | impl ConvConstructor {
[INFO] [stderr]     | -------------------- associated items in this implementation
[INFO] [stderr]  55 |     pub fn default() -> Self {
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  75 |     pub fn from_model_constructor(model_constructor: &ModelConstructor) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  93 |     pub fn add_layer(&mut self, kernal_size: usize, pool_size: usize, n_kernals: usize) {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  99 |     pub fn set_inputs(&mut self, input_dim: Vec<usize>, n_layers: usize) {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 107 |     pub fn set_n_batches(&mut self, n_batches: usize) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 111 |     pub fn set_lr(&mut self, lr: f32) {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 115 |     pub fn set_mr(&mut self, mr: f32) {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ConvolutionInfo` is never constructed
[INFO] [stderr]    --> src/datatypes/conv_datatypes.rs:121:12
[INFO] [stderr]     |
[INFO] [stderr] 121 | pub struct ConvolutionInfo {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `construct`, `get_n_flops`, `show_all_specs`, `load_param_buffer`, and `get_save_string` are never used
[INFO] [stderr]    --> src/datatypes/conv_datatypes.rs:138:12
[INFO] [stderr]     |
[INFO] [stderr] 137 | impl ConvolutionInfo {
[INFO] [stderr]     | -------------------- associated items in this implementation
[INFO] [stderr] 138 |     pub fn construct(constructor: &ConvConstructor) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 211 |     pub fn get_n_flops(&self) -> (usize, usize) {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 225 |     pub fn show_all_specs(&self) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 298 |     pub fn load_param_buffer(&self, file_string: &str) -> Vec<f32> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 342 |     pub fn get_save_string(&self, param_slice: &[f32]) -> String {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ConvLayerInfo` is never constructed
[INFO] [stderr]    --> src/datatypes/conv_datatypes.rs:392:12
[INFO] [stderr]     |
[INFO] [stderr] 392 | pub struct ConvLayerInfo {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]    --> src/datatypes/conv_datatypes.rs:406:12
[INFO] [stderr]     |
[INFO] [stderr] 405 | impl ConvLayerInfo {
[INFO] [stderr]     | ------------------ associated function in this implementation
[INFO] [stderr] 406 |     pub fn new(
[INFO] [stderr]     |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `PoolingInfo` is never constructed
[INFO] [stderr]    --> src/datatypes/conv_datatypes.rs:447:12
[INFO] [stderr]     |
[INFO] [stderr] 447 | pub struct PoolingInfo {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]    --> src/datatypes/conv_datatypes.rs:453:12
[INFO] [stderr]     |
[INFO] [stderr] 452 | impl PoolingInfo {
[INFO] [stderr]     | ---------------- associated function in this implementation
[INFO] [stderr] 453 |     pub fn new(pool_dim: &Vec<usize>, pool_size: usize) -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `KernalInfo` is never constructed
[INFO] [stderr]    --> src/datatypes/conv_datatypes.rs:463:12
[INFO] [stderr]     |
[INFO] [stderr] 463 | pub struct KernalInfo {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]    --> src/datatypes/conv_datatypes.rs:472:12
[INFO] [stderr]     |
[INFO] [stderr] 471 | impl KernalInfo {
[INFO] [stderr]     | --------------- associated function in this implementation
[INFO] [stderr] 472 |     pub fn new(kernal_dim: Vec<usize>) -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ConvActivityInfo` is never constructed
[INFO] [stderr]    --> src/datatypes/conv_datatypes.rs:502:12
[INFO] [stderr]     |
[INFO] [stderr] 502 | pub struct ConvActivityInfo {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `create_output_swap_buffer`, `create_deriv_swap_buffer`, `create_output_storage_buffer`, and `create_pool_idx_storage_buffer` are never used
[INFO] [stderr]    --> src/datatypes/conv_datatypes.rs:517:12
[INFO] [stderr]     |
[INFO] [stderr] 516 | impl ConvActivityInfo {
[INFO] [stderr]     | --------------------- associated items in this implementation
[INFO] [stderr] 517 |     pub fn new(layer_info: &Vec<ConvLayerInfo>, n_batches: usize) -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 560 |     pub fn create_output_swap_buffer(&self) -> Vec<f32> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 572 |     pub fn create_deriv_swap_buffer(&self) -> Vec<f32> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 585 |     pub fn create_output_storage_buffer(&self) -> Vec<f32> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 606 |     pub fn create_pool_idx_storage_buffer(&self) -> Vec<u32> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ConvParamInfo` is never constructed
[INFO] [stderr]    --> src/datatypes/conv_datatypes.rs:618:12
[INFO] [stderr]     |
[INFO] [stderr] 618 | pub struct ConvParamInfo {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `create_buffer`, `create_accumulate_buffer_empty`, and `create_buffer_empty` are never used
[INFO] [stderr]    --> src/datatypes/conv_datatypes.rs:634:12
[INFO] [stderr]     |
[INFO] [stderr] 633 | impl ConvParamInfo {
[INFO] [stderr]     | ------------------ associated items in this implementation
[INFO] [stderr] 634 |     pub fn new(layer_info: &Vec<ConvLayerInfo>, split_k: usize) -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 684 |     pub fn create_buffer(&self) -> Vec<f32> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 713 |     pub fn create_accumulate_buffer_empty(&self, n_batches: usize) -> Vec<f32> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 717 |     pub fn create_buffer_empty(&self, n_batches: usize) -> Vec<f32> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_vec_product` is never used
[INFO] [stderr]    --> src/datatypes/conv_datatypes.rs:722:4
[INFO] [stderr]     |
[INFO] [stderr] 722 | fn get_vec_product(vec: &Vec<usize>) -> usize {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_layer_max` is never used
[INFO] [stderr]    --> src/datatypes/conv_datatypes.rs:732:8
[INFO] [stderr]     |
[INFO] [stderr] 732 | pub fn get_layer_max(layer_info: &Vec<ConvLayerInfo>) -> usize {
[INFO] [stderr]     |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_kernal_max` is never used
[INFO] [stderr]    --> src/datatypes/conv_datatypes.rs:744:8
[INFO] [stderr]     |
[INFO] [stderr] 744 | pub fn get_kernal_max(layer_info: &Vec<ConvLayerInfo>) -> usize {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `tens_n_dim` and `tens_strides` are never read
[INFO] [stderr]  --> src/datatypes/tensor.rs:6:9
[INFO] [stderr]   |
[INFO] [stderr] 3 | pub struct TensorInfo{
[INFO] [stderr]   |            ---------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 6 |     pub tens_n_dim: usize,
[INFO] [stderr]   |         ^^^^^^^^^^
[INFO] [stderr] 7 |     pub tens_strides: Vec<usize>,
[INFO] [stderr]   |         ^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `TensorInfo` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `null`, `get_slice`, and `get_index` are never used
[INFO] [stderr]   --> src/datatypes/tensor.rs:12:12
[INFO] [stderr]    |
[INFO] [stderr] 11 | impl TensorInfo{
[INFO] [stderr]    | --------------- associated items in this implementation
[INFO] [stderr] 12 |     pub fn null() -> Self{
[INFO] [stderr]    |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 33 |     pub fn get_slice(&self, idx_coord: &Vec<usize>, slice_length: usize) -> (usize, usize){
[INFO] [stderr]    |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 40 |     pub fn get_index(&self, idx_coord: &Vec<usize>) -> usize{
[INFO] [stderr]    |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `vec_dot` is never used
[INFO] [stderr]   --> src/datatypes/tensor.rs:71:4
[INFO] [stderr]    |
[INFO] [stderr] 71 | fn vec_dot(vec1: &Vec<usize>, vec2: &Vec<usize>) -> usize{
[INFO] [stderr]    |    ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `vec_dot_f` is never used
[INFO] [stderr]   --> src/datatypes/tensor.rs:90:4
[INFO] [stderr]    |
[INFO] [stderr] 90 | fn vec_dot_f(vec1: &[f32], vec2: &[f32]) -> f32{
[INFO] [stderr]    |    ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `KernalRange` is never constructed
[INFO] [stderr]  --> src/datatypes/range.rs:3:12
[INFO] [stderr]   |
[INFO] [stderr] 3 | pub struct KernalRange{
[INFO] [stderr]   |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]  --> src/datatypes/range.rs:9:12
[INFO] [stderr]   |
[INFO] [stderr] 8 | impl KernalRange{
[INFO] [stderr]   | ---------------- associated function in this implementation
[INFO] [stderr] 9 |     pub fn new(start: i32, end: i32) -> Self{
[INFO] [stderr]   |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `z` is never read
[INFO] [stderr]  --> src/datatypes/workgroup.rs:4:9
[INFO] [stderr]   |
[INFO] [stderr] 1 | pub struct WorkgroupDim{
[INFO] [stderr]   |            ------------ field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 4 |     pub z: usize,
[INFO] [stderr]   |         ^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ConvPassInfo` is never constructed
[INFO] [stderr]   --> src/dispatch/conv_dispatch.rs:16:12
[INFO] [stderr]    |
[INFO] [stderr] 16 | pub struct ConvPassInfo {
[INFO] [stderr]    |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]   --> src/dispatch/conv_dispatch.rs:31:12
[INFO] [stderr]    |
[INFO] [stderr] 30 | impl ConvPassInfo {
[INFO] [stderr]    | ----------------- associated function in this implementation
[INFO] [stderr] 31 |     pub fn new(
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ConvDispatch` is never constructed
[INFO] [stderr]   --> src/dispatch/conv_dispatch.rs:54:12
[INFO] [stderr]    |
[INFO] [stderr] 54 | pub struct ConvDispatch {
[INFO] [stderr]    |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]     --> src/dispatch/conv_dispatch.rs:82:12
[INFO] [stderr]      |
[INFO] [stderr]   81 | impl ConvDispatch {
[INFO] [stderr]      | ----------------- associated items in this implementation
[INFO] [stderr]   82 |     pub fn get_act_buffer_ref(&self) -> &wgpu::Buffer {
[INFO] [stderr]      |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]   86 |     pub fn get_storage_buffer_ref(&self) -> &wgpu::Buffer {
[INFO] [stderr]      |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]   90 |     pub fn new(
[INFO] [stderr]      |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 1631 |     pub fn load_params(&self, gpu_instance: &GPUInstance, file_str: &str) {
[INFO] [stderr]      |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1639 |     pub fn update_momentum(&self, gpu_instance: &GPUInstance, t_i: u32) {
[INFO] [stderr]      |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1676 |     pub fn accumulate_gradients(&self, gpu_instance: &GPUInstance) {
[INFO] [stderr]      |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1713 |     pub fn backward_conv_mat(&self, gpu_instance: &GPUInstance) {
[INFO] [stderr]      |            ^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1758 |     pub fn backward_conv_mat_deriv(&self, gpu_instance: &GPUInstance) {
[INFO] [stderr]      |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1798 |     pub fn temp_forward_copy(&self, gpu_instance: &GPUInstance) {
[INFO] [stderr]      |            ^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1822 |     pub fn forward_conv_mat(&self, gpu_instance: &GPUInstance) {
[INFO] [stderr]      |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1885 |     pub fn transfer_nn_deriv(&self, gpu_instance: &GPUInstance, nn_dispatch: &NNDispatch) {
[INFO] [stderr]      |            ^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1916 |     pub fn backward_conv_full(&self, gpu_instance: &GPUInstance) {
[INFO] [stderr]      |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 2069 |     pub fn get_param_slice(&self, gpu_instance: &GPUInstance) -> Vec<f32> {
[INFO] [stderr]      |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 2100 |     pub fn read_back_act_single(&self, gpu_instance: &GPUInstance) {
[INFO] [stderr]      |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `dir_buffer`, `shader`, and `dir_slot_size` are never read
[INFO] [stderr]   --> src/dispatch/data_dispatch.rs:16:9
[INFO] [stderr]    |
[INFO] [stderr] 15 | pub struct DataPassInfo {
[INFO] [stderr]    |            ------------ fields in this struct
[INFO] [stderr] 16 |     pub dir_buffer: wgpu::Buffer, // for metas
[INFO] [stderr]    |         ^^^^^^^^^^
[INFO] [stderr] 17 |
[INFO] [stderr] 18 |     pub shader: wgpu::ShaderModule,
[INFO] [stderr]    |         ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 24 |     pub dir_slot_size: u64,
[INFO] [stderr]    |         ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new_convnn`, `set_data_convnn`, and `read_back_data` are never used
[INFO] [stderr]    --> src/dispatch/data_dispatch.rs:377:12
[INFO] [stderr]     |
[INFO] [stderr]  64 | impl DataDispatch {
[INFO] [stderr]     | ----------------- associated items in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 377 |     pub fn new_convnn(
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 743 |     pub fn set_data_convnn(&self, gpu_instance: &GPUInstance, conv_dispatch: &ConvDispatch) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 903 |     pub fn read_back_data(&self, gpu_instance: &GPUInstance) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `instance` and `adapter` are never read
[INFO] [stderr]  --> src/dispatch/gpu_instance.rs:3:9
[INFO] [stderr]   |
[INFO] [stderr] 2 | pub struct GPUInstance{
[INFO] [stderr]   |            ----------- fields in this struct
[INFO] [stderr] 3 |     pub instance: wgpu::Instance,
[INFO] [stderr]   |         ^^^^^^^^
[INFO] [stderr] 4 |     pub adapter: wgpu::Adapter,
[INFO] [stderr]   |         ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `dir_buffer` and `shader` are never read
[INFO] [stderr]   --> src/dispatch/nn_dispatch.rs:13:9
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub struct NNPassInfo {
[INFO] [stderr]    |            ---------- fields in this struct
[INFO] [stderr] 13 |     pub dir_buffer: wgpu::Buffer, // for metas
[INFO] [stderr]    |         ^^^^^^^^^^
[INFO] [stderr] 14 |
[INFO] [stderr] 15 |     pub shader: wgpu::ShaderModule,
[INFO] [stderr]    |         ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `param_buffer`, `gradient_buffer`, `momentum_buffer`, `variance_buffer`, and `out_buffer` are never read
[INFO] [stderr]   --> src/dispatch/nn_dispatch.rs:51:5
[INFO] [stderr]    |
[INFO] [stderr] 50 | pub struct NNDispatch {
[INFO] [stderr]    |            ---------- fields in this struct
[INFO] [stderr] 51 |     param_buffer: wgpu::Buffer,    // holds the params for the model
[INFO] [stderr]    |     ^^^^^^^^^^^^
[INFO] [stderr] 52 |     gradient_buffer: wgpu::Buffer, // holds the param gradients
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 53 |     momentum_buffer: wgpu::Buffer, // holds the param momentum
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 54 |     variance_buffer: wgpu::Buffer,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 55 |     act_buffer: wgpu::Buffer, // holds intermediate layer outputs and gradients
[INFO] [stderr] 56 |     out_buffer: wgpu::Buffer, // retrieves parameters and debug stuff
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple methods are never used
[INFO] [stderr]     --> src/dispatch/nn_dispatch.rs:790:12
[INFO] [stderr]      |
[INFO] [stderr]   67 | impl NNDispatch {
[INFO] [stderr]      | --------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr]  790 |     pub fn backward_mat_convnn(&self, gpu_instance: &GPUInstance) {
[INFO] [stderr]      |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  859 |     pub fn transfer_conv_forward(&self, gpu_instance: &GPUInstance, conv_dispatch: &ConvDispatch) {
[INFO] [stderr]      |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  934 |     pub fn read_back_params(&self, gpu_instance: &GPUInstance) {
[INFO] [stderr]      |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  966 |     pub fn read_back_save(&self, gpu_instance: &GPUInstance) {
[INFO] [stderr]      |            ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1000 |     pub fn read_back_act_single(&self, gpu_instance: &GPUInstance) {
[INFO] [stderr]      |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1097 |     pub fn read_back_gradients(&self, gpu_instance: &GPUInstance) {
[INFO] [stderr]      |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1129 |     pub fn read_back_raw(&self, gpu_instance: &GPUInstance, n_floats: u64) {
[INFO] [stderr]      |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1155 |     pub fn load_params(&self, gpu_instance: &GPUInstance, file_str: &str) {
[INFO] [stderr]      |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1163 |     pub fn get_param_slice(&self, gpu_instance: &GPUInstance) -> Vec<f32> {
[INFO] [stderr]      |            ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `ceil_div_inv_y` is never used
[INFO] [stderr]  --> src/functions.rs:7:8
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub fn ceil_div_inv_y(c: usize, x: usize) -> usize {
[INFO] [stderr]   |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `floor_div` is never used
[INFO] [stderr]   --> src/functions.rs:11:8
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub fn floor_div(x: usize, y: usize) -> usize {
[INFO] [stderr]    |        ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new_conv` is never used
[INFO] [stderr]   --> src/gpu_dirs/nn_dirs.rs:30:12
[INFO] [stderr]    |
[INFO] [stderr] 18 | impl FlatApplyDir {
[INFO] [stderr]    | ----------------- associated function in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 30 |     pub fn new_conv(conv_info: &ConvolutionInfo, dir_i: usize) -> Self {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]   --> src/gpu_dirs/conv_dirs.rs:42:12
[INFO] [stderr]    |
[INFO] [stderr] 41 | impl Im2ColDir_F {
[INFO] [stderr]    | ---------------- associated function in this implementation
[INFO] [stderr] 42 |     pub fn new(conv_info: &ConvolutionInfo, dir_i: usize) -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]    --> src/gpu_dirs/conv_dirs.rs:118:12
[INFO] [stderr]     |
[INFO] [stderr] 117 | impl Im2ColDir_BG {
[INFO] [stderr]     | ----------------- associated function in this implementation
[INFO] [stderr] 118 |     pub fn new(conv_info: &ConvolutionInfo, dir_i: usize) -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]    --> src/gpu_dirs/conv_dirs.rs:200:12
[INFO] [stderr]     |
[INFO] [stderr] 199 | impl Im2ColDir_BD {
[INFO] [stderr]     | ----------------- associated function in this implementation
[INFO] [stderr] 200 |     pub fn new(conv_info: &ConvolutionInfo, dir_i: usize) -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated functions `forward_new` and `backward_new` are never used
[INFO] [stderr]    --> src/gpu_dirs/conv_dirs.rs:269:12
[INFO] [stderr]     |
[INFO] [stderr] 268 | impl PoolDir {
[INFO] [stderr]     | ------------ associated functions in this implementation
[INFO] [stderr] 269 |     pub fn forward_new(conv_info: &ConvolutionInfo, dir_i: usize) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 301 |     pub fn backward_new(conv_info: &ConvolutionInfo, dir_i: usize) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]    --> src/gpu_dirs/conv_dirs.rs:350:12
[INFO] [stderr]     |
[INFO] [stderr] 349 | impl BiasGradientDir {
[INFO] [stderr]     | -------------------- associated function in this implementation
[INFO] [stderr] 350 |     pub fn new(conv_info: &ConvolutionInfo, dir_i: usize) -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated functions `new_weight` and `new_bias` are never used
[INFO] [stderr]    --> src/gpu_dirs/conv_dirs.rs:378:12
[INFO] [stderr]     |
[INFO] [stderr] 377 | impl AccDir {
[INFO] [stderr]     | ----------- associated functions in this implementation
[INFO] [stderr] 378 |     pub fn new_weight(conv_info: &ConvolutionInfo, dir_i: usize) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 389 |     pub fn new_bias(conv_info: &ConvolutionInfo, dir_i: usize) -> Self {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `conv_n_layers`, `conv_input_layer_dim`, `conv_pooling_dim`, `conv_kernal_dim`, `conv_layer_output`, and `split_k` are never read
[INFO] [stderr]   --> src/model.rs:17:9
[INFO] [stderr]    |
[INFO] [stderr] 14 | pub struct ModelConstructor {
[INFO] [stderr]    |            ---------------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 17 |     pub conv_n_layers: usize,
[INFO] [stderr]    |         ^^^^^^^^^^^^^
[INFO] [stderr] 18 |     pub conv_input_layer_dim: Vec<usize>,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 19 |     pub conv_pooling_dim: Vec<usize>,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^
[INFO] [stderr] 20 |     pub conv_kernal_dim: Vec<usize>,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^
[INFO] [stderr] 21 |     pub conv_layer_output: Vec<usize>,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 22 |     pub split_k: usize,
[INFO] [stderr]    |         ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `ModelConstructor` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]    --> src/model.rs:64:12
[INFO] [stderr]     |
[INFO] [stderr]  38 | impl ModelConstructor {
[INFO] [stderr]     | --------------------- associated items in this implementation
[INFO] [stderr] ...
[INFO] [stderr]  64 |     pub fn load_specs() -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 129 |     pub fn set_conv_n_layers(&mut self, n_layers: usize) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 133 |     pub fn set_conv_input_layer_dim(&mut self, input_dim: Vec<usize>) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 137 |     pub fn add_kernal_layer(&mut self, kernal_size: usize, pool_size: usize, n_kernals: usize) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 171 |     pub fn set_split_k(&mut self, split_k: usize) {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 175 |     pub fn set_split_k_auto(&mut self) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 200 |     pub fn set_data_mnist_downsampled(&mut self) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 210 |     pub fn set_data_mnist(&mut self) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 239 |     pub fn load_all_data(&mut self) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `show_params`, `save`, and `debug` are never used
[INFO] [stderr]    --> src/model.rs:278:12
[INFO] [stderr]     |
[INFO] [stderr] 253 | impl NNModel {
[INFO] [stderr]     | ------------ methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 278 |     pub fn show_params(&mut self) {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 282 |     pub fn save(&self) {
[INFO] [stderr]     |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 286 |     pub fn debug(&mut self) {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ConvNNModel` is never constructed
[INFO] [stderr]    --> src/model.rs:419:12
[INFO] [stderr]     |
[INFO] [stderr] 419 | pub struct ConvNNModel {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]    --> src/model.rs:432:12
[INFO] [stderr]     |
[INFO] [stderr] 431 | impl ConvNNModel {
[INFO] [stderr]     | ---------------- associated items in this implementation
[INFO] [stderr] 432 |     pub fn construct(constructor: ModelConstructor) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 467 |     pub fn show_all_specs(&self) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 473 |     pub fn show_epoch_specs(&self, time_taken: Duration) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 495 |     pub fn debug(&mut self) {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 523 |     pub fn load(&mut self) {
[INFO] [stderr]     |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 532 |     pub fn train(&mut self) {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 593 |     pub fn test(&mut self) {
[INFO] [stderr]     |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 638 |     pub fn save(&self) {
[INFO] [stderr]     |            ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> src/dispatch/nn_dispatch.rs:994:9
[INFO] [stderr]     |
[INFO] [stderr] 994 |         fs::write("./saves/saved_nn.txt", save_string);
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 994 |         let _ = fs::write("./saves/saved_nn.txt", save_string);
[INFO] [stderr]     |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> src/model.rs:649:9
[INFO] [stderr]     |
[INFO] [stderr] 649 |         fs::write("./saves/saved_convnn.txt", save_string);
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 649 |         let _ = fs::write("./saves/saved_convnn.txt", save_string);
[INFO] [stderr]     |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: `MachineLearningGPU` (bin "MachineLearningGPU" test) generated 123 warnings (run `cargo fix --bin "MachineLearningGPU" -p MachineLearningGPU --tests` to apply 51 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.20s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/MachineLearningGPU-9aaad8226cc1b266)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "ffbab228bb5bf9aa4471afa06fd8376fc73b0083bafa8ee293d94b74495e8708", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ffbab228bb5bf9aa4471afa06fd8376fc73b0083bafa8ee293d94b74495e8708", kill_on_drop: false }`
[INFO] [stdout] ffbab228bb5bf9aa4471afa06fd8376fc73b0083bafa8ee293d94b74495e8708
