[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::>::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::>::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::>::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::>::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, [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::>::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::>::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::>::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::>::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> { [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, b: &ArrayD) -> Result> { [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) -> Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 200 | pub fn get_device(&self, device_id: u32) -> Result> { [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, b: &ArrayD) -> Result> { [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 { [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, batch_size: usize) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 127 | pub fn submit_batch(&self, operations: Vec<(&ArrayD, &ArrayD)>) -> Result>> { [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 { [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 }, [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 }, [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 }, [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 }, [INFO] [stdout] 146 | MatMul { output_shape: Vec }, [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, [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::>::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::>::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::>::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::>::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, [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::>::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::>::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::>::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::>::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, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `ndarray::impl_methods::>::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::>::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::>::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::>::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> { [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, b: &ArrayD) -> Result> { [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) -> Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 200 | pub fn get_device(&self, device_id: u32) -> Result> { [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, b: &ArrayD) -> Result> { [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 { [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, batch_size: usize) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 127 | pub fn submit_batch(&self, operations: Vec<(&ArrayD, &ArrayD)>) -> Result>> { [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 { [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 }, [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 }, [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 }, [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 }, [INFO] [stdout] 146 | MatMul { output_shape: Vec }, [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, [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