[INFO] fetching crate npu-rs 0.1.2...
[INFO] testing npu-rs-0.1.2 against master#c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38 for pr-146098-7
[INFO] extracting crate npu-rs 0.1.2 into /workspace/builds/worker-7-tc1/source
[INFO] started tweaking crates.io crate npu-rs 0.1.2
[INFO] removed 0 missing examples
[INFO] finished tweaking crates.io crate npu-rs 0.1.2
[INFO] tweaked toml for crates.io crate npu-rs 0.1.2 written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate npu-rs 0.1.2 on toolchain c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate npu-rs 0.1.2 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" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] bc484ed5d2ceabf7e6ca389e77b907afd5dc678261b39eef9aab948ce8bcd241
[INFO] running `Command { std: "docker" "start" "-a" "bc484ed5d2ceabf7e6ca389e77b907afd5dc678261b39eef9aab948ce8bcd241", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "bc484ed5d2ceabf7e6ca389e77b907afd5dc678261b39eef9aab948ce8bcd241", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "bc484ed5d2ceabf7e6ca389e77b907afd5dc678261b39eef9aab948ce8bcd241", kill_on_drop: false }`
[INFO] [stdout] bc484ed5d2ceabf7e6ca389e77b907afd5dc678261b39eef9aab948ce8bcd241
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 5cd297d71356d7fc2f084b1c75c315e6b2c31f54584abb2ae0d3248813e8843c
[INFO] running `Command { std: "docker" "start" "-a" "5cd297d71356d7fc2f084b1c75c315e6b2c31f54584abb2ae0d3248813e8843c", kill_on_drop: false }`
[INFO] [stderr]    Compiling aho-corasick v1.1.3
[INFO] [stderr]    Compiling regex-syntax v0.8.8
[INFO] [stderr]    Compiling syn v2.0.107
[INFO] [stderr]    Compiling anstyle-parse v0.2.7
[INFO] [stderr]    Compiling anstyle v1.0.13
[INFO] [stderr]    Compiling colorchoice v1.0.4
[INFO] [stderr]    Compiling anstyle-query v1.1.4
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling jiff v0.2.15
[INFO] [stderr]    Compiling ndarray v0.16.1
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling anstream v0.6.21
[INFO] [stderr]    Compiling regex-automata v0.4.13
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling regex v1.12.2
[INFO] [stderr]    Compiling env_filter v0.1.4
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling env_logger v0.11.8
[INFO] [stderr]    Compiling npu-rs v0.1.2 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `ArrayD` and `IxDyn`
[INFO] [stdout]  --> src/optimizer.rs:2:15
[INFO] [stdout]   |
[INFO] [stdout] 2 | use ndarray::{ArrayD, IxDyn};
[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: `crate::execution::ExecutionContext`
[INFO] [stdout]  --> src/profiler.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::execution::ExecutionContext;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::error::Result`
[INFO] [stdout]  --> src/profiler.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::error::Result;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `ndarray::impl_methods::<impl ndarray::ArrayBase<S, D>>::into_shape`: Use `.into_shape_with_order()` or `.to_shape()`
[INFO] [stdout]   --> src/compute.rs:39:29
[INFO] [stdout]    |
[INFO] [stdout] 39 |         let a_2d = a.view().into_shape((m, k)).map_err(|_| {
[INFO] [stdout]    |                             ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `ndarray::impl_methods::<impl ndarray::ArrayBase<S, D>>::into_shape`: Use `.into_shape_with_order()` or `.to_shape()`
[INFO] [stdout]   --> src/compute.rs:42:29
[INFO] [stdout]    |
[INFO] [stdout] 42 |         let b_2d = b.view().into_shape((k, n)).map_err(|_| {
[INFO] [stdout]    |                             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `ndarray::impl_methods::<impl ndarray::ArrayBase<S, D>>::into_shape`: Use `.into_shape_with_order()` or `.to_shape()`
[INFO] [stdout]   --> src/compute.rs:81:38
[INFO] [stdout]    |
[INFO] [stdout] 81 |             let a_slice = a_slice_2d.into_shape((m, k)).map_err(|_| {
[INFO] [stdout]    |                                      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `ndarray::impl_methods::<impl ndarray::ArrayBase<S, D>>::into_shape`: Use `.into_shape_with_order()` or `.to_shape()`
[INFO] [stdout]   --> src/compute.rs:84:38
[INFO] [stdout]    |
[INFO] [stdout] 84 |             let b_slice = b_slice_2d.into_shape((k, n)).map_err(|_| {
[INFO] [stdout]    |                                      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `peak_throughput_tops` is never read
[INFO] [stdout]  --> src/compute.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct MatMulUnit {
[INFO] [stdout]   |            ---------- field in this struct
[INFO] [stdout] 6 |     peak_throughput_tops: f32,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `peak_throughput_tops` is never read
[INFO] [stdout]    --> src/compute.rs:110:5
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub struct ConvUnit {
[INFO] [stdout]     |            -------- field in this struct
[INFO] [stdout] 110 |     peak_throughput_tops: f32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `device` is never read
[INFO] [stdout]  --> src/profiler.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct Profiler {
[INFO] [stdout]   |            -------- field in this struct
[INFO] [stdout] 8 |     device: Arc<NpuDevice>,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ArrayD` and `IxDyn`
[INFO] [stdout]  --> src/optimizer.rs:2:15
[INFO] [stdout]   |
[INFO] [stdout] 2 | use ndarray::{ArrayD, IxDyn};
[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: `crate::execution::ExecutionContext`
[INFO] [stdout]  --> src/profiler.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::execution::ExecutionContext;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::error::Result`
[INFO] [stdout]  --> src/profiler.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::error::Result;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DeviceState`
[INFO] [stdout]   --> src/main.rs:15:37
[INFO] [stdout]    |
[INFO] [stdout] 15 | use device::{NpuDevice, DeviceInfo, DeviceState};
[INFO] [stdout]    |                                     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `ndarray::impl_methods::<impl ndarray::ArrayBase<S, D>>::into_shape`: Use `.into_shape_with_order()` or `.to_shape()`
[INFO] [stdout]   --> src/compute.rs:39:29
[INFO] [stdout]    |
[INFO] [stdout] 39 |         let a_2d = a.view().into_shape((m, k)).map_err(|_| {
[INFO] [stdout]    |                             ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `ndarray::impl_methods::<impl ndarray::ArrayBase<S, D>>::into_shape`: Use `.into_shape_with_order()` or `.to_shape()`
[INFO] [stdout]   --> src/compute.rs:42:29
[INFO] [stdout]    |
[INFO] [stdout] 42 |         let b_2d = b.view().into_shape((k, n)).map_err(|_| {
[INFO] [stdout]    |                             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `ndarray::impl_methods::<impl ndarray::ArrayBase<S, D>>::into_shape`: Use `.into_shape_with_order()` or `.to_shape()`
[INFO] [stdout]   --> src/compute.rs:81:38
[INFO] [stdout]    |
[INFO] [stdout] 81 |             let a_slice = a_slice_2d.into_shape((m, k)).map_err(|_| {
[INFO] [stdout]    |                                      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `ndarray::impl_methods::<impl ndarray::ArrayBase<S, D>>::into_shape`: Use `.into_shape_with_order()` or `.to_shape()`
[INFO] [stdout]   --> src/compute.rs:84:38
[INFO] [stdout]    |
[INFO] [stdout] 84 |             let b_slice = b_slice_2d.into_shape((k, n)).map_err(|_| {
[INFO] [stdout]    |                                      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/tensor.rs:21:12
[INFO] [stdout]     |
[INFO] [stdout]  10 | impl Tensor {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  21 |     pub fn zeros(shape: &[usize]) -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  47 |     pub fn from_scalar(value: f32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  64 |     pub fn print(&self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  76 |     pub fn sub(&self, other: &Self) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  83 |     pub fn mul(&self, other: &Self) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  90 |     pub fn div(&self, other: &Self) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn sigmoid(&self) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `DeviceNotAvailable`, `MemoryError`, `UnsupportedOperation`, `PerformanceError`, and `SyncTimeout` are never constructed
[INFO] [stdout]   --> src/error.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub enum NpuError {
[INFO] [stdout]    |          -------- variants in this enum
[INFO] [stdout]  9 |     #[error("Device not available")]
[INFO] [stdout] 10 |     DeviceNotAvailable,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     MemoryError(String),
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     UnsupportedOperation(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     PerformanceError(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     SyncTimeout,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NpuError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `num_allocations` is never read
[INFO] [stdout]   --> src/memory.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct MemoryStats {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 11 |     pub num_allocations: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MemoryStats` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `allocate`, `deallocate`, `get_available_bytes`, `has_capacity`, and `reset` are never used
[INFO] [stdout]   --> src/memory.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl MemoryManager {
[INFO] [stdout]    | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub fn allocate(&self, bytes: usize) -> Result<()> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub fn deallocate(&self, bytes: usize) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 74 |     pub fn get_available_bytes(&self) -> usize {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81 |     pub fn has_capacity(&self, bytes: usize) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 86 |     pub fn reset(&self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `allocate_buffer` is never used
[INFO] [stdout]    --> src/memory.rs:120:12
[INFO] [stdout]     |
[INFO] [stdout] 110 | impl MemoryPool {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn allocate_buffer(&self, size: usize) -> Result<Vec<f32>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `reset` is never used
[INFO] [stdout]   --> src/perf_monitor.rs:77:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl PerformanceMonitor {
[INFO] [stdout]    | ----------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 77 |     pub fn reset(&self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `peak_throughput_tops` is never read
[INFO] [stdout]  --> src/compute.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct MatMulUnit {
[INFO] [stdout]   |            ---------- field in this struct
[INFO] [stdout] 6 |     peak_throughput_tops: f32,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `batched_gemm` and `estimate_tops` are never used
[INFO] [stdout]    --> src/compute.rs:54:12
[INFO] [stdout]     |
[INFO] [stdout]   9 | impl MatMulUnit {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  54 |     pub fn batched_gemm(&self, a: &ArrayD<f32>, b: &ArrayD<f32>) -> Result<ArrayD<f32>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn estimate_tops(&self, m: usize, k: usize, n: usize) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `peak_throughput_tops` is never read
[INFO] [stdout]    --> src/compute.rs:110:5
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub struct ConvUnit {
[INFO] [stdout]     |            -------- field in this struct
[INFO] [stdout] 110 |     peak_throughput_tops: f32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `conv1x1` and `estimate_tops` are never used
[INFO] [stdout]    --> src/compute.rs:123:12
[INFO] [stdout]     |
[INFO] [stdout] 113 | impl ConvUnit {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 123 |     pub fn conv1x1(
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 168 |     pub fn estimate_tops(&self, batch: usize, height: usize, width: usize, c_in: usize, c_out: usize) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Computing` and `Error` are never constructed
[INFO] [stdout]   --> src/device.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub enum DeviceState {
[INFO] [stdout]    |          ----------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 13 |     Computing,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 14 |     Error,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DeviceState` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `compute_units`, `frequency_mhz`, `power_tdp_watts`, and `vendor` are never read
[INFO] [stdout]   --> src/device.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct DeviceInfo {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub compute_units: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 24 |     pub frequency_mhz: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 25 |     pub power_tdp_watts: f32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 26 |     pub vendor: String,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DeviceInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `reset`, `get_memory_pool`, and `shutdown` are never used
[INFO] [stdout]    --> src/device.rs:98:12
[INFO] [stdout]     |
[INFO] [stdout]  54 | impl NpuDevice {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  98 |     pub fn reset(&self) -> Result<()> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub fn get_memory_pool(&self) -> MemoryPool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 154 |     pub fn shutdown(&self) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DeviceRegistry` is never constructed
[INFO] [stdout]    --> src/device.rs:175:12
[INFO] [stdout]     |
[INFO] [stdout] 175 | pub struct DeviceRegistry {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `register`, `get_device`, and `num_devices` are never used
[INFO] [stdout]    --> src/device.rs:181:12
[INFO] [stdout]     |
[INFO] [stdout] 179 | impl DeviceRegistry {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout] 180 |     /// Create a new device registry.
[INFO] [stdout] 181 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 188 |     pub fn register(&mut self, device: Arc<NpuDevice>) -> Result<u32> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 200 |     pub fn get_device(&self, device_id: u32) -> Result<Arc<NpuDevice>> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub fn num_devices(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `conv_unit` is never read
[INFO] [stdout]   --> src/execution.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub struct ExecutionContext {
[INFO] [stdout]    |            ---------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 12 |     conv_unit: ConvUnit,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `execute_batched_matmul`, `execute_conv1x1`, `get_metrics`, and `get_device` are never used
[INFO] [stdout]    --> src/execution.rs:49:12
[INFO] [stdout]     |
[INFO] [stdout]  16 | impl ExecutionContext {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  49 |     pub fn execute_batched_matmul(&self, a: &ArrayD<f32>, b: &ArrayD<f32>) -> Result<ArrayD<f32>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  70 |     pub fn execute_conv1x1(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn get_metrics(&self) -> crate::perf_monitor::PerformanceMetrics {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn get_device(&self) -> Arc<NpuDevice> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BatchScheduler` is never constructed
[INFO] [stdout]    --> src/execution.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct BatchScheduler {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `submit_batch`, `get_context`, and `get_batch_size` are never used
[INFO] [stdout]    --> src/execution.rs:119:12
[INFO] [stdout]     |
[INFO] [stdout] 117 | impl BatchScheduler {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout] 118 |     /// Create a new batch scheduler.
[INFO] [stdout] 119 |     pub fn new(device: Arc<NpuDevice>, batch_size: usize) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub fn submit_batch(&self, operations: Vec<(&ArrayD<f32>, &ArrayD<f32>)>) -> Result<Vec<ArrayD<f32>>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 139 |     pub fn get_context(&self) -> &ExecutionContext {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 |     pub fn get_batch_size(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `load_from_path` and `validate_input` are never used
[INFO] [stdout]   --> src/model.rs:58:12
[INFO] [stdout]    |
[INFO] [stdout] 51 | impl ModelRuntime {
[INFO] [stdout]    | ----------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 58 |     pub fn load_from_path(_path: &str) -> Result<Self> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 79 |     pub fn validate_input(&self, shape: &[usize]) -> Result<()> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `DepthwiseConvolution`, `Activation`, `BatchNorm`, `Pooling`, `Concat`, and `Add` are never constructed
[INFO] [stdout]    --> src/model.rs:98:5
[INFO] [stdout]     |
[INFO] [stdout]  95 | pub enum LayerType {
[INFO] [stdout]     |          --------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout]  98 |     DepthwiseConvolution,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  99 |     PointwiseConvolution,
[INFO] [stdout] 100 |     Activation,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 101 |     BatchNorm,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 102 |     Pooling,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 103 |     Concat,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 104 |     Add,
[INFO] [stdout]     |     ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `LayerType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]    --> src/model.rs:110:9
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub struct Layer {
[INFO] [stdout]     |            ----- field in this struct
[INFO] [stdout] 110 |     pub name: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Layer` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_layers` is never used
[INFO] [stdout]    --> src/model.rs:178:12
[INFO] [stdout]     |
[INFO] [stdout] 163 | impl NeuralNetwork {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 178 |     pub fn get_layers(&self) -> &[Layer] {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_frequency`, `enable_power_gating`, and `disable_power_gating` are never used
[INFO] [stdout]    --> src/power.rs:102:12
[INFO] [stdout]     |
[INFO] [stdout]  30 | impl DvfsController {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn set_frequency(&self, domain: PowerDomain, level: usize) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 159 |     pub fn enable_power_gating(&self, domain: PowerDomain) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 164 |     pub fn disable_power_gating(&self, domain: PowerDomain) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `optimize`, `apply_fusion`, `apply_constant_folding`, and `eliminate_dead_code` are never used
[INFO] [stdout]   --> src/optimizer.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl GraphOptimizer {
[INFO] [stdout]    | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn optimize(&self, graph: &mut ComputationGraph) -> Result<()> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |     fn apply_fusion(&self, graph: &mut ComputationGraph) -> Result<()> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     fn apply_constant_folding(&self, graph: &mut ComputationGraph) -> Result<()> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |     fn eliminate_dead_code(&self, graph: &mut ComputationGraph) -> Result<()> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `node_count` is never read
[INFO] [stdout]   --> src/optimizer.rs:83:9
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub struct ComputationGraph {
[INFO] [stdout]    |            ---------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 83 |     pub node_count: usize,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `validate` is never used
[INFO] [stdout]    --> src/optimizer.rs:124:12
[INFO] [stdout]     |
[INFO] [stdout]  86 | impl ComputationGraph {
[INFO] [stdout]     | --------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn validate(&self) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `kernel_shape` is never read
[INFO] [stdout]    --> src/optimizer.rs:145:19
[INFO] [stdout]     |
[INFO] [stdout] 145 |     Convolution { kernel_shape: Vec<usize> },
[INFO] [stdout]     |     -----------   ^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ComputeNode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `activation_type` is never read
[INFO] [stdout]    --> src/optimizer.rs:147:18
[INFO] [stdout]     |
[INFO] [stdout] 147 |     Activation { activation_type: String },
[INFO] [stdout]     |     ----------   ^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ComputeNode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `shape` is never read
[INFO] [stdout]    --> src/optimizer.rs:149:13
[INFO] [stdout]     |
[INFO] [stdout] 149 |     Input { shape: Vec<usize> },
[INFO] [stdout]     |     -----   ^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ComputeNode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `shape` is never read
[INFO] [stdout]    --> src/optimizer.rs:150:14
[INFO] [stdout]     |
[INFO] [stdout] 150 |     Output { shape: Vec<usize> },
[INFO] [stdout]     |     ------   ^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ComputeNode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `MatMul` and `Constant` are never constructed
[INFO] [stdout]    --> src/optimizer.rs:146:5
[INFO] [stdout]     |
[INFO] [stdout] 144 | pub enum ComputeNode {
[INFO] [stdout]     |          ----------- variants in this enum
[INFO] [stdout] 145 |     Convolution { kernel_shape: Vec<usize> },
[INFO] [stdout] 146 |     MatMul { output_shape: Vec<usize> },
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 147 |     Activation { activation_type: String },
[INFO] [stdout] 148 |     Constant { value: f32 },
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ComputeNode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `device` is never read
[INFO] [stdout]  --> src/profiler.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct Profiler {
[INFO] [stdout]   |            -------- field in this struct
[INFO] [stdout] 8 |     device: Arc<NpuDevice>,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `start_time_ms` is never read
[INFO] [stdout]   --> src/profiler.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct ProfileEvent {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] 15 |     pub event_name: String,
[INFO] [stdout] 16 |     pub start_time_ms: f64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ProfileEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_efficiency_gops_per_watt` is never used
[INFO] [stdout]   --> src/profiler.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl ProfileEvent {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn get_efficiency_gops_per_watt(&self) -> f64 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `clear` is never used
[INFO] [stdout]   --> src/profiler.rs:62:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | impl Profiler {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub fn clear(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `event_count` is never read
[INFO] [stdout]   --> src/profiler.rs:96:9
[INFO] [stdout]    |
[INFO] [stdout] 90 | pub struct ProfileReport {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 96 |     pub event_count: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ProfileReport` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 35.25s
[INFO] running `Command { std: "docker" "inspect" "5cd297d71356d7fc2f084b1c75c315e6b2c31f54584abb2ae0d3248813e8843c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5cd297d71356d7fc2f084b1c75c315e6b2c31f54584abb2ae0d3248813e8843c", kill_on_drop: false }`
[INFO] [stdout] 5cd297d71356d7fc2f084b1c75c315e6b2c31f54584abb2ae0d3248813e8843c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 2ca3dc297f35f97190d3bf8480b1ca8a5185b52e194f043a512ff815dbc2390a
[INFO] running `Command { std: "docker" "start" "-a" "2ca3dc297f35f97190d3bf8480b1ca8a5185b52e194f043a512ff815dbc2390a", kill_on_drop: false }`
[INFO] [stdout] warning: unused imports: `ArrayD` and `IxDyn`
[INFO] [stdout]  --> src/optimizer.rs:2:15
[INFO] [stdout]   |
[INFO] [stdout] 2 | use ndarray::{ArrayD, IxDyn};
[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: `crate::execution::ExecutionContext`
[INFO] [stdout]  --> src/profiler.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::execution::ExecutionContext;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::error::Result`
[INFO] [stdout]  --> src/profiler.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::error::Result;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `ndarray::impl_methods::<impl ndarray::ArrayBase<S, D>>::into_shape`: Use `.into_shape_with_order()` or `.to_shape()`
[INFO] [stdout]   --> src/compute.rs:39:29
[INFO] [stdout]    |
[INFO] [stdout] 39 |         let a_2d = a.view().into_shape((m, k)).map_err(|_| {
[INFO] [stdout]    |                             ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `ndarray::impl_methods::<impl ndarray::ArrayBase<S, D>>::into_shape`: Use `.into_shape_with_order()` or `.to_shape()`
[INFO] [stdout]   --> src/compute.rs:42:29
[INFO] [stdout]    |
[INFO] [stdout] 42 |         let b_2d = b.view().into_shape((k, n)).map_err(|_| {
[INFO] [stdout]    |                             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `ndarray::impl_methods::<impl ndarray::ArrayBase<S, D>>::into_shape`: Use `.into_shape_with_order()` or `.to_shape()`
[INFO] [stdout]   --> src/compute.rs:81:38
[INFO] [stdout]    |
[INFO] [stdout] 81 |             let a_slice = a_slice_2d.into_shape((m, k)).map_err(|_| {
[INFO] [stdout]    |                                      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `ndarray::impl_methods::<impl ndarray::ArrayBase<S, D>>::into_shape`: Use `.into_shape_with_order()` or `.to_shape()`
[INFO] [stdout]   --> src/compute.rs:84:38
[INFO] [stdout]    |
[INFO] [stdout] 84 |             let b_slice = b_slice_2d.into_shape((k, n)).map_err(|_| {
[INFO] [stdout]    |                                      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `peak_throughput_tops` is never read
[INFO] [stdout]  --> src/compute.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct MatMulUnit {
[INFO] [stdout]   |            ---------- field in this struct
[INFO] [stdout] 6 |     peak_throughput_tops: f32,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `peak_throughput_tops` is never read
[INFO] [stdout]    --> src/compute.rs:110:5
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub struct ConvUnit {
[INFO] [stdout]     |            -------- field in this struct
[INFO] [stdout] 110 |     peak_throughput_tops: f32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `device` is never read
[INFO] [stdout]  --> src/profiler.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct Profiler {
[INFO] [stdout]   |            -------- field in this struct
[INFO] [stdout] 8 |     device: Arc<NpuDevice>,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling npu-rs v0.1.2 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0601]: `main` function not found in crate `simple_infer`
[INFO] [stdout]   |
[INFO] [stdout]   = note: consider adding a `main` function to `examples/simple_infer.rs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `npu-rs` (example "simple_infer") due to 1 previous error
[INFO] [stdout] For more information about this error, try `rustc --explain E0601`.
[INFO] [stdout] 
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: unused imports: `ArrayD` and `IxDyn`
[INFO] [stdout]  --> src/optimizer.rs:2:15
[INFO] [stdout]   |
[INFO] [stdout] 2 | use ndarray::{ArrayD, IxDyn};
[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: `crate::execution::ExecutionContext`
[INFO] [stdout]  --> src/profiler.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::execution::ExecutionContext;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::error::Result`
[INFO] [stdout]  --> src/profiler.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::error::Result;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ComputationGraph`, `ComputeNode`, `GraphOptimizer`, and `QuantConverter`
[INFO] [stdout]  --> examples/full_inference_pipeline.rs:4:17
[INFO] [stdout]   |
[INFO] [stdout] 4 |     QuantStats, QuantConverter, PTQEngine, GraphOptimizer, ComputationGraph,
[INFO] [stdout]   |                 ^^^^^^^^^^^^^^             ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 5 |     ComputeNode, Profiler, ProfileEvent,
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `ndarray::impl_methods::<impl ndarray::ArrayBase<S, D>>::into_shape`: Use `.into_shape_with_order()` or `.to_shape()`
[INFO] [stdout]   --> src/compute.rs:39:29
[INFO] [stdout]    |
[INFO] [stdout] 39 |         let a_2d = a.view().into_shape((m, k)).map_err(|_| {
[INFO] [stdout]    |                             ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `ndarray::impl_methods::<impl ndarray::ArrayBase<S, D>>::into_shape`: Use `.into_shape_with_order()` or `.to_shape()`
[INFO] [stdout]   --> src/compute.rs:42:29
[INFO] [stdout]    |
[INFO] [stdout] 42 |         let b_2d = b.view().into_shape((k, n)).map_err(|_| {
[INFO] [stdout]    |                             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `ndarray::impl_methods::<impl ndarray::ArrayBase<S, D>>::into_shape`: Use `.into_shape_with_order()` or `.to_shape()`
[INFO] [stdout]   --> src/compute.rs:81:38
[INFO] [stdout]    |
[INFO] [stdout] 81 |             let a_slice = a_slice_2d.into_shape((m, k)).map_err(|_| {
[INFO] [stdout]    |                                      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `ndarray::impl_methods::<impl ndarray::ArrayBase<S, D>>::into_shape`: Use `.into_shape_with_order()` or `.to_shape()`
[INFO] [stdout]   --> src/compute.rs:84:38
[INFO] [stdout]    |
[INFO] [stdout] 84 |             let b_slice = b_slice_2d.into_shape((k, n)).map_err(|_| {
[INFO] [stdout]    |                                      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ArrayD` and `IxDyn`
[INFO] [stdout]  --> src/optimizer.rs:2:15
[INFO] [stdout]   |
[INFO] [stdout] 2 | use ndarray::{ArrayD, IxDyn};
[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: `crate::execution::ExecutionContext`
[INFO] [stdout]  --> src/profiler.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::execution::ExecutionContext;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::error::Result`
[INFO] [stdout]  --> src/profiler.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::error::Result;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DeviceState`
[INFO] [stdout]   --> src/main.rs:15:37
[INFO] [stdout]    |
[INFO] [stdout] 15 | use device::{NpuDevice, DeviceInfo, DeviceState};
[INFO] [stdout]    |                                     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `peak_throughput_tops` is never read
[INFO] [stdout]  --> src/compute.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct MatMulUnit {
[INFO] [stdout]   |            ---------- field in this struct
[INFO] [stdout] 6 |     peak_throughput_tops: f32,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `peak_throughput_tops` is never read
[INFO] [stdout]    --> src/compute.rs:110:5
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub struct ConvUnit {
[INFO] [stdout]     |            -------- field in this struct
[INFO] [stdout] 110 |     peak_throughput_tops: f32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `device` is never read
[INFO] [stdout]  --> src/profiler.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct Profiler {
[INFO] [stdout]   |            -------- field in this struct
[INFO] [stdout] 8 |     device: Arc<NpuDevice>,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `ndarray::impl_methods::<impl ndarray::ArrayBase<S, D>>::into_shape`: Use `.into_shape_with_order()` or `.to_shape()`
[INFO] [stdout]   --> src/compute.rs:39:29
[INFO] [stdout]    |
[INFO] [stdout] 39 |         let a_2d = a.view().into_shape((m, k)).map_err(|_| {
[INFO] [stdout]    |                             ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `ndarray::impl_methods::<impl ndarray::ArrayBase<S, D>>::into_shape`: Use `.into_shape_with_order()` or `.to_shape()`
[INFO] [stdout]   --> src/compute.rs:42:29
[INFO] [stdout]    |
[INFO] [stdout] 42 |         let b_2d = b.view().into_shape((k, n)).map_err(|_| {
[INFO] [stdout]    |                             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `ndarray::impl_methods::<impl ndarray::ArrayBase<S, D>>::into_shape`: Use `.into_shape_with_order()` or `.to_shape()`
[INFO] [stdout]   --> src/compute.rs:81:38
[INFO] [stdout]    |
[INFO] [stdout] 81 |             let a_slice = a_slice_2d.into_shape((m, k)).map_err(|_| {
[INFO] [stdout]    |                                      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `ndarray::impl_methods::<impl ndarray::ArrayBase<S, D>>::into_shape`: Use `.into_shape_with_order()` or `.to_shape()`
[INFO] [stdout]   --> src/compute.rs:84:38
[INFO] [stdout]    |
[INFO] [stdout] 84 |             let b_slice = b_slice_2d.into_shape((k, n)).map_err(|_| {
[INFO] [stdout]    |                                      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/tensor.rs:21:12
[INFO] [stdout]     |
[INFO] [stdout]  10 | impl Tensor {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  21 |     pub fn zeros(shape: &[usize]) -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  47 |     pub fn from_scalar(value: f32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  64 |     pub fn print(&self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  76 |     pub fn sub(&self, other: &Self) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  83 |     pub fn mul(&self, other: &Self) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  90 |     pub fn div(&self, other: &Self) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn sigmoid(&self) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `DeviceNotAvailable`, `MemoryError`, `UnsupportedOperation`, `PerformanceError`, and `SyncTimeout` are never constructed
[INFO] [stdout]   --> src/error.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub enum NpuError {
[INFO] [stdout]    |          -------- variants in this enum
[INFO] [stdout]  9 |     #[error("Device not available")]
[INFO] [stdout] 10 |     DeviceNotAvailable,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     MemoryError(String),
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     UnsupportedOperation(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     PerformanceError(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     SyncTimeout,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NpuError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `num_allocations` is never read
[INFO] [stdout]   --> src/memory.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct MemoryStats {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 11 |     pub num_allocations: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MemoryStats` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `allocate`, `deallocate`, `get_available_bytes`, `has_capacity`, and `reset` are never used
[INFO] [stdout]   --> src/memory.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl MemoryManager {
[INFO] [stdout]    | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub fn allocate(&self, bytes: usize) -> Result<()> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub fn deallocate(&self, bytes: usize) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 74 |     pub fn get_available_bytes(&self) -> usize {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81 |     pub fn has_capacity(&self, bytes: usize) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 86 |     pub fn reset(&self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `allocate_buffer` is never used
[INFO] [stdout]    --> src/memory.rs:120:12
[INFO] [stdout]     |
[INFO] [stdout] 110 | impl MemoryPool {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn allocate_buffer(&self, size: usize) -> Result<Vec<f32>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `reset` is never used
[INFO] [stdout]   --> src/perf_monitor.rs:77:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl PerformanceMonitor {
[INFO] [stdout]    | ----------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 77 |     pub fn reset(&self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `peak_throughput_tops` is never read
[INFO] [stdout]  --> src/compute.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct MatMulUnit {
[INFO] [stdout]   |            ---------- field in this struct
[INFO] [stdout] 6 |     peak_throughput_tops: f32,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `batched_gemm` and `estimate_tops` are never used
[INFO] [stdout]    --> src/compute.rs:54:12
[INFO] [stdout]     |
[INFO] [stdout]   9 | impl MatMulUnit {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  54 |     pub fn batched_gemm(&self, a: &ArrayD<f32>, b: &ArrayD<f32>) -> Result<ArrayD<f32>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn estimate_tops(&self, m: usize, k: usize, n: usize) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `peak_throughput_tops` is never read
[INFO] [stdout]    --> src/compute.rs:110:5
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub struct ConvUnit {
[INFO] [stdout]     |            -------- field in this struct
[INFO] [stdout] 110 |     peak_throughput_tops: f32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `conv1x1` and `estimate_tops` are never used
[INFO] [stdout]    --> src/compute.rs:123:12
[INFO] [stdout]     |
[INFO] [stdout] 113 | impl ConvUnit {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 123 |     pub fn conv1x1(
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 168 |     pub fn estimate_tops(&self, batch: usize, height: usize, width: usize, c_in: usize, c_out: usize) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Computing` and `Error` are never constructed
[INFO] [stdout]   --> src/device.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub enum DeviceState {
[INFO] [stdout]    |          ----------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 13 |     Computing,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 14 |     Error,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DeviceState` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `compute_units`, `frequency_mhz`, `power_tdp_watts`, and `vendor` are never read
[INFO] [stdout]   --> src/device.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct DeviceInfo {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub compute_units: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 24 |     pub frequency_mhz: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 25 |     pub power_tdp_watts: f32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 26 |     pub vendor: String,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DeviceInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `reset`, `get_memory_pool`, and `shutdown` are never used
[INFO] [stdout]    --> src/device.rs:98:12
[INFO] [stdout]     |
[INFO] [stdout]  54 | impl NpuDevice {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  98 |     pub fn reset(&self) -> Result<()> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub fn get_memory_pool(&self) -> MemoryPool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 154 |     pub fn shutdown(&self) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DeviceRegistry` is never constructed
[INFO] [stdout]    --> src/device.rs:175:12
[INFO] [stdout]     |
[INFO] [stdout] 175 | pub struct DeviceRegistry {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `register`, `get_device`, and `num_devices` are never used
[INFO] [stdout]    --> src/device.rs:181:12
[INFO] [stdout]     |
[INFO] [stdout] 179 | impl DeviceRegistry {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout] 180 |     /// Create a new device registry.
[INFO] [stdout] 181 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 188 |     pub fn register(&mut self, device: Arc<NpuDevice>) -> Result<u32> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 200 |     pub fn get_device(&self, device_id: u32) -> Result<Arc<NpuDevice>> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub fn num_devices(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `conv_unit` is never read
[INFO] [stdout]   --> src/execution.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub struct ExecutionContext {
[INFO] [stdout]    |            ---------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 12 |     conv_unit: ConvUnit,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `execute_batched_matmul`, `execute_conv1x1`, `get_metrics`, and `get_device` are never used
[INFO] [stdout]    --> src/execution.rs:49:12
[INFO] [stdout]     |
[INFO] [stdout]  16 | impl ExecutionContext {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  49 |     pub fn execute_batched_matmul(&self, a: &ArrayD<f32>, b: &ArrayD<f32>) -> Result<ArrayD<f32>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  70 |     pub fn execute_conv1x1(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn get_metrics(&self) -> crate::perf_monitor::PerformanceMetrics {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn get_device(&self) -> Arc<NpuDevice> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BatchScheduler` is never constructed
[INFO] [stdout]    --> src/execution.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct BatchScheduler {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `submit_batch`, `get_context`, and `get_batch_size` are never used
[INFO] [stdout]    --> src/execution.rs:119:12
[INFO] [stdout]     |
[INFO] [stdout] 117 | impl BatchScheduler {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout] 118 |     /// Create a new batch scheduler.
[INFO] [stdout] 119 |     pub fn new(device: Arc<NpuDevice>, batch_size: usize) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub fn submit_batch(&self, operations: Vec<(&ArrayD<f32>, &ArrayD<f32>)>) -> Result<Vec<ArrayD<f32>>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 139 |     pub fn get_context(&self) -> &ExecutionContext {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 |     pub fn get_batch_size(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `load_from_path` and `validate_input` are never used
[INFO] [stdout]   --> src/model.rs:58:12
[INFO] [stdout]    |
[INFO] [stdout] 51 | impl ModelRuntime {
[INFO] [stdout]    | ----------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 58 |     pub fn load_from_path(_path: &str) -> Result<Self> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 79 |     pub fn validate_input(&self, shape: &[usize]) -> Result<()> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `DepthwiseConvolution`, `Activation`, `BatchNorm`, `Pooling`, `Concat`, and `Add` are never constructed
[INFO] [stdout]    --> src/model.rs:98:5
[INFO] [stdout]     |
[INFO] [stdout]  95 | pub enum LayerType {
[INFO] [stdout]     |          --------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout]  98 |     DepthwiseConvolution,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  99 |     PointwiseConvolution,
[INFO] [stdout] 100 |     Activation,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 101 |     BatchNorm,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 102 |     Pooling,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 103 |     Concat,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 104 |     Add,
[INFO] [stdout]     |     ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `LayerType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]    --> src/model.rs:110:9
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub struct Layer {
[INFO] [stdout]     |            ----- field in this struct
[INFO] [stdout] 110 |     pub name: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Layer` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_layers` is never used
[INFO] [stdout]    --> src/model.rs:178:12
[INFO] [stdout]     |
[INFO] [stdout] 163 | impl NeuralNetwork {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 178 |     pub fn get_layers(&self) -> &[Layer] {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_frequency`, `enable_power_gating`, and `disable_power_gating` are never used
[INFO] [stdout]    --> src/power.rs:102:12
[INFO] [stdout]     |
[INFO] [stdout]  30 | impl DvfsController {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn set_frequency(&self, domain: PowerDomain, level: usize) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 159 |     pub fn enable_power_gating(&self, domain: PowerDomain) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 164 |     pub fn disable_power_gating(&self, domain: PowerDomain) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `optimize`, `apply_fusion`, `apply_constant_folding`, and `eliminate_dead_code` are never used
[INFO] [stdout]   --> src/optimizer.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl GraphOptimizer {
[INFO] [stdout]    | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn optimize(&self, graph: &mut ComputationGraph) -> Result<()> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |     fn apply_fusion(&self, graph: &mut ComputationGraph) -> Result<()> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     fn apply_constant_folding(&self, graph: &mut ComputationGraph) -> Result<()> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |     fn eliminate_dead_code(&self, graph: &mut ComputationGraph) -> Result<()> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `node_count` is never read
[INFO] [stdout]   --> src/optimizer.rs:83:9
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub struct ComputationGraph {
[INFO] [stdout]    |            ---------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 83 |     pub node_count: usize,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `validate` is never used
[INFO] [stdout]    --> src/optimizer.rs:124:12
[INFO] [stdout]     |
[INFO] [stdout]  86 | impl ComputationGraph {
[INFO] [stdout]     | --------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn validate(&self) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `kernel_shape` is never read
[INFO] [stdout]    --> src/optimizer.rs:145:19
[INFO] [stdout]     |
[INFO] [stdout] 145 |     Convolution { kernel_shape: Vec<usize> },
[INFO] [stdout]     |     -----------   ^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ComputeNode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `activation_type` is never read
[INFO] [stdout]    --> src/optimizer.rs:147:18
[INFO] [stdout]     |
[INFO] [stdout] 147 |     Activation { activation_type: String },
[INFO] [stdout]     |     ----------   ^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ComputeNode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `shape` is never read
[INFO] [stdout]    --> src/optimizer.rs:149:13
[INFO] [stdout]     |
[INFO] [stdout] 149 |     Input { shape: Vec<usize> },
[INFO] [stdout]     |     -----   ^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ComputeNode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `shape` is never read
[INFO] [stdout]    --> src/optimizer.rs:150:14
[INFO] [stdout]     |
[INFO] [stdout] 150 |     Output { shape: Vec<usize> },
[INFO] [stdout]     |     ------   ^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ComputeNode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `MatMul` and `Constant` are never constructed
[INFO] [stdout]    --> src/optimizer.rs:146:5
[INFO] [stdout]     |
[INFO] [stdout] 144 | pub enum ComputeNode {
[INFO] [stdout]     |          ----------- variants in this enum
[INFO] [stdout] 145 |     Convolution { kernel_shape: Vec<usize> },
[INFO] [stdout] 146 |     MatMul { output_shape: Vec<usize> },
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 147 |     Activation { activation_type: String },
[INFO] [stdout] 148 |     Constant { value: f32 },
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ComputeNode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `device` is never read
[INFO] [stdout]  --> src/profiler.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct Profiler {
[INFO] [stdout]   |            -------- field in this struct
[INFO] [stdout] 8 |     device: Arc<NpuDevice>,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `start_time_ms` is never read
[INFO] [stdout]   --> src/profiler.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct ProfileEvent {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] 15 |     pub event_name: String,
[INFO] [stdout] 16 |     pub start_time_ms: f64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ProfileEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_efficiency_gops_per_watt` is never used
[INFO] [stdout]   --> src/profiler.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl ProfileEvent {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn get_efficiency_gops_per_watt(&self) -> f64 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `clear` is never used
[INFO] [stdout]   --> src/profiler.rs:62:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | impl Profiler {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub fn clear(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `event_count` is never read
[INFO] [stdout]   --> src/profiler.rs:96:9
[INFO] [stdout]    |
[INFO] [stdout] 90 | pub struct ProfileReport {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 96 |     pub event_count: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ProfileReport` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "2ca3dc297f35f97190d3bf8480b1ca8a5185b52e194f043a512ff815dbc2390a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2ca3dc297f35f97190d3bf8480b1ca8a5185b52e194f043a512ff815dbc2390a", kill_on_drop: false }`
[INFO] [stdout] 2ca3dc297f35f97190d3bf8480b1ca8a5185b52e194f043a512ff815dbc2390a
