Skip to content

TTNNOpsBackendInterface definition #1432

TTNNOpsBackendInterface definition

TTNNOpsBackendInterface definition #1432

GitHub Actions / macos-latest MLIR Tests failed Nov 1, 2024 in 0s

199 tests run, 150 passed, 46 skipped, 3 failed.

Annotations

Check failure on line 7 in ttmlir/Dialect/TTNN

See this annotation in the file changed.

@github-actions github-actions / macos-latest MLIR Tests

ttmlir/Dialect/TTNN.mnist_sharding.mlir

Exit Code: 1
Raw output
Exit Code: 1

Command Output (stderr):
--
RUN: at line 1: /Users/runner/work/tt-mlir/tt-mlir/build/bin/ttmlir-opt --ttir-to-ttnn-backend-pipeline="enable-optimizer=true memory-layout-analysis-enabled=true" /Users/runner/work/tt-mlir/tt-mlir/test/ttmlir/Dialect/TTNN/mnist_sharding.mlir | /opt/ttmlir-toolchain/bin/FileCheck /Users/runner/work/tt-mlir/tt-mlir/test/ttmlir/Dialect/TTNN/mnist_sharding.mlir
+ /Users/runner/work/tt-mlir/tt-mlir/build/bin/ttmlir-opt '--ttir-to-ttnn-backend-pipeline=enable-optimizer=true memory-layout-analysis-enabled=true' /Users/runner/work/tt-mlir/tt-mlir/test/ttmlir/Dialect/TTNN/mnist_sharding.mlir
+ /opt/ttmlir-toolchain/bin/FileCheck /Users/runner/work/tt-mlir/tt-mlir/test/ttmlir/Dialect/TTNN/mnist_sharding.mlir
/Users/runner/work/tt-mlir/tt-mlir/test/ttmlir/Dialect/TTNN/mnist_sharding.mlir:7:12: error: CHECK: expected string not found in input
 // CHECK: #[[LAYOUT_11:.*]] = #tt.layout<(d0, d1) -> (d0, d1), undef, <1x1>, memref<1x10xf32, #l1_>, block_sharded>
           ^
<stdin>:13:97: note: scanning from here
#layout7 = #tt.layout<(d0, d1) -> (d0, d1), undef, <1x8>, memref<1x32xf32, #l1_>, block_sharded>
                                                                                                ^
<stdin>:15:4: note: possible intended match here
#layout9 = #tt.layout<(d0, d1) -> (d0, d1), undef, <1x1>, memref<1x10xf32, #dram>, interleaved>
   ^

Input file: <stdin>
Check file: /Users/runner/work/tt-mlir/tt-mlir/test/ttmlir/Dialect/TTNN/mnist_sharding.mlir

-dump-input=help explains the following input dump.

Input was:
<<<<<<
           .
           .
           .
           8: #layout2 = #tt.layout<(d0, d1) -> (d0, d1), undef, <1x1>, memref<256x10xf32, #system>> 
           9: #layout3 = #tt.layout<(d0, d1) -> (d0, d1), undef, <1x1>, memref<1x256xf32, #system>> 
          10: #layout4 = #tt.layout<(d0, d1) -> (d0, d1), undef, <1x1>, memref<784x256xf32, #system>> 
          11: #layout5 = #tt.layout<(d0, d1) -> (d0, d1), undef, <1x1>, memref<1x1x!tt.tile<32x32, f32>, #dram>, interleaved> 
          12: #layout6 = #tt.layout<(d0, d1) -> (d0, d1), undef, <1x1>, memref<1x256xf32, #dram>, interleaved> 
          13: #layout7 = #tt.layout<(d0, d1) -> (d0, d1), undef, <1x8>, memref<1x32xf32, #l1_>, block_sharded> 
check:7'0                                                                                                     X error: no match found
          14: #layout8 = #tt.layout<(d0, d1) -> (d0, d1), undef, <8x8>, memref<1x32xf32, #dram>, interleaved> 
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          15: #layout9 = #tt.layout<(d0, d1) -> (d0, d1), undef, <1x1>, memref<1x10xf32, #dram>, interleaved> 
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
check:7'1        ?                                                                                             possible intended match
          16: #layout10 = #tt.layout<(d0, d1) -> (d0, d1), undef, <8x8>, memref<1x2xf32, #dram>, interleaved> 
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          17: module @"tt-forge-graph" attributes {tt.device = #device, tt.system_desc = #system_desc} { 
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          18:  func.func @main(%arg0: tensor<1x784xf32, #layout>, %arg1: tensor<1x10xf32, #layout1>, %arg2: tensor<256x10xf32, #layout2>, %arg3: tensor<1x256xf32, #layout3>, %arg4: tensor<784x256xf32, #layout4>) -> tensor<1x10xf32, #layout1> { 
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          19:  %0 = "ttnn.get_device"() <{mesh_shape = #ttnn<mesh_shape 1x1>}> : () -> !tt.device<#device> 
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          20:  %1 = "ttnn.to_layout"(%arg0) <{layout = #ttnn.layout<tile>}> : (tensor<1x784xf32, #layout>) -> tensor<1x784xf32, #layout5> 
check:7'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           .
           .
           .
>>>>>>

--

Check failure on line 10 in ttmlir/Dialect/TTNN

See this annotation in the file changed.

@github-actions github-actions / macos-latest MLIR Tests

ttmlir/Dialect/TTNN.sharding_matmul_override_0.mlir

Exit Code: 1
Raw output
Exit Code: 1

Command Output (stderr):
--
RUN: at line 1: /Users/runner/work/tt-mlir/tt-mlir/build/bin/ttmlir-opt --ttir-to-ttnn-backend-pipeline="enable-optimizer=true memory-layout-analysis-enabled=true max-legal-layouts=0" /Users/runner/work/tt-mlir/tt-mlir/test/ttmlir/Dialect/TTNN/sharding_matmul_override_0.mlir | /opt/ttmlir-toolchain/bin/FileCheck /Users/runner/work/tt-mlir/tt-mlir/test/ttmlir/Dialect/TTNN/sharding_matmul_override_0.mlir
+ /Users/runner/work/tt-mlir/tt-mlir/build/bin/ttmlir-opt '--ttir-to-ttnn-backend-pipeline=enable-optimizer=true memory-layout-analysis-enabled=true max-legal-layouts=0' /Users/runner/work/tt-mlir/tt-mlir/test/ttmlir/Dialect/TTNN/sharding_matmul_override_0.mlir
+ /opt/ttmlir-toolchain/bin/FileCheck /Users/runner/work/tt-mlir/tt-mlir/test/ttmlir/Dialect/TTNN/sharding_matmul_override_0.mlir
/Users/runner/work/tt-mlir/tt-mlir/test/ttmlir/Dialect/TTNN/sharding_matmul_override_0.mlir:10:12: error: CHECK: expected string not found in input
 // CHECK: {{.*}} = "ttnn.matmul"{{.*}} -> tensor<64x64xbf16, #[[LAYOUT_7]],>
           ^
<stdin>:27:159: note: scanning from here
 %8 = "ttnn.matmul"(%6, %2, %7) : (tensor<64x128xbf16, #layout6>, tensor<128x96xbf16, #layout4>, tensor<64x96xbf16, #layout7>) -> tensor<64x96xbf16, #layout7>
                                                                                                                                                              ^
<stdin>:27:159: note: with "LAYOUT_7" equal to "layout7"
 %8 = "ttnn.matmul"(%6, %2, %7) : (tensor<64x128xbf16, #layout6>, tensor<128x96xbf16, #layout4>, tensor<64x96xbf16, #layout7>) -> tensor<64x96xbf16, #layout7>
                                                                                                                                                              ^
<stdin>:31:105: note: possible intended match here
 %10 = "ttnn.matmul"(%8, %4, %9) : (tensor<64x96xbf16, #layout7>, tensor<96x64xbf16, #layout5>, tensor<64x64xbf16, #layout8>) -> tensor<64x64xbf16, #layout8>
                                                                                                        ^

Input file: <stdin>
Check file: /Users/runner/work/tt-mlir/tt-mlir/test/ttmlir/Dialect/TTNN/sharding_matmul_override_0.mlir

-dump-input=help explains the following input dump.

Input was:
<<<<<<
            .
            .
            .
           22:  "ttnn.dealloc"(%3) : (tensor<96x64xbf16, #layout5>) -> () 
           23:  %5 = "ttnn.to_device"(%arg0, %0) <{memory_config = #ttnn.memory_config<<interleaved>, <dram>, <<2x4>>>}> : (tensor<64x128xbf16, #layout>, !tt.device<#device>) -> tensor<64x128xbf16, #layout6> 
           24:  %6 = "ttnn.to_layout"(%5) <{layout = #ttnn.layout<tile>}> : (tensor<64x128xbf16, #layout6>) -> tensor<64x128xbf16, #layout6> 
           25:  "ttnn.dealloc"(%5) : (tensor<64x128xbf16, #layout6>) -> () 
           26:  %7 = "ttnn.empty"(%0) <{dtype = #tt.supportedDataTypes<bf16>, layout = #ttnn.layout<tile>, memory_config = #ttnn.memory_config<<interleaved>, <dram>, <<2x3>>>, shape = #ttnn.shape<64x96>}> : (!tt.device<#device>) -> tensor<64x96xbf16, #layout7> 
           27:  %8 = "ttnn.matmul"(%6, %2, %7) : (tensor<64x128xbf16, #layout6>, tensor<128x96xbf16, #layout4>, tensor<64x96xbf16, #layout7>) -> tensor<64x96xbf16, #layout7> 
check:10'0                                                                                                                                                                   X error: no match found
check:10'1                                                                                                                                                                     with "LAYOUT_7" equal to "layout7"
           28:  "ttnn.dealloc"(%6) : (tensor<64x128xbf16, #layout6>) -> () 
check:10'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           29:  "ttnn.dealloc"(%2) : (tensor<128x96xbf16, #layout4>) -> () 
check:10'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           30:  %9 = "ttnn.empty"(%0) <{dtype = #tt.supportedDataTypes<bf16>, layout = #ttnn.layout<tile>, memory_config = #ttnn.memory_config<<interleaved>, <dram>, <<2x2>>>, shape = #ttnn.shape<64x64>}> : (!tt.device<#device>) -> tensor<64x64xbf16, #layout8> 
check:10'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           31:  %10 = "ttnn.matmul"(%8, %4, %9) : (tensor<64x96xbf16, #layout7>, tensor<96x64xbf16, #layout5>, tensor<64x64xbf16, #layout8>) -> tensor<64x64xbf16, #layout8> 
check:10'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
check:10'2                                                                                                             ?                                                      possible intended match
           32:  "ttnn.dealloc"(%7) : (tensor<64x96xbf16, #layout7>) -> () 
check:10'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           33:  "ttnn.dealloc"(%4) : (tensor<96x64xbf16, #layout5>) -> () 
check:10'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           34:  %11 = "ttnn.from_device"(%10) : (tensor<64x64xbf16, #layout8>) -> tensor<64x64xbf16, #layout3> 
check:10'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           35:  "ttnn.dealloc"(%9) : (tensor<64x64xbf16, #layout8>) -> () 
check:10'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           36:  %12 = "ttnn.to_layout"(%11) <{layout = #ttnn.layout<row_major>}> : (tensor<64x64xbf16, #layout3>) -> tensor<64x64xbf16, #layout3> 
check:10'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            .
            .
            .
>>>>>>

--

Check failure on line 5 in ttmlir/Dialect/TTNN

See this annotation in the file changed.

@github-actions github-actions / macos-latest MLIR Tests

ttmlir/Dialect/TTNN.sharding_matmul_override_32.mlir

Exit Code: 1
Raw output
Exit Code: 1

Command Output (stderr):
--
RUN: at line 1: /Users/runner/work/tt-mlir/tt-mlir/build/bin/ttmlir-opt --ttir-to-ttnn-backend-pipeline="enable-optimizer=true memory-layout-analysis-enabled=true max-legal-layouts=32" /Users/runner/work/tt-mlir/tt-mlir/test/ttmlir/Dialect/TTNN/sharding_matmul_override_32.mlir | /opt/ttmlir-toolchain/bin/FileCheck /Users/runner/work/tt-mlir/tt-mlir/test/ttmlir/Dialect/TTNN/sharding_matmul_override_32.mlir
+ /Users/runner/work/tt-mlir/tt-mlir/build/bin/ttmlir-opt '--ttir-to-ttnn-backend-pipeline=enable-optimizer=true memory-layout-analysis-enabled=true max-legal-layouts=32' /Users/runner/work/tt-mlir/tt-mlir/test/ttmlir/Dialect/TTNN/sharding_matmul_override_32.mlir
+ /opt/ttmlir-toolchain/bin/FileCheck /Users/runner/work/tt-mlir/tt-mlir/test/ttmlir/Dialect/TTNN/sharding_matmul_override_32.mlir
/Users/runner/work/tt-mlir/tt-mlir/test/ttmlir/Dialect/TTNN/sharding_matmul_override_32.mlir:5:12: error: CHECK: expected string not found in input
 // CHECK: #[[L1_:.*]] = #tt.memory_space<l1>
           ^
<stdin>:1:1: note: scanning from here
#device = #tt.device<workerGrid = #tt.grid<8x8, (d0, d1) -> (0, d0, d1)>, l1Map = (d0, d1)[s0, s1] -> (0, d0 floordiv s0, d1 floordiv s1, (d0 mod s0) * s1 + d1 mod s1), dramMap = (d0, d1)[s0, s1] -> (0, 0, ((((d0 floordiv s0) * 8 + d1 floordiv s1) * (s1 * s0) + (d0 mod s0) * s1 + d1 mod s1) floordiv 8192) mod 12, (((d0 floordiv s0) * 8 + d1 floordiv s1) * (s1 * s0) + (d0 mod s0) * s1 + d1 mod s1) floordiv 98304 + (((d0 floordiv s0) * 8 + d1 floordiv s1) * (s1 * s0) + (d0 mod s0) * s1 + d1 mod s1) mod 8192), meshShape = , chipIds = [0]>
^
<stdin>:2:1: note: possible intended match here
#dram = #tt.memory_space<dram>
^

Input file: <stdin>
Check file: /Users/runner/work/tt-mlir/tt-mlir/test/ttmlir/Dialect/TTNN/sharding_matmul_override_32.mlir

-dump-input=help explains the following input dump.

Input was:
<<<<<<
           1: #device = #tt.device<workerGrid = #tt.grid<8x8, (d0, d1) -> (0, d0, d1)>, l1Map = (d0, d1)[s0, s1] -> (0, d0 floordiv s0, d1 floordiv s1, (d0 mod s0) * s1 + d1 mod s1), dramMap = (d0, d1)[s0, s1] -> (0, 0, ((((d0 floordiv s0) * 8 + d1 floordiv s1) * (s1 * s0) + (d0 mod s0) * s1 + d1 mod s1) floordiv 8192) mod 12, (((d0 floordiv s0) * 8 + d1 floordiv s1) * (s1 * s0) + (d0 mod s0) * s1 + d1 mod s1) floordiv 98304 + (((d0 floordiv s0) * 8 + d1 floordiv s1) * (s1 * s0) + (d0 mod s0) * s1 + d1 mod s1) mod 8192), meshShape = , chipIds = [0]> 
check:5'0     X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
           2: #dram = #tt.memory_space<dram> 
check:5'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
check:5'1     ?                               possible intended match
           3: #system = #tt.memory_space<system> 
check:5'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           4: #system_desc = #tt.system_desc<[{arch = <wormhole_b0>, grid = 8x8, l1_size = 1499136, num_dram_channels = 12, dram_channel_size = 1073741824, noc_l1_address_align_bytes = 16, pcie_address_align_bytes = 32, noc_dram_address_align_bytes = 32, l1_unreserved_base = 1024, erisc_l1_unreserved_base = 1024, dram_unreserved_base = 1024, dram_unreserved_end = 1073741824, physical_cores = {worker = [ 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 1x0, 1x1, 1x2, 1x3, 1x4, 1x5, 1x6, 1x7, 2x0, 2x1, 2x2, 2x3, 2x4, 2x5, 2x6, 2x7, 3x0, 3x1, 3x2, 3x3, 3x4, 3x5, 3x6, 3x7, 4x0, 4x1, 4x2, 4x3, 4x4, 4x5, 4x6, 4x7, 5x0, 5x1, 5x2, 5x3, 5x4, 5x5, 5x6, 5x7, 6x0, 6x1, 6x2, 6x3, 6x4, 6x5, 6x6, 6x7, 7x0, 7x1, 7x2, 7x3, 7x4, 7x5, 7x6, 7x7] dram = [ 8x0, 9x0, 10x0, 8x1, 9x1, 10x1, 8x2, 9x2, 10x2, 8x3, 9x3, 10x3]}, supported_data_types = [<f32>, <f16>, <bf16>, <bfp_f8>, <bfp_bf8>, <bfp_f4>, <bfp_bf4>, <bfp_f2>, <bfp_bf2>, <u32>, <u16>, <u8>], supported_tile_sizes = [ 4x16, 16x16, 32x16, 4x32, 16x32, 32x32], num_cbs = 32}], [0], [3 : i32], [ 0x0x0x0]> 
check:5'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           5: #layout = #tt.layout<(d0, d1) -> (d0, d1), undef, <1x1>, memref<64x128xbf16, #system>> 
check:5'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           6: #layout1 = #tt.layout<(d0, d1) -> (d0, d1), undef, <1x1>, memref<128x96xbf16, #system>> 
check:5'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           7: #layout2 = #tt.layout<(d0, d1) -> (d0, d1), undef, <1x1>, memref<96x64xbf16, #system>> 
check:5'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           .
           .
           .
>>>>>>

--