From 718542920a4af75951a48efaa48191d606303311 Mon Sep 17 00:00:00 2001 From: Tapasvi Patel <133996364+tapspatel@users.noreply.github.com> Date: Tue, 6 Aug 2024 11:08:30 -0500 Subject: [PATCH] #163: Added strict ttrt runtime checking for ttnn binary and added default load system desc pass in ttir to ttnn pipeline (#302) --- docs/src/ttrt.md | 5 ++++- lib/Dialect/TTNN/Pipelines/TTNNPipelines.cpp | 1 + runtime/tools/python/ttrt/common/api.py | 5 ++++- test/ttmlir/Dialect/TTNN/multiple_add_with_loc.mlir | 2 +- .../Dialect/TTNN/multiple_add_with_loc_grid_override.mlir | 2 +- test/ttmlir/Dialect/TTNN/ttir_to_ttnn_pipeline.mlir | 2 +- .../Dialect/TTNN/ttir_to_ttnn_pipeline_custom_opt.mlir | 2 +- test/ttmlir/Silicon/TTNN/multiple_add_with_loc.mlir | 2 +- .../Silicon/TTNN/multiple_add_with_loc_grid_override.mlir | 2 +- test/ttmlir/Silicon/TTNN/ttir_to_ttnn_pipeline.mlir | 2 +- .../Silicon/TTNN/ttir_to_ttnn_pipeline_custom_opt.mlir | 2 +- 11 files changed, 17 insertions(+), 10 deletions(-) diff --git a/docs/src/ttrt.md b/docs/src/ttrt.md index 4aee7e69bf..3f13e0471c 100644 --- a/docs/src/ttrt.md +++ b/docs/src/ttrt.md @@ -66,7 +66,7 @@ ttrt query --clean-artifacts ### perf Note: It's required to be on a system with silicon and to have a runtime enabled -build `-DTTMLIR_ENABLE_RUNTIME=ON`. Also need perf enabled build `-DTT_RUNTIME_ENABLE_PERF_TRACE=ON`. +build `-DTTMLIR_ENABLE_RUNTIME=ON`. Also need perf enabled build `-DTT_RUNTIME_ENABLE_PERF_TRACE=ON` with `export ENABLE_TRACY=1`. ```bash ttrt perf --help @@ -89,3 +89,6 @@ import ttrt.binary fbb = ttrt.binary.load_from_path("out.ttnn") d = ttrt.binary.as_dict(fbb) ``` + +## bonus +artifacts are saved in ttrt-artifacts directory if the option `--save-artifacts` is provided diff --git a/lib/Dialect/TTNN/Pipelines/TTNNPipelines.cpp b/lib/Dialect/TTNN/Pipelines/TTNNPipelines.cpp index b3740fcb64..2aec4092ff 100644 --- a/lib/Dialect/TTNN/Pipelines/TTNNPipelines.cpp +++ b/lib/Dialect/TTNN/Pipelines/TTNNPipelines.cpp @@ -15,6 +15,7 @@ namespace mlir::tt::ttnn { void createTTIRToTTNNBackendPipeline( OpPassManager &pm, const TTIRToTTNNBackendPipelineOptions &options) { + pm.addPass(mlir::tt::ttir::createTTIRLoadSystemDesc()); pm.addPass(mlir::tt::ttir::createTTIRImplicitDevice()); pm.addPass(mlir::tt::ttir::createTTIRLayout()); diff --git a/runtime/tools/python/ttrt/common/api.py b/runtime/tools/python/ttrt/common/api.py index 8f2de37384..50aded72c3 100644 --- a/runtime/tools/python/ttrt/common/api.py +++ b/runtime/tools/python/ttrt/common/api.py @@ -116,11 +116,15 @@ def run(args): # constraint checking print("executing constraint for all provided flatbuffers") + system_desc, device_ids = ttrt.runtime.get_current_system_desc() for binary in binaries: check_file_exists(binary) fbb = ttrt.binary.load_binary_from_path(binary) check_version(fbb.version) fbb_dict = ttrt.binary.as_dict(fbb) + assert ( + fbb_dict["system_desc"] == system_desc_as_dict(system_desc)["system_desc"] + ), f"system descriptor for binary and system mismatch!" fbb_list.append((os.path.splitext(os.path.basename(binary))[0], fbb, fbb_dict)) program_index = arg_program_index assert program_index <= len( @@ -129,7 +133,6 @@ def run(args): # execution print("executing action for all provided flatbuffers") - system_desc, device_ids = ttrt.runtime.get_current_system_desc() device = ttrt.runtime.open_device(device_ids) atexit.register(lambda: ttrt.runtime.close_device(device)) diff --git a/test/ttmlir/Dialect/TTNN/multiple_add_with_loc.mlir b/test/ttmlir/Dialect/TTNN/multiple_add_with_loc.mlir index 1ea34bc9f0..ce733171c6 100644 --- a/test/ttmlir/Dialect/TTNN/multiple_add_with_loc.mlir +++ b/test/ttmlir/Dialect/TTNN/multiple_add_with_loc.mlir @@ -1,4 +1,4 @@ -// RUN: ttmlir-opt --ttir-load-system-desc --ttir-to-ttnn-backend-pipeline %s | FileCheck %s +// RUN: ttmlir-opt --ttir-to-ttnn-backend-pipeline %s | FileCheck %s #any_device = #tt.operand_constraint #loc = loc("test_ops.py:17_0_0":0:0) module @pybuda_graph attributes {} { diff --git a/test/ttmlir/Dialect/TTNN/multiple_add_with_loc_grid_override.mlir b/test/ttmlir/Dialect/TTNN/multiple_add_with_loc_grid_override.mlir index 9be3ecd591..8e068bcdba 100644 --- a/test/ttmlir/Dialect/TTNN/multiple_add_with_loc_grid_override.mlir +++ b/test/ttmlir/Dialect/TTNN/multiple_add_with_loc_grid_override.mlir @@ -1,4 +1,4 @@ -// RUN: ttmlir-opt --ttir-load-system-desc --ttir-to-ttnn-backend-pipeline="override-grid-sizes=add_1_0=4x4,add_2_0=4x4" %s | FileCheck %s +// RUN: ttmlir-opt --ttir-to-ttnn-backend-pipeline="override-grid-sizes=add_1_0=4x4,add_2_0=4x4" %s | FileCheck %s #any_device = #tt.operand_constraint #loc = loc("test_ops.py:17_0_0":0:0) module @pybuda_graph attributes {} { diff --git a/test/ttmlir/Dialect/TTNN/ttir_to_ttnn_pipeline.mlir b/test/ttmlir/Dialect/TTNN/ttir_to_ttnn_pipeline.mlir index 5f844ae462..30690844d4 100644 --- a/test/ttmlir/Dialect/TTNN/ttir_to_ttnn_pipeline.mlir +++ b/test/ttmlir/Dialect/TTNN/ttir_to_ttnn_pipeline.mlir @@ -1,4 +1,4 @@ -// RUN: ttmlir-opt --ttir-load-system-desc --ttir-to-ttnn-backend-pipeline %s | FileCheck %s +// RUN: ttmlir-opt --ttir-to-ttnn-backend-pipeline %s | FileCheck %s #any_device = #tt.operand_constraint module attributes {} { func.func @forward(%arg0: tensor<64x128xf32>, %arg1: tensor<64x128xf32>) -> tensor<64x128xf32> { diff --git a/test/ttmlir/Dialect/TTNN/ttir_to_ttnn_pipeline_custom_opt.mlir b/test/ttmlir/Dialect/TTNN/ttir_to_ttnn_pipeline_custom_opt.mlir index 16edd8a65b..880093c20c 100644 --- a/test/ttmlir/Dialect/TTNN/ttir_to_ttnn_pipeline_custom_opt.mlir +++ b/test/ttmlir/Dialect/TTNN/ttir_to_ttnn_pipeline_custom_opt.mlir @@ -1,4 +1,4 @@ -// RUN: ttmlir-opt --ttir-load-system-desc --ttir-to-ttnn-backend-pipeline="enable-grid-set=false" %s | FileCheck %s +// RUN: ttmlir-opt --ttir-to-ttnn-backend-pipeline="enable-grid-set=false" %s | FileCheck %s #any_device = #tt.operand_constraint module attributes {} { func.func @forward(%arg0: tensor<64x128xf32>, %arg1: tensor<64x128xf32>) -> tensor<64x128xf32> { diff --git a/test/ttmlir/Silicon/TTNN/multiple_add_with_loc.mlir b/test/ttmlir/Silicon/TTNN/multiple_add_with_loc.mlir index a20672bfe9..7b0e4ed217 100644 --- a/test/ttmlir/Silicon/TTNN/multiple_add_with_loc.mlir +++ b/test/ttmlir/Silicon/TTNN/multiple_add_with_loc.mlir @@ -1,4 +1,4 @@ -// RUN: ttmlir-opt --ttir-load-system-desc --ttir-to-ttnn-backend-pipeline %s > %t.mlir +// RUN: ttmlir-opt --ttir-to-ttnn-backend-pipeline %s > %t.mlir // RUN: FileCheck %s --input-file=%t.mlir // RUN: ttmlir-translate --ttnn-to-flatbuffer %t.mlir > %t.ttnn diff --git a/test/ttmlir/Silicon/TTNN/multiple_add_with_loc_grid_override.mlir b/test/ttmlir/Silicon/TTNN/multiple_add_with_loc_grid_override.mlir index 8f22914f45..26e3d2356a 100644 --- a/test/ttmlir/Silicon/TTNN/multiple_add_with_loc_grid_override.mlir +++ b/test/ttmlir/Silicon/TTNN/multiple_add_with_loc_grid_override.mlir @@ -1,4 +1,4 @@ -// RUN: ttmlir-opt --ttir-load-system-desc --ttir-to-ttnn-backend-pipeline="override-grid-sizes=add_1_0=4x4,add_2_0=4x4" %s > %t.mlir +// RUN: ttmlir-opt --ttir-to-ttnn-backend-pipeline="override-grid-sizes=add_1_0=4x4,add_2_0=4x4" %s > %t.mlir // RUN: FileCheck %s --input-file=%t.mlir // RUN: ttmlir-translate --ttnn-to-flatbuffer %t.mlir > %t.ttnn diff --git a/test/ttmlir/Silicon/TTNN/ttir_to_ttnn_pipeline.mlir b/test/ttmlir/Silicon/TTNN/ttir_to_ttnn_pipeline.mlir index 164c23a741..12dad419f1 100644 --- a/test/ttmlir/Silicon/TTNN/ttir_to_ttnn_pipeline.mlir +++ b/test/ttmlir/Silicon/TTNN/ttir_to_ttnn_pipeline.mlir @@ -1,4 +1,4 @@ -// RUN: ttmlir-opt --ttir-load-system-desc --ttir-to-ttnn-backend-pipeline %s > %t.mlir +// RUN: ttmlir-opt --ttir-to-ttnn-backend-pipeline %s > %t.mlir // RUN: FileCheck %s --input-file=%t.mlir // RUN: ttmlir-translate --ttnn-to-flatbuffer %t.mlir > %t.ttnn diff --git a/test/ttmlir/Silicon/TTNN/ttir_to_ttnn_pipeline_custom_opt.mlir b/test/ttmlir/Silicon/TTNN/ttir_to_ttnn_pipeline_custom_opt.mlir index 8f82fd8d83..e61b101217 100644 --- a/test/ttmlir/Silicon/TTNN/ttir_to_ttnn_pipeline_custom_opt.mlir +++ b/test/ttmlir/Silicon/TTNN/ttir_to_ttnn_pipeline_custom_opt.mlir @@ -1,4 +1,4 @@ -// RUN: ttmlir-opt --ttir-load-system-desc --ttir-to-ttnn-backend-pipeline="enable-grid-set=false" %s > %t.mlir +// RUN: ttmlir-opt --ttir-to-ttnn-backend-pipeline="enable-grid-set=false" %s > %t.mlir // RUN: FileCheck %s --input-file=%t.mlir // RUN: ttmlir-translate --ttnn-to-flatbuffer %t.mlir > %t.ttnn