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.88s 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)) 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)) 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)) SELECTED MidGraph { tile_count: 1472, inputs: [ MidInput { name: "x", kind: Host, value: MidValueId( 0, ), }, MidInput { name: "up", kind: Parameter, value: MidValueId( 1, ), }, MidInput { name: "down", kind: Parameter, value: MidValueId( 2, ), }, ], values: [ MidValue { id: MidValueId( 0, ), owners: OwnerMap { rotation: 0, embedding: None, }, tensor_type: TensorType { shape: TensorShape( [ 1, 729, 1152, ], ), format: TensorFormat { precision: F16, layout: Layout { order: RowMajor, tiling: TensorTiling { tile_count: 1472, replicas: 1, axes: [ AxisTiling { axis: Linear, partitions: 1472, padding_groups: 1, block_size: 4, padding_multiple: 4, shard_padding_multiple: 1, padding: Reject, tile_stride: None, }, ], }, memory_class: Ipu21Standard, }, }, }, origin: ValueId( 0, ), storage_group: MidValueId( 0, ), }, MidValue { id: MidValueId( 1, ), owners: OwnerMap { rotation: 0, embedding: None, }, tensor_type: TensorType { shape: TensorShape( [ 1, 1152, 4304, ], ), format: TensorFormat { precision: F16, layout: Layout { order: BlockMajor( Matrix { row_block: 16, column_block: 16, }, ), tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [ AxisTiling { axis: FromEnd( 1, ), partitions: 20, padding_groups: 1, block_size: 16, padding_multiple: 16, shard_padding_multiple: 1, padding: Zero, tile_stride: Some( 1, ), }, AxisTiling { axis: FromEnd( 2, ), partitions: 72, padding_groups: 1, block_size: 16, padding_multiple: 16, shard_padding_multiple: 1, padding: Zero, tile_stride: Some( 20, ), }, ], }, memory_class: Ipu21Standard, }, }, }, origin: ValueId( 1, ), storage_group: MidValueId( 1, ), }, MidValue { id: MidValueId( 2, ), owners: OwnerMap { rotation: 0, embedding: None, }, tensor_type: TensorType { shape: TensorShape( [ 1, 4304, 1152, ], ), format: TensorFormat { precision: F16, layout: Layout { order: BlockMajor( Matrix { row_block: 16, column_block: 16, }, ), tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [ AxisTiling { axis: FromEnd( 1, ), partitions: 36, padding_groups: 1, block_size: 16, padding_multiple: 16, shard_padding_multiple: 1, padding: Zero, tile_stride: Some( 1, ), }, AxisTiling { axis: FromEnd( 2, ), partitions: 40, padding_groups: 1, block_size: 16, padding_multiple: 16, shard_padding_multiple: 1, padding: Zero, tile_stride: Some( 36, ), }, ], }, memory_class: Ipu21Standard, }, }, }, origin: ValueId( 2, ), storage_group: MidValueId( 2, ), }, MidValue { id: MidValueId( 3, ), owners: OwnerMap { rotation: 0, embedding: None, }, tensor_type: TensorType { shape: TensorShape( [ 1, 729, 4304, ], ), format: TensorFormat { precision: F16, layout: Layout { order: RowMajor, tiling: TensorTiling { tile_count: 1472, replicas: 1, axes: [ AxisTiling { axis: Linear, partitions: 1472, padding_groups: 1, block_size: 4, padding_multiple: 4, shard_padding_multiple: 1, padding: Zero, tile_stride: None, }, ], }, memory_class: Ipu21Standard, }, }, }, origin: ValueId( 3, ), storage_group: MidValueId( 3, ), }, MidValue { id: MidValueId( 4, ), owners: OwnerMap { rotation: 0, embedding: None, }, tensor_type: TensorType { shape: TensorShape( [ 1, 729, 1152, ], ), format: TensorFormat { precision: F16, layout: Layout { order: Amp( Left, ), tiling: TensorTiling { tile_count: 1440, replicas: 15, axes: [ AxisTiling { axis: FromEnd( 2, ), partitions: 12, padding_groups: 1, block_size: 1, padding_multiple: 1, shard_padding_multiple: 1, padding: Zero, tile_stride: Some( 120, ), }, AxisTiling { axis: FromEnd( 1, ), partitions: 8, padding_groups: 1, block_size: 144, padding_multiple: 144, shard_padding_multiple: 1, padding: Zero, tile_stride: Some( 15, ), }, ], }, memory_class: Ipu21Standard, }, }, }, origin: ValueId( 0, ), storage_group: MidValueId( 4, ), }, MidValue { id: MidValueId( 5, ), owners: OwnerMap { rotation: 0, embedding: None, }, tensor_type: TensorType { shape: TensorShape( [ 1, 1152, 4304, ], ), format: TensorFormat { precision: F16, layout: Layout { order: BlockMajor( Matrix { row_block: 144, column_block: 16, }, ), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [ AxisTiling { axis: FromEnd( 1, ), partitions: 15, padding_groups: 1, block_size: 288, padding_multiple: 288, shard_padding_multiple: 1, padding: Zero, tile_stride: Some( 1, ), }, AxisTiling { axis: FromEnd( 2, ), partitions: 8, padding_groups: 1, block_size: 144, padding_multiple: 144, shard_padding_multiple: 1, padding: Zero, tile_stride: Some( 15, ), }, ], }, memory_class: Ipu21Interleaved, }, }, }, origin: ValueId( 1, ), storage_group: MidValueId( 5, ), }, MidValue { id: MidValueId( 6, ), owners: OwnerMap { rotation: 0, embedding: None, }, tensor_type: TensorType { shape: TensorShape( [ 8, 1, 729, 4304, ], ), format: TensorFormat { precision: F16, layout: Layout { order: Amp( Left, ), tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [ AxisTiling { axis: FromEnd( 2, ), partitions: 12, padding_groups: 1, block_size: 1, padding_multiple: 1, shard_padding_multiple: 1, padding: Zero, tile_stride: Some( 120, ), }, AxisTiling { axis: FromEnd( 1, ), partitions: 15, padding_groups: 1, block_size: 288, padding_multiple: 288, shard_padding_multiple: 1, padding: Zero, tile_stride: Some( 1, ), }, AxisTiling { axis: FromStart( 0, ), partitions: 8, padding_groups: 1, block_size: 1, padding_multiple: 1, shard_padding_multiple: 1, padding: Reject, tile_stride: Some( 15, ), }, ], }, memory_class: Ipu21Interleaved, }, }, }, origin: ValueId( 3, ), storage_group: MidValueId( 6, ), }, MidValue { id: MidValueId( 7, ), owners: OwnerMap { rotation: 0, embedding: None, }, tensor_type: TensorType { shape: TensorShape( [ 1, 1, 729, 4304, ], ), format: TensorFormat { precision: F16, layout: Layout { order: Amp( Left, ), tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [ AxisTiling { axis: FromEnd( 2, ), partitions: 96, padding_groups: 1, block_size: 1, padding_multiple: 1, shard_padding_multiple: 1, padding: Zero, tile_stride: Some( 15, ), }, AxisTiling { axis: FromEnd( 1, ), partitions: 15, padding_groups: 1, block_size: 16, padding_multiple: 16, shard_padding_multiple: 16, padding: Zero, tile_stride: Some( 1, ), }, ], }, memory_class: Ipu21Standard, }, }, }, origin: ValueId( 3, ), storage_group: MidValueId( 7, ), }, MidValue { id: MidValueId( 8, ), owners: OwnerMap { rotation: 0, embedding: None, }, tensor_type: TensorType { shape: TensorShape( [ 7, 1, 729, 4304, ], ), format: TensorFormat { precision: F16, layout: Layout { order: Amp( Left, ), tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [ AxisTiling { axis: FromEnd( 2, ), partitions: 96, padding_groups: 1, block_size: 1, padding_multiple: 1, shard_padding_multiple: 1, padding: Zero, tile_stride: Some( 15, ), }, AxisTiling { axis: FromEnd( 1, ), partitions: 15, padding_groups: 1, block_size: 16, padding_multiple: 16, shard_padding_multiple: 16, padding: Zero, tile_stride: Some( 1, ), }, ], }, memory_class: Ipu21Standard, }, }, }, origin: ValueId( 3, ), storage_group: MidValueId( 8, ), }, MidValue { id: MidValueId( 9, ), owners: OwnerMap { rotation: 0, embedding: None, }, tensor_type: TensorType { shape: TensorShape( [ 1, 729, 4304, ], ), format: TensorFormat { precision: F16, layout: Layout { order: Amp( Left, ), tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [ AxisTiling { axis: FromEnd( 2, ), partitions: 96, padding_groups: 1, block_size: 1, padding_multiple: 1, shard_padding_multiple: 1, padding: Zero, tile_stride: Some( 15, ), }, AxisTiling { axis: FromEnd( 1, ), partitions: 15, padding_groups: 1, block_size: 16, padding_multiple: 16, shard_padding_multiple: 16, padding: Zero, tile_stride: Some( 1, ), }, ], }, memory_class: Ipu21Standard, }, }, }, origin: ValueId( 3, ), storage_group: MidValueId( 9, ), }, MidValue { id: MidValueId( 10, ), owners: OwnerMap { rotation: 0, embedding: None, }, tensor_type: TensorType { shape: TensorShape( [ 1, 729, 4304, ], ), format: TensorFormat { precision: F16, layout: Layout { order: RowMajor, tiling: TensorTiling { tile_count: 1472, replicas: 1, axes: [ AxisTiling { axis: Linear, partitions: 1472, padding_groups: 1, block_size: 4, padding_multiple: 4, shard_padding_multiple: 1, padding: Zero, tile_stride: None, }, ], }, memory_class: Ipu21Standard, }, }, }, origin: ValueId( 4, ), storage_group: MidValueId( 10, ), }, MidValue { id: MidValueId( 11, ), owners: OwnerMap { rotation: 0, embedding: None, }, tensor_type: TensorType { shape: TensorShape( [ 1, 729, 1152, ], ), format: TensorFormat { precision: F16, layout: Layout { order: RowMajor, tiling: TensorTiling { tile_count: 1469, replicas: 1, axes: [ AxisTiling { axis: Linear, partitions: 1469, padding_groups: 1, block_size: 4, padding_multiple: 4, shard_padding_multiple: 1, padding: Zero, tile_stride: None, }, ], }, memory_class: Ipu21Standard, }, }, }, origin: ValueId( 5, ), storage_group: MidValueId( 11, ), }, MidValue { id: MidValueId( 12, ), owners: OwnerMap { rotation: 0, embedding: None, }, tensor_type: TensorType { shape: TensorShape( [ 1, 729, 4304, ], ), format: TensorFormat { precision: F16, layout: Layout { order: RowMajor, tiling: TensorTiling { tile_count: 729, replicas: 1, axes: [ AxisTiling { axis: FromEnd( 2, ), partitions: 729, padding_groups: 1, block_size: 1, padding_multiple: 1, shard_padding_multiple: 1, padding: Reject, tile_stride: None, }, ], }, memory_class: Ipu21Standard, }, }, }, origin: ValueId( 4, ), storage_group: MidValueId( 12, ), }, MidValue { id: MidValueId( 13, ), owners: OwnerMap { rotation: 0, embedding: None, }, tensor_type: TensorType { shape: TensorShape( [ 1, 729, 4304, ], ), format: TensorFormat { precision: F16, layout: Layout { order: Amp( Left, ), tiling: TensorTiling { tile_count: 1458, replicas: 6, axes: [ AxisTiling { axis: FromEnd( 2, ), partitions: 9, padding_groups: 1, block_size: 1, padding_multiple: 1, shard_padding_multiple: 1, padding: Zero, tile_stride: Some( 162, ), }, AxisTiling { axis: FromEnd( 1, ), partitions: 27, padding_groups: 1, block_size: 160, padding_multiple: 160, shard_padding_multiple: 1, padding: Zero, tile_stride: Some( 6, ), }, ], }, memory_class: Ipu21Standard, }, }, }, origin: ValueId( 4, ), storage_group: MidValueId( 13, ), }, MidValue { id: MidValueId( 14, ), owners: OwnerMap { rotation: 0, embedding: None, }, tensor_type: TensorType { shape: TensorShape( [ 1, 4304, 1152, ], ), format: TensorFormat { precision: F16, layout: Layout { order: BlockMajor( Matrix { row_block: 160, column_block: 16, }, ), tiling: TensorTiling { tile_count: 1458, replicas: 9, axes: [ AxisTiling { axis: FromEnd( 1, ), partitions: 6, padding_groups: 1, block_size: 192, padding_multiple: 192, shard_padding_multiple: 1, padding: Zero, tile_stride: Some( 1, ), }, AxisTiling { axis: FromEnd( 2, ), partitions: 27, padding_groups: 1, block_size: 160, padding_multiple: 160, shard_padding_multiple: 1, padding: Zero, tile_stride: Some( 6, ), }, ], }, memory_class: Ipu21Interleaved, }, }, }, origin: ValueId( 2, ), storage_group: MidValueId( 14, ), }, MidValue { id: MidValueId( 15, ), owners: OwnerMap { rotation: 0, embedding: None, }, tensor_type: TensorType { shape: TensorShape( [ 27, 1, 729, 1152, ], ), format: TensorFormat { precision: F16, layout: Layout { order: Amp( Left, ), tiling: TensorTiling { tile_count: 1458, replicas: 1, axes: [ AxisTiling { axis: FromEnd( 2, ), partitions: 9, padding_groups: 1, block_size: 1, padding_multiple: 1, shard_padding_multiple: 1, padding: Zero, tile_stride: Some( 162, ), }, AxisTiling { axis: FromEnd( 1, ), partitions: 6, padding_groups: 1, block_size: 192, padding_multiple: 192, shard_padding_multiple: 1, padding: Zero, tile_stride: Some( 1, ), }, AxisTiling { axis: FromStart( 0, ), partitions: 27, padding_groups: 1, block_size: 1, padding_multiple: 1, shard_padding_multiple: 1, padding: Reject, tile_stride: Some( 6, ), }, ], }, memory_class: Ipu21Interleaved, }, }, }, origin: ValueId( 5, ), storage_group: MidValueId( 15, ), }, MidValue { id: MidValueId( 16, ), owners: OwnerMap { rotation: 0, embedding: None, }, tensor_type: TensorType { shape: TensorShape( [ 1, 1, 729, 1152, ], ), format: TensorFormat { precision: F16, layout: Layout { order: Amp( Left, ), tiling: TensorTiling { tile_count: 1458, replicas: 1, axes: [ AxisTiling { axis: FromEnd( 2, ), partitions: 243, padding_groups: 1, block_size: 1, padding_multiple: 1, shard_padding_multiple: 1, padding: Zero, tile_stride: Some( 6, ), }, AxisTiling { axis: FromEnd( 1, ), partitions: 6, padding_groups: 1, block_size: 16, padding_multiple: 16, shard_padding_multiple: 16, padding: Zero, tile_stride: Some( 1, ), }, ], }, memory_class: Ipu21Standard, }, }, }, origin: ValueId( 5, ), storage_group: MidValueId( 16, ), }, MidValue { id: MidValueId( 17, ), owners: OwnerMap { rotation: 0, embedding: None, }, tensor_type: TensorType { shape: TensorShape( [ 26, 1, 729, 1152, ], ), format: TensorFormat { precision: F16, layout: Layout { order: Amp( Left, ), tiling: TensorTiling { tile_count: 1458, replicas: 1, axes: [ AxisTiling { axis: FromEnd( 2, ), partitions: 243, padding_groups: 1, block_size: 1, padding_multiple: 1, shard_padding_multiple: 1, padding: Zero, tile_stride: Some( 6, ), }, AxisTiling { axis: FromEnd( 1, ), partitions: 6, padding_groups: 1, block_size: 16, padding_multiple: 16, shard_padding_multiple: 16, padding: Zero, tile_stride: Some( 1, ), }, ], }, memory_class: Ipu21Standard, }, }, }, origin: ValueId( 5, ), storage_group: MidValueId( 17, ), }, MidValue { id: MidValueId( 18, ), owners: OwnerMap { rotation: 0, embedding: None, }, tensor_type: TensorType { shape: TensorShape( [ 1, 729, 1152, ], ), format: TensorFormat { precision: F16, layout: Layout { order: Amp( Left, ), tiling: TensorTiling { tile_count: 1458, replicas: 1, axes: [ AxisTiling { axis: FromEnd( 2, ), partitions: 243, padding_groups: 1, block_size: 1, padding_multiple: 1, shard_padding_multiple: 1, padding: Zero, tile_stride: Some( 6, ), }, AxisTiling { axis: FromEnd( 1, ), partitions: 6, padding_groups: 1, block_size: 16, padding_multiple: 16, shard_padding_multiple: 16, padding: Zero, tile_stride: Some( 1, ), }, ], }, memory_class: Ipu21Standard, }, }, }, origin: ValueId( 5, ), storage_group: MidValueId( 18, ), }, ], operations: [ MidOperation { source: Some( OperationId( 0, ), ), inputs: [ MidValueId( 0, ), ], results: [ MidValueId( 4, ), ], kind: Copy { mapping: CoordinateMapping { offsets: [], view: None, }, policy: StageLogicalThenTransform, packing: Staged, }, operands: [], output_aliases: [], output_windows: [], }, MidOperation { source: Some( OperationId( 0, ), ), inputs: [ MidValueId( 1, ), ], results: [ MidValueId( 5, ), ], kind: Copy { mapping: CoordinateMapping { offsets: [], view: None, }, policy: StageLogicalThenTransform, packing: Direct, }, operands: [], output_aliases: [], output_windows: [], }, MidOperation { source: Some( OperationId( 0, ), ), inputs: [ MidValueId( 4, ), MidValueId( 5, ), ], results: [ MidValueId( 6, ), ], kind: 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, }, operands: [ Local( OperandWindow( [], ), ), Local( OperandWindow( [], ), ), ], output_aliases: [], output_windows: [], }, MidOperation { source: Some( OperationId( 0, ), ), inputs: [ MidValueId( 6, ), ], results: [ MidValueId( 7, ), ], kind: Copy { mapping: CoordinateMapping { offsets: [], view: None, }, policy: DirectRetile, packing: Direct, }, operands: [], output_aliases: [], output_windows: [], }, MidOperation { source: Some( OperationId( 0, ), ), inputs: [ MidValueId( 6, ), ], results: [ MidValueId( 8, ), ], kind: Copy { mapping: CoordinateMapping { offsets: [ 1, 0, 0, 0, ], view: None, }, policy: DirectRetile, packing: Direct, }, operands: [], output_aliases: [], output_windows: [], }, MidOperation { source: Some( OperationId( 0, ), ), inputs: [ MidValueId( 7, ), MidValueId( 8, ), ], results: [ MidValueId( 9, ), ], kind: ReductionSum { partials: 8, }, operands: [ Local( OperandWindow( [], ), ), Local( OperandWindow( [], ), ), ], output_aliases: [], output_windows: [], }, MidOperation { source: Some( OperationId( 0, ), ), inputs: [ MidValueId( 9, ), ], results: [ MidValueId( 3, ), ], kind: Copy { mapping: CoordinateMapping { offsets: [], view: None, }, policy: StageLogicalThenTransform, packing: Staged, }, operands: [], output_aliases: [], output_windows: [], }, MidOperation { source: Some( OperationId( 1, ), ), inputs: [ MidValueId( 3, ), ], results: [ MidValueId( 10, ), ], kind: Gelu, operands: [ Elementwise { result: 0, }, ], output_aliases: [], output_windows: [], }, MidOperation { source: Some( OperationId( 2, ), ), inputs: [ MidValueId( 10, ), ], results: [ MidValueId( 13, ), ], kind: Copy { mapping: CoordinateMapping { offsets: [], view: None, }, policy: StageLogicalThenTransform, packing: Staged, }, operands: [], output_aliases: [], output_windows: [], }, MidOperation { source: Some( OperationId( 2, ), ), inputs: [ MidValueId( 2, ), ], results: [ MidValueId( 14, ), ], kind: Copy { mapping: CoordinateMapping { offsets: [], view: None, }, policy: StageLogicalThenTransform, packing: Direct, }, operands: [], output_aliases: [], output_windows: [], }, MidOperation { source: Some( OperationId( 2, ), ), inputs: [ MidValueId( 13, ), MidValueId( 14, ), ], results: [ MidValueId( 15, ), ], kind: 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, }, operands: [ Local( OperandWindow( [], ), ), Local( OperandWindow( [], ), ), ], output_aliases: [], output_windows: [], }, MidOperation { source: Some( OperationId( 2, ), ), inputs: [ MidValueId( 15, ), ], results: [ MidValueId( 16, ), ], kind: Copy { mapping: CoordinateMapping { offsets: [], view: None, }, policy: DirectRetile, packing: Direct, }, operands: [], output_aliases: [], output_windows: [], }, MidOperation { source: Some( OperationId( 2, ), ), inputs: [ MidValueId( 15, ), ], results: [ MidValueId( 17, ), ], kind: Copy { mapping: CoordinateMapping { offsets: [ 1, 0, 0, 0, ], view: None, }, policy: DirectRetile, packing: Direct, }, operands: [], output_aliases: [], output_windows: [], }, MidOperation { source: Some( OperationId( 2, ), ), inputs: [ MidValueId( 16, ), MidValueId( 17, ), ], results: [ MidValueId( 18, ), ], kind: ReductionSum { partials: 27, }, operands: [ Local( OperandWindow( [], ), ), Local( OperandWindow( [], ), ), ], output_aliases: [], output_windows: [], }, MidOperation { source: Some( OperationId( 2, ), ), inputs: [ MidValueId( 18, ), ], results: [ MidValueId( 11, ), ], kind: Copy { mapping: CoordinateMapping { offsets: [], view: None, }, policy: StageLogicalThenTransform, packing: Staged, }, operands: [], output_aliases: [], output_windows: [], }, ], outputs: [ MidValueId( 11, ), ], estimated_cycles: 376694, estimated_exchange_cycles: 85944, peak_memory: MemoryPeaks { standard: 77288, interleaved: 148480, total: 195584, exchange_rows: 11416, maximum_standard_allocation: 32768, }, } test planner::gemm::tests::inspect_sdk_fp16 ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 305 filtered out; finished in 45.66s