From d2bc893fdc78f2d6cdc7b1c0b65efe275cfc3621 Mon Sep 17 00:00:00 2001 From: anurag Date: Wed, 29 Jul 2026 09:55:58 -0600 Subject: [PATCH 1/4] add subdevices Signed-off-by: anurag --- mldebuglib.py | 4 +- src/mldebug/arch/__init__.py | 26 ++++- src/mldebug/arch/aie2p_defs.py | 16 ++- src/mldebug/arch/aie2ps_defs.py | 16 ++- src/mldebug/arch/device_configs.py | 146 ++++++++++++++++++++++++++ src/mldebug/arch/loader.py | 25 +++-- src/mldebug/backend/core_dump_impl.py | 52 ++------- src/mldebug/backend/factory.py | 9 +- src/mldebug/client_debug.py | 1 + src/mldebug/input_parser.py | 113 +++++++++++++++----- src/mldebug/mldebug_cli.py | 11 +- 11 files changed, 320 insertions(+), 99 deletions(-) create mode 100644 src/mldebug/arch/device_configs.py diff --git a/mldebuglib.py b/mldebuglib.py index b7374e8..23e90d5 100644 --- a/mldebuglib.py +++ b/mldebuglib.py @@ -10,7 +10,7 @@ from types import SimpleNamespace from mldebug.aie_status import AIEStatus as _AIES -from mldebug.arch import AIE_DEV_PHX, AIE_DEV_STX +from mldebug.arch import AIE_DEV_STX from mldebug.arch import load_aie_arch as _load_aie from mldebug.aie_overlay import Overlay as _OL from mldebug.input_parser import RunFlags as _RunFlags @@ -64,7 +64,7 @@ def __init__(self, device=AIE_DEV_STX, overlay="4x4", ctxid=None, pid=None, back raise ValueError(f"Unsupported backend '{backend}'. Use BACKEND_XRT or BACKEND_TEST.") self.backend = backend self.aie_iface = _load_aie(device) - self.aie_iface.init(device == AIE_DEV_PHX) + self.aie_iface.init(device) if backend == BACKEND_XRT: args = SimpleNamespace(device=device, aie_iface=self.aie_iface, l3=False) diff --git a/src/mldebug/arch/__init__.py b/src/mldebug/arch/__init__.py index 5fde850..a741d10 100644 --- a/src/mldebug/arch/__init__.py +++ b/src/mldebug/arch/__init__.py @@ -5,4 +5,28 @@ Top level AIE Arch Module """ -from .loader import load_aie_arch, AIE_DEV_PHX, AIE_DEV_STX, AIE_DEV_TEL, AIE_DEV_NPU3 +from .device_configs import ( + AIE_DEV_NPU3, + AIE_DEV_PHX, + AIE_DEV_STX, + AIE_DEV_T10, + AIE_DEV_T50, + AIE_DEV_TEL, + DEVICE_CONFIGS, + get_base_device, + resolve_variant, +) +from .loader import load_aie_arch + +__all__ = [ + "AIE_DEV_NPU3", + "AIE_DEV_PHX", + "AIE_DEV_STX", + "AIE_DEV_T10", + "AIE_DEV_T50", + "AIE_DEV_TEL", + "DEVICE_CONFIGS", + "get_base_device", + "load_aie_arch", + "resolve_variant", +] diff --git a/src/mldebug/arch/aie2p_defs.py b/src/mldebug/arch/aie2p_defs.py index b5e860a..437c3f0 100644 --- a/src/mldebug/arch/aie2p_defs.py +++ b/src/mldebug/arch/aie2p_defs.py @@ -7,6 +7,8 @@ import json +from .device_configs import AIE_DEV_PHX, DEVICE_CONFIGS + AIE_TILE_T = "aie_tile" SHIM_TILE_T = "shim_tile" MEM_TILE_T = "mem_tile" @@ -126,11 +128,19 @@ def _create_bds(tile_t, registers): } -def init(is_aie2): +def init(device=None): """ - Inititalize aie2/2p specific + Initialize aie2/2p specific state from the central registry. + + `device` is the resolved sub-device name (e.g. 'phx' or 'stx'). It selects + AIE_TILE_ROW_OFFSET/MEM_TILE_SZ; AIE2 (phx) also relocates CORE_PC. """ - if is_aie2: + global AIE_TILE_ROW_OFFSET, MEM_TILE_SZ + cfg = DEVICE_CONFIGS.get(device) + if cfg: + AIE_TILE_ROW_OFFSET = cfg["core_row_start"] + MEM_TILE_SZ = cfg["mem_tile_sz"] + if device == AIE_DEV_PHX: Core_registers["CORE_PC"] = 0x31100 diff --git a/src/mldebug/arch/aie2ps_defs.py b/src/mldebug/arch/aie2ps_defs.py index 8b2d38e..5da306d 100644 --- a/src/mldebug/arch/aie2ps_defs.py +++ b/src/mldebug/arch/aie2ps_defs.py @@ -7,6 +7,8 @@ import json +from .device_configs import DEVICE_CONFIGS + AIE_TILE_T = "aie_tile" SHIM_TILE_T = "shim_tile" MEM_TILE_T = "mem_tile" @@ -128,11 +130,19 @@ def _create_bds(tile_t, registers): } -def init(_): +def init(device=None): """ - consistent interface with aie2p + Apply device/variant geometry from the central registry. + + `device` is the resolved sub-device name (e.g. 'telluride' or 't50'); + it selects AIE_TILE_ROW_OFFSET (= core_row_start) and MEM_TILE_SZ so + same-hwGen variants can differ in geometry. """ - return + global AIE_TILE_ROW_OFFSET, MEM_TILE_SZ + cfg = DEVICE_CONFIGS.get(device) + if cfg: + AIE_TILE_ROW_OFFSET = cfg["core_row_start"] + MEM_TILE_SZ = cfg["mem_tile_sz"] _create_bds(AIE_TILE_T, Core_registers) diff --git a/src/mldebug/arch/device_configs.py b/src/mldebug/arch/device_configs.py new file mode 100644 index 0000000..47cdeea --- /dev/null +++ b/src/mldebug/arch/device_configs.py @@ -0,0 +1,146 @@ +# SPDX-License-Identifier: Apache-2.0 +# Copyright (C) 2024-2026 Advanced Micro Devices, Inc. All rights reserved. + +""" +Central device geometry registry -- single source of truth for per-device +and per-variant AIE geometry. + +Keyed by device/variant name. Fields: + arch -- which defs module the loader should import (aie2p/aie2ps) + base -- base device name understood by the C++ binding and xrt-smi; + variants (e.g. t50) map back to their base (telluride) + hwGen -- hardware generation (matches the core-dump header hwGen) + core_row_start -- first core-tile row; also the AIE tile row offset + numrows/numcols -- full-device geometry, used to disambiguate variants + that share a hwGen + +Variants may share a hwGen (telluride/t50) and are disambiguated by +(numrows, numcols). +""" + +MB = 1024 * 1024 + +# Device / variant name constants. Defined here (the lowest-level arch module) +# so they can key DEVICE_CONFIGS; re-exported by loader for the rest of the code. +AIE_DEV_PHX = "phx" +AIE_DEV_STX = "stx" +AIE_DEV_TEL = "telluride" +AIE_DEV_NPU3 = "npu3" +AIE_DEV_T50 = "t50" +AIE_DEV_T10 = "t10" + +# Arch (defs-module) names, resolved to modules by the loader. +ARCH_AIE2P = "aie2p" +ARCH_AIE2PS = "aie2ps" + +DEVICE_CONFIGS = { + AIE_DEV_PHX: { + "arch": ARCH_AIE2P, + "base": AIE_DEV_PHX, + "hwGen": 2, + "baseAddr": 0x0, + "core_row_start": 2, + "mem_row_start": 1, + "memtile_rows": 1, + "numrows": 6, + "numcols": 4, + "shim_tile_block_size": MB, + "mem_tile_block_size": MB, + "core_tile_block_size": MB, + "mem_tile_sz": 0x80000, + }, + AIE_DEV_STX: { + "arch": ARCH_AIE2P, + "base": AIE_DEV_STX, + "hwGen": 4, + "baseAddr": 0x0, + "core_row_start": 2, + "mem_row_start": 1, + "memtile_rows": 1, + "numrows": 6, + "numcols": 8, + "shim_tile_block_size": MB, + "mem_tile_block_size": MB, + "core_tile_block_size": MB, + "mem_tile_sz": 0x80000, + }, + AIE_DEV_TEL: { + "arch": ARCH_AIE2PS, + "base": AIE_DEV_TEL, + "hwGen": 5, + "baseAddr": 0x0, + "core_row_start": 3, + "mem_row_start": 1, + "memtile_rows": 2, + "numrows": 7, + "numcols": 36, + "shim_tile_block_size": MB, + "mem_tile_block_size": MB, + "core_tile_block_size": MB, + "mem_tile_sz": 0x80000, + }, + # aie2ps-based variants sharing telluride's hwGen; disambiguated by geometry. + AIE_DEV_T50: { + "arch": ARCH_AIE2PS, + "base": AIE_DEV_TEL, + "hwGen": 5, + "baseAddr": 0x0, + "core_row_start": 2, + "mem_row_start": 1, + "memtile_rows": 1, + "numrows": 6, + "numcols": 24, + "shim_tile_block_size": MB, + "mem_tile_block_size": MB, + "core_tile_block_size": MB, + "mem_tile_sz": 0x80000, + }, + AIE_DEV_T10: { + "arch": ARCH_AIE2PS, + "base": AIE_DEV_TEL, + "hwGen": 5, + "baseAddr": 0x0, + "core_row_start": 2, + "mem_row_start": 1, + "memtile_rows": 1, + "numrows": 4, + "numcols": 8, + "shim_tile_block_size": MB, + "mem_tile_block_size": MB, + "core_tile_block_size": MB, + "mem_tile_sz": 0x80000, + }, +} + + +def get_base_device(name): + """ + Return the base device name for a device/variant. Unknown names map to + themselves so callers can pass through user-specified devices unchanged. + """ + cfg = DEVICE_CONFIGS.get(name) + return cfg["base"] if cfg else name + + +def resolve_variant(hw_gen, num_rows=None, num_cols=None): + """ + Resolve a device/variant name from a hardware generation and (optional) + full-device geometry. + + Matches hwGen first. When several variants share a hwGen, disambiguate by + (num_rows, num_cols). Falls back to the first (base) candidate when the + geometry is unavailable or does not match a variant. Returns None if no + device matches the hwGen. + """ + candidates = [n for n, c in DEVICE_CONFIGS.items() if c["hwGen"] == hw_gen] + if not candidates: + return None + if len(candidates) == 1: + return candidates[0] + if num_rows is not None and num_cols is not None: + for n in candidates: + c = DEVICE_CONFIGS[n] + if c["numrows"] == num_rows and c["numcols"] == num_cols: + return n + # Base device is listed first among same-hwGen candidates. + return candidates[0] diff --git a/src/mldebug/arch/loader.py b/src/mldebug/arch/loader.py index be7738b..3dadfaa 100644 --- a/src/mldebug/arch/loader.py +++ b/src/mldebug/arch/loader.py @@ -7,19 +7,24 @@ import importlib -AIE_DEV_PHX = "phx" -AIE_DEV_STX = "stx" -AIE_DEV_TEL = "telluride" -AIE_DEV_NPU3 = "npu3" +from .device_configs import AIE_DEV_NPU3, ARCH_AIE2P, ARCH_AIE2PS, DEVICE_CONFIGS + +# Maps a config's `arch` field to its defs module. +_ARCH_MODULES = { + ARCH_AIE2P: ".aie2p_defs", + ARCH_AIE2PS: ".aie2ps_defs", +} def load_aie_arch(device): """ - return specific aie arch module based on name + return specific aie arch module based on device/variant name """ - mod = ".aie2p_defs" - if device == AIE_DEV_TEL: - mod = ".aie2ps_defs" - elif device == AIE_DEV_NPU3: - mod = ".npu3_defs" + # npu3 is not yet in the geometry registry; keep it as a special case. + if device == AIE_DEV_NPU3: + return importlib.import_module(".npu3_defs", package="mldebug.arch") + + cfg = DEVICE_CONFIGS.get(device) + arch = cfg["arch"] if cfg else ARCH_AIE2P + mod = _ARCH_MODULES.get(arch, ".aie2p_defs") return importlib.import_module(mod, package="mldebug.arch") diff --git a/src/mldebug/backend/core_dump_impl.py b/src/mldebug/backend/core_dump_impl.py index aeebb10..ed409ea 100644 --- a/src/mldebug/backend/core_dump_impl.py +++ b/src/mldebug/backend/core_dump_impl.py @@ -7,8 +7,10 @@ import struct from pathlib import Path + +from mldebug.arch import DEVICE_CONFIGS, resolve_variant from mldebug.utils import print_tile_grid -from mldebug.arch import AIE_DEV_PHX, AIE_DEV_STX, AIE_DEV_TEL, AIE_DEV_NPU3 + from .backend_interface import BackendInterface try: @@ -18,46 +20,6 @@ except ImportError: HAS_XRT_BACKEND = False -# Device architecture metadata (from C++ CoreDumpDataAccessBackend) -DEVICE_CONFIGS = { - AIE_DEV_PHX: { - "hwGen": 2, - "baseAddr": 0x0, - "core_row_start": 2, - "mem_row_start": 1, - "memtile_rows": 1, - "numrows": 6, - "numcols": 4, - "shim_tile_block_size": 1024 * 1024, # 1MB - "mem_tile_block_size": 1024 * 1024, # 1MB - "core_tile_block_size": 1024 * 1024, # 1MB - }, - AIE_DEV_STX: { - "hwGen": 4, - "baseAddr": 0x0, - "core_row_start": 2, - "mem_row_start": 1, - "memtile_rows": 1, - "numrows": 6, - "numcols": 8, - "shim_tile_block_size": 1024 * 1024, - "mem_tile_block_size": 1024 * 1024, - "core_tile_block_size": 1024 * 1024, - }, - AIE_DEV_TEL: { - "hwGen": 5, - "baseAddr": 0x0, - "core_row_start": 3, - "mem_row_start": 1, - "memtile_rows": 2, - "numrows": 7, - "numcols": 36, - "shim_tile_block_size": 1024 * 1024, - "mem_tile_block_size": 1024 * 1024, - "core_tile_block_size": 1024 * 1024, - }, -} - class CoreDumpFallbackReader: """ @@ -155,11 +117,9 @@ def peek_device(filename): " None: LOGGER.log("\nRegistry settings check passed. No modifications were necessary.") +def _detect_vaiml_variant(aie_dir): + """ + Detect the device/variant for a VAIML design. + + Primary source is aie_trace_config.json's driver_config (hw_gen plus full + device geometry), which lets us distinguish same-hwGen variants (e.g. + telluride vs t50). Falls back to the HW_GEN define in aie_control.cpp when + the trace config is missing. Both files live in /ps/c_rts/. + + Returns a device/variant name, or None when nothing could be detected + (caller keeps the platform default). + """ + c_rts = f"{aie_dir}/ps/c_rts" + + # Primary: aie_trace_config.json driver_config + trace_cfg = f"{c_rts}/aie_trace_config.json" + try: + with open(trace_cfg, encoding="utf-8") as f: + driver = json.load(f)["aie_metadata"]["driver_config"] + variant = resolve_variant( + int(driver["hw_gen"]), int(driver["num_rows"]), int(driver["num_columns"]) + ) + if variant: + return variant + except (FileNotFoundError, KeyError, ValueError, json.JSONDecodeError): + pass + + # Fallback: HW_GEN define in aie_control.cpp + ctrl_cpp = f"{c_rts}/aie_control.cpp" + try: + with open(ctrl_cpp, encoding="utf-8") as f: + for line in f.read().split("\n"): + if "#define HW_GEN" in line: + genstr = line.split(" ")[-1] + if genstr == "XAIE_DEV_GEN_AIE2PS": + return AIE_DEV_TEL + if genstr == "XAIE_DEV_GEN_AIE2": + return AIE_DEV_PHX + break + except (FileNotFoundError, KeyError): + pass + return None + + def set_device(args) -> None: """ - Detects and sets the device target (phx, stx, or tel) for the current work directory. + Detects and sets the device target for the current work directory. + + Sets two fields: ``args.device`` (base device understood by the backends, + binding, and xrt-smi) and ``args.sub_device`` (the resolved variant, e.g. + 't50', used to select the arch module and geometry). For most devices these + are identical. Args: args: Argument object that is updated to set the detected device. @@ -233,36 +293,31 @@ def set_device(args) -> None: None """ endmsg = "\n" - if not args.device: + if args.device: + # User-specified device; honor it as the variant and derive the base. + args.sub_device = args.device + args.device = get_base_device(args.device) + else: endmsg = " Use -d to specify a diferent device.\n" + variant = None + # For core dumps, the device is baked into the file header. Detect it now # so the overlay (built before the backend) uses the correct aie_iface. if getattr(args, "core_dump", None) and not getattr(args, "no_header", False): - cd_dev = CoreDumpFallbackReader.peek_device(args.core_dump) - if cd_dev: - args.device = cd_dev - print(f"[INFO] Using AIE Device: {args.device} (detected from core dump header).") - return + variant = CoreDumpFallbackReader.peek_device(args.core_dump) - # if on ARM, default is telluride else STX - args.device = AIE_DEV_TEL if is_aarch64() else AIE_DEV_STX - genstr = "XAIE_DEV_GEN_AIE2P" + if variant is None: + variant = _detect_vaiml_variant(args.aie_dir) - ctrl_cpp = args.aie_dir + "/ps/c_rts/aie_control.cpp" - try: - with open(ctrl_cpp, encoding="utf-8") as f: - data = f.read().split("\n") - for line in data: - if "#define HW_GEN" in line: - genstr = line.split(" ")[-1] - break - if genstr == "XAIE_DEV_GEN_AIE2PS": - args.device = AIE_DEV_TEL - if genstr == "XAIE_DEV_GEN_AIE2": - args.device = AIE_DEV_PHX - except (FileNotFoundError, KeyError): - pass - # LOGGER.log("[INFO] Unable to detect device automatically.") + if variant is None: + # if on ARM, default is telluride else STX + variant = AIE_DEV_TEL if is_aarch64() else AIE_DEV_STX + + args.sub_device = variant + args.device = get_base_device(variant) + + if args.sub_device != args.device: + print(f"[INFO] Detected sub-device: {args.sub_device} (base {args.device}).") print(f"[INFO] Using AIE Device: {args.device}.", end=endmsg) diff --git a/src/mldebug/mldebug_cli.py b/src/mldebug/mldebug_cli.py index da84f00..f3bcde0 100644 --- a/src/mldebug/mldebug_cli.py +++ b/src/mldebug/mldebug_cli.py @@ -14,7 +14,14 @@ import os import time -from mldebug.arch import AIE_DEV_PHX, AIE_DEV_STX, AIE_DEV_TEL, AIE_DEV_NPU3 +from mldebug.arch import ( + AIE_DEV_NPU3, + AIE_DEV_PHX, + AIE_DEV_STX, + AIE_DEV_T10, + AIE_DEV_T50, + AIE_DEV_TEL, +) from mldebug.client_debug import ClientDebug from mldebug.input_parser import ( check_hw_context, @@ -244,7 +251,7 @@ def app(): "-d", "--device", help="Specify device if it can't be detected from aie_dir.", - choices=[AIE_DEV_PHX, AIE_DEV_STX, AIE_DEV_TEL, AIE_DEV_NPU3], + choices=[AIE_DEV_PHX, AIE_DEV_STX, AIE_DEV_TEL, AIE_DEV_NPU3, AIE_DEV_T50, AIE_DEV_T10], required=False, ) # Hidden Argument From 0bd8d74867cff7ae937a1db7ca16bc4c19f7c2c0 Mon Sep 17 00:00:00 2001 From: anurag Date: Wed, 29 Jul 2026 10:23:06 -0600 Subject: [PATCH 2/4] fix type Signed-off-by: anurag --- src/mldebug/arch/__init__.py | 4 ++-- src/mldebug/arch/aie2ps_defs.py | 2 +- src/mldebug/arch/device_configs.py | 8 ++++---- src/mldebug/backend/core_dump_impl.py | 2 +- src/mldebug/input_parser.py | 6 +++--- src/mldebug/mldebug_cli.py | 4 ++-- 6 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/mldebug/arch/__init__.py b/src/mldebug/arch/__init__.py index a741d10..35cbfa2 100644 --- a/src/mldebug/arch/__init__.py +++ b/src/mldebug/arch/__init__.py @@ -10,7 +10,7 @@ AIE_DEV_PHX, AIE_DEV_STX, AIE_DEV_T10, - AIE_DEV_T50, + AIE_DEV_T20, AIE_DEV_TEL, DEVICE_CONFIGS, get_base_device, @@ -23,7 +23,7 @@ "AIE_DEV_PHX", "AIE_DEV_STX", "AIE_DEV_T10", - "AIE_DEV_T50", + "AIE_DEV_T20", "AIE_DEV_TEL", "DEVICE_CONFIGS", "get_base_device", diff --git a/src/mldebug/arch/aie2ps_defs.py b/src/mldebug/arch/aie2ps_defs.py index 5da306d..9eafe44 100644 --- a/src/mldebug/arch/aie2ps_defs.py +++ b/src/mldebug/arch/aie2ps_defs.py @@ -134,7 +134,7 @@ def init(device=None): """ Apply device/variant geometry from the central registry. - `device` is the resolved sub-device name (e.g. 'telluride' or 't50'); + `device` is the resolved sub-device name (e.g. 'telluride' or 't20'); it selects AIE_TILE_ROW_OFFSET (= core_row_start) and MEM_TILE_SZ so same-hwGen variants can differ in geometry. """ diff --git a/src/mldebug/arch/device_configs.py b/src/mldebug/arch/device_configs.py index 47cdeea..022b4ba 100644 --- a/src/mldebug/arch/device_configs.py +++ b/src/mldebug/arch/device_configs.py @@ -8,13 +8,13 @@ Keyed by device/variant name. Fields: arch -- which defs module the loader should import (aie2p/aie2ps) base -- base device name understood by the C++ binding and xrt-smi; - variants (e.g. t50) map back to their base (telluride) + variants (e.g. t20) map back to their base (telluride) hwGen -- hardware generation (matches the core-dump header hwGen) core_row_start -- first core-tile row; also the AIE tile row offset numrows/numcols -- full-device geometry, used to disambiguate variants that share a hwGen -Variants may share a hwGen (telluride/t50) and are disambiguated by +Variants may share a hwGen (telluride/t20) and are disambiguated by (numrows, numcols). """ @@ -26,7 +26,7 @@ AIE_DEV_STX = "stx" AIE_DEV_TEL = "telluride" AIE_DEV_NPU3 = "npu3" -AIE_DEV_T50 = "t50" +AIE_DEV_T20 = "t20" AIE_DEV_T10 = "t10" # Arch (defs-module) names, resolved to modules by the loader. @@ -80,7 +80,7 @@ "mem_tile_sz": 0x80000, }, # aie2ps-based variants sharing telluride's hwGen; disambiguated by geometry. - AIE_DEV_T50: { + AIE_DEV_T20: { "arch": ARCH_AIE2PS, "base": AIE_DEV_TEL, "hwGen": 5, diff --git a/src/mldebug/backend/core_dump_impl.py b/src/mldebug/backend/core_dump_impl.py index ed409ea..0825d20 100644 --- a/src/mldebug/backend/core_dump_impl.py +++ b/src/mldebug/backend/core_dump_impl.py @@ -117,7 +117,7 @@ def peek_device(filename): "/ps/c_rts/. Returns a device/variant name, or None when nothing could be detected @@ -283,7 +283,7 @@ def set_device(args) -> None: Sets two fields: ``args.device`` (base device understood by the backends, binding, and xrt-smi) and ``args.sub_device`` (the resolved variant, e.g. - 't50', used to select the arch module and geometry). For most devices these + 't20', used to select the arch module and geometry). For most devices these are identical. Args: diff --git a/src/mldebug/mldebug_cli.py b/src/mldebug/mldebug_cli.py index f3bcde0..6dd79f4 100644 --- a/src/mldebug/mldebug_cli.py +++ b/src/mldebug/mldebug_cli.py @@ -19,7 +19,7 @@ AIE_DEV_PHX, AIE_DEV_STX, AIE_DEV_T10, - AIE_DEV_T50, + AIE_DEV_T20, AIE_DEV_TEL, ) from mldebug.client_debug import ClientDebug @@ -251,7 +251,7 @@ def app(): "-d", "--device", help="Specify device if it can't be detected from aie_dir.", - choices=[AIE_DEV_PHX, AIE_DEV_STX, AIE_DEV_TEL, AIE_DEV_NPU3, AIE_DEV_T50, AIE_DEV_T10], + choices=[AIE_DEV_PHX, AIE_DEV_STX, AIE_DEV_TEL, AIE_DEV_NPU3, AIE_DEV_T20, AIE_DEV_T10], required=False, ) # Hidden Argument From d9534f1110f2fa953ea5699296fe28bc8196b645 Mon Sep 17 00:00:00 2001 From: anurag Date: Wed, 29 Jul 2026 11:19:36 -0600 Subject: [PATCH 3/4] add t20 elfs Signed-off-by: anurag --- src/mldebug/bin/initial_halt_elfs/t20/aieHalt1x4x4.elf | 3 +++ src/mldebug/bin/initial_halt_elfs/t20/aieHalt2x2x4.elf | 3 +++ src/mldebug/bin/initial_halt_elfs/t20/aieHalt2x4x4.elf | 3 +++ src/mldebug/bin/initial_halt_elfs/t20/aieHalt3x4x4.elf | 3 +++ src/mldebug/bin/initial_halt_elfs/t20/aieHalt4x4x4.elf | 3 +++ src/mldebug/bin/initial_halt_elfs/t20/aieHalt5x4x4.elf | 3 +++ src/mldebug/bin/initial_halt_elfs/t20/aieHalt6x4x4.elf | 3 +++ 7 files changed, 21 insertions(+) create mode 100644 src/mldebug/bin/initial_halt_elfs/t20/aieHalt1x4x4.elf create mode 100644 src/mldebug/bin/initial_halt_elfs/t20/aieHalt2x2x4.elf create mode 100644 src/mldebug/bin/initial_halt_elfs/t20/aieHalt2x4x4.elf create mode 100644 src/mldebug/bin/initial_halt_elfs/t20/aieHalt3x4x4.elf create mode 100644 src/mldebug/bin/initial_halt_elfs/t20/aieHalt4x4x4.elf create mode 100644 src/mldebug/bin/initial_halt_elfs/t20/aieHalt5x4x4.elf create mode 100644 src/mldebug/bin/initial_halt_elfs/t20/aieHalt6x4x4.elf diff --git a/src/mldebug/bin/initial_halt_elfs/t20/aieHalt1x4x4.elf b/src/mldebug/bin/initial_halt_elfs/t20/aieHalt1x4x4.elf new file mode 100644 index 0000000..741a6c6 --- /dev/null +++ b/src/mldebug/bin/initial_halt_elfs/t20/aieHalt1x4x4.elf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a171ba0891a912e96616548157d6cd9a10b0798819001ab19ed258e9416c1090 +size 11648 diff --git a/src/mldebug/bin/initial_halt_elfs/t20/aieHalt2x2x4.elf b/src/mldebug/bin/initial_halt_elfs/t20/aieHalt2x2x4.elf new file mode 100644 index 0000000..571fa5e --- /dev/null +++ b/src/mldebug/bin/initial_halt_elfs/t20/aieHalt2x2x4.elf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d38cdcfacfb53dda49188c3ab847349bf2032cec3e903c2484bd04e5d448ec70 +size 11648 diff --git a/src/mldebug/bin/initial_halt_elfs/t20/aieHalt2x4x4.elf b/src/mldebug/bin/initial_halt_elfs/t20/aieHalt2x4x4.elf new file mode 100644 index 0000000..5e8fef0 --- /dev/null +++ b/src/mldebug/bin/initial_halt_elfs/t20/aieHalt2x4x4.elf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:abea2adc36bd6a610809fcf320a82d1032ceef33bebec9a56d2f08405c671d3c +size 14224 diff --git a/src/mldebug/bin/initial_halt_elfs/t20/aieHalt3x4x4.elf b/src/mldebug/bin/initial_halt_elfs/t20/aieHalt3x4x4.elf new file mode 100644 index 0000000..99bd0c3 --- /dev/null +++ b/src/mldebug/bin/initial_halt_elfs/t20/aieHalt3x4x4.elf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a70cfbfab21ef0da2ee64902fc406edc44dead493a613545397a4a473fa55057 +size 16816 diff --git a/src/mldebug/bin/initial_halt_elfs/t20/aieHalt4x4x4.elf b/src/mldebug/bin/initial_halt_elfs/t20/aieHalt4x4x4.elf new file mode 100644 index 0000000..d42aad4 --- /dev/null +++ b/src/mldebug/bin/initial_halt_elfs/t20/aieHalt4x4x4.elf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aa2a7daab9f7363c68dcbcb458b2604704badc8585838fcf0404ae951ed6982c +size 19408 diff --git a/src/mldebug/bin/initial_halt_elfs/t20/aieHalt5x4x4.elf b/src/mldebug/bin/initial_halt_elfs/t20/aieHalt5x4x4.elf new file mode 100644 index 0000000..b280b80 --- /dev/null +++ b/src/mldebug/bin/initial_halt_elfs/t20/aieHalt5x4x4.elf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f0178bbccc6949d2c0470e19302afdad07f462ccc9912451a22a811ee600005d +size 22016 diff --git a/src/mldebug/bin/initial_halt_elfs/t20/aieHalt6x4x4.elf b/src/mldebug/bin/initial_halt_elfs/t20/aieHalt6x4x4.elf new file mode 100644 index 0000000..9ce0dc6 --- /dev/null +++ b/src/mldebug/bin/initial_halt_elfs/t20/aieHalt6x4x4.elf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fda1a607c2e72ad6fbb9cab0ef7831d1644982e5b57ea7f655e30be3fb04a260 +size 24624 From 063ea02bfdfdd7464345b7ef089fb9ff45ed9eaf Mon Sep 17 00:00:00 2001 From: anurag Date: Wed, 29 Jul 2026 11:33:50 -0600 Subject: [PATCH 4/4] add t10 elfs Signed-off-by: anurag --- src/mldebug/bin/initial_halt_elfs/t10/aieHalt2x2x4.elf | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 src/mldebug/bin/initial_halt_elfs/t10/aieHalt2x2x4.elf diff --git a/src/mldebug/bin/initial_halt_elfs/t10/aieHalt2x2x4.elf b/src/mldebug/bin/initial_halt_elfs/t10/aieHalt2x2x4.elf new file mode 100644 index 0000000..571fa5e --- /dev/null +++ b/src/mldebug/bin/initial_halt_elfs/t10/aieHalt2x2x4.elf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d38cdcfacfb53dda49188c3ab847349bf2032cec3e903c2484bd04e5d448ec70 +size 11648