Compiling ipu-codegen v0.1.0 (/srv/home/gc-sdk/ipu-stack/crates/ipu-codegen) warning: unused import: `region_program` --> crates/ipu-codegen/src/estimate/mod.rs:22:23 | 22 | operation_cycles, region_program, | ^^^^^^^^^^^^^^ | = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default warning: unused import: `program::program_cycles` --> crates/ipu-codegen/src/estimate/mod.rs:25:16 | 25 | pub(crate) use program::program_cycles; | ^^^^^^^^^^^^^^^^^^^^^^^ warning: unused import: `memory::*` --> crates/ipu-codegen/src/estimate/mod.rs:39:16 | 39 | pub(crate) use memory::*; | ^^^^^^^^^ warning: unused import: `contiguous_axis_blocks` --> crates/ipu-codegen/src/storage/mod.rs:12:49 | 12 | ByteTraversal, StridedSpan, byte_traversal, contiguous_axis_blocks, contiguous_axis_stride, panel_byte_traversal, | ^^^^^^^^^^^^^^^^^^^^^^ warning: unused imports: `axis_tiling` and `broadcast_operand_tiling` --> crates/ipu-codegen/src/tensor/mod.rs:99:5 | 99 | axis_tiling, broadcast_operand_tiling, project_tiling, same_distribution, | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ warning: methods `objectives` and `total_with_exchange` are never used --> crates/ipu-codegen/src/estimate/memory.rs:57:19 | 46 | impl MemoryPeaks { | ---------------- methods in this implementation ... 57 | pub(crate) fn objectives(self) -> [u64; 5] { | ^^^^^^^^^^ ... 67 | pub(crate) fn total_with_exchange(self) -> u64 { | ^^^^^^^^^^^^^^^^^^^ | = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default warning: function `tensor_memory` is never used --> crates/ipu-codegen/src/estimate/memory.rs:106:15 | 106 | pub(crate) fn tensor_memory(tensor: &TensorType) -> MemoryUsage { | ^^^^^^^^^^^^^ warning: function `operation_cycles` is never used --> crates/ipu-codegen/src/estimate/mid.rs:26:15 | 26 | pub(crate) fn operation_cycles<'a>( | ^^^^^^^^^^^^^^^^ warning: function `maximum_axis_shard_extent` is never used --> crates/ipu-codegen/src/estimate/tensor.rs:25:15 | 25 | pub(crate) fn maximum_axis_shard_extent(tensor: &TensorType, axis: usize) -> u64 { | ^^^^^^^^^^^^^^^^^^^^^^^^^ warning: constant `WORKER_CALL_CYCLES` is never used --> crates/ipu-codegen/src/kernel/copy.rs:18:18 | 18 | pub(crate) const WORKER_CALL_CYCLES: u64 = ipu_target::ipu21::costs::COSTS.local_copy_call_cycles; | ^^^^^^^^^^^^^^^^^^ warning: field `complete_rows` is never read --> crates/ipu-codegen/src/kernel/binding.rs:326:9 | 323 | pub(crate) struct OutputCapability { | ---------------- field in this struct ... 326 | pub complete_rows: bool, | ^^^^^^^^^^^^^ warning: function `supports_row_major_population` is never used --> crates/ipu-codegen/src/kernel/rearrange.rs:293:15 | 293 | pub(crate) fn supports_row_major_population(order: ElementOrder) -> bool { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ warning: function `is_single_use` is never used --> crates/ipu-codegen/src/mid/rewrite.rs:44:15 | 44 | pub(crate) fn is_single_use( | ^^^^^^^^^^^^^ warning: function `producer_through_copies` is never used --> crates/ipu-codegen/src/mid/rewrite.rs:141:15 | 141 | pub(crate) fn producer_through_copies( | ^^^^^^^^^^^^^^^^^^^^^^^ warning: function `fusion_pays` is never used --> crates/ipu-codegen/src/mid/rewrite.rs:171:15 | 171 | pub(crate) fn fusion_pays<'a>( | ^^^^^^^^^^^ warning: method `input_axis` is never used --> crates/ipu-codegen/src/tensor/mod.rs:54:19 | 38 | impl<'a> Broadcast<'a> { | ---------------------- method in this implementation ... 54 | pub(crate) fn input_axis(self, output_axis: usize) -> Option { | ^^^^^^^^^^ warning: method `minimum_extent` is never used --> crates/ipu-codegen/src/tensor/resolved.rs:50:19 | 15 | impl ResolvedAxis { | ----------------- method in this implementation ... 50 | pub(crate) fn minimum_extent(&self) -> u32 { | ^^^^^^^^^^^^^^ warning: function `broadcast_operand_tiling` is never used --> crates/ipu-codegen/src/tensor/resolved.rs:503:15 | 503 | pub(crate) fn broadcast_operand_tiling( | ^^^^^^^^^^^^^^^^^^^^^^^^ warning: function `axis_tiling` is never used --> crates/ipu-codegen/src/tensor/resolved.rs:514:15 | 514 | pub(crate) fn axis_tiling(tensor: &TensorType, axis: usize) -> Option<&AxisTiling> { | ^^^^^^^^^^^ warning: `ipu-codegen` (lib test) generated 19 warnings (run `cargo fix --lib -p ipu-codegen --tests` to apply 5 suggestions) Finished `release` profile [optimized] target(s) in 32.32s Running unittests src/lib.rs (target/release/deps/ipu_codegen-8a4acda8960e2f33) running 1 test GRID 0 sdk count=60 accepted=60 costs=[(6293684, true, 10023032), (6293684, true, 10023032), (6293684, true, 10023032), (6293684, true, 10023032), (6293684, true, 10023032), (6293684, true, 10023032), (6297491, true, 10023032), (6297491, true, 10023032), (6297491, true, 10023032), (6297491, true, 10023032), (6297491, true, 10023032), (6297491, true, 10023032)] DETAIL 0 sdk Some((ProgramCycles { total: 18446744073709551615, exchange: 3753568 }, MemoryPeaks { standard: 10023032, interleaved: 83968, total: 10023032, exchange_rows: 97800, maximum_standard_allocation: 9916416 })) OP Copy { mapping: CoordinateMapping { offsets: [], view: None }, policy: StageLogicalThenTransform, packing: Direct } Some((ProgramCycles { total: 5371736, exchange: 2477912 }, MemoryUsage { standard: 0, interleaved: 0 }, 51808)) OP Copy { mapping: CoordinateMapping { offsets: [], view: None }, policy: DirectRetile, packing: Direct } Some((ProgramCycles { total: 1261176, exchange: 1250520 }, MemoryUsage { standard: 0, interleaved: 0 }, 38884)) OP Copy { mapping: CoordinateMapping { offsets: [], view: None }, policy: StageLogicalThenTransform, packing: Staged } Some((ProgramCycles { total: 34872, exchange: 5208 }, MemoryUsage { standard: 18432, interleaved: 0 }, 3136)) OP Gemm { axes: GemmAxes { left_inner: FromEnd(2), right_inner: FromEnd(1), output_column: FromEnd(2), valid_inner: None, valid_columns: None }, multiply: F16, accumulate: F32, mode: Initialize, weights: Interleaved, inner_block: 144, output_columns: 64 } Some((ProgramCycles { total: 47526, exchange: 0 }, MemoryUsage { standard: 0, interleaved: 0 }, 0)) OP Copy { mapping: CoordinateMapping { offsets: [], view: None }, policy: DirectRetile, packing: Direct } Some((ProgramCycles { total: 9816, exchange: 8952 }, MemoryUsage { standard: 0, interleaved: 0 }, 616)) OP Copy { mapping: CoordinateMapping { offsets: [1, 0, 0, 0], view: None }, policy: DirectRetile, packing: Direct } Some((ProgramCycles { total: 10088, exchange: 9224 }, MemoryUsage { standard: 0, interleaved: 0 }, 976)) OP ReductionSum { partials: 8 } Some((ProgramCycles { total: 7506, exchange: 0 }, MemoryUsage { standard: 0, interleaved: 0 }, 0)) OP Copy { mapping: CoordinateMapping { offsets: [], view: None }, policy: StageLogicalThenTransform, packing: Staged } Some((ProgramCycles { total: 18446744073709551615, exchange: 1752 }, MemoryUsage { standard: 4264, interleaved: 0 }, 2380)) SATURATED Ok(KernelCall { symbol: "unpack_amp_to_row_major_f16_o1_r1_p1_c2132_p2132", arguments: [1, 1, 1, 2132, 2132], cycles: 115528, padding: Required }) GRID 0 selected count=72 accepted=72 costs=[(137720, true, 188416), (137720, true, 188416), (137720, true, 188416), (137720, true, 188416), (137720, true, 188416), (137720, true, 188416), (139934, true, 188416), (139934, true, 188416), (139934, true, 188416), (139934, true, 188416), (139934, true, 188416), (139934, true, 188416)] DETAIL 0 selected Some((ProgramCycles { total: 194134, exchange: 45840 }, MemoryPeaks { standard: 58648, interleaved: 148480, total: 188416, exchange_rows: 5456, maximum_standard_allocation: 32768 })) OP Copy { mapping: CoordinateMapping { offsets: [], view: None }, policy: StageLogicalThenTransform, packing: Staged } Some((ProgramCycles { total: 41976, exchange: 4992 }, MemoryUsage { standard: 17568, interleaved: 0 }, 3100)) OP Copy { mapping: CoordinateMapping { offsets: [], view: None }, policy: StageLogicalThenTransform, packing: Direct } Some((ProgramCycles { total: 49848, exchange: 21336 }, MemoryUsage { standard: 0, interleaved: 0 }, 976)) OP Gemm { axes: GemmAxes { left_inner: FromEnd(1), right_inner: FromEnd(2), output_column: FromEnd(1), valid_inner: None, valid_columns: None }, multiply: F16, accumulate: F32, mode: Initialize, weights: Interleaved, inner_block: 144, output_columns: 288 } Some((ProgramCycles { total: 65742, exchange: 0 }, MemoryUsage { standard: 0, interleaved: 0 }, 0)) OP Copy { mapping: CoordinateMapping { offsets: [], view: None }, policy: DirectRetile, packing: Direct } Some((ProgramCycles { total: 9240, exchange: 8376 }, MemoryUsage { standard: 0, interleaved: 0 }, 328)) OP Copy { mapping: CoordinateMapping { offsets: [1, 0, 0, 0], view: None }, policy: DirectRetile, packing: Direct } Some((ProgramCycles { total: 10248, exchange: 9384 }, MemoryUsage { standard: 0, interleaved: 0 }, 472)) OP ReductionSum { partials: 8 } Some((ProgramCycles { total: 11670, exchange: 0 }, MemoryUsage { standard: 0, interleaved: 0 }, 0)) OP Copy { mapping: CoordinateMapping { offsets: [], view: None }, policy: StageLogicalThenTransform, packing: Staged } Some((ProgramCycles { total: 5410, exchange: 1752 }, MemoryUsage { standard: 4264, interleaved: 0 }, 580)) GRID 2 sdk count=60 accepted=60 costs=[(6315903, true, 10079400), (6315903, true, 10079400), (6315903, true, 10079400), (6315903, true, 10079400), (6315903, true, 10079400), (6315903, true, 10079400), (6321627, true, 10079400), (6321627, true, 10079400), (6321627, true, 10079400), (6321627, true, 10079400), (6321627, true, 10079400), (6321627, true, 10079400)] DETAIL 2 sdk Some((ProgramCycles { total: 18446744073709551615, exchange: 4976384 }, MemoryPeaks { standard: 10079400, interleaved: 60416, total: 10079400, exchange_rows: 117096, maximum_standard_allocation: 9953280 })) OP Copy { mapping: CoordinateMapping { offsets: [], view: None }, policy: StageLogicalThenTransform, packing: Direct } Some((ProgramCycles { total: 5371736, exchange: 2477912 }, MemoryUsage { standard: 0, interleaved: 0 }, 51808)) OP Copy { mapping: CoordinateMapping { offsets: [], view: None }, policy: DirectRetile, packing: Direct } Some((ProgramCycles { total: 2493816, exchange: 2479704 }, MemoryUsage { standard: 0, interleaved: 0 }, 58324)) OP Copy { mapping: CoordinateMapping { offsets: [], view: None }, policy: StageLogicalThenTransform, packing: Staged } Some((ProgramCycles { total: 30840, exchange: 7512 }, MemoryUsage { standard: 27648, interleaved: 0 }, 2056)) OP Gemm { axes: GemmAxes { left_inner: FromEnd(2), right_inner: FromEnd(1), output_column: FromEnd(2), valid_inner: None, valid_columns: None }, multiply: F16, accumulate: F32, mode: Initialize, weights: Interleaved, inner_block: 288, output_columns: 48 } Some((ProgramCycles { total: 50406, exchange: 0 }, MemoryUsage { standard: 0, interleaved: 0 }, 0)) OP Copy { mapping: CoordinateMapping { offsets: [], view: None }, policy: DirectRetile, packing: Direct } Some((ProgramCycles { total: 5472, exchange: 5016 }, MemoryUsage { standard: 0, interleaved: 0 }, 1120)) OP Copy { mapping: CoordinateMapping { offsets: [1, 0, 0, 0], view: None }, policy: DirectRetile, packing: Direct } Some((ProgramCycles { total: 5760, exchange: 5304 }, MemoryUsage { standard: 0, interleaved: 0 }, 1984)) OP ReductionSum { partials: 15 } Some((ProgramCycles { total: 3582, exchange: 0 }, MemoryUsage { standard: 0, interleaved: 0 }, 0)) OP Copy { mapping: CoordinateMapping { offsets: [], view: None }, policy: StageLogicalThenTransform, packing: Staged } Some((ProgramCycles { total: 18446744073709551615, exchange: 936 }, MemoryUsage { standard: 1144, interleaved: 0 }, 1804)) SATURATED Ok(KernelCall { symbol: "unpack_amp_to_row_major_f16_o1_r1_p1_c572_p572", arguments: [1, 1, 1, 572, 572], cycles: 31288, padding: Required }) GRID 2 selected count=48 accepted=48 costs=[(118006, true, 134144), (118006, true, 134144), (118006, true, 134144), (118006, true, 134144), (118006, true, 134144), (118006, true, 134144), (123815, true, 134144), (123815, true, 134144), (123815, true, 134144), (123815, true, 134144), (123815, true, 134144), (123815, true, 134144)] DETAIL 2 selected Some((ProgramCycles { total: 171190, exchange: 40104 }, MemoryPeaks { standard: 70120, interleaved: 94208, total: 134144, exchange_rows: 5960, maximum_standard_allocation: 32768 })) OP Copy { mapping: CoordinateMapping { offsets: [], view: None }, policy: StageLogicalThenTransform, packing: Staged } Some((ProgramCycles { total: 49992, exchange: 7080 }, MemoryUsage { standard: 25920, interleaved: 0 }, 3208)) OP Copy { mapping: CoordinateMapping { offsets: [], view: None }, policy: StageLogicalThenTransform, packing: Direct } Some((ProgramCycles { total: 36504, exchange: 15960 }, MemoryUsage { standard: 0, interleaved: 0 }, 652)) OP Gemm { axes: GemmAxes { left_inner: FromEnd(1), right_inner: FromEnd(2), output_column: FromEnd(1), valid_inner: None, valid_columns: None }, multiply: F16, accumulate: F32, mode: Initialize, weights: Interleaved, inner_block: 160, output_columns: 192 } Some((ProgramCycles { total: 58374, exchange: 0 }, MemoryUsage { standard: 0, interleaved: 0 }, 0)) OP Copy { mapping: CoordinateMapping { offsets: [], view: None }, policy: DirectRetile, packing: Direct } Some((ProgramCycles { total: 8520, exchange: 8088 }, MemoryUsage { standard: 0, interleaved: 0 }, 940)) OP Copy { mapping: CoordinateMapping { offsets: [1, 0, 0, 0], view: None }, policy: DirectRetile, packing: Direct } Some((ProgramCycles { total: 8520, exchange: 8088 }, MemoryUsage { standard: 0, interleaved: 0 }, 940)) OP ReductionSum { partials: 27 } Some((ProgramCycles { total: 6954, exchange: 0 }, MemoryUsage { standard: 0, interleaved: 0 }, 0)) OP Copy { mapping: CoordinateMapping { offsets: [], view: None }, policy: StageLogicalThenTransform, packing: Staged } Some((ProgramCycles { total: 2326, exchange: 888 }, MemoryUsage { standard: 1144, interleaved: 0 }, 220)) CATALOGUE 0 total=62 swapped=0 CATALOGUE 1 total=2 swapped=0 CATALOGUE 2 total=124 swapped=0 test planner::gemm::tests::inspect_sdk_fp16 ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 305 filtered out; finished in 42.88s