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:21:23 | 21 | operation_cycles, region_program, | ^^^^^^^^^^^^^^ | = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default warning: unused import: `memory::*` --> crates/ipu-codegen/src/estimate/mod.rs:37:16 | 37 | 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:37:15 | 37 | 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:307:15 | 307 | 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:567:15 | 567 | pub(crate) fn broadcast_operand_tiling( | ^^^^^^^^^^^^^^^^^^^^^^^^ warning: function `axis_tiling` is never used --> crates/ipu-codegen/src/tensor/resolved.rs:578:15 | 578 | pub(crate) fn axis_tiling(tensor: &TensorType, axis: usize) -> Option<&AxisTiling> { | ^^^^^^^^^^^ warning: `ipu-codegen` (lib test) generated 18 warnings (run `cargo fix --lib -p ipu-codegen --tests` to apply 4 suggestions) Finished `release` profile [optimized] target(s) in 25.13s Running unittests src/lib.rs (target/release/deps/ipu_codegen-8a4acda8960e2f33) running 1 test GEOMETRY k=1152 n=4304 grid=[15, 12, 8] variant=20 mid=304704 low=329745 exchange=110088 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 15, padding_groups: 1, block_size: 2, padding_multiple: 2, 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: Ipu21Standard } reduction=Some(Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 180, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 15, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 12, padding_groups: 1, block_size: 16, padding_multiple: 16, shard_padding_multiple: 16, padding: Zero, tile_stride: Some(15) }] }, memory_class: Ipu21Standard }) GEOMETRY k=1152 n=4304 grid=[15, 12, 8] variant=30 mid=297792 low=320529 exchange=100872 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 15, padding_groups: 1, block_size: 2, padding_multiple: 2, 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(180) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 180, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 15, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 12, padding_groups: 1, block_size: 16, padding_multiple: 16, shard_padding_multiple: 16, padding: Zero, tile_stride: Some(15) }] }, memory_class: Ipu21Standard }) GEOMETRY k=1152 n=4304 grid=[15, 12, 8] variant=40 mid=304704 low=329745 exchange=110088 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 15, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(8) }, AxisTiling { axis: FromEnd(2), partitions: 8, padding_groups: 1, block_size: 144, padding_multiple: 144, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 180, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 15, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 12, padding_groups: 1, block_size: 16, padding_multiple: 16, shard_padding_multiple: 16, padding: Zero, tile_stride: Some(15) }] }, memory_class: Ipu21Standard }) GEOMETRY k=1152 n=4304 grid=[15, 12, 8] variant=50 mid=304704 low=329745 exchange=110088 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 15, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(96) }, AxisTiling { axis: FromEnd(2), partitions: 8, padding_groups: 1, block_size: 144, padding_multiple: 144, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 180, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 15, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(12) }, AxisTiling { axis: FromEnd(2), partitions: 12, padding_groups: 1, block_size: 16, padding_multiple: 16, shard_padding_multiple: 16, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard }) GEOMETRY k=1152 n=4304 grid=[15, 12, 8] variant=10 mid=295200 low=320529 exchange=100872 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 15, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(12) }, AxisTiling { axis: FromEnd(2), partitions: 8, padding_groups: 1, block_size: 144, padding_multiple: 144, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(180) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 180, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 15, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(12) }, AxisTiling { axis: FromEnd(2), partitions: 12, padding_groups: 1, block_size: 16, padding_multiple: 16, shard_padding_multiple: 16, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard }) GEOMETRY k=1152 n=4304 grid=[15, 12, 8] variant=0 mid=302112 low=329745 exchange=110088 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 15, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(96) }, AxisTiling { axis: FromEnd(2), partitions: 8, padding_groups: 1, block_size: 144, padding_multiple: 144, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(12) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 180, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 15, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(12) }, AxisTiling { axis: FromEnd(2), partitions: 12, padding_groups: 1, block_size: 16, padding_multiple: 16, shard_padding_multiple: 16, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard }) GEOMETRY k=1152 n=4304 grid=[15, 12, 8] variant=41 mid=303732 low=345468 exchange=106200 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 15, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(8) }, AxisTiling { axis: FromEnd(2), partitions: 8, padding_groups: 1, block_size: 144, padding_multiple: 144, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: RowMajor, tiling: TensorTiling { tile_count: 180, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 15, padding_groups: 1, block_size: 8, padding_multiple: 8, shard_padding_multiple: 8, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 12, padding_groups: 1, block_size: 1, padding_multiple: 1, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(15) }] }, memory_class: Ipu21Standard }) GEOMETRY k=1152 n=4304 grid=[15, 12, 8] variant=22 mid=119673 low=128505 exchange=37512 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 15, padding_groups: 1, block_size: 2, padding_multiple: 2, 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: Ipu21Standard } reduction=Some(Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 120, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 12, padding_groups: 1, block_size: 16, padding_multiple: 16, shard_padding_multiple: 16, padding: Zero, tile_stride: Some(120) }] }, memory_class: Ipu21Standard }) GEOMETRY k=1152 n=4304 grid=[15, 12, 8] variant=31 mid=299202 low=359754 exchange=101598 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 15, padding_groups: 1, block_size: 2, padding_multiple: 2, 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(180) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: RowMajor, tiling: TensorTiling { tile_count: 180, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 15, padding_groups: 1, block_size: 8, padding_multiple: 8, shard_padding_multiple: 8, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 12, padding_groups: 1, block_size: 1, padding_multiple: 1, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(15) }] }, memory_class: Ipu21Standard }) GEOMETRY k=1152 n=4304 grid=[15, 12, 8] variant=21 mid=303732 low=364356 exchange=106200 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 15, padding_groups: 1, block_size: 2, padding_multiple: 2, 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: Ipu21Standard } reduction=Some(Layout { order: RowMajor, tiling: TensorTiling { tile_count: 180, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 15, padding_groups: 1, block_size: 8, padding_multiple: 8, shard_padding_multiple: 8, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 12, padding_groups: 1, block_size: 1, padding_multiple: 1, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(15) }] }, memory_class: Ipu21Standard }) GEOMETRY k=1152 n=4304 grid=[15, 12, 8] variant=51 mid=303732 low=345468 exchange=106200 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 15, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(96) }, AxisTiling { axis: FromEnd(2), partitions: 8, padding_groups: 1, block_size: 144, padding_multiple: 144, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: RowMajor, tiling: TensorTiling { tile_count: 180, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 15, padding_groups: 1, block_size: 8, padding_multiple: 8, shard_padding_multiple: 8, padding: Zero, tile_stride: Some(12) }, AxisTiling { axis: FromEnd(2), partitions: 12, padding_groups: 1, block_size: 1, padding_multiple: 1, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard }) GEOMETRY k=1152 n=4304 grid=[15, 12, 8] variant=11 mid=296610 low=359754 exchange=101598 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 15, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(12) }, AxisTiling { axis: FromEnd(2), partitions: 8, padding_groups: 1, block_size: 144, padding_multiple: 144, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(180) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: RowMajor, tiling: TensorTiling { tile_count: 180, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 15, padding_groups: 1, block_size: 8, padding_multiple: 8, shard_padding_multiple: 8, padding: Zero, tile_stride: Some(12) }, AxisTiling { axis: FromEnd(2), partitions: 12, padding_groups: 1, block_size: 1, padding_multiple: 1, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard }) GEOMETRY k=1152 n=4304 grid=[15, 12, 8] variant=1 mid=300636 low=353388 exchange=106200 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 15, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(96) }, AxisTiling { axis: FromEnd(2), partitions: 8, padding_groups: 1, block_size: 144, padding_multiple: 144, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(12) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: RowMajor, tiling: TensorTiling { tile_count: 180, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 15, padding_groups: 1, block_size: 8, padding_multiple: 8, shard_padding_multiple: 8, padding: Zero, tile_stride: Some(12) }, AxisTiling { axis: FromEnd(2), partitions: 12, padding_groups: 1, block_size: 1, padding_multiple: 1, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard }) GEOMETRY k=1152 n=4304 grid=[15, 12, 8] variant=42 mid=118217 low=127913 exchange=36920 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 15, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(8) }, AxisTiling { axis: FromEnd(2), partitions: 8, padding_groups: 1, block_size: 144, padding_multiple: 144, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 120, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 12, padding_groups: 1, block_size: 16, padding_multiple: 16, shard_padding_multiple: 16, padding: Zero, tile_stride: Some(120) }] }, memory_class: Ipu21Standard }) GEOMETRY k=1152 n=4304 grid=[15, 12, 8] variant=3 mid=190076 low=231486 exchange=38124 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 15, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(96) }, AxisTiling { axis: FromEnd(2), partitions: 8, padding_groups: 1, block_size: 144, padding_multiple: 144, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(12) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: RowMajor, tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 120, padding_groups: 1, block_size: 8, padding_multiple: 8, shard_padding_multiple: 8, padding: Zero, tile_stride: Some(12) }, AxisTiling { axis: FromEnd(2), partitions: 12, padding_groups: 1, block_size: 1, padding_multiple: 1, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard }) GEOMETRY k=1152 n=4304 grid=[15, 12, 8] variant=32 mid=119673 low=128505 exchange=37512 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 15, padding_groups: 1, block_size: 2, padding_multiple: 2, 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(180) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 120, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 12, padding_groups: 1, block_size: 16, padding_multiple: 16, shard_padding_multiple: 16, padding: Zero, tile_stride: Some(120) }] }, memory_class: Ipu21Standard }) GEOMETRY k=1152 n=4304 grid=[15, 12, 8] variant=12 mid=117081 low=128505 exchange=37512 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 15, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(12) }, AxisTiling { axis: FromEnd(2), partitions: 8, padding_groups: 1, block_size: 144, padding_multiple: 144, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(180) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 120, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(12) }, AxisTiling { axis: FromEnd(2), partitions: 12, padding_groups: 1, block_size: 16, padding_multiple: 16, shard_padding_multiple: 16, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard }) GEOMETRY k=1152 n=4304 grid=[15, 12, 8] variant=52 mid=119673 low=128505 exchange=37512 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 15, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(96) }, AxisTiling { axis: FromEnd(2), partitions: 8, padding_groups: 1, block_size: 144, padding_multiple: 144, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 120, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(12) }, AxisTiling { axis: FromEnd(2), partitions: 12, padding_groups: 1, block_size: 16, padding_multiple: 16, shard_padding_multiple: 16, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard }) GEOMETRY k=1152 n=4304 grid=[15, 12, 8] variant=23 mid=193196 low=231418 exchange=38124 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 15, padding_groups: 1, block_size: 2, padding_multiple: 2, 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: Ipu21Standard } reduction=Some(Layout { order: RowMajor, tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 120, padding_groups: 1, block_size: 8, padding_multiple: 8, shard_padding_multiple: 8, padding: Zero, tile_stride: Some(1) }, 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) }] }, memory_class: Ipu21Standard }) GEOMETRY k=1152 n=4304 grid=[15, 12, 8] variant=43 mid=192668 low=231550 exchange=38124 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 15, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(8) }, AxisTiling { axis: FromEnd(2), partitions: 8, padding_groups: 1, block_size: 144, padding_multiple: 144, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: RowMajor, tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 120, padding_groups: 1, block_size: 8, padding_multiple: 8, shard_padding_multiple: 8, padding: Zero, tile_stride: Some(1) }, 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) }] }, memory_class: Ipu21Standard }) STAGE k=1152 grid=[15, 12, 8] end=1 low=21336 mid=Some((ProgramCycles { total: 19896, exchange: 18744 }, MemoryUsage { standard: 0, interleaved: 0 }, 976)) kind=Copy { mapping: CoordinateMapping { offsets: [], view: None }, policy: DirectRetile, packing: Direct } GEOMETRY k=1152 n=4304 grid=[15, 12, 8] variant=4 mid=190080 low=232200 exchange=37512 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 15, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(96) }, AxisTiling { axis: FromEnd(2), partitions: 8, padding_groups: 1, block_size: 144, padding_multiple: 144, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(12) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: RowMajor, tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 15, padding_groups: 1, block_size: 8, padding_multiple: 8, shard_padding_multiple: 8, padding: Zero, tile_stride: Some(96) }, AxisTiling { axis: FromEnd(2), partitions: 96, padding_groups: 1, block_size: 1, padding_multiple: 1, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard }) STAGE k=1152 grid=[15, 12, 8] end=2 low=27318 mid=Some((ProgramCycles { total: 8124, exchange: 5208 }, MemoryUsage { standard: 18432, interleaved: 0 }, 3136)) kind=Copy { mapping: CoordinateMapping { offsets: [], view: None }, policy: StageLogicalThenTransform, packing: Staged } GEOMETRY k=1152 n=4304 grid=[15, 12, 8] variant=13 mid=190604 low=231354 exchange=38124 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 15, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(12) }, AxisTiling { axis: FromEnd(2), partitions: 8, padding_groups: 1, block_size: 144, padding_multiple: 144, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(180) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: RowMajor, tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 120, padding_groups: 1, block_size: 8, padding_multiple: 8, shard_padding_multiple: 8, padding: Zero, tile_stride: Some(12) }, AxisTiling { axis: FromEnd(2), partitions: 12, padding_groups: 1, block_size: 1, padding_multiple: 1, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard }) GEOMETRY k=1152 n=4304 grid=[15, 12, 8] variant=24 mid=192672 low=232200 exchange=37512 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 15, padding_groups: 1, block_size: 2, padding_multiple: 2, 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: Ipu21Standard } reduction=Some(Layout { order: RowMajor, tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 15, padding_groups: 1, block_size: 8, padding_multiple: 8, shard_padding_multiple: 8, padding: Zero, tile_stride: Some(1) }, 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) }] }, memory_class: Ipu21Standard }) GEOMETRY k=1152 n=4304 grid=[15, 12, 8] variant=14 mid=190080 low=232176 exchange=37512 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 15, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(12) }, AxisTiling { axis: FromEnd(2), partitions: 8, padding_groups: 1, block_size: 144, padding_multiple: 144, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(180) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: RowMajor, tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 15, padding_groups: 1, block_size: 8, padding_multiple: 8, shard_padding_multiple: 8, padding: Zero, tile_stride: Some(96) }, AxisTiling { axis: FromEnd(2), partitions: 96, padding_groups: 1, block_size: 1, padding_multiple: 1, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard }) GEOMETRY k=1152 n=4304 grid=[15, 12, 8] variant=44 mid=192672 low=232176 exchange=37512 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 15, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(8) }, AxisTiling { axis: FromEnd(2), partitions: 8, padding_groups: 1, block_size: 144, padding_multiple: 144, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: RowMajor, tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 15, padding_groups: 1, block_size: 8, padding_multiple: 8, shard_padding_multiple: 8, padding: Zero, tile_stride: Some(1) }, 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) }] }, memory_class: Ipu21Standard }) GEOMETRY k=1152 n=4304 grid=[15, 12, 8] variant=34 mid=192672 low=232200 exchange=37512 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 15, padding_groups: 1, block_size: 2, padding_multiple: 2, 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(180) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: RowMajor, tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 15, padding_groups: 1, block_size: 8, padding_multiple: 8, shard_padding_multiple: 8, padding: Zero, tile_stride: Some(1) }, 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) }] }, memory_class: Ipu21Standard }) STAGE k=1152 grid=[15, 12, 8] end=3 low=47526 mid=Some((ProgramCycles { total: 47526, exchange: 0 }, MemoryUsage { standard: 0, interleaved: 0 }, 0)) kind=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 } GEOMETRY k=1152 n=4304 grid=[15, 12, 8] variant=53 mid=193166 low=231354 exchange=38124 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 15, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(96) }, AxisTiling { axis: FromEnd(2), partitions: 8, padding_groups: 1, block_size: 144, padding_multiple: 144, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: RowMajor, tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 120, padding_groups: 1, block_size: 8, padding_multiple: 8, shard_padding_multiple: 8, padding: Zero, tile_stride: Some(12) }, AxisTiling { axis: FromEnd(2), partitions: 12, padding_groups: 1, block_size: 1, padding_multiple: 1, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard }) GEOMETRY k=1152 n=4304 grid=[15, 12, 8] variant=33 mid=193106 low=231418 exchange=38124 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 15, padding_groups: 1, block_size: 2, padding_multiple: 2, 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(180) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: RowMajor, tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 120, padding_groups: 1, block_size: 8, padding_multiple: 8, shard_padding_multiple: 8, padding: Zero, tile_stride: Some(1) }, 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) }] }, memory_class: Ipu21Standard }) GEOMETRY k=1152 n=4304 grid=[15, 12, 8] variant=54 mid=192672 low=232200 exchange=37512 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 15, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(96) }, AxisTiling { axis: FromEnd(2), partitions: 8, padding_groups: 1, block_size: 144, padding_multiple: 144, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: RowMajor, tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 15, padding_groups: 1, block_size: 8, padding_multiple: 8, shard_padding_multiple: 8, padding: Zero, tile_stride: Some(96) }, AxisTiling { axis: FromEnd(2), partitions: 96, padding_groups: 1, block_size: 1, padding_multiple: 1, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard }) STAGE k=1152 grid=[15, 12, 8] end=4 low=11088 mid=Some((ProgramCycles { total: 9816, exchange: 8952 }, MemoryUsage { standard: 0, interleaved: 0 }, 616)) kind=Copy { mapping: CoordinateMapping { offsets: [], view: None }, policy: DirectRetile, packing: Direct } STAGE k=1152 grid=[15, 12, 8] end=5 low=272 mid=Some((ProgramCycles { total: 10088, exchange: 9224 }, MemoryUsage { standard: 0, interleaved: 0 }, 976)) kind=Copy { mapping: CoordinateMapping { offsets: [1, 0, 0, 0], view: None }, policy: DirectRetile, packing: Direct } STAGE k=1152 grid=[15, 12, 8] end=6 low=7506 mid=Some((ProgramCycles { total: 7506, exchange: 0 }, MemoryUsage { standard: 0, interleaved: 0 }, 0)) kind=ReductionSum { partials: 8 } STAGE k=1152 grid=[15, 12, 8] end=7 low=12867 mid=Some((ProgramCycles { total: 12669, exchange: 1752 }, MemoryUsage { standard: 4608, interleaved: 0 }, 2380)) kind=Copy { mapping: CoordinateMapping { offsets: [], view: None }, policy: StageLogicalThenTransform, packing: Staged } GEOMETRY k=1152 n=4304 grid=[15, 12, 8] variant=2 mid=115625 low=127913 exchange=36920 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 15, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(96) }, AxisTiling { axis: FromEnd(2), partitions: 8, padding_groups: 1, block_size: 144, padding_multiple: 144, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(12) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 120, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(12) }, AxisTiling { axis: FromEnd(2), partitions: 12, padding_groups: 1, block_size: 16, padding_multiple: 16, shard_padding_multiple: 16, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard }) GEOMETRY_BEST k=1152 grid=[15, 12, 8] [(127913, 2), (127913, 42), (128505, 12), (128505, 22), (128505, 32), (128505, 52), (231354, 13), (231354, 53), (231418, 23), (231418, 33), (231486, 3), (231550, 43), (232176, 14), (232176, 44), (232200, 4), (232200, 24), (232200, 34), (232200, 54), (320529, 10), (320529, 30), (329745, 0), (329745, 20), (329745, 40), (329745, 50), (345468, 41), (345468, 51), (353388, 1), (359754, 11), (359754, 31), (364356, 21)] GEOMETRY k=1152 n=4304 grid=[20, 12, 6] variant=20 mid=232458 low=261909 exchange=77064 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 20, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 6, padding_groups: 1, block_size: 192, padding_multiple: 192, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(20) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 240, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 20, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 12, padding_groups: 1, block_size: 16, padding_multiple: 16, shard_padding_multiple: 16, padding: Zero, tile_stride: Some(20) }] }, memory_class: Ipu21Standard }) GEOMETRY k=1152 n=4304 grid=[20, 12, 6] variant=30 mid=227274 low=254997 exchange=70152 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 20, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 6, padding_groups: 1, block_size: 192, padding_multiple: 192, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(240) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 240, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 20, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 12, padding_groups: 1, block_size: 16, padding_multiple: 16, shard_padding_multiple: 16, padding: Zero, tile_stride: Some(20) }] }, memory_class: Ipu21Standard }) GEOMETRY k=1152 n=4304 grid=[20, 12, 6] variant=21 mid=232908 low=280980 exchange=74796 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 20, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 6, padding_groups: 1, block_size: 192, padding_multiple: 192, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(20) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: RowMajor, tiling: TensorTiling { tile_count: 240, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 20, padding_groups: 1, block_size: 8, padding_multiple: 8, shard_padding_multiple: 8, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 12, padding_groups: 1, block_size: 1, padding_multiple: 1, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(20) }] }, memory_class: Ipu21Standard }) GEOMETRY k=1152 n=4304 grid=[20, 12, 6] variant=10 mid=225546 low=254997 exchange=70152 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 20, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(12) }, AxisTiling { axis: FromEnd(2), partitions: 6, padding_groups: 1, block_size: 192, padding_multiple: 192, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(240) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 240, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 20, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(12) }, AxisTiling { axis: FromEnd(2), partitions: 12, padding_groups: 1, block_size: 16, padding_multiple: 16, shard_padding_multiple: 16, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard }) GEOMETRY k=1152 n=4304 grid=[20, 12, 6] variant=0 mid=230730 low=261909 exchange=77064 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 20, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(72) }, AxisTiling { axis: FromEnd(2), partitions: 6, padding_groups: 1, block_size: 192, padding_multiple: 192, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(12) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 240, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 20, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(12) }, AxisTiling { axis: FromEnd(2), partitions: 12, padding_groups: 1, block_size: 16, padding_multiple: 16, shard_padding_multiple: 16, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard }) GEOMETRY k=1152 n=4304 grid=[20, 12, 6] variant=11 mid=227748 low=277782 exchange=71598 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 20, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(12) }, AxisTiling { axis: FromEnd(2), partitions: 6, padding_groups: 1, block_size: 192, padding_multiple: 192, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(240) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: RowMajor, tiling: TensorTiling { tile_count: 240, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 20, padding_groups: 1, block_size: 8, padding_multiple: 8, shard_padding_multiple: 8, padding: Zero, tile_stride: Some(12) }, AxisTiling { axis: FromEnd(2), partitions: 12, padding_groups: 1, block_size: 1, padding_multiple: 1, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard }) GEOMETRY k=1152 n=4304 grid=[20, 12, 6] variant=13 mid=169280 low=202292 exchange=37220 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 20, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(12) }, AxisTiling { axis: FromEnd(2), partitions: 6, padding_groups: 1, block_size: 192, padding_multiple: 192, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(240) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: RowMajor, tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 120, padding_groups: 1, block_size: 8, padding_multiple: 8, shard_padding_multiple: 8, padding: Zero, tile_stride: Some(12) }, AxisTiling { axis: FromEnd(2), partitions: 12, padding_groups: 1, block_size: 1, padding_multiple: 1, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard }) GEOMETRY k=1152 n=4304 grid=[20, 12, 6] variant=22 mid=118149 low=135657 exchange=36744 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 20, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 6, padding_groups: 1, block_size: 192, padding_multiple: 192, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(20) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 120, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 12, padding_groups: 1, block_size: 16, padding_multiple: 16, shard_padding_multiple: 16, padding: Zero, tile_stride: Some(120) }] }, memory_class: Ipu21Standard }) GEOMETRY k=1152 n=4304 grid=[20, 12, 6] variant=31 mid=229476 low=277782 exchange=71598 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 20, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 6, padding_groups: 1, block_size: 192, padding_multiple: 192, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(240) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: RowMajor, tiling: TensorTiling { tile_count: 240, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 20, padding_groups: 1, block_size: 8, padding_multiple: 8, shard_padding_multiple: 8, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 12, padding_groups: 1, block_size: 1, padding_multiple: 1, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(20) }] }, memory_class: Ipu21Standard }) GEOMETRY k=1152 n=4304 grid=[20, 12, 6] variant=1 mid=230730 low=272676 exchange=74796 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 20, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(72) }, AxisTiling { axis: FromEnd(2), partitions: 6, padding_groups: 1, block_size: 192, padding_multiple: 192, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(12) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: RowMajor, tiling: TensorTiling { tile_count: 240, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 20, padding_groups: 1, block_size: 8, padding_multiple: 8, shard_padding_multiple: 8, padding: Zero, tile_stride: Some(12) }, AxisTiling { axis: FromEnd(2), partitions: 12, padding_groups: 1, block_size: 1, padding_multiple: 1, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard }) GEOMETRY k=1152 n=4304 grid=[20, 12, 6] variant=14 mid=169134 low=202950 exchange=36996 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 20, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(12) }, AxisTiling { axis: FromEnd(2), partitions: 6, padding_groups: 1, block_size: 192, padding_multiple: 192, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(240) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: RowMajor, tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 20, padding_groups: 1, block_size: 8, padding_multiple: 8, shard_padding_multiple: 8, padding: Zero, tile_stride: Some(72) }, AxisTiling { axis: FromEnd(2), partitions: 72, padding_groups: 1, block_size: 1, padding_multiple: 1, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard }) GEOMETRY k=1152 n=4304 grid=[20, 12, 6] variant=24 mid=170862 low=202734 exchange=36780 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 20, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 6, padding_groups: 1, block_size: 192, padding_multiple: 192, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(20) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: RowMajor, tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 20, padding_groups: 1, block_size: 8, padding_multiple: 8, shard_padding_multiple: 8, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 72, padding_groups: 1, block_size: 1, padding_multiple: 1, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(20) }] }, memory_class: Ipu21Standard }) GEOMETRY k=1152 n=4304 grid=[20, 12, 6] variant=50 mid=232458 low=261909 exchange=77064 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 20, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(72) }, AxisTiling { axis: FromEnd(2), partitions: 6, padding_groups: 1, block_size: 192, padding_multiple: 192, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 240, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 20, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(12) }, AxisTiling { axis: FromEnd(2), partitions: 12, padding_groups: 1, block_size: 16, padding_multiple: 16, shard_padding_multiple: 16, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard }) GEOMETRY k=1152 n=4304 grid=[20, 12, 6] variant=12 mid=116421 low=135657 exchange=36744 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 20, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(12) }, AxisTiling { axis: FromEnd(2), partitions: 6, padding_groups: 1, block_size: 192, padding_multiple: 192, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(240) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 120, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(12) }, AxisTiling { axis: FromEnd(2), partitions: 12, padding_groups: 1, block_size: 16, padding_multiple: 16, shard_padding_multiple: 16, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard }) GEOMETRY k=1152 n=4304 grid=[20, 12, 6] variant=3 mid=169280 low=202292 exchange=37220 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 20, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(72) }, AxisTiling { axis: FromEnd(2), partitions: 6, padding_groups: 1, block_size: 192, padding_multiple: 192, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(12) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: RowMajor, tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 120, padding_groups: 1, block_size: 8, padding_multiple: 8, shard_padding_multiple: 8, padding: Zero, tile_stride: Some(12) }, AxisTiling { axis: FromEnd(2), partitions: 12, padding_groups: 1, block_size: 1, padding_multiple: 1, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard }) GEOMETRY k=1152 n=4304 grid=[20, 12, 6] variant=40 mid=232458 low=261909 exchange=77064 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 20, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(6) }, AxisTiling { axis: FromEnd(2), partitions: 6, padding_groups: 1, block_size: 192, padding_multiple: 192, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 240, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 20, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 12, padding_groups: 1, block_size: 16, padding_multiple: 16, shard_padding_multiple: 16, padding: Zero, tile_stride: Some(20) }] }, memory_class: Ipu21Standard }) GEOMETRY k=1152 n=4304 grid=[20, 12, 6] variant=41 mid=232908 low=266736 exchange=74796 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 20, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(6) }, AxisTiling { axis: FromEnd(2), partitions: 6, padding_groups: 1, block_size: 192, padding_multiple: 192, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: RowMajor, tiling: TensorTiling { tile_count: 240, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 20, padding_groups: 1, block_size: 8, padding_multiple: 8, shard_padding_multiple: 8, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 12, padding_groups: 1, block_size: 1, padding_multiple: 1, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(20) }] }, memory_class: Ipu21Standard }) GEOMETRY k=1152 n=4304 grid=[20, 12, 6] variant=32 mid=118149 low=135657 exchange=36744 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 20, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 6, padding_groups: 1, block_size: 192, padding_multiple: 192, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(240) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 120, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 12, padding_groups: 1, block_size: 16, padding_multiple: 16, shard_padding_multiple: 16, padding: Zero, tile_stride: Some(120) }] }, memory_class: Ipu21Standard }) GEOMETRY k=1152 n=4304 grid=[20, 12, 6] variant=23 mid=171008 low=202356 exchange=37220 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 20, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 6, padding_groups: 1, block_size: 192, padding_multiple: 192, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(20) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: RowMajor, tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 120, padding_groups: 1, block_size: 8, padding_multiple: 8, shard_padding_multiple: 8, padding: Zero, tile_stride: Some(1) }, 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) }] }, memory_class: Ipu21Standard }) GEOMETRY k=1152 n=4304 grid=[20, 12, 6] variant=51 mid=232908 low=266736 exchange=74796 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 20, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(72) }, AxisTiling { axis: FromEnd(2), partitions: 6, padding_groups: 1, block_size: 192, padding_multiple: 192, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: RowMajor, tiling: TensorTiling { tile_count: 240, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 20, padding_groups: 1, block_size: 8, padding_multiple: 8, shard_padding_multiple: 8, padding: Zero, tile_stride: Some(12) }, AxisTiling { axis: FromEnd(2), partitions: 12, padding_groups: 1, block_size: 1, padding_multiple: 1, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard }) STAGE k=1152 grid=[20, 12, 6] end=1 low=21336 mid=Some((ProgramCycles { total: 20760, exchange: 19608 }, MemoryUsage { standard: 0, interleaved: 0 }, 436)) kind=Copy { mapping: CoordinateMapping { offsets: [], view: None }, policy: DirectRetile, packing: Direct } GEOMETRY k=1152 n=4304 grid=[20, 12, 6] variant=4 mid=169080 low=202950 exchange=36996 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 20, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(72) }, AxisTiling { axis: FromEnd(2), partitions: 6, padding_groups: 1, block_size: 192, padding_multiple: 192, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(12) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: RowMajor, tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 20, padding_groups: 1, block_size: 8, padding_multiple: 8, shard_padding_multiple: 8, padding: Zero, tile_stride: Some(72) }, AxisTiling { axis: FromEnd(2), partitions: 72, padding_groups: 1, block_size: 1, padding_multiple: 1, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard }) GEOMETRY k=1152 n=4304 grid=[20, 12, 6] variant=52 mid=118149 low=135657 exchange=36744 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 20, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(72) }, AxisTiling { axis: FromEnd(2), partitions: 6, padding_groups: 1, block_size: 192, padding_multiple: 192, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 120, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(12) }, AxisTiling { axis: FromEnd(2), partitions: 12, padding_groups: 1, block_size: 16, padding_multiple: 16, shard_padding_multiple: 16, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard }) STAGE k=1152 grid=[20, 12, 6] end=2 low=36006 mid=Some((ProgramCycles { total: 10440, exchange: 6744 }, MemoryUsage { standard: 24576, interleaved: 0 }, 3280)) kind=Copy { mapping: CoordinateMapping { offsets: [], view: None }, policy: StageLogicalThenTransform, packing: Staged } GEOMETRY k=1152 n=4304 grid=[20, 12, 6] variant=33 mid=170948 low=202356 exchange=37220 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 20, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 6, padding_groups: 1, block_size: 192, padding_multiple: 192, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(240) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: RowMajor, tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 120, padding_groups: 1, block_size: 8, padding_multiple: 8, shard_padding_multiple: 8, padding: Zero, tile_stride: Some(1) }, 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) }] }, memory_class: Ipu21Standard }) GEOMETRY k=1152 n=4304 grid=[20, 12, 6] variant=54 mid=170862 low=202734 exchange=36780 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 20, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(72) }, AxisTiling { axis: FromEnd(2), partitions: 6, padding_groups: 1, block_size: 192, padding_multiple: 192, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: RowMajor, tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 20, padding_groups: 1, block_size: 8, padding_multiple: 8, shard_padding_multiple: 8, padding: Zero, tile_stride: Some(72) }, AxisTiling { axis: FromEnd(2), partitions: 72, padding_groups: 1, block_size: 1, padding_multiple: 1, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard }) GEOMETRY k=1152 n=4304 grid=[20, 12, 6] variant=44 mid=170862 low=202950 exchange=36996 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 20, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(6) }, AxisTiling { axis: FromEnd(2), partitions: 6, padding_groups: 1, block_size: 192, padding_multiple: 192, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: RowMajor, tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 20, padding_groups: 1, block_size: 8, padding_multiple: 8, shard_padding_multiple: 8, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 72, padding_groups: 1, block_size: 1, padding_multiple: 1, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(20) }] }, memory_class: Ipu21Standard }) GEOMETRY k=1152 n=4304 grid=[20, 12, 6] variant=42 mid=116645 low=135017 exchange=36104 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 20, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(6) }, AxisTiling { axis: FromEnd(2), partitions: 6, padding_groups: 1, block_size: 192, padding_multiple: 192, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 120, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 12, padding_groups: 1, block_size: 16, padding_multiple: 16, shard_padding_multiple: 16, padding: Zero, tile_stride: Some(120) }] }, memory_class: Ipu21Standard }) STAGE k=1152 grid=[20, 12, 6] end=3 low=49446 mid=Some((ProgramCycles { total: 49446, exchange: 0 }, MemoryUsage { standard: 0, interleaved: 0 }, 0)) kind=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: 192, output_columns: 64 } GEOMETRY k=1152 n=4304 grid=[20, 12, 6] variant=43 mid=171008 low=202356 exchange=37220 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 20, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(6) }, AxisTiling { axis: FromEnd(2), partitions: 6, padding_groups: 1, block_size: 192, padding_multiple: 192, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: RowMajor, tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 120, padding_groups: 1, block_size: 8, padding_multiple: 8, shard_padding_multiple: 8, padding: Zero, tile_stride: Some(1) }, 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) }] }, memory_class: Ipu21Standard }) GEOMETRY k=1152 n=4304 grid=[20, 12, 6] variant=34 mid=170808 low=202950 exchange=36996 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 20, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 6, padding_groups: 1, block_size: 192, padding_multiple: 192, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(240) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: RowMajor, tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 20, padding_groups: 1, block_size: 8, padding_multiple: 8, shard_padding_multiple: 8, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 72, padding_groups: 1, block_size: 1, padding_multiple: 1, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(20) }] }, memory_class: Ipu21Standard }) GEOMETRY k=1152 n=4304 grid=[20, 12, 6] variant=53 mid=170948 low=202292 exchange=37220 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 20, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(72) }, AxisTiling { axis: FromEnd(2), partitions: 6, padding_groups: 1, block_size: 192, padding_multiple: 192, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: RowMajor, tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 120, padding_groups: 1, block_size: 8, padding_multiple: 8, shard_padding_multiple: 8, padding: Zero, tile_stride: Some(12) }, AxisTiling { axis: FromEnd(2), partitions: 12, padding_groups: 1, block_size: 1, padding_multiple: 1, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard }) STAGE k=1152 grid=[20, 12, 6] end=4 low=8784 mid=Some((ProgramCycles { total: 7512, exchange: 6648 }, MemoryUsage { standard: 0, interleaved: 0 }, 472)) kind=Copy { mapping: CoordinateMapping { offsets: [], view: None }, policy: DirectRetile, packing: Direct } STAGE k=1152 grid=[20, 12, 6] end=5 low=224 mid=Some((ProgramCycles { total: 7736, exchange: 6872 }, MemoryUsage { standard: 0, interleaved: 0 }, 688)) kind=Copy { mapping: CoordinateMapping { offsets: [1, 0, 0, 0], view: None }, policy: DirectRetile, packing: Direct } STAGE k=1152 grid=[20, 12, 6] end=6 low=6354 mid=Some((ProgramCycles { total: 6354, exchange: 0 }, MemoryUsage { standard: 0, interleaved: 0 }, 0)) kind=ReductionSum { partials: 6 } STAGE k=1152 grid=[20, 12, 6] end=7 low=12867 mid=Some((ProgramCycles { total: 12669, exchange: 1752 }, MemoryUsage { standard: 4608, interleaved: 0 }, 2380)) kind=Copy { mapping: CoordinateMapping { offsets: [], view: None }, policy: StageLogicalThenTransform, packing: Staged } GEOMETRY k=1152 n=4304 grid=[20, 12, 6] variant=2 mid=114917 low=135017 exchange=36104 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 20, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(72) }, AxisTiling { axis: FromEnd(2), partitions: 6, padding_groups: 1, block_size: 192, padding_multiple: 192, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(12) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 120, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(12) }, AxisTiling { axis: FromEnd(2), partitions: 12, padding_groups: 1, block_size: 16, padding_multiple: 16, shard_padding_multiple: 16, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard }) GEOMETRY_BEST k=1152 grid=[20, 12, 6] [(135017, 2), (135017, 42), (135657, 12), (135657, 22), (135657, 32), (135657, 52), (202292, 3), (202292, 13), (202292, 53), (202356, 23), (202356, 33), (202356, 43), (202734, 24), (202734, 54), (202950, 4), (202950, 14), (202950, 34), (202950, 44), (254997, 10), (254997, 30), (261909, 0), (261909, 20), (261909, 40), (261909, 50), (266736, 41), (266736, 51), (272676, 1), (277782, 11), (277782, 31), (280980, 21)] GEOMETRY k=4304 n=1152 grid=[6, 16, 15] variant=30 mid=247300 low=272980 exchange=105480 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 16, axes: [AxisTiling { axis: FromEnd(1), partitions: 6, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 15, padding_groups: 1, block_size: 288, padding_multiple: 288, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(96) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 96, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 6, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 16, padding_groups: 1, block_size: 16, padding_multiple: 16, shard_padding_multiple: 16, padding: Zero, tile_stride: Some(6) }] }, memory_class: Ipu21Standard }) GEOMETRY k=4304 n=1152 grid=[6, 16, 15] variant=0 mid=250372 low=277588 exchange=110088 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 16, axes: [AxisTiling { axis: FromEnd(1), partitions: 6, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(240) }, AxisTiling { axis: FromEnd(2), partitions: 15, padding_groups: 1, block_size: 288, padding_multiple: 288, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(16) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 96, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 6, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(16) }, AxisTiling { axis: FromEnd(2), partitions: 16, padding_groups: 1, block_size: 16, padding_multiple: 16, shard_padding_multiple: 16, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard }) GEOMETRY k=4304 n=1152 grid=[6, 16, 15] variant=50 mid=250372 low=277588 exchange=110088 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 16, axes: [AxisTiling { axis: FromEnd(1), partitions: 6, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(240) }, AxisTiling { axis: FromEnd(2), partitions: 15, padding_groups: 1, block_size: 288, padding_multiple: 288, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 96, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 6, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(16) }, AxisTiling { axis: FromEnd(2), partitions: 16, padding_groups: 1, block_size: 16, padding_multiple: 16, shard_padding_multiple: 16, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard }) GEOMETRY k=4304 n=1152 grid=[6, 16, 15] variant=40 mid=250372 low=277588 exchange=110088 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 16, axes: [AxisTiling { axis: FromEnd(1), partitions: 6, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(15) }, AxisTiling { axis: FromEnd(2), partitions: 15, padding_groups: 1, block_size: 288, padding_multiple: 288, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 96, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 6, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 16, padding_groups: 1, block_size: 16, padding_multiple: 16, shard_padding_multiple: 16, padding: Zero, tile_stride: Some(6) }] }, memory_class: Ipu21Standard }) GEOMETRY k=4304 n=1152 grid=[6, 16, 15] variant=41 mid=248500 low=268228 exchange=107016 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 16, axes: [AxisTiling { axis: FromEnd(1), partitions: 6, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(15) }, AxisTiling { axis: FromEnd(2), partitions: 15, padding_groups: 1, block_size: 288, padding_multiple: 288, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: RowMajor, tiling: TensorTiling { tile_count: 96, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 6, padding_groups: 1, block_size: 8, padding_multiple: 8, shard_padding_multiple: 8, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 16, padding_groups: 1, block_size: 1, padding_multiple: 1, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(6) }] }, memory_class: Ipu21Standard }) GEOMETRY k=4304 n=1152 grid=[6, 16, 15] variant=44 mid=146788 low=164596 exchange=42504 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 16, axes: [AxisTiling { axis: FromEnd(1), partitions: 6, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(15) }, AxisTiling { axis: FromEnd(2), partitions: 15, padding_groups: 1, block_size: 288, padding_multiple: 288, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: RowMajor, tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 6, padding_groups: 1, block_size: 8, padding_multiple: 8, shard_padding_multiple: 8, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 240, padding_groups: 1, block_size: 1, padding_multiple: 1, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(6) }] }, memory_class: Ipu21Standard }) GEOMETRY k=4304 n=1152 grid=[6, 16, 15] variant=31 mid=246964 low=269956 exchange=104712 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 16, axes: [AxisTiling { axis: FromEnd(1), partitions: 6, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 15, padding_groups: 1, block_size: 288, padding_multiple: 288, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(96) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: RowMajor, tiling: TensorTiling { tile_count: 96, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 6, padding_groups: 1, block_size: 8, padding_multiple: 8, shard_padding_multiple: 8, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 16, padding_groups: 1, block_size: 1, padding_multiple: 1, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(6) }] }, memory_class: Ipu21Standard }) GEOMETRY k=4304 n=1152 grid=[6, 16, 15] variant=52 mid=110876 low=131711 exchange=41736 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 16, axes: [AxisTiling { axis: FromEnd(1), partitions: 6, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(240) }, AxisTiling { axis: FromEnd(2), partitions: 15, padding_groups: 1, block_size: 288, padding_multiple: 288, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 90, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(16) }, AxisTiling { axis: FromEnd(2), partitions: 16, padding_groups: 1, block_size: 16, padding_multiple: 16, shard_padding_multiple: 16, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard }) GEOMETRY k=4304 n=1152 grid=[6, 16, 15] variant=51 mid=248500 low=268228 exchange=107016 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 16, axes: [AxisTiling { axis: FromEnd(1), partitions: 6, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(240) }, AxisTiling { axis: FromEnd(2), partitions: 15, padding_groups: 1, block_size: 288, padding_multiple: 288, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: RowMajor, tiling: TensorTiling { tile_count: 96, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 6, padding_groups: 1, block_size: 8, padding_multiple: 8, shard_padding_multiple: 8, padding: Zero, tile_stride: Some(16) }, AxisTiling { axis: FromEnd(2), partitions: 16, padding_groups: 1, block_size: 1, padding_multiple: 1, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard }) GEOMETRY k=4304 n=1152 grid=[6, 16, 15] variant=43 mid=146440 low=164622 exchange=42248 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 16, axes: [AxisTiling { axis: FromEnd(1), partitions: 6, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(15) }, AxisTiling { axis: FromEnd(2), partitions: 15, padding_groups: 1, block_size: 288, padding_multiple: 288, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: RowMajor, tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 90, padding_groups: 1, block_size: 8, padding_multiple: 8, shard_padding_multiple: 8, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 16, padding_groups: 1, block_size: 1, padding_multiple: 1, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(90) }] }, memory_class: Ipu21Standard }) GEOMETRY k=4304 n=1152 grid=[6, 16, 15] variant=1 mid=248116 low=272260 exchange=107016 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 16, axes: [AxisTiling { axis: FromEnd(1), partitions: 6, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(240) }, AxisTiling { axis: FromEnd(2), partitions: 15, padding_groups: 1, block_size: 288, padding_multiple: 288, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(16) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: RowMajor, tiling: TensorTiling { tile_count: 96, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 6, padding_groups: 1, block_size: 8, padding_multiple: 8, shard_padding_multiple: 8, padding: Zero, tile_stride: Some(16) }, AxisTiling { axis: FromEnd(2), partitions: 16, padding_groups: 1, block_size: 1, padding_multiple: 1, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard }) GEOMETRY k=4304 n=1152 grid=[6, 16, 15] variant=20 mid=250372 low=277588 exchange=110088 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 16, axes: [AxisTiling { axis: FromEnd(1), partitions: 6, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 15, padding_groups: 1, block_size: 288, padding_multiple: 288, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(6) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 96, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 6, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 16, padding_groups: 1, block_size: 16, padding_multiple: 16, shard_padding_multiple: 16, padding: Zero, tile_stride: Some(6) }] }, memory_class: Ipu21Standard }) GEOMETRY k=4304 n=1152 grid=[6, 16, 15] variant=42 mid=110684 low=131711 exchange=41736 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 16, axes: [AxisTiling { axis: FromEnd(1), partitions: 6, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(15) }, AxisTiling { axis: FromEnd(2), partitions: 15, padding_groups: 1, block_size: 288, padding_multiple: 288, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 90, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 16, padding_groups: 1, block_size: 16, padding_multiple: 16, shard_padding_multiple: 16, padding: Zero, tile_stride: Some(90) }] }, memory_class: Ipu21Standard }) GEOMETRY k=4304 n=1152 grid=[6, 16, 15] variant=10 mid=247300 low=272980 exchange=105480 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 16, axes: [AxisTiling { axis: FromEnd(1), partitions: 6, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(16) }, AxisTiling { axis: FromEnd(2), partitions: 15, padding_groups: 1, block_size: 288, padding_multiple: 288, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(96) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 96, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 6, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(16) }, AxisTiling { axis: FromEnd(2), partitions: 16, padding_groups: 1, block_size: 16, padding_multiple: 16, shard_padding_multiple: 16, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard }) GEOMETRY k=4304 n=1152 grid=[6, 16, 15] variant=33 mid=146480 low=164622 exchange=42248 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 16, axes: [AxisTiling { axis: FromEnd(1), partitions: 6, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 15, padding_groups: 1, block_size: 288, padding_multiple: 288, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(96) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: RowMajor, tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 90, padding_groups: 1, block_size: 8, padding_multiple: 8, shard_padding_multiple: 8, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 16, padding_groups: 1, block_size: 1, padding_multiple: 1, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(90) }] }, memory_class: Ipu21Standard }) GEOMETRY k=4304 n=1152 grid=[6, 16, 15] variant=21 mid=248500 low=268228 exchange=107016 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 16, axes: [AxisTiling { axis: FromEnd(1), partitions: 6, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 15, padding_groups: 1, block_size: 288, padding_multiple: 288, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(6) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: RowMajor, tiling: TensorTiling { tile_count: 96, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 6, padding_groups: 1, block_size: 8, padding_multiple: 8, shard_padding_multiple: 8, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 16, padding_groups: 1, block_size: 1, padding_multiple: 1, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(6) }] }, memory_class: Ipu21Standard }) GEOMETRY k=4304 n=1152 grid=[6, 16, 15] variant=32 mid=110876 low=131711 exchange=41736 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 16, axes: [AxisTiling { axis: FromEnd(1), partitions: 6, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 15, padding_groups: 1, block_size: 288, padding_multiple: 288, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(96) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 90, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 16, padding_groups: 1, block_size: 16, padding_multiple: 16, shard_padding_multiple: 16, padding: Zero, tile_stride: Some(90) }] }, memory_class: Ipu21Standard }) GEOMETRY k=4304 n=1152 grid=[6, 16, 15] variant=22 mid=110876 low=131711 exchange=41736 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 16, axes: [AxisTiling { axis: FromEnd(1), partitions: 6, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 15, padding_groups: 1, block_size: 288, padding_multiple: 288, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(6) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 90, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 16, padding_groups: 1, block_size: 16, padding_multiple: 16, shard_padding_multiple: 16, padding: Zero, tile_stride: Some(90) }] }, memory_class: Ipu21Standard }) GEOMETRY k=4304 n=1152 grid=[6, 16, 15] variant=11 mid=246964 low=269956 exchange=104712 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 16, axes: [AxisTiling { axis: FromEnd(1), partitions: 6, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(16) }, AxisTiling { axis: FromEnd(2), partitions: 15, padding_groups: 1, block_size: 288, padding_multiple: 288, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(96) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: RowMajor, tiling: TensorTiling { tile_count: 96, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 6, padding_groups: 1, block_size: 8, padding_multiple: 8, shard_padding_multiple: 8, padding: Zero, tile_stride: Some(16) }, AxisTiling { axis: FromEnd(2), partitions: 16, padding_groups: 1, block_size: 1, padding_multiple: 1, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard }) GEOMETRY k=4304 n=1152 grid=[6, 16, 15] variant=53 mid=146480 low=164622 exchange=42248 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 16, axes: [AxisTiling { axis: FromEnd(1), partitions: 6, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(240) }, AxisTiling { axis: FromEnd(2), partitions: 15, padding_groups: 1, block_size: 288, padding_multiple: 288, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: RowMajor, tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 90, padding_groups: 1, block_size: 8, padding_multiple: 8, shard_padding_multiple: 8, padding: Zero, tile_stride: Some(16) }, AxisTiling { axis: FromEnd(2), partitions: 16, padding_groups: 1, block_size: 1, padding_multiple: 1, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard }) STAGE k=4304 grid=[6, 16, 15] end=1 low=29250 mid=Some((ProgramCycles { total: 29400, exchange: 28248 }, MemoryUsage { standard: 0, interleaved: 0 }, 2596)) kind=Copy { mapping: CoordinateMapping { offsets: [], view: None }, policy: DirectRetile, packing: Direct } GEOMETRY k=4304 n=1152 grid=[6, 16, 15] variant=34 mid=146740 low=163966 exchange=42504 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 16, axes: [AxisTiling { axis: FromEnd(1), partitions: 6, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 15, padding_groups: 1, block_size: 288, padding_multiple: 288, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(96) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: RowMajor, tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 6, padding_groups: 1, block_size: 8, padding_multiple: 8, shard_padding_multiple: 8, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 240, padding_groups: 1, block_size: 1, padding_multiple: 1, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(6) }] }, memory_class: Ipu21Standard }) GEOMETRY k=4304 n=1152 grid=[6, 16, 15] variant=14 mid=146788 low=164596 exchange=42504 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 16, axes: [AxisTiling { axis: FromEnd(1), partitions: 6, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(16) }, AxisTiling { axis: FromEnd(2), partitions: 15, padding_groups: 1, block_size: 288, padding_multiple: 288, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(96) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: RowMajor, tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 6, padding_groups: 1, block_size: 8, padding_multiple: 8, shard_padding_multiple: 8, padding: Zero, tile_stride: Some(240) }, AxisTiling { axis: FromEnd(2), partitions: 240, padding_groups: 1, block_size: 1, padding_multiple: 1, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard }) STAGE k=4304 grid=[6, 16, 15] end=2 low=37314 mid=Some((ProgramCycles { total: 11616, exchange: 7512 }, MemoryUsage { standard: 27648, interleaved: 0 }, 2056)) kind=Copy { mapping: CoordinateMapping { offsets: [], view: None }, policy: StageLogicalThenTransform, packing: Staged } GEOMETRY k=4304 n=1152 grid=[6, 16, 15] variant=13 mid=146488 low=164622 exchange=42248 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 16, axes: [AxisTiling { axis: FromEnd(1), partitions: 6, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(16) }, AxisTiling { axis: FromEnd(2), partitions: 15, padding_groups: 1, block_size: 288, padding_multiple: 288, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(96) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: RowMajor, tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 90, padding_groups: 1, block_size: 8, padding_multiple: 8, shard_padding_multiple: 8, padding: Zero, tile_stride: Some(16) }, AxisTiling { axis: FromEnd(2), partitions: 16, padding_groups: 1, block_size: 1, padding_multiple: 1, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard }) GEOMETRY k=4304 n=1152 grid=[6, 16, 15] variant=12 mid=110876 low=131711 exchange=41736 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 16, axes: [AxisTiling { axis: FromEnd(1), partitions: 6, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(16) }, AxisTiling { axis: FromEnd(2), partitions: 15, padding_groups: 1, block_size: 288, padding_multiple: 288, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(96) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 90, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(16) }, AxisTiling { axis: FromEnd(2), partitions: 16, padding_groups: 1, block_size: 16, padding_multiple: 16, shard_padding_multiple: 16, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard }) GEOMETRY k=4304 n=1152 grid=[6, 16, 15] variant=54 mid=146788 low=164212 exchange=42120 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 16, axes: [AxisTiling { axis: FromEnd(1), partitions: 6, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(240) }, AxisTiling { axis: FromEnd(2), partitions: 15, padding_groups: 1, block_size: 288, padding_multiple: 288, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: RowMajor, tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 6, padding_groups: 1, block_size: 8, padding_multiple: 8, shard_padding_multiple: 8, padding: Zero, tile_stride: Some(240) }, AxisTiling { axis: FromEnd(2), partitions: 240, padding_groups: 1, block_size: 1, padding_multiple: 1, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard }) GEOMETRY k=4304 n=1152 grid=[6, 16, 15] variant=24 mid=146788 low=164212 exchange=42120 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 16, axes: [AxisTiling { axis: FromEnd(1), partitions: 6, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 15, padding_groups: 1, block_size: 288, padding_multiple: 288, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(6) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: RowMajor, tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 6, padding_groups: 1, block_size: 8, padding_multiple: 8, shard_padding_multiple: 8, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 240, padding_groups: 1, block_size: 1, padding_multiple: 1, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(6) }] }, memory_class: Ipu21Standard }) GEOMETRY k=4304 n=1152 grid=[6, 16, 15] variant=4 mid=146740 low=163966 exchange=42504 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 16, axes: [AxisTiling { axis: FromEnd(1), partitions: 6, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(240) }, AxisTiling { axis: FromEnd(2), partitions: 15, padding_groups: 1, block_size: 288, padding_multiple: 288, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(16) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: RowMajor, tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 6, padding_groups: 1, block_size: 8, padding_multiple: 8, shard_padding_multiple: 8, padding: Zero, tile_stride: Some(240) }, AxisTiling { axis: FromEnd(2), partitions: 240, padding_groups: 1, block_size: 1, padding_multiple: 1, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard }) STAGE k=4304 grid=[6, 16, 15] end=3 low=50406 mid=Some((ProgramCycles { total: 50406, exchange: 0 }, MemoryUsage { standard: 0, interleaved: 0 }, 0)) kind=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 } GEOMETRY k=4304 n=1152 grid=[6, 16, 15] variant=23 mid=146488 low=164622 exchange=42248 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 16, axes: [AxisTiling { axis: FromEnd(1), partitions: 6, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 15, padding_groups: 1, block_size: 288, padding_multiple: 288, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(6) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: RowMajor, tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 90, padding_groups: 1, block_size: 8, padding_multiple: 8, shard_padding_multiple: 8, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 16, padding_groups: 1, block_size: 1, padding_multiple: 1, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(90) }] }, memory_class: Ipu21Standard }) GEOMETRY k=4304 n=1152 grid=[6, 16, 15] variant=3 mid=146440 low=164622 exchange=42248 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 16, axes: [AxisTiling { axis: FromEnd(1), partitions: 6, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(240) }, AxisTiling { axis: FromEnd(2), partitions: 15, padding_groups: 1, block_size: 288, padding_multiple: 288, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(16) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: RowMajor, tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 90, padding_groups: 1, block_size: 8, padding_multiple: 8, shard_padding_multiple: 8, padding: Zero, tile_stride: Some(16) }, AxisTiling { axis: FromEnd(2), partitions: 16, padding_groups: 1, block_size: 1, padding_multiple: 1, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard }) STAGE k=4304 grid=[6, 16, 15] end=4 low=6114 mid=Some((ProgramCycles { total: 5472, exchange: 5016 }, MemoryUsage { standard: 0, interleaved: 0 }, 1120)) kind=Copy { mapping: CoordinateMapping { offsets: [], view: None }, policy: DirectRetile, packing: Direct } STAGE k=4304 grid=[6, 16, 15] end=5 low=624 mid=Some((ProgramCycles { total: 5760, exchange: 5304 }, MemoryUsage { standard: 0, interleaved: 0 }, 1984)) kind=Copy { mapping: CoordinateMapping { offsets: [1, 0, 0, 0], view: None }, policy: DirectRetile, packing: Direct } STAGE k=4304 grid=[6, 16, 15] end=6 low=3582 mid=Some((ProgramCycles { total: 3582, exchange: 0 }, MemoryUsage { standard: 0, interleaved: 0 }, 0)) kind=ReductionSum { partials: 15 } STAGE k=4304 grid=[6, 16, 15] end=7 low=4421 mid=Some((ProgramCycles { total: 4448, exchange: 936 }, MemoryUsage { standard: 1344, interleaved: 0 }, 1804)) kind=Copy { mapping: CoordinateMapping { offsets: [], view: None }, policy: StageLogicalThenTransform, packing: Staged } GEOMETRY k=4304 n=1152 grid=[6, 16, 15] variant=2 mid=110684 low=131711 exchange=41736 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 16, axes: [AxisTiling { axis: FromEnd(1), partitions: 6, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(240) }, AxisTiling { axis: FromEnd(2), partitions: 15, padding_groups: 1, block_size: 288, padding_multiple: 288, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(16) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 90, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(16) }, AxisTiling { axis: FromEnd(2), partitions: 16, padding_groups: 1, block_size: 16, padding_multiple: 16, shard_padding_multiple: 16, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard }) GEOMETRY_BEST k=4304 grid=[6, 16, 15] [(131711, 2), (131711, 12), (131711, 22), (131711, 32), (131711, 42), (131711, 52), (163966, 4), (163966, 34), (164212, 24), (164212, 54), (164596, 14), (164596, 44), (164622, 3), (164622, 13), (164622, 23), (164622, 33), (164622, 43), (164622, 53), (268228, 21), (268228, 41), (268228, 51), (269956, 11), (269956, 31), (272260, 1), (272980, 10), (272980, 30), (277588, 0), (277588, 20), (277588, 40), (277588, 50)] GEOMETRY k=4304 n=1152 grid=[4, 12, 30] variant=20 mid=608832 low=632358 exchange=312840 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 4, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 30, padding_groups: 1, block_size: 144, padding_multiple: 144, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(4) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 48, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 4, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 12, padding_groups: 1, block_size: 16, padding_multiple: 16, shard_padding_multiple: 16, padding: Zero, tile_stride: Some(4) }] }, memory_class: Ipu21Standard }) GEOMETRY k=4304 n=1152 grid=[4, 12, 30] variant=50 mid=608832 low=632358 exchange=312840 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 4, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(360) }, AxisTiling { axis: FromEnd(2), partitions: 30, padding_groups: 1, block_size: 144, padding_multiple: 144, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 48, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 4, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(12) }, AxisTiling { axis: FromEnd(2), partitions: 12, padding_groups: 1, block_size: 16, padding_multiple: 16, shard_padding_multiple: 16, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard }) GEOMETRY k=4304 n=1152 grid=[4, 12, 30] variant=0 mid=608832 low=632358 exchange=312840 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 4, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(360) }, AxisTiling { axis: FromEnd(2), partitions: 30, padding_groups: 1, block_size: 144, padding_multiple: 144, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(12) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 48, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 4, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(12) }, AxisTiling { axis: FromEnd(2), partitions: 12, padding_groups: 1, block_size: 16, padding_multiple: 16, shard_padding_multiple: 16, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard }) GEOMETRY k=4304 n=1152 grid=[4, 12, 30] variant=10 mid=601920 low=623142 exchange=303624 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 4, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(12) }, AxisTiling { axis: FromEnd(2), partitions: 30, padding_groups: 1, block_size: 144, padding_multiple: 144, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(48) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 48, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 4, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(12) }, AxisTiling { axis: FromEnd(2), partitions: 12, padding_groups: 1, block_size: 16, padding_multiple: 16, shard_padding_multiple: 16, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard }) GEOMETRY k=4304 n=1152 grid=[4, 12, 30] variant=30 mid=601920 low=623142 exchange=303624 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 4, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 30, padding_groups: 1, block_size: 144, padding_multiple: 144, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(48) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 48, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 4, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 12, padding_groups: 1, block_size: 16, padding_multiple: 16, shard_padding_multiple: 16, padding: Zero, tile_stride: Some(4) }] }, memory_class: Ipu21Standard }) GEOMETRY k=4304 n=1152 grid=[4, 12, 30] variant=21 mid=593604 low=614478 exchange=299448 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 4, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 30, padding_groups: 1, block_size: 144, padding_multiple: 144, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(4) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: RowMajor, tiling: TensorTiling { tile_count: 48, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 4, padding_groups: 1, block_size: 8, padding_multiple: 8, shard_padding_multiple: 8, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 12, padding_groups: 1, block_size: 1, padding_multiple: 1, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(4) }] }, memory_class: Ipu21Standard }) GEOMETRY k=4304 n=1152 grid=[4, 12, 30] variant=40 mid=608832 low=632358 exchange=312840 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 4, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(30) }, AxisTiling { axis: FromEnd(2), partitions: 30, padding_groups: 1, block_size: 144, padding_multiple: 144, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 48, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 4, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 12, padding_groups: 1, block_size: 16, padding_multiple: 16, shard_padding_multiple: 16, padding: Zero, tile_stride: Some(4) }] }, memory_class: Ipu21Standard }) GEOMETRY k=4304 n=1152 grid=[4, 12, 30] variant=31 mid=588924 low=617070 exchange=294120 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 4, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 30, padding_groups: 1, block_size: 144, padding_multiple: 144, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(48) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: RowMajor, tiling: TensorTiling { tile_count: 48, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 4, padding_groups: 1, block_size: 8, padding_multiple: 8, shard_padding_multiple: 8, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 12, padding_groups: 1, block_size: 1, padding_multiple: 1, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(4) }] }, memory_class: Ipu21Standard }) GEOMETRY k=4304 n=1152 grid=[4, 12, 30] variant=51 mid=593604 low=614478 exchange=299448 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 4, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(360) }, AxisTiling { axis: FromEnd(2), partitions: 30, padding_groups: 1, block_size: 144, padding_multiple: 144, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: RowMajor, tiling: TensorTiling { tile_count: 48, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 4, padding_groups: 1, block_size: 8, padding_multiple: 8, shard_padding_multiple: 8, padding: Zero, tile_stride: Some(12) }, AxisTiling { axis: FromEnd(2), partitions: 12, padding_groups: 1, block_size: 1, padding_multiple: 1, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard }) GEOMETRY k=4304 n=1152 grid=[4, 12, 30] variant=1 mid=593100 low=622398 exchange=299448 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 4, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(360) }, AxisTiling { axis: FromEnd(2), partitions: 30, padding_groups: 1, block_size: 144, padding_multiple: 144, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(12) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: RowMajor, tiling: TensorTiling { tile_count: 48, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 4, padding_groups: 1, block_size: 8, padding_multiple: 8, shard_padding_multiple: 8, padding: Zero, tile_stride: Some(12) }, AxisTiling { axis: FromEnd(2), partitions: 12, padding_groups: 1, block_size: 1, padding_multiple: 1, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard }) GEOMETRY k=4304 n=1152 grid=[4, 12, 30] variant=11 mid=588924 low=617070 exchange=294120 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 4, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(12) }, AxisTiling { axis: FromEnd(2), partitions: 30, padding_groups: 1, block_size: 144, padding_multiple: 144, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(48) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: RowMajor, tiling: TensorTiling { tile_count: 48, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 4, padding_groups: 1, block_size: 8, padding_multiple: 8, shard_padding_multiple: 8, padding: Zero, tile_stride: Some(12) }, AxisTiling { axis: FromEnd(2), partitions: 12, padding_groups: 1, block_size: 1, padding_multiple: 1, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard }) GEOMETRY k=4304 n=1152 grid=[4, 12, 30] variant=41 mid=593604 low=614478 exchange=299448 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 4, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(30) }, AxisTiling { axis: FromEnd(2), partitions: 30, padding_groups: 1, block_size: 144, padding_multiple: 144, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: RowMajor, tiling: TensorTiling { tile_count: 48, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 4, padding_groups: 1, block_size: 8, padding_multiple: 8, shard_padding_multiple: 8, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 12, padding_groups: 1, block_size: 1, padding_multiple: 1, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(4) }] }, memory_class: Ipu21Standard }) GEOMETRY k=4304 n=1152 grid=[4, 12, 30] variant=22 mid=109643 low=120029 exchange=37064 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 4, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 30, padding_groups: 1, block_size: 144, padding_multiple: 144, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(4) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 120, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 12, padding_groups: 1, block_size: 16, padding_multiple: 16, shard_padding_multiple: 16, padding: Zero, tile_stride: Some(120) }] }, memory_class: Ipu21Standard }) GEOMETRY k=4304 n=1152 grid=[4, 12, 30] variant=3 mid=197590 low=214910 exchange=42272 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 4, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(360) }, AxisTiling { axis: FromEnd(2), partitions: 30, padding_groups: 1, block_size: 144, padding_multiple: 144, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(12) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: RowMajor, tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 120, padding_groups: 1, block_size: 8, padding_multiple: 8, shard_padding_multiple: 8, padding: Zero, tile_stride: Some(12) }, AxisTiling { axis: FromEnd(2), partitions: 12, padding_groups: 1, block_size: 1, padding_multiple: 1, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard }) GEOMETRY k=4304 n=1152 grid=[4, 12, 30] variant=4 mid=194724 low=210816 exchange=40536 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 4, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(360) }, AxisTiling { axis: FromEnd(2), partitions: 30, padding_groups: 1, block_size: 144, padding_multiple: 144, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(12) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: RowMajor, tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 4, padding_groups: 1, block_size: 8, padding_multiple: 8, shard_padding_multiple: 8, padding: Zero, tile_stride: Some(360) }, AxisTiling { axis: FromEnd(2), partitions: 360, padding_groups: 1, block_size: 1, padding_multiple: 1, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard }) GEOMETRY k=4304 n=1152 grid=[4, 12, 30] variant=24 mid=194796 low=211062 exchange=40104 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 4, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 30, padding_groups: 1, block_size: 144, padding_multiple: 144, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(4) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: RowMajor, tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 4, padding_groups: 1, block_size: 8, padding_multiple: 8, shard_padding_multiple: 8, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 360, padding_groups: 1, block_size: 1, padding_multiple: 1, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(4) }] }, memory_class: Ipu21Standard }) GEOMETRY k=4304 n=1152 grid=[4, 12, 30] variant=32 mid=109643 low=120029 exchange=37064 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 4, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 30, padding_groups: 1, block_size: 144, padding_multiple: 144, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(48) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 120, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 12, padding_groups: 1, block_size: 16, padding_multiple: 16, shard_padding_multiple: 16, padding: Zero, tile_stride: Some(120) }] }, memory_class: Ipu21Standard }) GEOMETRY k=4304 n=1152 grid=[4, 12, 30] variant=52 mid=109644 low=120029 exchange=37064 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 4, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(360) }, AxisTiling { axis: FromEnd(2), partitions: 30, padding_groups: 1, block_size: 144, padding_multiple: 144, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 120, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(12) }, AxisTiling { axis: FromEnd(2), partitions: 12, padding_groups: 1, block_size: 16, padding_multiple: 16, shard_padding_multiple: 16, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard }) GEOMETRY k=4304 n=1152 grid=[4, 12, 30] variant=12 mid=109644 low=120029 exchange=37064 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 4, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(12) }, AxisTiling { axis: FromEnd(2), partitions: 30, padding_groups: 1, block_size: 144, padding_multiple: 144, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(48) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 120, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(12) }, AxisTiling { axis: FromEnd(2), partitions: 12, padding_groups: 1, block_size: 16, padding_multiple: 16, shard_padding_multiple: 16, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard }) GEOMETRY k=4304 n=1152 grid=[4, 12, 30] variant=42 mid=109403 low=120029 exchange=37064 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 4, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(30) }, AxisTiling { axis: FromEnd(2), partitions: 30, padding_groups: 1, block_size: 144, padding_multiple: 144, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 120, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 12, padding_groups: 1, block_size: 16, padding_multiple: 16, shard_padding_multiple: 16, padding: Zero, tile_stride: Some(120) }] }, memory_class: Ipu21Standard }) STAGE k=4304 grid=[4, 12, 30] end=1 low=22722 mid=Some((ProgramCycles { total: 22488, exchange: 21336 }, MemoryUsage { standard: 0, interleaved: 0 }, 1300)) kind=Copy { mapping: CoordinateMapping { offsets: [], view: None }, policy: DirectRetile, packing: Direct } GEOMETRY k=4304 n=1152 grid=[4, 12, 30] variant=23 mid=197706 low=214910 exchange=42272 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 4, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 30, padding_groups: 1, block_size: 144, padding_multiple: 144, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(4) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: RowMajor, tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 120, padding_groups: 1, block_size: 8, padding_multiple: 8, shard_padding_multiple: 8, padding: Zero, tile_stride: Some(1) }, 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) }] }, memory_class: Ipu21Standard }) STAGE k=4304 grid=[4, 12, 30] end=2 low=27420 mid=Some((ProgramCycles { total: 8124, exchange: 5208 }, MemoryUsage { standard: 18432, interleaved: 0 }, 2596)) kind=Copy { mapping: CoordinateMapping { offsets: [], view: None }, policy: StageLogicalThenTransform, packing: Staged } GEOMETRY k=4304 n=1152 grid=[4, 12, 30] variant=54 mid=194796 low=211062 exchange=40104 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 4, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(360) }, AxisTiling { axis: FromEnd(2), partitions: 30, padding_groups: 1, block_size: 144, padding_multiple: 144, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: RowMajor, tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 4, padding_groups: 1, block_size: 8, padding_multiple: 8, shard_padding_multiple: 8, padding: Zero, tile_stride: Some(360) }, AxisTiling { axis: FromEnd(2), partitions: 360, padding_groups: 1, block_size: 1, padding_multiple: 1, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard }) GEOMETRY k=4304 n=1152 grid=[4, 12, 30] variant=14 mid=194724 low=210816 exchange=40536 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 4, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(12) }, AxisTiling { axis: FromEnd(2), partitions: 30, padding_groups: 1, block_size: 144, padding_multiple: 144, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(48) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: RowMajor, tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 4, padding_groups: 1, block_size: 8, padding_multiple: 8, shard_padding_multiple: 8, padding: Zero, tile_stride: Some(360) }, AxisTiling { axis: FromEnd(2), partitions: 360, padding_groups: 1, block_size: 1, padding_multiple: 1, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard }) GEOMETRY k=4304 n=1152 grid=[4, 12, 30] variant=33 mid=197682 low=214910 exchange=42272 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 4, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 30, padding_groups: 1, block_size: 144, padding_multiple: 144, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(48) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: RowMajor, tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 120, padding_groups: 1, block_size: 8, padding_multiple: 8, shard_padding_multiple: 8, padding: Zero, tile_stride: Some(1) }, 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) }] }, memory_class: Ipu21Standard }) STAGE k=4304 grid=[4, 12, 30] end=3 low=47526 mid=Some((ProgramCycles { total: 47526, exchange: 0 }, MemoryUsage { standard: 0, interleaved: 0 }, 0)) kind=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 } GEOMETRY k=4304 n=1152 grid=[4, 12, 30] variant=34 mid=194724 low=210816 exchange=40536 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 4, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 30, padding_groups: 1, block_size: 144, padding_multiple: 144, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(48) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: RowMajor, tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 4, padding_groups: 1, block_size: 8, padding_multiple: 8, shard_padding_multiple: 8, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 360, padding_groups: 1, block_size: 1, padding_multiple: 1, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(4) }] }, memory_class: Ipu21Standard }) GEOMETRY k=4304 n=1152 grid=[4, 12, 30] variant=43 mid=197590 low=214910 exchange=42272 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 4, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(30) }, AxisTiling { axis: FromEnd(2), partitions: 30, padding_groups: 1, block_size: 144, padding_multiple: 144, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: RowMajor, tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 120, padding_groups: 1, block_size: 8, padding_multiple: 8, shard_padding_multiple: 8, padding: Zero, tile_stride: Some(1) }, 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) }] }, memory_class: Ipu21Standard }) GEOMETRY k=4304 n=1152 grid=[4, 12, 30] variant=53 mid=197706 low=214910 exchange=42272 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 4, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(360) }, AxisTiling { axis: FromEnd(2), partitions: 30, padding_groups: 1, block_size: 144, padding_multiple: 144, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: RowMajor, tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 120, padding_groups: 1, block_size: 8, padding_multiple: 8, shard_padding_multiple: 8, padding: Zero, tile_stride: Some(12) }, AxisTiling { axis: FromEnd(2), partitions: 12, padding_groups: 1, block_size: 1, padding_multiple: 1, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard }) GEOMETRY k=4304 n=1152 grid=[4, 12, 30] variant=13 mid=197706 low=214910 exchange=42272 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 4, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(12) }, AxisTiling { axis: FromEnd(2), partitions: 30, padding_groups: 1, block_size: 144, padding_multiple: 144, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(48) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: RowMajor, tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 120, padding_groups: 1, block_size: 8, padding_multiple: 8, shard_padding_multiple: 8, padding: Zero, tile_stride: Some(12) }, AxisTiling { axis: FromEnd(2), partitions: 12, padding_groups: 1, block_size: 1, padding_multiple: 1, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard }) GEOMETRY k=4304 n=1152 grid=[4, 12, 30] variant=44 mid=194796 low=211494 exchange=40536 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 4, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(30) }, AxisTiling { axis: FromEnd(2), partitions: 30, padding_groups: 1, block_size: 144, padding_multiple: 144, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: RowMajor, tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 4, padding_groups: 1, block_size: 8, padding_multiple: 8, shard_padding_multiple: 8, padding: Zero, tile_stride: Some(1) }, AxisTiling { axis: FromEnd(2), partitions: 360, padding_groups: 1, block_size: 1, padding_multiple: 1, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(4) }] }, memory_class: Ipu21Standard }) STAGE k=4304 grid=[4, 12, 30] end=4 low=10896 mid=Some((ProgramCycles { total: 10024, exchange: 9576 }, MemoryUsage { standard: 0, interleaved: 0 }, 2416)) kind=Copy { mapping: CoordinateMapping { offsets: [], view: None }, policy: DirectRetile, packing: Direct } STAGE k=4304 grid=[4, 12, 30] end=5 low=624 mid=Some((ProgramCycles { total: 10328, exchange: 9880 }, MemoryUsage { standard: 0, interleaved: 0 }, 4144)) kind=Copy { mapping: CoordinateMapping { offsets: [1, 0, 0, 0], view: None }, policy: DirectRetile, packing: Direct } STAGE k=4304 grid=[4, 12, 30] end=6 low=6102 mid=Some((ProgramCycles { total: 6102, exchange: 0 }, MemoryUsage { standard: 0, interleaved: 0 }, 0)) kind=ReductionSum { partials: 30 } STAGE k=4304 grid=[4, 12, 30] end=7 low=4739 mid=Some((ProgramCycles { total: 4812, exchange: 921 }, MemoryUsage { standard: 1280, interleaved: 0 }, 2380)) kind=Copy { mapping: CoordinateMapping { offsets: [], view: None }, policy: StageLogicalThenTransform, packing: Staged } GEOMETRY k=4304 n=1152 grid=[4, 12, 30] variant=2 mid=109404 low=120029 exchange=37064 lhs=Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 12, axes: [AxisTiling { axis: FromEnd(1), partitions: 4, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(360) }, AxisTiling { axis: FromEnd(2), partitions: 30, padding_groups: 1, block_size: 144, padding_multiple: 144, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(12) }] }, memory_class: Ipu21Standard } reduction=Some(Layout { order: Amp(TransposedLeft), tiling: TensorTiling { tile_count: 1440, replicas: 1, axes: [AxisTiling { axis: FromEnd(1), partitions: 120, padding_groups: 1, block_size: 2, padding_multiple: 2, shard_padding_multiple: 1, padding: Zero, tile_stride: Some(12) }, AxisTiling { axis: FromEnd(2), partitions: 12, padding_groups: 1, block_size: 16, padding_multiple: 16, shard_padding_multiple: 16, padding: Zero, tile_stride: Some(1) }] }, memory_class: Ipu21Standard }) GEOMETRY_BEST k=4304 grid=[4, 12, 30] [(120029, 2), (120029, 12), (120029, 22), (120029, 32), (120029, 42), (120029, 52), (210816, 4), (210816, 14), (210816, 34), (211062, 24), (211062, 54), (211494, 44), (214910, 3), (214910, 13), (214910, 23), (214910, 33), (214910, 43), (214910, 53), (614478, 21), (614478, 41), (614478, 51), (617070, 11), (617070, 31), (622398, 1), (623142, 10), (623142, 30), (632358, 0), (632358, 20), (632358, 40), (632358, 50)] test planner::gemm::tests::compare_sdk_geometries ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 314 filtered out; finished in 29.07s