diff --git a/.gitignore b/.gitignore
index 7799d0529..e49a7a35b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -32,7 +32,7 @@ cpp/tests/results/matchsgfs2/games.sgfs
cpp/data/
versions/
-cpp/build
+cpp/build*
cpp/out
export_model_cuda.sh
@@ -92,3 +92,5 @@ cpp/build.ninja
cpp/KataGoSwift.*
cpp/include/KataGoSwift/KataGoSwift-swift.h
cpp/external/katagocoreml/proto/
+
+.claude
\ No newline at end of file
diff --git a/Compiling.md b/Compiling.md
index c601ceff0..01fba73c3 100644
--- a/Compiling.md
+++ b/Compiling.md
@@ -100,6 +100,7 @@ As also mentioned in the instructions below but repeated here for visibility, if
* If using the OpenCL backend, a modern GPU that supports OpenCL 1.2 or greater, or else something like [this](https://software.intel.com/en-us/opencl-sdk) for CPU. But if using CPU, Eigen should be better.
* If using the CUDA backend, CUDA 11 or later and a compatible version of CUDNN based on your CUDA version (https://developer.nvidia.com/cuda-toolkit) (https://developer.nvidia.com/cudnn) and a GPU capable of supporting them. I'm unsure how version compatibility works with CUDA, there's a good chance that later versions than these work just as well, but they have not been tested.
* If using the TensorRT backend, in addition to a compatible CUDA Toolkit (https://developer.nvidia.com/cuda-toolkit), you also need TensorRT (https://developer.nvidia.com/tensorrt) that is at least version 8.5.
+ * If using the RyzenAI backend, an AMD Ryzen AI processor with its NPU enabled, AMD's NPU driver, and the [XRT SDK for Windows](https://github.com/Xilinx/XRT). Nothing else - the NPU kernels ship with KataGo. See the RyzenAI notes below.
* If using the Eigen backend, Eigen3, version 3.3.x. (http://eigen.tuxfamily.org/index.php?title=Main_Page#Download).
* zlib. Easy way to build zlib on Windows is to use vcpkg. Run in Powershell:
* git clone https://github.com/microsoft/vcpkg.git
@@ -146,6 +147,24 @@ As also mentioned in the instructions below but repeated here for visibility, if
* For MinGW it's recommended to configure the project in the following ways:
* Use the default MinGW toolchain in [CLion IDE](https://www.jetbrains.com/clion/) (free for Non-Commercial use)
* Use [MSYS2](https://www.msys2.org/) MinGW toolchain. Befor configuring, install gcc compiler using pacman package manager: `pacman -S mingw-w64-x86_64-gcc`
+ * **RyzenAI backend (Windows):**
+ * Runs the neural net on the NPU built into AMD Ryzen AI processors (XDNA1 as in Phoenix/Hawk Point, XDNA2 as in Strix). The compiled NPU kernels are committed to this repository, so there is no tuning step, no model conversion, and nothing to install beyond the two requirements below.
+ * Requirements:
+ * AMD's NPU driver, and the NPU enabled in the BIOS. `katago benchmark` reports which NPU it found, or says none was found.
+ * The [XRT SDK for Windows](https://github.com/Xilinx/XRT). CMake looks in `%XILINX_XRT%` and then `C:\Xilinx\XRT`; pass `-DXRT_ROOT=
` if it lives elsewhere.
+ * Visual Studio Build Tools with the "Desktop development with C++" workload, and zlib (conda and vcpkg both ship one).
+ * Build. CMake locates the C++ toolchain, the XRT SDK and zlib itself, so an ordinary shell is enough - a Developer Command Prompt is *not* required:
+ ```
+ cd cpp
+ mkdir build
+ cd build
+ cmake .. -G Ninja -DUSE_BACKEND=RYZENAI -DCMAKE_BUILD_TYPE=Release
+ cmake --build . --parallel
+ ```
+ `ninja` works in place of `cmake --build .` if you have it on your PATH. If CMake cannot find something it names what and where to get it; `-DZLIB_ROOT=...` and `-DXRT_RUNTIME_DLL_DIR=...` override the search.
+ * The build directory runs as-is: `katago.exe`, the XRT runtime DLLs beside it, and the NPU kernels in a `ryzenai` subdirectory. Copy all three together if you move it.
+ * **Precision:** on XDNA2 the default is block floating point, which is faster; `ryzenaiDtype = bf16` in the config selects the more accurate format instead. XDNA1 only has bf16. Either way the NPU is not computing in fp32, so its outputs differ slightly from the CPU backends - enough to pick differently between two nearly-equal moves, not enough to matter for strength.
+ * **Regenerating the NPU kernels** - only needed for a network shape that has no kernel yet, which is rare: the shipped set covers every reduction dimension up to 6912. See [python/ryzenai_kernels/README.md](python/ryzenai_kernels/README.md).
* Done! You should now have a compiled `katago.exe` executable in your working directory.
* Note: You may need to copy the ".dll" files corresponding to the various ".lib" (".a") files you compiled with into the directory containing katago.exe.
* MinGW has different dlls. If you use pacman, the necessary dlls (`libbz2-1.dll`, `libzip.dll`, `libzstd.dll`, `liblzma-5.dll`) should be copied from MinGW bin directory (like `C:\msys64\mingw64\bin`).
@@ -158,7 +177,7 @@ As also mentioned in the instructions below but repeated here for visibility, if
* The ROCm (MIOpen) backend supports Windows via [AMD TheRock](https://github.com/ROCm/TheRock) (tested with TheRock 7.13 / ROCm 7.13, RX 7900 XTX / gfx1100), including transformer/attention models (model version 17+) and the optional Composable Kernel (CK) fused-attention fast path.
* **Prerequisites:**
* Download [AMD TheRock](https://github.com/ROCm/TheRock) and extract it to e.g. `C:\TheRock\build`, adjusting the paths below if you extract elsewhere.
- * Install **Visual Studio Build Tools or Community** with the "Desktop development with C++" workload, for the MSVC toolchain and Windows SDK the HIP compiler needs. A **v143 toolset (MSVC 14.3x or 14.4x)** must be among the installed toolsets - newer toolsets alone (14.5x+) are not accepted by the HIP clang compatibility check. If more than one is installed side by side, `CMakeLists.txt` automatically probes them at configure time and picks a compatible one itself (see "Fully automatic" below), no manual toolset selection needed.
+ * Install **Visual Studio Build Tools or Community** with the "Desktop development with C++" workload, for the MSVC toolchain and Windows SDK the HIP compiler needs. If several toolsets are installed side by side, `CMakeLists.txt` probes them at configure time - newest first - and picks the first one the HIP compiler actually accepts (see "Fully automatic" below), no manual toolset selection needed. Note that a very new MSVC STL can be ahead of the clang bundled with TheRock; if configure reports that no installed toolset works, add an older one such as **MSVC v143 (14.3x/14.4x)** from the Visual Studio Installer's "Individual Components" tab.
* Install [Ninja](https://ninja-build.org) build tool: `winget install Ninja-build.Ninja`.
* Set the following **system environment variables** (via System Properties -> Advanced -> Environment Variables):
```
@@ -186,9 +205,9 @@ As also mentioned in the instructions below but repeated here for visibility, if
Windows-specific setup automatically at configure/build time:
* **MSVC toolset selection:** if more than one MSVC toolset is installed side by side, a
newer one can conflict with TheRock's bundled clang (newer MSVC STL headers are not yet
- compatible with it). `CMakeLists.txt` finds the installed v143-family toolsets via
- `vswhere` and probes each with a real compile until one works, with no user action
- needed.
+ compatible with it). `CMakeLists.txt` enumerates every installed toolset via
+ `vswhere` and probes them newest-first with a real compile until one works, with
+ no user action needed.
* **zlib:** TheRock's Windows package ships `zlib.h` but (as of 7.13) no longer ships a
linkable `.lib`. `CMakeLists.txt` automatically bootstraps a local
[vcpkg](https://github.com/microsoft/vcpkg) clone under `/deps/vcpkg` (this
diff --git a/README.md b/README.md
index f34a1628c..518f731a2 100644
--- a/README.md
+++ b/README.md
@@ -8,7 +8,7 @@
- [GUIs](#guis)
- [Windows and Linux](#windows-and-linux)
- [MacOS](#macos)
- - [OpenCL vs CUDA vs TensorRT vs ROCm vs Eigen](#opencl-vs-cuda-vs-tensorrt-vs-rocm-vs-eigen)
+ - [OpenCL vs CUDA vs TensorRT vs ROCm vs RyzenAI vs Eigen](#opencl-vs-cuda-vs-tensorrt-vs-rocm-vs-ryzenai-vs-eigen)
- [How To Use](#how-to-use)
- [Human-style Play and Analysis](#human-style-play-and-analysis)
- [Other Commands:](#other-commands)
@@ -88,8 +88,8 @@ The community also provides KataGo packages for [Homebrew](https://brew.sh) on M
Use `brew install katago`. The latest config files and networks are installed in KataGo's `share` directory. Find them via `brew list --verbose katago`. A basic way to run katago will be `katago gtp -config $(brew list --verbose katago | grep 'gtp.*\.cfg') -model $(brew list --verbose katago | grep .gz | head -1)`. You should choose the Network according to the release notes here and customize the provided example config as with every other way of installing KataGo.
-### OpenCL vs CUDA vs TensorRT vs ROCm vs Eigen
-KataGo has five backends, OpenCL (GPU), CUDA (GPU), TensorRT (GPU), ROCm (GPU), and Eigen (CPU). (On macOS there is also a Metal backend, most easily obtained via homebrew - see above.)
+### OpenCL vs CUDA vs TensorRT vs ROCm vs RyzenAI vs Eigen
+KataGo has six backends, OpenCL (GPU), CUDA (GPU), TensorRT (GPU), ROCm (GPU), RyzenAI (AMD NPU), and Eigen (CPU). (On macOS there is also a Metal backend, most easily obtained via homebrew - see above.)
As of v1.17, KataGo supports transformer neural nets, which are generally much stronger for the same compute cost and which the main training run is switching to. Transformer models are more demanding on the GPU backend than the older convolutional nets, so the backend recommendations below matter more for them - in particular OpenCL is noticeably slower on transformers, and on NVIDIA the CUDNN and TensorRT versions make a large difference.
@@ -100,12 +100,14 @@ The quick summary is:
* Use Eigen without AVX2 if your CPU is old or on a low-end device that doesn't support AVX2.
* The CUDA+CUDNN backend can also work well for NVIDIA GPUs. It has faster startup than TensorRT and is competitive on transformers if using CUDNN >= 9.8.0, though TensorRT 10.16 is often still slightly faster.
* The ROCm backend can work for AMD GPUs with ROCm+MIOpen installed, and is much faster than OpenCL on AMD datacenter (CDNA) GPUs.
+ * Use RyzenAI on a Ryzen AI laptop, if you would rather run on its NPU than on its integrated GPU or CPU.
More in detail:
* OpenCL is a general GPU backend should be able to run with any GPUs or accelerators that support [OpenCL](https://en.wikipedia.org/wiki/OpenCL), including NVIDIA GPUs, AMD GPUs, as well CPU-based OpenCL implementations or things like Intel Integrated Graphics. This is the most general GPU version of KataGo and doesn't require a complicated install like CUDA does, so is most likely to work out of the box as long as you have a fairly modern GPU. **However, it also need to take some time when run for the very first time to tune itself.** For many systems, this will take 5-30 seconds, but on a few older/slower systems, may take many minutes or longer. Also, the quality of OpenCL implementations is sometimes inconsistent, particularly for Intel Integrated Graphics and for AMD GPUs that are older than several years, so it might not work for very old machines, as well as specific buggy newer AMD GPUs, see also [Issues with specific GPUs or GPU drivers](#issues-with-specific-gpus-or-gpu-drivers). OpenCL is not as optimized as the NVIDIA-specific backends and will generally be slower, particularly for transformer models.
* CUDA is a GPU backend specific to NVIDIA GPUs (it will not work with AMD or Intel or any other GPUs) and requires installing [CUDA](https://developer.nvidia.com/cuda-zone) and [CUDNN](https://developer.nvidia.com/cudnn) and a modern NVIDIA GPU. For older convolutional nets, on many GPUs the OpenCL implementation can match or beat NVIDIA's own CUDA/CUDNN, with the exception of top-end NVIDIA GPUs that support FP16 and tensor cores. For transformer nets, CUDA+CUDNN clearly outperforms OpenCL, but you should use CUDNN >= 9.8.0 if at all possible - the older CUDNN 8.9.7 is a LOT slower on transformer models. Compared to TensorRT, CUDA+CUDNN has faster startup times and is often only slightly slower (and occasionally faster) on transformers.
* TensorRT is similar to CUDA, but uses NVIDIA's TensorRT framework to run the neural network with more optimized kernels. For modern NVIDIA GPUs it should work whenever CUDA does, and will usually be the fastest backend, though it has much longer startup times on every launch. As of v1.17.0, TensorRT versions older than 10 are no longer supported. For transformer models, recent versions like CUDA 13 + TensorRT 10.16 are best, while older TensorRT versions can be outperformed by CUDA+CUDNN.
* ROCm is a GPU backend specific to AMD GPUs (it will not work with NVIDIA or Intel or any other GPUs) and requires installing [ROCm](https://rocm.docs.amd.com) and [MIOpen](https://rocm.docs.amd.com/projects/MIOpen) and a modern AMD GPU. It supports both **Linux** (via official ROCm packages, ROCm 6.4+) and **Windows** (via [AMD TheRock](https://github.com/ROCm/TheRock) builds). Performance relative to OpenCL depends on the GPU. On AMD's datacenter accelerators (CDNA), ROCm is much faster than OpenCL: measured on an MI300X at roughly 2.5x for convolutional nets and 6-12x for transformers. On consumer (RDNA) GPUs the two are closer and either may win depending on the GPU and driver, so if you want the best choice, run KataGo's benchmark with both. Transformer/attention-based neural nets (model version 17+) are supported on all AMD GPUs, and get an additional fused-attention speedup on CDNA and RDNA3/RDNA3.5/RDNA4 GPUs when AMD's Composable Kernel library is also installed (see [Compiling.md](Compiling.md)).
+ * RyzenAI is a backend for the *NPU* built into AMD Ryzen AI laptop processors (XDNA1 as in Phoenix/Hawk Point, XDNA2 as in Strix). It will not work with anything else - not AMD GPUs, and not older Ryzen chips without an NPU. It needs only AMD's NPU driver and the [XRT runtime](https://github.com/Xilinx/XRT); the compiled NPU kernels ship with KataGo, so there is no tuning step and no per-model setup. It reads `.bin.gz` models directly like every other backend. On a Strix laptop it runs roughly 5-11x faster than the Eigen CPU backend on the same machine, with the larger nets gaining the most, and it leaves the CPU almost entirely free for the search itself. Whether it beats that laptop's integrated GPU under OpenCL depends on the model and the machine, so run KataGo's benchmark with both if you want the best choice. Accuracy note: the NPU computes in bfloat16 or block floating point rather than fp32, which shifts the network's outputs slightly - enough to change the engine's choice between two moves it considers nearly equal, not enough to affect playing strength. See [Compiling.md](Compiling.md) for build instructions, and `ryzenaiDtype` in the example config to trade a little speed for more accuracy.
* Eigen is a *CPU* backend that should work widely *without* needing a GPU or fancy drivers. Use this if you don't have a good GPU or really any GPU at all. It will be quite significantly slower than OpenCL or CUDA, but on a good CPU can still often get 10 to 20 playouts per second if using the smaller (15 or 20) block neural nets. Eigen can also be compiled with AVX2 and FMA support, which can provide a big performance boost for Intel and AMD CPUs from the last few years. However, it will not run at all on older CPUs (and possibly even some recent but low-power modern CPUs) that don't support these fancy vector instructions.
For **any** implementation, it's recommended that you also tune the number of threads used if you care about optimal performance, as it can make a factor of 2-3 difference in the speed. See "Tuning for Performance" below. However, if you mostly just want to get it working, then the default untuned settings should also be still reasonable.
@@ -181,6 +183,27 @@ The most important parameter to optimize for KataGo's performance is the number
Secondarily, you can also read over the parameters in your GTP config (`default_gtp.cfg` or `gtp_example.cfg` or `configs/gtp_example.cfg`, etc). A lot of other settings are described in there that you can set to adjust KataGo's resource usage, or choose which GPUs to use. You can also adjust things like KataGo's resign threshold, pondering behavior or utility function. Most parameters are documented directly inline in the [example config file](cpp/configs/gtp_example.cfg). Many can also be interactively set when generating a config via the `genconfig` command described above.
+#### RyzenAI config parameters
+
+All of these are optional - the defaults are what you want unless you are measuring something. Add them to whichever config you run with.
+
+| Parameter | Values | Default | What it does |
+| --- | --- | --- | --- |
+| `ryzenaiDtype` | `auto`, `bf16`, `bfp16` | `auto` | Numeric format for the NPU kernels. `auto` picks block floating point on XDNA2 and bf16 on XDNA1, which is the only format XDNA1 has. `bf16` is the more accurate of the two and costs roughly 10% throughput; set it explicitly if you would rather have the precision. |
+| `ryzenaiMaxColumns` | 0-64 | `4` | How many of the NPU's columns one kernel may use. More is not automatically better: a small net gets *slower* with more columns, because each distinct kernel is its own hardware context and the driver ends up switching between them. Large nets do benefit. Measure with `katago benchmark` before changing it. |
+| `ryzenaiForceNpuOnly` | bool | `false` | Refuse to fall back to the CPU. Normally a layer with no matching kernel quietly runs on the CPU instead, which is correct but slower; this turns that into a hard failure, which is what you want when verifying that the NPU is really being used. |
+| `ryzenaiArtifactDir` | path | next to the executable | Where the `.xclbin` kernels live. Pointing it at a nonexistent directory forces the whole network onto the CPU reference path, which is the simplest way to compare NPU output against CPU output. |
+| `ryzenaiVerboseDispatch` | bool | `false` | Log where the time went: host-side packing, NPU dispatch, unpacking, and the operators still running on the CPU. Also reports any kernel that was wanted but missing. Start here when performance is not what you expect. |
+| `ryzenaiShapeReport` | bool | `false` | Log every matrix shape the loaded model asks for. Needed only when generating kernels for a new network - see [Compiling.md](Compiling.md). |
+| `ryzenaiForceK` | -1 to 65536 | `-1` | Collapse every layer onto one kernel by padding their reduction dimensions up to this value, trading wasted arithmetic for fewer context switches. `-1` lets KataGo decide per model, which is almost always right. |
+| `ryzenaiSelfTest` | bool | `false` | Run a built-in matrix-multiply check against the NPU at startup. |
+| `ryzenaiDeviceToUse` | int | `0` | Which NPU, on a machine with more than one. `ryzenaiDeviceToUseThread0`, `...Thread1` and so on assign devices per neural net thread, exactly as the equivalent OpenCL and CUDA settings do. |
+
+Two things worth knowing beyond the parameters:
+
+ * **Threads matter more here than the settings above.** The NPU pays a fixed cost per dispatch, and KataGo amortizes it by batching evaluations from several search threads into one. Going from `numSearchThreads = 1` to `16` measured about 1.9x more evaluations per second on the same hardware - a bigger win than anything in the table. `katago benchmark` will suggest a value for your machine.
+ * **The NPU does not compute in fp32**, so its policy and value outputs differ slightly from the CPU backends. The difference is small enough that the top moves come out the same, but large enough to flip the engine's choice between two moves it considers nearly equal. If you need bit-reproducibility across machines, use a CPU backend.
+
### Common Questions and Issues
This section summarizes a number of common questions and issues when running KataGo.
diff --git a/cpp/CMakeLists.txt b/cpp/CMakeLists.txt
index 3cc803444..7598d9980 100644
--- a/cpp/CMakeLists.txt
+++ b/cpp/CMakeLists.txt
@@ -137,15 +137,32 @@ function(katago_win_apply_vcvarsall vcvarsall_bat vcvars_ver)
if(NOT _rc EQUAL 0 OR NOT EXISTS "${_out_file}")
return()
endif()
- # Read line-by-line via file(STRINGS) rather than splitting the raw output ourselves - INCLUDE/
- # LIB/PATH are themselves semicolon-separated, which would corrupt a naive string(REPLACE "\n" ";"
- # ...) split. file(STRINGS) keeps each real line, with its embedded semicolons, as one entry.
- file(STRINGS "${_out_file}" _env_lines)
- foreach(_line IN LISTS _env_lines)
+ # Walk the dump one line at a time with plain string operations, NOT via a cmake list (which is
+ # what file(STRINGS) hands back). Two properties of this output make list handling wrong:
+ # INCLUDE/LIB/PATH are themselves semicolon-separated, and Windows values routinely end in a
+ # backslash (VSINSTALLDIR, WindowsSdkBinPath, ...). A line ending in "\" turns the list
+ # separator that follows it into an escaped ";" when the list is expanded, silently gluing the
+ # next variable onto this one's value (e.g. VSINSTALLDIR ending up as
+ # "...\BuildTools;windir=C:\Windows") and losing that next variable entirely. A corrupt
+ # VSINSTALLDIR in turn breaks any *subsequent* vcvarsall call, whose -vcvars_ver check resolves
+ # against it ("Version '...' is not valid; directory does not exist"), which is exactly what
+ # probing more than one toolset in a single configure run does.
+ file(READ "${_out_file}" _env_raw)
+ string(REPLACE "\r\n" "\n" _env_raw "${_env_raw}")
+ while(NOT _env_raw STREQUAL "")
+ string(FIND "${_env_raw}" "\n" _nl)
+ if(_nl EQUAL -1)
+ set(_line "${_env_raw}")
+ set(_env_raw "")
+ else()
+ string(SUBSTRING "${_env_raw}" 0 ${_nl} _line)
+ math(EXPR _nl_next "${_nl} + 1")
+ string(SUBSTRING "${_env_raw}" ${_nl_next} -1 _env_raw)
+ endif()
if(_line MATCHES "^([A-Za-z_][A-Za-z0-9_().]*)=(.*)$")
set(ENV{${CMAKE_MATCH_1}} "${CMAKE_MATCH_2}")
endif()
- endforeach()
+ endwhile()
endfunction()
# Helper: with the given HIP compiler and whatever environment is currently active, try compiling a
@@ -184,22 +201,23 @@ function(katago_win_pathlist_to_flags pathlist flagprefix out_var)
set(${out_var} "${_flags}" PARENT_SCOPE)
endfunction()
-# Helper: find an MSVC "v143" toolset (possibly one of several 14.3x/14.4x versions installed
-# side-by-side under one or more VS installs) whose STL doesn't conflict with the HIP compiler's
-# own CUDA/HIP math forward-declare headers, apply the vcvarsall.bat environment for it (so the
-# rest of THIS configure run - the HIP arch probing below, and project()'s own HIP compiler ABI
-# test - see it), and also bake the resulting INCLUDE/LIB paths into cached compiler/linker flags
-# so a later, separate `ninja` invocation (which does NOT inherit this configure run's environment
-# - see katago_win_apply_vcvarsall's comment) keeps working too.
+# Helper: find an MSVC toolset (possibly one of several versions installed side-by-side under one
+# or more VS installs) whose STL doesn't conflict with the HIP compiler's own CUDA/HIP math
+# forward-declare headers, apply the vcvarsall.bat environment for it (so the rest of THIS
+# configure run - the HIP arch probing below, and project()'s own HIP compiler ABI test - see it),
+# and also bake the resulting INCLUDE/LIB paths into cached compiler/linker flags so a later,
+# separate `ninja` invocation (which does NOT inherit this configure run's environment - see
+# katago_win_apply_vcvarsall's comment) keeps working too.
#
-# Deliberately pinned to the v143 toolset family (MSVC 14.3x/14.4x) rather than probing every
-# installed toolset regardless of version: a newer MSVC STL (seen with a VS "18" preview-channel
-# toolset, MSVC 14.51+, i.e. the next "v144" family) declares math functions like isgreater/isless
-# in a way that conflicts with clang's forward declarations for CUDA/HIP device overloads ("device
-# function cannot overload host device function"), because that clang version predates the STL's
-# newly-added declarations. v143 is the toolset known to work with TheRock's clang. Probe within
-# the v143 family (oldest first) rather than hardcoding one exact version, since multiple v143
-# point releases can be installed side by side and this needs one that's actually present.
+# Every installed toolset is a candidate, probed NEWEST FIRST, and the compile probe - not a
+# hardcoded version range - decides which one gets used. The conflict this guards against is real:
+# some MSVC STL versions (first seen with a VS "18" preview-channel toolset, MSVC 14.51, i.e. the
+# "v144" family) declare math functions like isgreater/isless in a way that clashes with clang's
+# forward declarations for CUDA/HIP device overloads ("device function cannot overload host device
+# function"), when that clang predates the STL's newly-added declarations. But that is a property
+# of the specific STL/clang pair in front of us, not of the toolset family, so newer TheRock
+# builds are free to start accepting newer toolsets without an edit here - they just get picked
+# up. If the newest toolset fails the probe, the next-newest is tried, on down to the oldest.
function(katago_win_autoselect_msvc_toolset hip_compiler)
katago_win_find_vswhere(_vswhere)
if(NOT _vswhere)
@@ -226,11 +244,6 @@ function(katago_win_autoselect_msvc_toolset hip_compiler)
foreach(_t IN LISTS _tool_dirs)
if(IS_DIRECTORY "${_t}" AND EXISTS "${_t}/include/cmath")
get_filename_component(_ver "${_t}" NAME)
- # v143 toolset versions are 14.3x/14.4x (the next-generation "v144" toolset, seen with
- # VS 18 preview builds, starts at 14.5x and is the one known to conflict - see above).
- if(NOT _ver MATCHES "^14\\.[34][0-9]\\.")
- continue()
- endif()
set(_vcvarsall "${_install_path}/VC/Auxiliary/Build/vcvarsall.bat")
if(EXISTS "${_vcvarsall}")
list(APPEND _toolsets "${_ver}|${_vcvarsall}")
@@ -240,12 +253,28 @@ function(katago_win_autoselect_msvc_toolset hip_compiler)
endforeach()
if(NOT _toolsets)
- message(FATAL_ERROR "No installed MSVC v143 toolset (14.3x/14.4x) found. Open the Visual Studio Installer, choose \"Modify\" on your VS installation, go to \"Individual Components\", and install \"MSVC v143 - VS 2022 C++ x64/x86 build tools\" (a newer toolset alone, e.g. a VS 18 preview's v144, is not compatible with TheRock's bundled clang).")
+ message(FATAL_ERROR "No installed MSVC toolset found under any Visual Studio installation. Open the Visual Studio Installer, choose \"Modify\" on your VS installation, go to \"Individual Components\", and install an \"MSVC ... C++ x64/x86 build tools\" component.")
endif()
list(REMOVE_DUPLICATES _toolsets)
- list(SORT _toolsets COMPARE NATURAL ORDER ASCENDING)
+ # Newest first: prefer the most recent toolset installed, falling back to older ones only if the
+ # probe below rejects it.
+ list(SORT _toolsets COMPARE NATURAL ORDER DESCENDING)
+
+ # vcvarsall.bat PREPENDS to these rather than replacing them, so probing a second toolset in the
+ # same cmake process would otherwise leave the rejected toolset's directories trailing behind the
+ # accepted one's - and those leftovers would get baked into the cached flags below. Snapshot the
+ # pre-vcvars values and restore them before each attempt so every probe starts from the same
+ # clean environment.
+ # Held in one variable per name rather than a list: these values are themselves
+ # semicolon-separated, which a cmake list would happily shred.
+ foreach(_env_var PATH INCLUDE LIB LIBPATH)
+ set(_orig_env_${_env_var} "$ENV{${_env_var}}")
+ endforeach()
foreach(_entry IN LISTS _toolsets)
+ foreach(_env_var PATH INCLUDE LIB LIBPATH)
+ set(ENV{${_env_var}} "${_orig_env_${_env_var}}")
+ endforeach()
string(REPLACE "|" ";" _entry_list "${_entry}")
list(GET _entry_list 0 _ver)
list(GET _entry_list 1 _vcvarsall)
@@ -292,7 +321,7 @@ function(katago_win_autoselect_msvc_toolset hip_compiler)
message(STATUS "MSVC toolset ${_ver} conflicts with the HIP compiler's CUDA/HIP math headers; trying another")
endif()
endforeach()
- message(FATAL_ERROR "None of the installed MSVC v143 toolset(s) (14.3x/14.4x) compiled cleanly against TheRock's HIP compiler. This indicates a problem beyond the usual v143-vs-newer-toolset conflict this check is meant to catch - please report this along with the MSVC/TheRock versions involved.")
+ message(FATAL_ERROR "None of the installed MSVC toolsets compiled cleanly against TheRock's HIP compiler. A newer MSVC STL can conflict with an older bundled clang (\"device function cannot overload host device function\"); if every installed toolset is affected, install an older one - e.g. \"MSVC v143 - VS 2022 C++ x64/x86 build tools\" from the Visual Studio Installer's \"Individual Components\" tab - or use a newer TheRock distribution.")
endfunction()
# Normalize case here too (it is normalized again later next to the cache definition): the
@@ -300,6 +329,86 @@ endfunction()
# e.g. -DUSE_BACKEND=rocm would otherwise silently skip all the ROCm pre-project setup.
string(TOUPPER "${USE_BACKEND}" USE_BACKEND)
+# The RyzenAI backend compiles with cl.exe, so unlike the ROCm path above it
+# needs no toolset probing and no version pin - just the environment vcvarsall
+# would set, so that configuring with Ninja works from an ordinary shell instead
+# of only from a Developer Command Prompt. Reuses the helpers defined above.
+#
+# CMAKE_HOST_WIN32 rather than WIN32: the latter is a result of platform
+# detection inside project(), so it is still undefined here. The guard asks
+# whether the environment is usable rather than whether a variable happens to
+# exist, because a stray empty VCToolsInstallDir would otherwise skip the
+# bootstrap and leave the build with no compiler at all.
+if(USE_BACKEND STREQUAL "RYZENAI" AND CMAKE_HOST_WIN32 AND NOT CMAKE_CXX_COMPILER)
+ set(_katago_vctools "$ENV{VCToolsInstallDir}")
+ set(_katago_include "$ENV{INCLUDE}")
+ string(STRIP "${_katago_vctools}" _katago_vctools)
+ string(STRIP "${_katago_include}" _katago_include)
+ if(_katago_vctools STREQUAL "" OR _katago_include STREQUAL "")
+ katago_win_find_vswhere(_katago_vswhere)
+ if(_katago_vswhere)
+ execute_process(
+ COMMAND "${_katago_vswhere}" -all -products * -property installationPath
+ OUTPUT_VARIABLE _katago_vs_raw OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET)
+ string(REPLACE "\r\n" "\n" _katago_vs_raw "${_katago_vs_raw}")
+ string(REPLACE "\n" ";" _katago_vs_paths "${_katago_vs_raw}")
+ set(_katago_best_ver "")
+ set(_katago_best_bat "")
+ foreach(_p IN LISTS _katago_vs_paths)
+ if(_p STREQUAL "")
+ continue()
+ endif()
+ file(TO_CMAKE_PATH "${_p}" _p)
+ if(NOT EXISTS "${_p}/VC/Auxiliary/Build/vcvarsall.bat")
+ continue()
+ endif()
+ # Version comes from the toolset directory name; require its headers to
+ # be present so a partially-installed toolset is not selected. Compare
+ # as versions, not strings: list(SORT) mis-orders 14.9 against 14.40.
+ file(GLOB _katago_tool_dirs "${_p}/VC/Tools/MSVC/*")
+ foreach(_t IN LISTS _katago_tool_dirs)
+ if(IS_DIRECTORY "${_t}" AND EXISTS "${_t}/include/cmath")
+ get_filename_component(_ver "${_t}" NAME)
+ if(_ver MATCHES "^[0-9]+\\.[0-9]+"
+ AND (_katago_best_ver STREQUAL "" OR _ver VERSION_GREATER _katago_best_ver))
+ set(_katago_best_ver "${_ver}")
+ set(_katago_best_bat "${_p}/VC/Auxiliary/Build/vcvarsall.bat")
+ endif()
+ endif()
+ endforeach()
+ endforeach()
+ if(_katago_best_ver STREQUAL "")
+ message(WARNING "KataGo: no Visual Studio C++ toolchain found via vswhere. Install the "
+ "\"Desktop development with C++\" workload, or configure from a Developer "
+ "Command Prompt.")
+ else()
+ katago_win_apply_vcvarsall("${_katago_best_bat}" "${_katago_best_ver}")
+ message(STATUS "KataGo: using MSVC toolset ${_katago_best_ver} (found via vswhere)")
+ # The environment applied above lasts only for this configure run. A
+ # later, separate `ninja` is a sibling process that inherits none of it,
+ # so cl.exe would be found by its baked-in full path and then fail on
+ # . Bake the resolved INCLUDE/LIB into flags after project().
+ katago_win_pathlist_to_flags("$ENV{INCLUDE}" "/I" _katago_msvc_incflags)
+ katago_win_pathlist_to_flags("$ENV{LIB}" "/LIBPATH:" _katago_msvc_libflags)
+ # Visual Studio bundles Ninja, but only on the IDE's private PATH.
+ if(CMAKE_GENERATOR MATCHES "Ninja" AND NOT CMAKE_MAKE_PROGRAM)
+ find_program(_katago_ninja ninja)
+ if(NOT _katago_ninja)
+ get_filename_component(_katago_vs_root "${_katago_best_bat}" DIRECTORY)
+ get_filename_component(_katago_vs_root "${_katago_vs_root}/../../.." ABSOLUTE)
+ set(_katago_bundled_ninja
+ "${_katago_vs_root}/Common7/IDE/CommonExtensions/Microsoft/CMake/Ninja/ninja.exe")
+ if(EXISTS "${_katago_bundled_ninja}")
+ set(CMAKE_MAKE_PROGRAM "${_katago_bundled_ninja}" CACHE FILEPATH "" FORCE)
+ message(STATUS "KataGo: using Ninja bundled with Visual Studio")
+ endif()
+ endif()
+ endif()
+ endif()
+ endif()
+ endif()
+endif()
+
if(USE_BACKEND STREQUAL "METAL")
project(katago LANGUAGES CXX Swift)
elseif(USE_BACKEND STREQUAL "ROCM")
@@ -514,6 +623,17 @@ else()
project(katago)
endif()
+# See the bootstrap block above: these carry the auto-detected toolchain's header and library
+# search paths into the generated build files, so building later from a plain shell works.
+if(_katago_msvc_incflags)
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}${_katago_msvc_incflags}" CACHE STRING "" FORCE)
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}${_katago_msvc_incflags}" CACHE STRING "" FORCE)
+ foreach(_lk EXE SHARED MODULE)
+ set(CMAKE_${_lk}_LINKER_FLAGS "${CMAKE_${_lk}_LINKER_FLAGS}${_katago_msvc_libflags}"
+ CACHE STRING "" FORCE)
+ endforeach()
+endif()
+
set(CMAKE_CXX_STANDARD 17)
if(NOT CMAKE_CONFIGURATION_TYPES)
@@ -553,7 +673,7 @@ endif()
set(BUILD_DISTRIBUTED 0 CACHE BOOL "Build with http support for contributing to distributed training")
set(USE_BACKEND CACHE STRING "Neural net backend")
string(TOUPPER "${USE_BACKEND}" USE_BACKEND)
-set_property(CACHE USE_BACKEND PROPERTY STRINGS "" CUDA TENSORRT OPENCL EIGEN METAL ONNX ROCM)
+set_property(CACHE USE_BACKEND PROPERTY STRINGS "" CUDA TENSORRT OPENCL EIGEN METAL ONNX ROCM RYZENAI)
set(USE_TCMALLOC 0 CACHE BOOL "Use TCMalloc")
set(NO_GIT_REVISION 0 CACHE BOOL "Disable embedding the git revision into the compiled exe")
@@ -787,6 +907,19 @@ elseif(USE_BACKEND STREQUAL "EIGEN")
set(NEURALNET_BACKEND_SOURCES
neuralnet/eigenbackend.cpp
)
+elseif(USE_BACKEND STREQUAL "RYZENAI")
+ message(STATUS "-DUSE_BACKEND=RYZENAI, using AMD Ryzen AI NPU (XDNA/XDNA2) backend.")
+ set(NEURALNET_BACKEND_SOURCES
+ neuralnet/ryzenaibackend.cpp
+ neuralnet/ryzenaidevice.cpp
+ neuralnet/ryzenaikernel.cpp
+ neuralnet/ryzenaireference.cpp
+ neuralnet/ryzenaisequence.cpp
+ neuralnet/ryzenaishapes.cpp
+ neuralnet/ryzenaimatmul.cpp
+ )
+elseif(USE_BACKEND STREQUAL "")
+ message(WARNING "${ColorBoldRed}WARNING: Using dummy neural net backend, intended for non-neural-net testing only, will fail on any code path requiring a neural net. To use neural net, specify -DUSE_BACKEND=CUDA or -DUSE_BACKEND=TENSORRT or -DUSE_BACKEND=OPENCL or -DUSE_BACKEND=EIGEN or -DUSE_BACKEND=RYZENAI to compile with the respective backend.${ColorReset}")
elseif(USE_BACKEND STREQUAL "ONNX")
message(STATUS "-DUSE_BACKEND=ONNX, using ONNX Runtime backend.")
set(NEURALNET_BACKEND_SOURCES
@@ -1587,6 +1720,96 @@ elseif(USE_BACKEND STREQUAL "EIGEN")
message(STATUS "Found Eigen3 at ${EIGEN3_INCLUDE_DIRS}")
endif()
endif()
+elseif(USE_BACKEND STREQUAL "RYZENAI")
+ target_compile_definitions(katago PRIVATE USE_RYZENAI_BACKEND)
+ message(STATUS "RyzenAI backend: talks to the NPU directly through XRT.")
+ message(STATUS " It does NOT require the AMD Ryzen AI Software SDK, ONNX Runtime, or Python.")
+ message(STATUS " Build time needs the XRT SDK; run time needs only the NPU driver.")
+
+ # ---- XRT SDK discovery ----
+ # Nothing here hardcodes a path or a version. Resolution order:
+ # 1. -DXRT_ROOT=... given on the command line
+ # 2. the XILINX_XRT environment variable (set by XRT's own setup scripts on
+ # Linux, and by the Windows XRT SDK install step)
+ # 3. CMake's normal search paths
+ set(XRT_ROOT "" CACHE PATH "Root of the XRT SDK. Falls back to the XILINX_XRT environment variable.")
+ # Consult both every configure. Seeding the cache entry from the environment
+ # instead would stick on whatever the first configure saw, so installing the
+ # SDK afterwards would not be picked up without wiping the build directory.
+ set(_katago_xrt_hints "")
+ if(XRT_ROOT)
+ list(APPEND _katago_xrt_hints "${XRT_ROOT}")
+ endif()
+ if(DEFINED ENV{XILINX_XRT} AND NOT "$ENV{XILINX_XRT}" STREQUAL "")
+ list(APPEND _katago_xrt_hints "$ENV{XILINX_XRT}")
+ endif()
+ find_path(XRT_INCLUDE_DIR
+ NAMES xrt/xrt_device.h
+ HINTS ${_katago_xrt_hints}
+ PATH_SUFFIXES include
+ DOC "Directory containing xrt/xrt_device.h"
+ )
+ find_library(XRT_COREUTIL_LIBRARY
+ NAMES xrt_coreutil
+ HINTS ${_katago_xrt_hints}
+ PATH_SUFFIXES lib lib64
+ DOC "The xrt_coreutil library"
+ )
+ if(NOT XRT_INCLUDE_DIR OR NOT XRT_COREUTIL_LIBRARY)
+ message(FATAL_ERROR "${ColorBoldRed}The XRT SDK was not found. Install it and either set the XILINX_XRT environment variable to its root or pass -DXRT_ROOT=. On Windows, download xrt_windows_sdk.zip from the Xilinx/XRT releases and extract its xrt_sdk/xrt directory; on Linux, install the XRT packages (typically /opt/xilinx/xrt).${ColorReset}")
+ endif()
+ message(STATUS " XRT include dir: ${XRT_INCLUDE_DIR}")
+ message(STATUS " XRT library: ${XRT_COREUTIL_LIBRARY}")
+ target_include_directories(katago SYSTEM PRIVATE "${XRT_INCLUDE_DIR}")
+ target_link_libraries(katago "${XRT_COREUTIL_LIBRARY}")
+
+ # XRT's headers select std::any vs boost::any on __cplusplus. MSVC reports
+ # 199711L there unless told otherwise, which sends xrt/detail/any.h looking for
+ # a Boost that we do not ship. Set per-target so the compiler defaults CMake
+ # supplies (notably /EHsc) are left intact.
+ target_compile_options(katago PRIVATE $<$:/Zc:__cplusplus>)
+
+ # ---- NPU kernel binaries (xclbin) ----
+ # Shipped as build artifacts next to the executable, in a "ryzenai" subdir.
+ # The backend resolves them relative to the executable at run time, so a
+ # deployed install is just exe + dlls + this directory.
+ set(RYZENAI_ARTIFACT_SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/external/ryzenai_artifacts")
+ add_custom_command(TARGET katago POST_BUILD
+ COMMAND ${CMAKE_COMMAND} -E make_directory "$/ryzenai"
+ COMMAND ${CMAKE_COMMAND} -E copy_directory
+ "${RYZENAI_ARTIFACT_SRC_DIR}" "$/ryzenai"
+ COMMENT "Copying RyzenAI NPU kernel artifacts next to katago"
+ )
+
+ if(WIN32)
+ # The XRT runtime DLLs ship with the NPU driver rather than with the SDK, so
+ # they are picked up from the Windows driver store. Located by globbing on
+ # top of %SystemRoot%, so neither a path nor a driver version is hardcoded.
+ # Override with -DXRT_RUNTIME_DLL_DIR= if the driver lives elsewhere.
+ set(XRT_RUNTIME_DLL_DIR "" CACHE PATH "Directory containing xrt_coreutil.dll. Auto-detected from the NPU driver store if empty.")
+ if(NOT XRT_RUNTIME_DLL_DIR)
+ file(GLOB _katago_xrt_driver_dirs
+ "$ENV{SystemRoot}/System32/DriverStore/FileRepository/*/xrt_coreutil.dll")
+ if(_katago_xrt_driver_dirs)
+ # Several driver revisions can coexist in the store; take the newest.
+ list(SORT _katago_xrt_driver_dirs COMPARE FILE_BASENAME ORDER DESCENDING)
+ list(GET _katago_xrt_driver_dirs 0 _katago_xrt_dll)
+ get_filename_component(XRT_RUNTIME_DLL_DIR "${_katago_xrt_dll}" DIRECTORY)
+ endif()
+ endif()
+ if(XRT_RUNTIME_DLL_DIR)
+ message(STATUS " XRT runtime DLLs: ${XRT_RUNTIME_DLL_DIR}")
+ file(GLOB _katago_xrt_runtime_dlls "${XRT_RUNTIME_DLL_DIR}/xrt_*.dll")
+ foreach(_katago_xrt_dll IN LISTS _katago_xrt_runtime_dlls)
+ add_custom_command(TARGET katago POST_BUILD
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different
+ "${_katago_xrt_dll}" "$"
+ )
+ endforeach()
+ else()
+ message(WARNING "${ColorBoldRed}Could not locate xrt_coreutil.dll in the driver store. katago will need it on PATH at run time, or pass -DXRT_RUNTIME_DLL_DIR=.${ColorReset}")
+ endif()
+ endif()
elseif(USE_BACKEND STREQUAL "ONNX")
target_compile_definitions(katago PRIVATE USE_ONNX_BACKEND)
@@ -1743,6 +1966,48 @@ if(WIN32 AND ZLIB_LIBRARY)
endif()
endif()
+# Last resort before giving up: a zlib from a toolchain that is already on the
+# machine but does not advertise itself. conda ships one, so does vcpkg. This
+# runs after the auto-fetch logic above, so it only fires when that was disabled
+# or found nothing, and an explicit -DZLIB_ROOT= still wins over all of it.
+if(CMAKE_HOST_WIN32 AND NOT ZLIB_ROOT AND NOT ZLIB_LIBRARY)
+ set(_katago_zlib_roots "")
+ if(DEFINED ENV{CONDA_PREFIX})
+ file(TO_CMAKE_PATH "$ENV{CONDA_PREFIX}" _p)
+ list(APPEND _katago_zlib_roots "${_p}/Library")
+ endif()
+ if(DEFINED ENV{VCPKG_ROOT})
+ file(TO_CMAKE_PATH "$ENV{VCPKG_ROOT}" _p)
+ list(APPEND _katago_zlib_roots "${_p}/installed/x64-windows")
+ endif()
+ if(DEFINED ENV{USERPROFILE})
+ # A base conda install is not "activated", so it exports no CONDA_PREFIX;
+ # its default location under the user profile is the only thing to go on.
+ file(TO_CMAKE_PATH "$ENV{USERPROFILE}" _home)
+ foreach(_dist miniconda3 anaconda3 miniforge3 mambaforge)
+ list(APPEND _katago_zlib_roots "${_home}/${_dist}/Library")
+ endforeach()
+ endif()
+ foreach(_root IN LISTS _katago_zlib_roots)
+ if(EXISTS "${_root}/include/zlib.h")
+ # Prefer the import library for the DLL over the static one, to match how
+ # the rest of KataGo's dependencies are linked here.
+ foreach(_cand zdll.lib zlib.lib z.lib)
+ if(EXISTS "${_root}/lib/${_cand}")
+ set(ZLIB_ROOT "${_root}" CACHE PATH "Root of a zlib install" FORCE)
+ set(ZLIB_INCLUDE_DIR "${_root}/include" CACHE PATH "" FORCE)
+ set(ZLIB_LIBRARY "${_root}/lib/${_cand}" CACHE FILEPATH "" FORCE)
+ message(STATUS "KataGo: using zlib from ${_root}")
+ break()
+ endif()
+ endforeach()
+ endif()
+ if(ZLIB_ROOT)
+ break()
+ endif()
+ endforeach()
+endif()
+
find_package(ZLIB)
if(ZLIB_FOUND)
include_directories(${ZLIB_INCLUDE_DIRS})
diff --git a/cpp/configs/gtp_example.cfg b/cpp/configs/gtp_example.cfg
index 1b8982138..e96b362fb 100644
--- a/cpp/configs/gtp_example.cfg
+++ b/cpp/configs/gtp_example.cfg
@@ -665,6 +665,70 @@ searchFactorWhenWinningThreshold = 0.95
# Default: numSearchThreads
# numEigenThreadsPerModel = X
+# ------------------------------
+# RyzenAI (AMD NPU) settings
+# ------------------------------
+# These only apply when using the RyzenAI version of KataGo (USE_BACKEND=RYZENAI).
+#
+# This backend talks to the NPU directly through XRT. You do NOT need to install
+# the AMD Ryzen AI Software SDK, ONNX Runtime, or Python - at runtime only the
+# NPU driver is required.
+
+# Directory containing the NPU kernel artifacts (*.xclbin). If unset, defaults
+# to a "ryzenai" subdirectory next to the katago executable.
+# ryzenaiArtifactDir = C:/path/to/ryzenai/artifacts
+
+# Numeric format requested for NPU kernels: auto, bf16, or bfp16.
+#
+# auto - bfp16 on XDNA2 (Strix and later), bf16 on XDNA1. This is the default.
+# bfp16 - block floating point. Faster, and XDNA2 only.
+# bf16 - more accurate, and the only format XDNA1 has.
+#
+# A single bfp16 matmul carries roughly 3% relative error against float32 where
+# bf16 carries ~2e-5, but that is input quantisation and the accumulator is
+# float32 either way, so it does not compound the way the per-matmul figure
+# suggests: measured end to end over a whole evaluation, bfp16 lands within
+# about 1.3-2x of bf16's deviation from the CPU reference, and the policy's top
+# ten moves come out the same. Set bf16 explicitly if you would rather have the
+# accuracy than the speed.
+# ryzenaiDtype = auto
+
+# How many of the NPU's columns one kernel may use. More is not automatically
+# better: each distinct kernel is its own hardware context, and a small net ends
+# up losing more to context switching than it gains from the extra width. Large
+# nets do benefit. Measure with `katago benchmark` before changing this.
+# ryzenaiMaxColumns = 4
+
+# Set to true to fail hard if no NPU kernel artifacts are found, instead of
+# falling back to the CPU reference forward path. Useful for confirming that the
+# NPU really is being used, since the fallback is silent and correct - just slow.
+# ryzenaiForceNpuOnly = false
+
+# Set to true to log where each evaluation's time went (host-side packing, NPU
+# dispatch, unpacking, and the operators still on the CPU), plus any kernel that
+# was wanted but missing. Start here when performance is not what you expect.
+# ryzenaiVerboseDispatch = false
+
+# Set to true to log every matrix shape this model asks for. Needed only when
+# generating kernels for a network that has none yet - see Compiling.md.
+# ryzenaiShapeReport = false
+
+# Collapse every layer onto one kernel by padding reduction dimensions up to this
+# value, trading wasted arithmetic for fewer context switches. -1 lets KataGo
+# decide per model, which is almost always right.
+# ryzenaiForceK = -1
+
+# Set to true to run a built-in matrix-multiply check against the NPU at startup.
+# ryzenaiSelfTest = false
+
+# For one NPU: optionally uncomment and change this if the device to use is guessed incorrectly.
+# ryzenaiDeviceToUse = 0
+
+# For multiple threads/devices: uncomment these and replace X and Y with the device ids.
+# (AND also set numNNServerThreadsPerModel above)
+# ryzenaiDeviceToUseThread0 = X
+# ryzenaiDeviceToUseThread1 = Y
+
# ===========================================================================
# Root move selection and biases
# ===========================================================================
diff --git a/cpp/external/ryzenai_artifacts/README.md b/cpp/external/ryzenai_artifacts/README.md
new file mode 100644
index 000000000..53473ceb7
--- /dev/null
+++ b/cpp/external/ryzenai_artifacts/README.md
@@ -0,0 +1,34 @@
+# RyzenAI NPU kernel artifacts
+
+Compiled AI Engine kernel binaries for the RyzenAI backend. Everything here is a
+build product of the kernel sources in `../kernels/`, committed so that neither
+end users nor people compiling KataGo need the AIE toolchain.
+
+CMake copies this whole directory next to `katago` as `ryzenai/` at build time,
+and the backend resolves it relative to the running executable, so a deployed
+install is just the executable, the XRT runtime DLLs, and this directory.
+
+## Layout
+
+```
+manifest.json ABI contract shared with cpp/neuralnet/ryzenai/manifest.h
+bf16/*.xclbin bfloat16 kernels
+```
+
+## Status
+
+M2 first kernel landed: `bf16/gemm_bf16_M{M}K{K}N{N}.xclbin` + `.insts.bin`
+for (M,K,N) in {(384,384,384), (384,512,512), (384,768,768)} — single-core
+bf16×bf16→fp32 GEMM (64×64×64 tiles via mem tile), built by
+`../kernels/build_kernels.py` from `../kernels/gemm_bf16.py`, verified on
+hardware against numpy. These are per-shape AOT artifacts: M/K/N are baked
+into each `.insts.bin`. The shape-independent form (runtime-generated
+instruction stream per the "What an xclbin is parameterized by" section
+below) is the M3 goal; `manifest.json` pins the ABI either way.
+
+## What an xclbin is parameterized by
+
+`(target device, core program, dataflow topology, compile-time tile sizes)` —
+**not** by tensor shape. M/K/N, layer count and batch size all live in the
+runtime instruction stream, so changing model, board size or batch size does
+not require a different xclbin.
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K1024.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K1024.insts.bin
new file mode 100644
index 000000000..71d072e58
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K1024.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K1024.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K1024.xclbin
new file mode 100644
index 000000000..71071aeea
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K1024.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K1088.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K1088.insts.bin
new file mode 100644
index 000000000..975f5e755
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K1088.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K1088.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K1088.xclbin
new file mode 100644
index 000000000..ac7b26c04
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K1088.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K1152.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K1152.insts.bin
new file mode 100644
index 000000000..607afdceb
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K1152.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K1152.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K1152.xclbin
new file mode 100644
index 000000000..9c7d8430f
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K1152.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K1216.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K1216.insts.bin
new file mode 100644
index 000000000..058509492
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K1216.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K1216.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K1216.xclbin
new file mode 100644
index 000000000..96b4ef8f8
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K1216.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K128.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K128.insts.bin
new file mode 100644
index 000000000..cb2d1c030
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K128.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K128.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K128.xclbin
new file mode 100644
index 000000000..986462c3b
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K128.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K1280.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K1280.insts.bin
new file mode 100644
index 000000000..ee181535b
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K1280.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K1280.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K1280.xclbin
new file mode 100644
index 000000000..9c18dd20f
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K1280.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K1344.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K1344.insts.bin
new file mode 100644
index 000000000..b72f20c5f
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K1344.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K1344.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K1344.xclbin
new file mode 100644
index 000000000..e5a836569
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K1344.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K1408.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K1408.insts.bin
new file mode 100644
index 000000000..a6a10b0d5
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K1408.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K1408.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K1408.xclbin
new file mode 100644
index 000000000..852d75aa0
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K1408.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K1472.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K1472.insts.bin
new file mode 100644
index 000000000..b1197ebc9
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K1472.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K1472.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K1472.xclbin
new file mode 100644
index 000000000..5aa967853
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K1472.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K1536.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K1536.insts.bin
new file mode 100644
index 000000000..f840c13e2
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K1536.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K1536.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K1536.xclbin
new file mode 100644
index 000000000..3bd132f76
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K1536.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K1728.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K1728.insts.bin
new file mode 100644
index 000000000..7ccdc3d77
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K1728.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K1728.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K1728.xclbin
new file mode 100644
index 000000000..e858e5674
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K1728.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K192.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K192.insts.bin
new file mode 100644
index 000000000..80f71c7b5
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K192.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K192.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K192.xclbin
new file mode 100644
index 000000000..dd502c6b4
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K192.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K2304.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K2304.insts.bin
new file mode 100644
index 000000000..1868d70d8
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K2304.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K2304.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K2304.xclbin
new file mode 100644
index 000000000..d7da02d54
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K2304.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K256.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K256.insts.bin
new file mode 100644
index 000000000..233493597
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K256.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K256.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K256.xclbin
new file mode 100644
index 000000000..30ecaf4d8
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K256.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K2880.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K2880.insts.bin
new file mode 100644
index 000000000..543f08d18
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K2880.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K2880.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K2880.xclbin
new file mode 100644
index 000000000..00adb8a7f
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K2880.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K320.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K320.insts.bin
new file mode 100644
index 000000000..d3da630d5
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K320.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K320.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K320.xclbin
new file mode 100644
index 000000000..0b0b9a6f7
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K320.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K3456.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K3456.insts.bin
new file mode 100644
index 000000000..25c6c244c
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K3456.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K3456.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K3456.xclbin
new file mode 100644
index 000000000..0e4a1ad97
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K3456.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K384.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K384.insts.bin
new file mode 100644
index 000000000..271f6d3ac
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K384.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K384.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K384.xclbin
new file mode 100644
index 000000000..b9f880ea3
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K384.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K4032.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K4032.insts.bin
new file mode 100644
index 000000000..954df43c1
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K4032.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K4032.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K4032.xclbin
new file mode 100644
index 000000000..a7de5fce1
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K4032.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K448.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K448.insts.bin
new file mode 100644
index 000000000..4cea74c18
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K448.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K448.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K448.xclbin
new file mode 100644
index 000000000..0707f3e46
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K448.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K4608.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K4608.insts.bin
new file mode 100644
index 000000000..d6e7641ee
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K4608.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K4608.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K4608.xclbin
new file mode 100644
index 000000000..55a138db2
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K4608.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K512.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K512.insts.bin
new file mode 100644
index 000000000..db416b319
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K512.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K512.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K512.xclbin
new file mode 100644
index 000000000..c58a4085a
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K512.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K5184.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K5184.insts.bin
new file mode 100644
index 000000000..23e8e4ed8
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K5184.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K5184.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K5184.xclbin
new file mode 100644
index 000000000..78c066dcb
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K5184.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K576.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K576.insts.bin
new file mode 100644
index 000000000..28b503e98
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K576.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K576.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K576.xclbin
new file mode 100644
index 000000000..2e39deb5e
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K576.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K5760.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K5760.insts.bin
new file mode 100644
index 000000000..951456cf7
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K5760.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K5760.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K5760.xclbin
new file mode 100644
index 000000000..ff1ab2393
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K5760.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K6336.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K6336.insts.bin
new file mode 100644
index 000000000..e194995f2
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K6336.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K6336.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K6336.xclbin
new file mode 100644
index 000000000..e401d9ab6
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K6336.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K64.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K64.insts.bin
new file mode 100644
index 000000000..7974b11df
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K64.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K64.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K64.xclbin
new file mode 100644
index 000000000..dc9ced24a
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K64.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K640.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K640.insts.bin
new file mode 100644
index 000000000..be203bdd9
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K640.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K640.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K640.xclbin
new file mode 100644
index 000000000..490303911
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K640.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K6912.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K6912.insts.bin
new file mode 100644
index 000000000..8f47a3626
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K6912.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K6912.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K6912.xclbin
new file mode 100644
index 000000000..76954ac8d
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K6912.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K704.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K704.insts.bin
new file mode 100644
index 000000000..9de1533a3
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K704.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K704.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K704.xclbin
new file mode 100644
index 000000000..771265592
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K704.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K768.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K768.insts.bin
new file mode 100644
index 000000000..ab0ad45d4
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K768.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K768.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K768.xclbin
new file mode 100644
index 000000000..5e449c44f
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K768.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K832.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K832.insts.bin
new file mode 100644
index 000000000..7f904f8cd
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K832.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K832.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K832.xclbin
new file mode 100644
index 000000000..cbfa75f3f
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K832.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K896.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K896.insts.bin
new file mode 100644
index 000000000..027e3f99d
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K896.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K896.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K896.xclbin
new file mode 100644
index 000000000..e4682c6db
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K896.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K960.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K960.insts.bin
new file mode 100644
index 000000000..a939cbed3
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K960.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K960.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K960.xclbin
new file mode 100644
index 000000000..de2f9ba90
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_1col/gemm_bf16_K960.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K1024.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K1024.insts.bin
new file mode 100644
index 000000000..7dd5a285e
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K1024.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K1024.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K1024.xclbin
new file mode 100644
index 000000000..549258322
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K1024.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K1088.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K1088.insts.bin
new file mode 100644
index 000000000..64919bdc4
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K1088.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K1088.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K1088.xclbin
new file mode 100644
index 000000000..82482b6f3
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K1088.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K1152.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K1152.insts.bin
new file mode 100644
index 000000000..2dfe888ee
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K1152.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K1152.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K1152.xclbin
new file mode 100644
index 000000000..023e3e46b
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K1152.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K1216.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K1216.insts.bin
new file mode 100644
index 000000000..4ca1d83af
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K1216.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K1216.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K1216.xclbin
new file mode 100644
index 000000000..e65df9b33
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K1216.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K128.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K128.insts.bin
new file mode 100644
index 000000000..4e350c1cb
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K128.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K128.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K128.xclbin
new file mode 100644
index 000000000..226a1e464
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K128.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K1280.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K1280.insts.bin
new file mode 100644
index 000000000..b92cbd029
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K1280.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K1280.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K1280.xclbin
new file mode 100644
index 000000000..f3b19679f
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K1280.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K1344.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K1344.insts.bin
new file mode 100644
index 000000000..4fdae56fe
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K1344.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K1344.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K1344.xclbin
new file mode 100644
index 000000000..9b32c8867
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K1344.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K1408.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K1408.insts.bin
new file mode 100644
index 000000000..e44e05f1a
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K1408.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K1408.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K1408.xclbin
new file mode 100644
index 000000000..727c9bd05
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K1408.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K1472.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K1472.insts.bin
new file mode 100644
index 000000000..2ff8741e2
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K1472.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K1472.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K1472.xclbin
new file mode 100644
index 000000000..90ee2ed42
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K1472.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K1536.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K1536.insts.bin
new file mode 100644
index 000000000..97676fc97
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K1536.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K1536.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K1536.xclbin
new file mode 100644
index 000000000..c8d202895
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K1536.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K1728.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K1728.insts.bin
new file mode 100644
index 000000000..edf03be9f
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K1728.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K1728.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K1728.xclbin
new file mode 100644
index 000000000..77c4d6fe7
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K1728.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K192.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K192.insts.bin
new file mode 100644
index 000000000..a2b68ea5c
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K192.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K192.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K192.xclbin
new file mode 100644
index 000000000..b9cbf3dc1
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K192.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K2304.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K2304.insts.bin
new file mode 100644
index 000000000..0958e1037
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K2304.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K2304.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K2304.xclbin
new file mode 100644
index 000000000..216b2bd41
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K2304.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K256.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K256.insts.bin
new file mode 100644
index 000000000..2c07be337
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K256.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K256.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K256.xclbin
new file mode 100644
index 000000000..b196fce9c
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K256.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K2880.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K2880.insts.bin
new file mode 100644
index 000000000..a1575e496
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K2880.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K2880.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K2880.xclbin
new file mode 100644
index 000000000..6d34e13a3
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K2880.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K320.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K320.insts.bin
new file mode 100644
index 000000000..552346d0f
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K320.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K320.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K320.xclbin
new file mode 100644
index 000000000..a3260adde
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K320.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K3456.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K3456.insts.bin
new file mode 100644
index 000000000..7db53b3ad
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K3456.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K3456.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K3456.xclbin
new file mode 100644
index 000000000..ab51684e4
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K3456.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K384.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K384.insts.bin
new file mode 100644
index 000000000..b747772de
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K384.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K384.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K384.xclbin
new file mode 100644
index 000000000..6066790af
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K384.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K4032.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K4032.insts.bin
new file mode 100644
index 000000000..3f01c4bef
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K4032.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K4032.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K4032.xclbin
new file mode 100644
index 000000000..eeb7f6daf
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K4032.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K448.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K448.insts.bin
new file mode 100644
index 000000000..5bbc2c803
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K448.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K448.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K448.xclbin
new file mode 100644
index 000000000..d9a9e83af
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K448.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K4608.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K4608.insts.bin
new file mode 100644
index 000000000..72fc6873f
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K4608.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K4608.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K4608.xclbin
new file mode 100644
index 000000000..82061ce92
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K4608.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K512.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K512.insts.bin
new file mode 100644
index 000000000..dd5cf038e
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K512.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K512.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K512.xclbin
new file mode 100644
index 000000000..ae38647fc
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K512.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K5184.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K5184.insts.bin
new file mode 100644
index 000000000..bff8949ff
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K5184.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K5184.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K5184.xclbin
new file mode 100644
index 000000000..b991d4c5f
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K5184.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K576.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K576.insts.bin
new file mode 100644
index 000000000..319a9e207
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K576.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K576.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K576.xclbin
new file mode 100644
index 000000000..290227ceb
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K576.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K5760.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K5760.insts.bin
new file mode 100644
index 000000000..ae66b1363
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K5760.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K5760.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K5760.xclbin
new file mode 100644
index 000000000..09f77c538
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K5760.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K6336.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K6336.insts.bin
new file mode 100644
index 000000000..2332d84cf
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K6336.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K6336.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K6336.xclbin
new file mode 100644
index 000000000..d2e2d527e
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K6336.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K64.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K64.insts.bin
new file mode 100644
index 000000000..7dda4f963
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K64.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K64.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K64.xclbin
new file mode 100644
index 000000000..954934e57
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K64.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K640.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K640.insts.bin
new file mode 100644
index 000000000..959d1568e
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K640.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K640.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K640.xclbin
new file mode 100644
index 000000000..6d5556d88
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K640.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K6912.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K6912.insts.bin
new file mode 100644
index 000000000..02a4b9562
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K6912.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K6912.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K6912.xclbin
new file mode 100644
index 000000000..51585b665
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K6912.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K704.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K704.insts.bin
new file mode 100644
index 000000000..d623b6a4f
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K704.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K704.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K704.xclbin
new file mode 100644
index 000000000..c77c0202d
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K704.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K768.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K768.insts.bin
new file mode 100644
index 000000000..6068f4df2
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K768.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K768.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K768.xclbin
new file mode 100644
index 000000000..1226e1200
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K768.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K832.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K832.insts.bin
new file mode 100644
index 000000000..e8ddb40e6
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K832.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K832.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K832.xclbin
new file mode 100644
index 000000000..8dc04f930
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K832.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K896.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K896.insts.bin
new file mode 100644
index 000000000..bd2d3d8e5
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K896.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K896.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K896.xclbin
new file mode 100644
index 000000000..96cf55e65
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K896.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K960.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K960.insts.bin
new file mode 100644
index 000000000..f1a875a38
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K960.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K960.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K960.xclbin
new file mode 100644
index 000000000..a973a6a6b
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_2col/gemm_bf16_K960.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K1024.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K1024.insts.bin
new file mode 100644
index 000000000..ae028dfd4
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K1024.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K1024.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K1024.xclbin
new file mode 100644
index 000000000..fec15a4ca
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K1024.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K1088.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K1088.insts.bin
new file mode 100644
index 000000000..9ec8e5e75
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K1088.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K1088.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K1088.xclbin
new file mode 100644
index 000000000..0f6f303e0
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K1088.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K1152.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K1152.insts.bin
new file mode 100644
index 000000000..83e2f2911
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K1152.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K1152.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K1152.xclbin
new file mode 100644
index 000000000..c118af420
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K1152.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K1216.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K1216.insts.bin
new file mode 100644
index 000000000..56bd566b7
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K1216.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K1216.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K1216.xclbin
new file mode 100644
index 000000000..8af22be77
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K1216.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K128.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K128.insts.bin
new file mode 100644
index 000000000..6a4f107c4
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K128.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K128.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K128.xclbin
new file mode 100644
index 000000000..c480a8979
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K128.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K1280.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K1280.insts.bin
new file mode 100644
index 000000000..124175f63
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K1280.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K1280.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K1280.xclbin
new file mode 100644
index 000000000..0b2d1ee73
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K1280.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K1344.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K1344.insts.bin
new file mode 100644
index 000000000..344244434
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K1344.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K1344.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K1344.xclbin
new file mode 100644
index 000000000..d4c844ce8
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K1344.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K1408.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K1408.insts.bin
new file mode 100644
index 000000000..09dcc26cf
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K1408.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K1408.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K1408.xclbin
new file mode 100644
index 000000000..59122cbb0
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K1408.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K1472.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K1472.insts.bin
new file mode 100644
index 000000000..9de67a383
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K1472.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K1472.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K1472.xclbin
new file mode 100644
index 000000000..c4872da85
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K1472.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K1536.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K1536.insts.bin
new file mode 100644
index 000000000..29d01dc08
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K1536.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K1536.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K1536.xclbin
new file mode 100644
index 000000000..79bbe933f
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K1536.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K1728.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K1728.insts.bin
new file mode 100644
index 000000000..32dcb0507
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K1728.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K1728.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K1728.xclbin
new file mode 100644
index 000000000..fde3b53c3
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K1728.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K192.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K192.insts.bin
new file mode 100644
index 000000000..6cf5e1370
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K192.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K192.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K192.xclbin
new file mode 100644
index 000000000..d0152de2f
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K192.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K2304.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K2304.insts.bin
new file mode 100644
index 000000000..20ea25141
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K2304.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K2304.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K2304.xclbin
new file mode 100644
index 000000000..5a9a5b9be
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K2304.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K256.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K256.insts.bin
new file mode 100644
index 000000000..603eed122
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K256.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K256.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K256.xclbin
new file mode 100644
index 000000000..694d9a860
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K256.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K2880.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K2880.insts.bin
new file mode 100644
index 000000000..8c64fb14b
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K2880.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K2880.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K2880.xclbin
new file mode 100644
index 000000000..050862bfd
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K2880.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K320.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K320.insts.bin
new file mode 100644
index 000000000..9171ffd94
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K320.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K320.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K320.xclbin
new file mode 100644
index 000000000..0dc745826
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K320.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K3456.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K3456.insts.bin
new file mode 100644
index 000000000..182565c16
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K3456.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K3456.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K3456.xclbin
new file mode 100644
index 000000000..000ea1720
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K3456.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K384.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K384.insts.bin
new file mode 100644
index 000000000..5df33ed48
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K384.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K384.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K384.xclbin
new file mode 100644
index 000000000..0fac40f4a
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K384.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K4032.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K4032.insts.bin
new file mode 100644
index 000000000..83ce6fb05
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K4032.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K4032.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K4032.xclbin
new file mode 100644
index 000000000..5c26d00cc
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K4032.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K448.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K448.insts.bin
new file mode 100644
index 000000000..9ba9c37ab
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K448.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K448.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K448.xclbin
new file mode 100644
index 000000000..425364a3a
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K448.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K4608.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K4608.insts.bin
new file mode 100644
index 000000000..5f17c4a0e
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K4608.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K4608.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K4608.xclbin
new file mode 100644
index 000000000..ad1f715a5
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K4608.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K512.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K512.insts.bin
new file mode 100644
index 000000000..c2c6a3f69
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K512.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K512.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K512.xclbin
new file mode 100644
index 000000000..69bc587a5
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K512.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K5184.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K5184.insts.bin
new file mode 100644
index 000000000..cb70f5a63
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K5184.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K5184.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K5184.xclbin
new file mode 100644
index 000000000..3672e1bb6
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K5184.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K576.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K576.insts.bin
new file mode 100644
index 000000000..edf667f4f
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K576.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K576.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K576.xclbin
new file mode 100644
index 000000000..1533f35c6
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K576.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K5760.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K5760.insts.bin
new file mode 100644
index 000000000..127df17c6
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K5760.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K5760.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K5760.xclbin
new file mode 100644
index 000000000..6ab1d1b63
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K5760.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K6336.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K6336.insts.bin
new file mode 100644
index 000000000..e1ab5b16b
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K6336.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K6336.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K6336.xclbin
new file mode 100644
index 000000000..3a40d95b7
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K6336.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K64.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K64.insts.bin
new file mode 100644
index 000000000..293e1005e
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K64.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K64.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K64.xclbin
new file mode 100644
index 000000000..8b02fd6ed
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K64.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K640.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K640.insts.bin
new file mode 100644
index 000000000..b0ace521d
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K640.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K640.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K640.xclbin
new file mode 100644
index 000000000..f2a834ab4
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K640.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K6912.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K6912.insts.bin
new file mode 100644
index 000000000..1e16f1958
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K6912.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K6912.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K6912.xclbin
new file mode 100644
index 000000000..08746a939
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K6912.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K704.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K704.insts.bin
new file mode 100644
index 000000000..eb96e8810
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K704.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K704.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K704.xclbin
new file mode 100644
index 000000000..922e53637
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K704.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K768.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K768.insts.bin
new file mode 100644
index 000000000..6360cc38b
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K768.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K768.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K768.xclbin
new file mode 100644
index 000000000..68664b042
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K768.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K832.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K832.insts.bin
new file mode 100644
index 000000000..eda8c8c63
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K832.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K832.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K832.xclbin
new file mode 100644
index 000000000..fc6f78f6b
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K832.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K896.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K896.insts.bin
new file mode 100644
index 000000000..f6cf51a68
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K896.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K896.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K896.xclbin
new file mode 100644
index 000000000..d9d6329a1
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K896.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K960.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K960.insts.bin
new file mode 100644
index 000000000..c17fa8fa9
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K960.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K960.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K960.xclbin
new file mode 100644
index 000000000..3645a1000
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu1_4col/gemm_bf16_K960.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K1024.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K1024.insts.bin
new file mode 100644
index 000000000..350653420
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K1024.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K1024.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K1024.xclbin
new file mode 100644
index 000000000..24eb75d36
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K1024.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K1088.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K1088.insts.bin
new file mode 100644
index 000000000..827007b80
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K1088.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K1088.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K1088.xclbin
new file mode 100644
index 000000000..9bfdb266a
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K1088.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K1152.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K1152.insts.bin
new file mode 100644
index 000000000..611b1d73e
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K1152.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K1152.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K1152.xclbin
new file mode 100644
index 000000000..ec051451a
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K1152.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K1216.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K1216.insts.bin
new file mode 100644
index 000000000..3dd5cb105
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K1216.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K1216.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K1216.xclbin
new file mode 100644
index 000000000..663d0a143
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K1216.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K128.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K128.insts.bin
new file mode 100644
index 000000000..25b377b3a
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K128.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K128.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K128.xclbin
new file mode 100644
index 000000000..a8a7735ed
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K128.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K1280.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K1280.insts.bin
new file mode 100644
index 000000000..9c0d93e21
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K1280.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K1280.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K1280.xclbin
new file mode 100644
index 000000000..6552795c4
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K1280.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K1344.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K1344.insts.bin
new file mode 100644
index 000000000..6b76ab7e4
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K1344.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K1344.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K1344.xclbin
new file mode 100644
index 000000000..e208f6802
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K1344.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K1408.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K1408.insts.bin
new file mode 100644
index 000000000..b22bf81fc
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K1408.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K1408.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K1408.xclbin
new file mode 100644
index 000000000..a103edb14
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K1408.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K1472.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K1472.insts.bin
new file mode 100644
index 000000000..c653c311c
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K1472.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K1472.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K1472.xclbin
new file mode 100644
index 000000000..54156a2d2
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K1472.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K1536.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K1536.insts.bin
new file mode 100644
index 000000000..180f2aa73
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K1536.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K1536.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K1536.xclbin
new file mode 100644
index 000000000..9f8fade36
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K1536.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K1728.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K1728.insts.bin
new file mode 100644
index 000000000..280777836
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K1728.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K1728.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K1728.xclbin
new file mode 100644
index 000000000..1c11b4d71
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K1728.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K192.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K192.insts.bin
new file mode 100644
index 000000000..54c9870b5
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K192.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K192.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K192.xclbin
new file mode 100644
index 000000000..d6fa926a5
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K192.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K2304.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K2304.insts.bin
new file mode 100644
index 000000000..f66f5e6cf
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K2304.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K2304.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K2304.xclbin
new file mode 100644
index 000000000..dfc1c189a
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K2304.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K256.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K256.insts.bin
new file mode 100644
index 000000000..f394da966
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K256.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K256.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K256.xclbin
new file mode 100644
index 000000000..4985b4f28
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K256.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K2880.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K2880.insts.bin
new file mode 100644
index 000000000..e73a6d81b
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K2880.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K2880.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K2880.xclbin
new file mode 100644
index 000000000..914a2072b
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K2880.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K320.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K320.insts.bin
new file mode 100644
index 000000000..892f903ba
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K320.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K320.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K320.xclbin
new file mode 100644
index 000000000..48f7f87df
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K320.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K3456.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K3456.insts.bin
new file mode 100644
index 000000000..8a9c13938
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K3456.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K3456.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K3456.xclbin
new file mode 100644
index 000000000..c24d0bafc
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K3456.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K384.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K384.insts.bin
new file mode 100644
index 000000000..1110a1cf1
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K384.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K384.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K384.xclbin
new file mode 100644
index 000000000..3219c40eb
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K384.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K4032.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K4032.insts.bin
new file mode 100644
index 000000000..8afab021e
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K4032.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K4032.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K4032.xclbin
new file mode 100644
index 000000000..ff604b84c
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K4032.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K448.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K448.insts.bin
new file mode 100644
index 000000000..facd35956
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K448.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K448.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K448.xclbin
new file mode 100644
index 000000000..6e09e74bd
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K448.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K4608.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K4608.insts.bin
new file mode 100644
index 000000000..a5070232a
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K4608.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K4608.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K4608.xclbin
new file mode 100644
index 000000000..dca21a2b9
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K4608.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K512.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K512.insts.bin
new file mode 100644
index 000000000..75eb7c84f
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K512.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K512.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K512.xclbin
new file mode 100644
index 000000000..9a2f2f49e
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K512.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K5184.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K5184.insts.bin
new file mode 100644
index 000000000..0aa903c7c
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K5184.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K5184.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K5184.xclbin
new file mode 100644
index 000000000..bb6565b31
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K5184.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K576.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K576.insts.bin
new file mode 100644
index 000000000..bf6a90ca5
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K576.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K576.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K576.xclbin
new file mode 100644
index 000000000..40c99dfc9
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K576.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K5760.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K5760.insts.bin
new file mode 100644
index 000000000..e395cbcd7
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K5760.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K5760.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K5760.xclbin
new file mode 100644
index 000000000..ca9655d32
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K5760.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K6336.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K6336.insts.bin
new file mode 100644
index 000000000..1b0f11f5c
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K6336.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K6336.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K6336.xclbin
new file mode 100644
index 000000000..35b0d8fd4
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K6336.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K64.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K64.insts.bin
new file mode 100644
index 000000000..0e81bc25d
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K64.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K64.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K64.xclbin
new file mode 100644
index 000000000..bf361d2e2
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K64.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K640.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K640.insts.bin
new file mode 100644
index 000000000..d37991e08
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K640.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K640.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K640.xclbin
new file mode 100644
index 000000000..4d8ac966c
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K640.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K6912.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K6912.insts.bin
new file mode 100644
index 000000000..25ad11d32
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K6912.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K6912.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K6912.xclbin
new file mode 100644
index 000000000..a443ee072
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K6912.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K704.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K704.insts.bin
new file mode 100644
index 000000000..6ede7cbf1
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K704.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K704.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K704.xclbin
new file mode 100644
index 000000000..d5826cc3d
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K704.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K768.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K768.insts.bin
new file mode 100644
index 000000000..9e5a4b13e
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K768.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K768.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K768.xclbin
new file mode 100644
index 000000000..20e2a20fe
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K768.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K832.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K832.insts.bin
new file mode 100644
index 000000000..665e9a7a6
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K832.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K832.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K832.xclbin
new file mode 100644
index 000000000..41743c68d
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K832.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K896.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K896.insts.bin
new file mode 100644
index 000000000..2e24981a2
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K896.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K896.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K896.xclbin
new file mode 100644
index 000000000..9d5b2d6c7
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K896.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K960.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K960.insts.bin
new file mode 100644
index 000000000..21319011a
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K960.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K960.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K960.xclbin
new file mode 100644
index 000000000..a1e9eb3af
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col/gemm_bf16_K960.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col_swiglu/gemm_swiglu_bf16_K1152.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col_swiglu/gemm_swiglu_bf16_K1152.insts.bin
new file mode 100644
index 000000000..611b1d73e
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col_swiglu/gemm_swiglu_bf16_K1152.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col_swiglu/gemm_swiglu_bf16_K1152.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col_swiglu/gemm_swiglu_bf16_K1152.xclbin
new file mode 100644
index 000000000..0d1eab8e7
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col_swiglu/gemm_swiglu_bf16_K1152.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col_swiglu/gemm_swiglu_bf16_K512.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col_swiglu/gemm_swiglu_bf16_K512.insts.bin
new file mode 100644
index 000000000..75eb7c84f
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col_swiglu/gemm_swiglu_bf16_K512.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col_swiglu/gemm_swiglu_bf16_K512.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col_swiglu/gemm_swiglu_bf16_K512.xclbin
new file mode 100644
index 000000000..b7876e8c2
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col_swiglu/gemm_swiglu_bf16_K512.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col_swiglu/gemm_swiglu_bf16_K768.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col_swiglu/gemm_swiglu_bf16_K768.insts.bin
new file mode 100644
index 000000000..9e5a4b13e
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col_swiglu/gemm_swiglu_bf16_K768.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_1col_swiglu/gemm_swiglu_bf16_K768.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_1col_swiglu/gemm_swiglu_bf16_K768.xclbin
new file mode 100644
index 000000000..1db412111
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_1col_swiglu/gemm_swiglu_bf16_K768.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K1024.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K1024.insts.bin
new file mode 100644
index 000000000..1c8ebd22a
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K1024.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K1024.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K1024.xclbin
new file mode 100644
index 000000000..af7f075a6
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K1024.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K1088.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K1088.insts.bin
new file mode 100644
index 000000000..09582183f
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K1088.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K1088.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K1088.xclbin
new file mode 100644
index 000000000..42d88c801
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K1088.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K1152.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K1152.insts.bin
new file mode 100644
index 000000000..e1df7f0b9
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K1152.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K1152.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K1152.xclbin
new file mode 100644
index 000000000..a28852ab1
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K1152.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K1216.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K1216.insts.bin
new file mode 100644
index 000000000..d037496e7
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K1216.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K1216.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K1216.xclbin
new file mode 100644
index 000000000..c9c5c72a8
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K1216.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K128.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K128.insts.bin
new file mode 100644
index 000000000..d61a8e023
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K128.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K128.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K128.xclbin
new file mode 100644
index 000000000..8109762b9
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K128.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K1280.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K1280.insts.bin
new file mode 100644
index 000000000..d7fa3ef71
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K1280.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K1280.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K1280.xclbin
new file mode 100644
index 000000000..1958736f5
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K1280.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K1344.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K1344.insts.bin
new file mode 100644
index 000000000..1310f06cf
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K1344.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K1344.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K1344.xclbin
new file mode 100644
index 000000000..4a38901a0
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K1344.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K1408.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K1408.insts.bin
new file mode 100644
index 000000000..ae9ba043f
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K1408.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K1408.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K1408.xclbin
new file mode 100644
index 000000000..c29b7c4ab
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K1408.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K1472.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K1472.insts.bin
new file mode 100644
index 000000000..5349aeb58
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K1472.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K1472.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K1472.xclbin
new file mode 100644
index 000000000..debfab175
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K1472.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K1536.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K1536.insts.bin
new file mode 100644
index 000000000..cefaa62dd
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K1536.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K1536.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K1536.xclbin
new file mode 100644
index 000000000..3c1bd980a
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K1536.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K1728.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K1728.insts.bin
new file mode 100644
index 000000000..670051ecc
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K1728.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K1728.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K1728.xclbin
new file mode 100644
index 000000000..9f4594aa6
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K1728.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K192.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K192.insts.bin
new file mode 100644
index 000000000..6ef2decc8
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K192.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K192.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K192.xclbin
new file mode 100644
index 000000000..d581f483f
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K192.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K2304.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K2304.insts.bin
new file mode 100644
index 000000000..aec8a5cf0
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K2304.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K2304.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K2304.xclbin
new file mode 100644
index 000000000..837c597db
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K2304.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K256.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K256.insts.bin
new file mode 100644
index 000000000..2ff3ce579
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K256.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K256.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K256.xclbin
new file mode 100644
index 000000000..bdd4038c9
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K256.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K2880.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K2880.insts.bin
new file mode 100644
index 000000000..60293f635
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K2880.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K2880.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K2880.xclbin
new file mode 100644
index 000000000..2e1c8d354
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K2880.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K320.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K320.insts.bin
new file mode 100644
index 000000000..02f0cd023
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K320.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K320.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K320.xclbin
new file mode 100644
index 000000000..b1b05e7fb
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K320.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K3456.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K3456.insts.bin
new file mode 100644
index 000000000..94652c549
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K3456.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K3456.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K3456.xclbin
new file mode 100644
index 000000000..b55055b9b
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K3456.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K384.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K384.insts.bin
new file mode 100644
index 000000000..c87b1ef7b
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K384.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K384.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K384.xclbin
new file mode 100644
index 000000000..2acb64a73
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K384.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K4032.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K4032.insts.bin
new file mode 100644
index 000000000..aaecb8e0d
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K4032.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K4032.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K4032.xclbin
new file mode 100644
index 000000000..2c4056204
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K4032.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K448.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K448.insts.bin
new file mode 100644
index 000000000..e2976167f
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K448.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K448.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K448.xclbin
new file mode 100644
index 000000000..83732f503
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K448.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K4608.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K4608.insts.bin
new file mode 100644
index 000000000..26b0965ae
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K4608.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K4608.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K4608.xclbin
new file mode 100644
index 000000000..2eeeb4721
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K4608.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K512.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K512.insts.bin
new file mode 100644
index 000000000..919b80042
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K512.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K512.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K512.xclbin
new file mode 100644
index 000000000..08e2106b2
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K512.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K5184.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K5184.insts.bin
new file mode 100644
index 000000000..dc6113afc
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K5184.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K5184.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K5184.xclbin
new file mode 100644
index 000000000..5aec5f41a
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K5184.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K576.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K576.insts.bin
new file mode 100644
index 000000000..787e7ea19
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K576.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K576.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K576.xclbin
new file mode 100644
index 000000000..6574b285e
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K576.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K5760.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K5760.insts.bin
new file mode 100644
index 000000000..3a68c9056
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K5760.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K5760.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K5760.xclbin
new file mode 100644
index 000000000..e23b02d84
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K5760.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K6336.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K6336.insts.bin
new file mode 100644
index 000000000..7e2edcb9b
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K6336.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K6336.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K6336.xclbin
new file mode 100644
index 000000000..948bd307e
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K6336.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K64.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K64.insts.bin
new file mode 100644
index 000000000..217f3e399
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K64.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K64.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K64.xclbin
new file mode 100644
index 000000000..844bb43b4
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K64.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K640.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K640.insts.bin
new file mode 100644
index 000000000..099cb6f93
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K640.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K640.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K640.xclbin
new file mode 100644
index 000000000..1b379ffe8
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K640.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K6912.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K6912.insts.bin
new file mode 100644
index 000000000..fed5bed84
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K6912.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K6912.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K6912.xclbin
new file mode 100644
index 000000000..39bf82cb1
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K6912.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K704.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K704.insts.bin
new file mode 100644
index 000000000..c430f70cd
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K704.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K704.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K704.xclbin
new file mode 100644
index 000000000..2c3d9b4f2
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K704.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K768.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K768.insts.bin
new file mode 100644
index 000000000..b8917db47
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K768.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K768.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K768.xclbin
new file mode 100644
index 000000000..de9f0bf9b
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K768.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K832.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K832.insts.bin
new file mode 100644
index 000000000..85ba2471a
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K832.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K832.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K832.xclbin
new file mode 100644
index 000000000..9f844f884
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K832.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K896.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K896.insts.bin
new file mode 100644
index 000000000..1e3c76cf3
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K896.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K896.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K896.xclbin
new file mode 100644
index 000000000..51c228e7f
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K896.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K960.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K960.insts.bin
new file mode 100644
index 000000000..05dce0e33
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K960.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K960.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K960.xclbin
new file mode 100644
index 000000000..29acfb28e
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col/gemm_bf16_K960.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col_swiglu/gemm_swiglu_bf16_K1152.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col_swiglu/gemm_swiglu_bf16_K1152.insts.bin
new file mode 100644
index 000000000..e1df7f0b9
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col_swiglu/gemm_swiglu_bf16_K1152.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col_swiglu/gemm_swiglu_bf16_K1152.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col_swiglu/gemm_swiglu_bf16_K1152.xclbin
new file mode 100644
index 000000000..bc962b619
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col_swiglu/gemm_swiglu_bf16_K1152.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col_swiglu/gemm_swiglu_bf16_K512.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col_swiglu/gemm_swiglu_bf16_K512.insts.bin
new file mode 100644
index 000000000..919b80042
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col_swiglu/gemm_swiglu_bf16_K512.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col_swiglu/gemm_swiglu_bf16_K512.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col_swiglu/gemm_swiglu_bf16_K512.xclbin
new file mode 100644
index 000000000..07da3b5ee
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col_swiglu/gemm_swiglu_bf16_K512.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col_swiglu/gemm_swiglu_bf16_K768.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col_swiglu/gemm_swiglu_bf16_K768.insts.bin
new file mode 100644
index 000000000..b8917db47
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col_swiglu/gemm_swiglu_bf16_K768.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_2col_swiglu/gemm_swiglu_bf16_K768.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_2col_swiglu/gemm_swiglu_bf16_K768.xclbin
new file mode 100644
index 000000000..a98cf9066
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_2col_swiglu/gemm_swiglu_bf16_K768.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K1024.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K1024.insts.bin
new file mode 100644
index 000000000..5cbfe311b
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K1024.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K1024.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K1024.xclbin
new file mode 100644
index 000000000..a79d41ba9
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K1024.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K1088.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K1088.insts.bin
new file mode 100644
index 000000000..41743a80d
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K1088.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K1088.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K1088.xclbin
new file mode 100644
index 000000000..3956ee5f1
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K1088.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K1152.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K1152.insts.bin
new file mode 100644
index 000000000..33045e378
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K1152.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K1152.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K1152.xclbin
new file mode 100644
index 000000000..a1c5c4689
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K1152.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K1216.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K1216.insts.bin
new file mode 100644
index 000000000..0614a3f88
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K1216.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K1216.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K1216.xclbin
new file mode 100644
index 000000000..b2f7580cd
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K1216.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K128.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K128.insts.bin
new file mode 100644
index 000000000..5fa273b74
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K128.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K128.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K128.xclbin
new file mode 100644
index 000000000..4c86d6747
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K128.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K1280.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K1280.insts.bin
new file mode 100644
index 000000000..8242a1319
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K1280.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K1280.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K1280.xclbin
new file mode 100644
index 000000000..c2f27f319
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K1280.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K1344.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K1344.insts.bin
new file mode 100644
index 000000000..ba0f2578a
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K1344.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K1344.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K1344.xclbin
new file mode 100644
index 000000000..d6426d6bc
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K1344.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K1408.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K1408.insts.bin
new file mode 100644
index 000000000..976a5d663
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K1408.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K1408.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K1408.xclbin
new file mode 100644
index 000000000..41771c2cf
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K1408.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K1472.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K1472.insts.bin
new file mode 100644
index 000000000..ee438bb65
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K1472.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K1472.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K1472.xclbin
new file mode 100644
index 000000000..01bc1bf90
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K1472.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K1536.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K1536.insts.bin
new file mode 100644
index 000000000..b0d62fdc5
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K1536.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K1536.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K1536.xclbin
new file mode 100644
index 000000000..8bacafbcb
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K1536.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K1728.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K1728.insts.bin
new file mode 100644
index 000000000..dd34d9bf4
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K1728.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K1728.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K1728.xclbin
new file mode 100644
index 000000000..d6e80a0c9
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K1728.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K192.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K192.insts.bin
new file mode 100644
index 000000000..736fe8c84
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K192.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K192.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K192.xclbin
new file mode 100644
index 000000000..933df1c3b
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K192.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K2304.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K2304.insts.bin
new file mode 100644
index 000000000..8f6965981
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K2304.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K2304.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K2304.xclbin
new file mode 100644
index 000000000..3996c5b8b
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K2304.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K256.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K256.insts.bin
new file mode 100644
index 000000000..cafec2c34
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K256.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K256.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K256.xclbin
new file mode 100644
index 000000000..86e5b6bea
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K256.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K2880.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K2880.insts.bin
new file mode 100644
index 000000000..dead816e0
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K2880.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K2880.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K2880.xclbin
new file mode 100644
index 000000000..6e9155e81
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K2880.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K320.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K320.insts.bin
new file mode 100644
index 000000000..a50f9880f
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K320.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K320.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K320.xclbin
new file mode 100644
index 000000000..ba74776fc
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K320.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K3456.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K3456.insts.bin
new file mode 100644
index 000000000..860cf18c5
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K3456.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K3456.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K3456.xclbin
new file mode 100644
index 000000000..a65983c62
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K3456.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K384.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K384.insts.bin
new file mode 100644
index 000000000..fa403ad1a
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K384.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K384.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K384.xclbin
new file mode 100644
index 000000000..b642dd7f3
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K384.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K4032.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K4032.insts.bin
new file mode 100644
index 000000000..b55077e01
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K4032.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K4032.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K4032.xclbin
new file mode 100644
index 000000000..3c7caf322
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K4032.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K448.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K448.insts.bin
new file mode 100644
index 000000000..e11d8b40e
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K448.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K448.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K448.xclbin
new file mode 100644
index 000000000..f3f176886
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K448.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K4608.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K4608.insts.bin
new file mode 100644
index 000000000..aee8534a9
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K4608.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K4608.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K4608.xclbin
new file mode 100644
index 000000000..909228840
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K4608.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K512.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K512.insts.bin
new file mode 100644
index 000000000..d6995a53c
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K512.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K512.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K512.xclbin
new file mode 100644
index 000000000..63d9f0073
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K512.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K5184.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K5184.insts.bin
new file mode 100644
index 000000000..55a0999d5
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K5184.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K5184.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K5184.xclbin
new file mode 100644
index 000000000..3d1b747d7
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K5184.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K576.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K576.insts.bin
new file mode 100644
index 000000000..58832296b
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K576.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K576.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K576.xclbin
new file mode 100644
index 000000000..1e06296cc
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K576.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K5760.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K5760.insts.bin
new file mode 100644
index 000000000..1f0b1713e
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K5760.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K5760.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K5760.xclbin
new file mode 100644
index 000000000..457f226aa
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K5760.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K6336.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K6336.insts.bin
new file mode 100644
index 000000000..d52329b17
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K6336.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K6336.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K6336.xclbin
new file mode 100644
index 000000000..5bdb7008b
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K6336.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K64.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K64.insts.bin
new file mode 100644
index 000000000..9cb6c916e
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K64.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K64.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K64.xclbin
new file mode 100644
index 000000000..657218707
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K64.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K640.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K640.insts.bin
new file mode 100644
index 000000000..8ebccc887
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K640.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K640.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K640.xclbin
new file mode 100644
index 000000000..9a5664dac
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K640.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K6912.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K6912.insts.bin
new file mode 100644
index 000000000..8bf0e5df3
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K6912.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K6912.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K6912.xclbin
new file mode 100644
index 000000000..d8af62ce3
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K6912.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K704.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K704.insts.bin
new file mode 100644
index 000000000..5376402b8
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K704.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K704.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K704.xclbin
new file mode 100644
index 000000000..1c0a354e0
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K704.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K768.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K768.insts.bin
new file mode 100644
index 000000000..9921028c0
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K768.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K768.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K768.xclbin
new file mode 100644
index 000000000..b89283a61
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K768.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K832.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K832.insts.bin
new file mode 100644
index 000000000..f873753c0
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K832.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K832.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K832.xclbin
new file mode 100644
index 000000000..921576992
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K832.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K896.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K896.insts.bin
new file mode 100644
index 000000000..45d5ddd89
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K896.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K896.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K896.xclbin
new file mode 100644
index 000000000..297bd44a0
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K896.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K960.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K960.insts.bin
new file mode 100644
index 000000000..07303920c
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K960.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K960.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K960.xclbin
new file mode 100644
index 000000000..b4fe52400
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col/gemm_bf16_K960.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col_swiglu/gemm_swiglu_bf16_K1152.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col_swiglu/gemm_swiglu_bf16_K1152.insts.bin
new file mode 100644
index 000000000..33045e378
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col_swiglu/gemm_swiglu_bf16_K1152.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col_swiglu/gemm_swiglu_bf16_K1152.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col_swiglu/gemm_swiglu_bf16_K1152.xclbin
new file mode 100644
index 000000000..089ec7bff
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col_swiglu/gemm_swiglu_bf16_K1152.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col_swiglu/gemm_swiglu_bf16_K512.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col_swiglu/gemm_swiglu_bf16_K512.insts.bin
new file mode 100644
index 000000000..d6995a53c
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col_swiglu/gemm_swiglu_bf16_K512.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col_swiglu/gemm_swiglu_bf16_K512.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col_swiglu/gemm_swiglu_bf16_K512.xclbin
new file mode 100644
index 000000000..c7c85eaa5
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col_swiglu/gemm_swiglu_bf16_K512.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col_swiglu/gemm_swiglu_bf16_K768.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col_swiglu/gemm_swiglu_bf16_K768.insts.bin
new file mode 100644
index 000000000..9921028c0
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col_swiglu/gemm_swiglu_bf16_K768.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_4col_swiglu/gemm_swiglu_bf16_K768.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_4col_swiglu/gemm_swiglu_bf16_K768.xclbin
new file mode 100644
index 000000000..e945efee8
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_4col_swiglu/gemm_swiglu_bf16_K768.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K1024.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K1024.insts.bin
new file mode 100644
index 000000000..b53ab1817
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K1024.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K1024.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K1024.xclbin
new file mode 100644
index 000000000..2d5bcdac4
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K1024.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K1088.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K1088.insts.bin
new file mode 100644
index 000000000..da0edb6a8
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K1088.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K1088.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K1088.xclbin
new file mode 100644
index 000000000..a84ff261f
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K1088.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K1152.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K1152.insts.bin
new file mode 100644
index 000000000..096bf56a1
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K1152.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K1152.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K1152.xclbin
new file mode 100644
index 000000000..fc91029da
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K1152.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K1216.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K1216.insts.bin
new file mode 100644
index 000000000..65ee30f41
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K1216.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K1216.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K1216.xclbin
new file mode 100644
index 000000000..a55636bd0
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K1216.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K128.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K128.insts.bin
new file mode 100644
index 000000000..a2f77098d
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K128.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K128.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K128.xclbin
new file mode 100644
index 000000000..9562788b0
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K128.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K1280.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K1280.insts.bin
new file mode 100644
index 000000000..9be50fc01
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K1280.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K1280.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K1280.xclbin
new file mode 100644
index 000000000..bce2e1ac2
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K1280.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K1344.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K1344.insts.bin
new file mode 100644
index 000000000..05d4e0835
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K1344.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K1344.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K1344.xclbin
new file mode 100644
index 000000000..6f266698a
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K1344.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K1408.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K1408.insts.bin
new file mode 100644
index 000000000..aed546861
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K1408.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K1408.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K1408.xclbin
new file mode 100644
index 000000000..3fd8e30d3
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K1408.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K1472.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K1472.insts.bin
new file mode 100644
index 000000000..f8f9236b5
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K1472.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K1472.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K1472.xclbin
new file mode 100644
index 000000000..39dc4093f
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K1472.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K1536.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K1536.insts.bin
new file mode 100644
index 000000000..0636bfa39
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K1536.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K1536.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K1536.xclbin
new file mode 100644
index 000000000..49c01c4a2
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K1536.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K1728.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K1728.insts.bin
new file mode 100644
index 000000000..cad7daadf
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K1728.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K1728.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K1728.xclbin
new file mode 100644
index 000000000..6a2f3fd40
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K1728.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K192.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K192.insts.bin
new file mode 100644
index 000000000..528819524
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K192.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K192.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K192.xclbin
new file mode 100644
index 000000000..89fda5b80
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K192.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K2304.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K2304.insts.bin
new file mode 100644
index 000000000..eed41f925
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K2304.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K2304.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K2304.xclbin
new file mode 100644
index 000000000..29ac688c7
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K2304.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K256.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K256.insts.bin
new file mode 100644
index 000000000..f034f1538
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K256.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K256.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K256.xclbin
new file mode 100644
index 000000000..e0f485730
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K256.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K2880.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K2880.insts.bin
new file mode 100644
index 000000000..717bbcd8a
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K2880.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K2880.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K2880.xclbin
new file mode 100644
index 000000000..184506fcc
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K2880.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K320.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K320.insts.bin
new file mode 100644
index 000000000..cc6bec853
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K320.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K320.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K320.xclbin
new file mode 100644
index 000000000..2dc5c5d20
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K320.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K3456.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K3456.insts.bin
new file mode 100644
index 000000000..698019297
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K3456.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K3456.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K3456.xclbin
new file mode 100644
index 000000000..ddd739e50
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K3456.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K384.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K384.insts.bin
new file mode 100644
index 000000000..ffeb6e2ec
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K384.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K384.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K384.xclbin
new file mode 100644
index 000000000..a57cf7253
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K384.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K4032.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K4032.insts.bin
new file mode 100644
index 000000000..9fcd1454b
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K4032.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K4032.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K4032.xclbin
new file mode 100644
index 000000000..da09b255a
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K4032.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K448.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K448.insts.bin
new file mode 100644
index 000000000..9e16732f5
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K448.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K448.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K448.xclbin
new file mode 100644
index 000000000..4b10c2258
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K448.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K4608.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K4608.insts.bin
new file mode 100644
index 000000000..1078908ae
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K4608.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K4608.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K4608.xclbin
new file mode 100644
index 000000000..5359b3288
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K4608.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K512.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K512.insts.bin
new file mode 100644
index 000000000..0c0ba6388
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K512.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K512.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K512.xclbin
new file mode 100644
index 000000000..3dcaf1208
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K512.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K5184.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K5184.insts.bin
new file mode 100644
index 000000000..7811a3a55
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K5184.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K5184.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K5184.xclbin
new file mode 100644
index 000000000..82b12fa6c
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K5184.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K576.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K576.insts.bin
new file mode 100644
index 000000000..44b553df4
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K576.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K576.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K576.xclbin
new file mode 100644
index 000000000..f8d38b062
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K576.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K5760.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K5760.insts.bin
new file mode 100644
index 000000000..3fec8bb87
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K5760.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K5760.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K5760.xclbin
new file mode 100644
index 000000000..219f5f7f7
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K5760.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K6336.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K6336.insts.bin
new file mode 100644
index 000000000..208ddbd43
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K6336.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K6336.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K6336.xclbin
new file mode 100644
index 000000000..d3ec154d6
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K6336.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K64.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K64.insts.bin
new file mode 100644
index 000000000..1d146405f
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K64.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K64.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K64.xclbin
new file mode 100644
index 000000000..821fdf536
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K64.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K640.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K640.insts.bin
new file mode 100644
index 000000000..7e5083706
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K640.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K640.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K640.xclbin
new file mode 100644
index 000000000..34770edfd
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K640.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K6912.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K6912.insts.bin
new file mode 100644
index 000000000..59b7466b3
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K6912.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K6912.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K6912.xclbin
new file mode 100644
index 000000000..b660c986d
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K6912.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K704.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K704.insts.bin
new file mode 100644
index 000000000..4f678d507
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K704.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K704.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K704.xclbin
new file mode 100644
index 000000000..cf725f97c
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K704.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K768.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K768.insts.bin
new file mode 100644
index 000000000..36ea56081
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K768.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K768.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K768.xclbin
new file mode 100644
index 000000000..0b4461285
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K768.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K832.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K832.insts.bin
new file mode 100644
index 000000000..35e4d746c
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K832.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K832.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K832.xclbin
new file mode 100644
index 000000000..aeacf8cbe
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K832.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K896.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K896.insts.bin
new file mode 100644
index 000000000..c29e6b961
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K896.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K896.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K896.xclbin
new file mode 100644
index 000000000..54e4bb9a3
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K896.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K960.insts.bin b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K960.insts.bin
new file mode 100644
index 000000000..7f9deb905
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K960.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K960.xclbin b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K960.xclbin
new file mode 100644
index 000000000..dcf774dd6
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bf16/npu2_8col/gemm_bf16_K960.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K1024.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K1024.insts.bin
new file mode 100644
index 000000000..350653420
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K1024.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K1024.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K1024.xclbin
new file mode 100644
index 000000000..66d6aa1b0
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K1024.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K1088.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K1088.insts.bin
new file mode 100644
index 000000000..827007b80
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K1088.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K1088.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K1088.xclbin
new file mode 100644
index 000000000..be6276a30
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K1088.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K1152.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K1152.insts.bin
new file mode 100644
index 000000000..611b1d73e
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K1152.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K1152.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K1152.xclbin
new file mode 100644
index 000000000..739f58143
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K1152.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K1216.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K1216.insts.bin
new file mode 100644
index 000000000..3dd5cb105
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K1216.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K1216.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K1216.xclbin
new file mode 100644
index 000000000..106d53b17
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K1216.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K128.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K128.insts.bin
new file mode 100644
index 000000000..25b377b3a
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K128.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K128.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K128.xclbin
new file mode 100644
index 000000000..fe60b5397
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K128.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K1280.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K1280.insts.bin
new file mode 100644
index 000000000..9c0d93e21
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K1280.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K1280.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K1280.xclbin
new file mode 100644
index 000000000..43c481647
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K1280.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K1344.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K1344.insts.bin
new file mode 100644
index 000000000..6b76ab7e4
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K1344.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K1344.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K1344.xclbin
new file mode 100644
index 000000000..b9922f2c8
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K1344.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K1408.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K1408.insts.bin
new file mode 100644
index 000000000..b22bf81fc
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K1408.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K1408.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K1408.xclbin
new file mode 100644
index 000000000..ba9ebc084
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K1408.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K1472.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K1472.insts.bin
new file mode 100644
index 000000000..c653c311c
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K1472.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K1472.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K1472.xclbin
new file mode 100644
index 000000000..844037fdd
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K1472.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K1536.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K1536.insts.bin
new file mode 100644
index 000000000..180f2aa73
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K1536.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K1536.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K1536.xclbin
new file mode 100644
index 000000000..991af3b7e
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K1536.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K1728.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K1728.insts.bin
new file mode 100644
index 000000000..280777836
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K1728.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K1728.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K1728.xclbin
new file mode 100644
index 000000000..738db4c60
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K1728.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K192.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K192.insts.bin
new file mode 100644
index 000000000..54c9870b5
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K192.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K192.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K192.xclbin
new file mode 100644
index 000000000..2e0cf5091
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K192.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K2304.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K2304.insts.bin
new file mode 100644
index 000000000..f66f5e6cf
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K2304.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K2304.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K2304.xclbin
new file mode 100644
index 000000000..c502e8d6a
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K2304.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K256.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K256.insts.bin
new file mode 100644
index 000000000..f394da966
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K256.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K256.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K256.xclbin
new file mode 100644
index 000000000..b25337265
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K256.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K2880.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K2880.insts.bin
new file mode 100644
index 000000000..e73a6d81b
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K2880.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K2880.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K2880.xclbin
new file mode 100644
index 000000000..100dbd7c4
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K2880.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K320.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K320.insts.bin
new file mode 100644
index 000000000..892f903ba
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K320.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K320.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K320.xclbin
new file mode 100644
index 000000000..f50aab83e
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K320.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K3456.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K3456.insts.bin
new file mode 100644
index 000000000..8a9c13938
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K3456.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K3456.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K3456.xclbin
new file mode 100644
index 000000000..7764fe05f
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K3456.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K384.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K384.insts.bin
new file mode 100644
index 000000000..1110a1cf1
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K384.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K384.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K384.xclbin
new file mode 100644
index 000000000..d19ecc422
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K384.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K4032.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K4032.insts.bin
new file mode 100644
index 000000000..8afab021e
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K4032.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K4032.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K4032.xclbin
new file mode 100644
index 000000000..eb9a895f3
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K4032.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K448.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K448.insts.bin
new file mode 100644
index 000000000..facd35956
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K448.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K448.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K448.xclbin
new file mode 100644
index 000000000..112e9b66e
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K448.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K4608.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K4608.insts.bin
new file mode 100644
index 000000000..a5070232a
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K4608.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K4608.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K4608.xclbin
new file mode 100644
index 000000000..222379dbe
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K4608.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K512.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K512.insts.bin
new file mode 100644
index 000000000..75eb7c84f
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K512.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K512.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K512.xclbin
new file mode 100644
index 000000000..6b5a57e3d
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K512.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K5184.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K5184.insts.bin
new file mode 100644
index 000000000..0aa903c7c
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K5184.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K5184.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K5184.xclbin
new file mode 100644
index 000000000..3d6ae8df9
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K5184.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K576.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K576.insts.bin
new file mode 100644
index 000000000..bf6a90ca5
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K576.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K576.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K576.xclbin
new file mode 100644
index 000000000..1bad4bba1
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K576.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K5760.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K5760.insts.bin
new file mode 100644
index 000000000..e395cbcd7
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K5760.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K5760.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K5760.xclbin
new file mode 100644
index 000000000..8f75bd527
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K5760.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K6336.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K6336.insts.bin
new file mode 100644
index 000000000..1b0f11f5c
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K6336.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K6336.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K6336.xclbin
new file mode 100644
index 000000000..b02726175
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K6336.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K64.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K64.insts.bin
new file mode 100644
index 000000000..0e81bc25d
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K64.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K64.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K64.xclbin
new file mode 100644
index 000000000..0a5c8300e
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K64.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K640.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K640.insts.bin
new file mode 100644
index 000000000..d37991e08
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K640.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K640.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K640.xclbin
new file mode 100644
index 000000000..60c4f93c6
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K640.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K6912.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K6912.insts.bin
new file mode 100644
index 000000000..25ad11d32
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K6912.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K6912.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K6912.xclbin
new file mode 100644
index 000000000..6d3be9867
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K6912.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K704.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K704.insts.bin
new file mode 100644
index 000000000..6ede7cbf1
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K704.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K704.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K704.xclbin
new file mode 100644
index 000000000..9b1b077d5
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K704.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K768.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K768.insts.bin
new file mode 100644
index 000000000..9e5a4b13e
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K768.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K768.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K768.xclbin
new file mode 100644
index 000000000..2320b275a
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K768.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K832.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K832.insts.bin
new file mode 100644
index 000000000..665e9a7a6
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K832.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K832.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K832.xclbin
new file mode 100644
index 000000000..7fde63275
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K832.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K896.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K896.insts.bin
new file mode 100644
index 000000000..2e24981a2
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K896.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K896.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K896.xclbin
new file mode 100644
index 000000000..72c59610a
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K896.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K960.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K960.insts.bin
new file mode 100644
index 000000000..21319011a
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K960.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K960.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K960.xclbin
new file mode 100644
index 000000000..d49886968
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_1col/gemm_bf16_K960.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K1024.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K1024.insts.bin
new file mode 100644
index 000000000..1c8ebd22a
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K1024.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K1024.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K1024.xclbin
new file mode 100644
index 000000000..174f9af97
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K1024.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K1088.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K1088.insts.bin
new file mode 100644
index 000000000..09582183f
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K1088.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K1088.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K1088.xclbin
new file mode 100644
index 000000000..1d2fcbfb9
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K1088.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K1152.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K1152.insts.bin
new file mode 100644
index 000000000..e1df7f0b9
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K1152.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K1152.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K1152.xclbin
new file mode 100644
index 000000000..b49bf1380
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K1152.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K1216.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K1216.insts.bin
new file mode 100644
index 000000000..d037496e7
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K1216.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K1216.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K1216.xclbin
new file mode 100644
index 000000000..7c0281c3c
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K1216.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K128.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K128.insts.bin
new file mode 100644
index 000000000..d61a8e023
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K128.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K128.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K128.xclbin
new file mode 100644
index 000000000..e6bd84a0c
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K128.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K1280.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K1280.insts.bin
new file mode 100644
index 000000000..d7fa3ef71
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K1280.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K1280.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K1280.xclbin
new file mode 100644
index 000000000..4d1745f5a
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K1280.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K1344.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K1344.insts.bin
new file mode 100644
index 000000000..1310f06cf
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K1344.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K1344.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K1344.xclbin
new file mode 100644
index 000000000..58aa65a49
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K1344.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K1408.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K1408.insts.bin
new file mode 100644
index 000000000..ae9ba043f
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K1408.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K1408.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K1408.xclbin
new file mode 100644
index 000000000..db612767c
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K1408.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K1472.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K1472.insts.bin
new file mode 100644
index 000000000..5349aeb58
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K1472.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K1472.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K1472.xclbin
new file mode 100644
index 000000000..43ca43de4
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K1472.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K1536.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K1536.insts.bin
new file mode 100644
index 000000000..cefaa62dd
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K1536.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K1536.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K1536.xclbin
new file mode 100644
index 000000000..fe44f9b17
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K1536.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K1728.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K1728.insts.bin
new file mode 100644
index 000000000..670051ecc
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K1728.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K1728.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K1728.xclbin
new file mode 100644
index 000000000..3fd0296a6
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K1728.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K192.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K192.insts.bin
new file mode 100644
index 000000000..6ef2decc8
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K192.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K192.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K192.xclbin
new file mode 100644
index 000000000..25735f678
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K192.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K2304.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K2304.insts.bin
new file mode 100644
index 000000000..aec8a5cf0
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K2304.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K2304.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K2304.xclbin
new file mode 100644
index 000000000..6a9185aab
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K2304.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K256.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K256.insts.bin
new file mode 100644
index 000000000..2ff3ce579
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K256.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K256.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K256.xclbin
new file mode 100644
index 000000000..bd445a772
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K256.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K2880.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K2880.insts.bin
new file mode 100644
index 000000000..60293f635
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K2880.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K2880.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K2880.xclbin
new file mode 100644
index 000000000..379f8147d
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K2880.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K320.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K320.insts.bin
new file mode 100644
index 000000000..02f0cd023
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K320.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K320.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K320.xclbin
new file mode 100644
index 000000000..d21293b25
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K320.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K3456.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K3456.insts.bin
new file mode 100644
index 000000000..94652c549
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K3456.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K3456.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K3456.xclbin
new file mode 100644
index 000000000..ad2c5dd4e
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K3456.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K384.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K384.insts.bin
new file mode 100644
index 000000000..c87b1ef7b
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K384.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K384.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K384.xclbin
new file mode 100644
index 000000000..8b08cba86
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K384.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K4032.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K4032.insts.bin
new file mode 100644
index 000000000..aaecb8e0d
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K4032.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K4032.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K4032.xclbin
new file mode 100644
index 000000000..642533c88
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K4032.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K448.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K448.insts.bin
new file mode 100644
index 000000000..e2976167f
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K448.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K448.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K448.xclbin
new file mode 100644
index 000000000..759d780f0
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K448.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K4608.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K4608.insts.bin
new file mode 100644
index 000000000..26b0965ae
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K4608.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K4608.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K4608.xclbin
new file mode 100644
index 000000000..fe28b3688
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K4608.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K512.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K512.insts.bin
new file mode 100644
index 000000000..919b80042
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K512.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K512.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K512.xclbin
new file mode 100644
index 000000000..a9f19d972
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K512.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K5184.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K5184.insts.bin
new file mode 100644
index 000000000..dc6113afc
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K5184.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K5184.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K5184.xclbin
new file mode 100644
index 000000000..7e59f5cee
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K5184.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K576.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K576.insts.bin
new file mode 100644
index 000000000..787e7ea19
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K576.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K576.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K576.xclbin
new file mode 100644
index 000000000..6cc983455
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K576.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K5760.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K5760.insts.bin
new file mode 100644
index 000000000..3a68c9056
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K5760.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K5760.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K5760.xclbin
new file mode 100644
index 000000000..2b0aae58d
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K5760.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K6336.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K6336.insts.bin
new file mode 100644
index 000000000..7e2edcb9b
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K6336.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K6336.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K6336.xclbin
new file mode 100644
index 000000000..b7310a60f
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K6336.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K64.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K64.insts.bin
new file mode 100644
index 000000000..217f3e399
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K64.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K64.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K64.xclbin
new file mode 100644
index 000000000..26dc9125d
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K64.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K640.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K640.insts.bin
new file mode 100644
index 000000000..099cb6f93
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K640.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K640.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K640.xclbin
new file mode 100644
index 000000000..bd2c93303
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K640.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K6912.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K6912.insts.bin
new file mode 100644
index 000000000..fed5bed84
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K6912.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K6912.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K6912.xclbin
new file mode 100644
index 000000000..114b742fb
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K6912.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K704.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K704.insts.bin
new file mode 100644
index 000000000..c430f70cd
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K704.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K704.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K704.xclbin
new file mode 100644
index 000000000..9bcc64781
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K704.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K768.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K768.insts.bin
new file mode 100644
index 000000000..b8917db47
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K768.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K768.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K768.xclbin
new file mode 100644
index 000000000..8e3889b14
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K768.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K832.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K832.insts.bin
new file mode 100644
index 000000000..85ba2471a
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K832.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K832.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K832.xclbin
new file mode 100644
index 000000000..bb1a0a07e
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K832.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K896.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K896.insts.bin
new file mode 100644
index 000000000..1e3c76cf3
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K896.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K896.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K896.xclbin
new file mode 100644
index 000000000..ef1562796
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K896.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K960.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K960.insts.bin
new file mode 100644
index 000000000..05dce0e33
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K960.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K960.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K960.xclbin
new file mode 100644
index 000000000..d03703942
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_2col/gemm_bf16_K960.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K1024.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K1024.insts.bin
new file mode 100644
index 000000000..5cbfe311b
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K1024.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K1024.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K1024.xclbin
new file mode 100644
index 000000000..3bb93a774
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K1024.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K1088.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K1088.insts.bin
new file mode 100644
index 000000000..41743a80d
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K1088.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K1088.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K1088.xclbin
new file mode 100644
index 000000000..5dcd0bcf0
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K1088.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K1152.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K1152.insts.bin
new file mode 100644
index 000000000..33045e378
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K1152.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K1152.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K1152.xclbin
new file mode 100644
index 000000000..e39843806
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K1152.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K1216.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K1216.insts.bin
new file mode 100644
index 000000000..0614a3f88
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K1216.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K1216.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K1216.xclbin
new file mode 100644
index 000000000..9efc0a1e1
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K1216.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K128.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K128.insts.bin
new file mode 100644
index 000000000..5fa273b74
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K128.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K128.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K128.xclbin
new file mode 100644
index 000000000..6d7dd74ff
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K128.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K1280.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K1280.insts.bin
new file mode 100644
index 000000000..8242a1319
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K1280.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K1280.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K1280.xclbin
new file mode 100644
index 000000000..e32e488db
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K1280.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K1344.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K1344.insts.bin
new file mode 100644
index 000000000..ba0f2578a
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K1344.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K1344.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K1344.xclbin
new file mode 100644
index 000000000..908186557
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K1344.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K1408.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K1408.insts.bin
new file mode 100644
index 000000000..976a5d663
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K1408.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K1408.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K1408.xclbin
new file mode 100644
index 000000000..0731d1837
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K1408.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K1472.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K1472.insts.bin
new file mode 100644
index 000000000..ee438bb65
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K1472.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K1472.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K1472.xclbin
new file mode 100644
index 000000000..ed03992e4
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K1472.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K1536.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K1536.insts.bin
new file mode 100644
index 000000000..b0d62fdc5
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K1536.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K1536.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K1536.xclbin
new file mode 100644
index 000000000..f8d42946f
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K1536.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K1728.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K1728.insts.bin
new file mode 100644
index 000000000..dd34d9bf4
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K1728.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K1728.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K1728.xclbin
new file mode 100644
index 000000000..c4922c5e2
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K1728.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K192.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K192.insts.bin
new file mode 100644
index 000000000..736fe8c84
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K192.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K192.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K192.xclbin
new file mode 100644
index 000000000..0b7a5bab4
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K192.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K2304.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K2304.insts.bin
new file mode 100644
index 000000000..8f6965981
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K2304.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K2304.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K2304.xclbin
new file mode 100644
index 000000000..eb8a8b373
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K2304.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K256.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K256.insts.bin
new file mode 100644
index 000000000..cafec2c34
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K256.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K256.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K256.xclbin
new file mode 100644
index 000000000..74a4297ea
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K256.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K2880.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K2880.insts.bin
new file mode 100644
index 000000000..dead816e0
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K2880.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K2880.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K2880.xclbin
new file mode 100644
index 000000000..5b0d4cc38
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K2880.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K320.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K320.insts.bin
new file mode 100644
index 000000000..a50f9880f
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K320.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K320.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K320.xclbin
new file mode 100644
index 000000000..f86ee83c8
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K320.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K3456.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K3456.insts.bin
new file mode 100644
index 000000000..860cf18c5
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K3456.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K3456.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K3456.xclbin
new file mode 100644
index 000000000..57cce138f
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K3456.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K384.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K384.insts.bin
new file mode 100644
index 000000000..fa403ad1a
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K384.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K384.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K384.xclbin
new file mode 100644
index 000000000..699c5ab5d
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K384.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K4032.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K4032.insts.bin
new file mode 100644
index 000000000..b55077e01
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K4032.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K4032.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K4032.xclbin
new file mode 100644
index 000000000..2b2b53282
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K4032.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K448.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K448.insts.bin
new file mode 100644
index 000000000..e11d8b40e
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K448.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K448.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K448.xclbin
new file mode 100644
index 000000000..af2f81486
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K448.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K4608.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K4608.insts.bin
new file mode 100644
index 000000000..aee8534a9
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K4608.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K4608.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K4608.xclbin
new file mode 100644
index 000000000..1d8e276bc
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K4608.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K512.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K512.insts.bin
new file mode 100644
index 000000000..d6995a53c
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K512.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K512.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K512.xclbin
new file mode 100644
index 000000000..1b2da991e
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K512.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K5184.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K5184.insts.bin
new file mode 100644
index 000000000..55a0999d5
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K5184.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K5184.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K5184.xclbin
new file mode 100644
index 000000000..e7919b64d
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K5184.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K576.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K576.insts.bin
new file mode 100644
index 000000000..58832296b
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K576.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K576.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K576.xclbin
new file mode 100644
index 000000000..d9435ba4d
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K576.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K5760.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K5760.insts.bin
new file mode 100644
index 000000000..1f0b1713e
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K5760.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K5760.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K5760.xclbin
new file mode 100644
index 000000000..62ea5267b
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K5760.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K6336.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K6336.insts.bin
new file mode 100644
index 000000000..d52329b17
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K6336.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K6336.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K6336.xclbin
new file mode 100644
index 000000000..b08ac7a2d
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K6336.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K64.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K64.insts.bin
new file mode 100644
index 000000000..9cb6c916e
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K64.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K64.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K64.xclbin
new file mode 100644
index 000000000..02f4a4fbf
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K64.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K640.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K640.insts.bin
new file mode 100644
index 000000000..8ebccc887
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K640.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K640.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K640.xclbin
new file mode 100644
index 000000000..ea96c931c
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K640.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K6912.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K6912.insts.bin
new file mode 100644
index 000000000..8bf0e5df3
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K6912.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K6912.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K6912.xclbin
new file mode 100644
index 000000000..f0de94e69
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K6912.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K704.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K704.insts.bin
new file mode 100644
index 000000000..5376402b8
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K704.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K704.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K704.xclbin
new file mode 100644
index 000000000..34dbaafaa
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K704.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K768.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K768.insts.bin
new file mode 100644
index 000000000..9921028c0
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K768.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K768.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K768.xclbin
new file mode 100644
index 000000000..5a992c56e
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K768.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K832.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K832.insts.bin
new file mode 100644
index 000000000..f873753c0
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K832.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K832.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K832.xclbin
new file mode 100644
index 000000000..5d6a238c7
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K832.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K896.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K896.insts.bin
new file mode 100644
index 000000000..45d5ddd89
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K896.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K896.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K896.xclbin
new file mode 100644
index 000000000..44301ec54
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K896.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K960.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K960.insts.bin
new file mode 100644
index 000000000..07303920c
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K960.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K960.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K960.xclbin
new file mode 100644
index 000000000..895066635
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_4col/gemm_bf16_K960.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K1024.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K1024.insts.bin
new file mode 100644
index 000000000..b53ab1817
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K1024.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K1024.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K1024.xclbin
new file mode 100644
index 000000000..674d9ec65
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K1024.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K1088.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K1088.insts.bin
new file mode 100644
index 000000000..da0edb6a8
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K1088.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K1088.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K1088.xclbin
new file mode 100644
index 000000000..1fb42addc
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K1088.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K1152.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K1152.insts.bin
new file mode 100644
index 000000000..096bf56a1
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K1152.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K1152.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K1152.xclbin
new file mode 100644
index 000000000..0348bb5f6
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K1152.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K1216.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K1216.insts.bin
new file mode 100644
index 000000000..65ee30f41
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K1216.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K1216.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K1216.xclbin
new file mode 100644
index 000000000..ccf4dcf69
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K1216.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K128.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K128.insts.bin
new file mode 100644
index 000000000..a2f77098d
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K128.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K128.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K128.xclbin
new file mode 100644
index 000000000..d69fed509
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K128.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K1280.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K1280.insts.bin
new file mode 100644
index 000000000..9be50fc01
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K1280.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K1280.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K1280.xclbin
new file mode 100644
index 000000000..918029b2a
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K1280.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K1344.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K1344.insts.bin
new file mode 100644
index 000000000..05d4e0835
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K1344.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K1344.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K1344.xclbin
new file mode 100644
index 000000000..c161c1381
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K1344.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K1408.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K1408.insts.bin
new file mode 100644
index 000000000..aed546861
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K1408.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K1408.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K1408.xclbin
new file mode 100644
index 000000000..9be10f268
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K1408.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K1472.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K1472.insts.bin
new file mode 100644
index 000000000..f8f9236b5
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K1472.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K1472.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K1472.xclbin
new file mode 100644
index 000000000..64bfefcf8
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K1472.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K1536.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K1536.insts.bin
new file mode 100644
index 000000000..0636bfa39
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K1536.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K1536.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K1536.xclbin
new file mode 100644
index 000000000..41b521471
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K1536.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K1728.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K1728.insts.bin
new file mode 100644
index 000000000..cad7daadf
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K1728.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K1728.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K1728.xclbin
new file mode 100644
index 000000000..2609490ed
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K1728.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K192.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K192.insts.bin
new file mode 100644
index 000000000..528819524
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K192.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K192.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K192.xclbin
new file mode 100644
index 000000000..f39b848bf
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K192.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K2304.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K2304.insts.bin
new file mode 100644
index 000000000..eed41f925
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K2304.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K2304.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K2304.xclbin
new file mode 100644
index 000000000..bd544ca74
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K2304.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K256.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K256.insts.bin
new file mode 100644
index 000000000..f034f1538
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K256.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K256.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K256.xclbin
new file mode 100644
index 000000000..e8d6015df
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K256.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K2880.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K2880.insts.bin
new file mode 100644
index 000000000..717bbcd8a
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K2880.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K2880.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K2880.xclbin
new file mode 100644
index 000000000..20df41330
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K2880.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K320.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K320.insts.bin
new file mode 100644
index 000000000..cc6bec853
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K320.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K320.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K320.xclbin
new file mode 100644
index 000000000..d49df87a5
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K320.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K3456.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K3456.insts.bin
new file mode 100644
index 000000000..698019297
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K3456.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K3456.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K3456.xclbin
new file mode 100644
index 000000000..7b84e78c1
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K3456.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K384.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K384.insts.bin
new file mode 100644
index 000000000..ffeb6e2ec
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K384.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K384.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K384.xclbin
new file mode 100644
index 000000000..7b5a79266
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K384.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K4032.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K4032.insts.bin
new file mode 100644
index 000000000..9fcd1454b
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K4032.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K4032.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K4032.xclbin
new file mode 100644
index 000000000..263edd088
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K4032.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K448.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K448.insts.bin
new file mode 100644
index 000000000..9e16732f5
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K448.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K448.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K448.xclbin
new file mode 100644
index 000000000..0b4a43b53
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K448.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K4608.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K4608.insts.bin
new file mode 100644
index 000000000..1078908ae
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K4608.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K4608.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K4608.xclbin
new file mode 100644
index 000000000..3eb4a0b15
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K4608.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K512.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K512.insts.bin
new file mode 100644
index 000000000..0c0ba6388
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K512.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K512.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K512.xclbin
new file mode 100644
index 000000000..ab2476dbc
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K512.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K5184.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K5184.insts.bin
new file mode 100644
index 000000000..7811a3a55
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K5184.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K5184.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K5184.xclbin
new file mode 100644
index 000000000..250fc9f6a
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K5184.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K576.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K576.insts.bin
new file mode 100644
index 000000000..44b553df4
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K576.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K576.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K576.xclbin
new file mode 100644
index 000000000..1ad0ff55f
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K576.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K5760.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K5760.insts.bin
new file mode 100644
index 000000000..3fec8bb87
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K5760.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K5760.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K5760.xclbin
new file mode 100644
index 000000000..40b05d9b3
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K5760.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K6336.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K6336.insts.bin
new file mode 100644
index 000000000..208ddbd43
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K6336.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K6336.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K6336.xclbin
new file mode 100644
index 000000000..2f0b58a85
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K6336.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K64.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K64.insts.bin
new file mode 100644
index 000000000..1d146405f
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K64.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K64.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K64.xclbin
new file mode 100644
index 000000000..8f206f898
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K64.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K640.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K640.insts.bin
new file mode 100644
index 000000000..7e5083706
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K640.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K640.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K640.xclbin
new file mode 100644
index 000000000..10ce2bc8a
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K640.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K6912.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K6912.insts.bin
new file mode 100644
index 000000000..59b7466b3
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K6912.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K6912.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K6912.xclbin
new file mode 100644
index 000000000..b92d525b1
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K6912.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K704.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K704.insts.bin
new file mode 100644
index 000000000..4f678d507
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K704.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K704.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K704.xclbin
new file mode 100644
index 000000000..435228c44
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K704.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K768.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K768.insts.bin
new file mode 100644
index 000000000..36ea56081
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K768.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K768.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K768.xclbin
new file mode 100644
index 000000000..5e87043e4
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K768.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K832.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K832.insts.bin
new file mode 100644
index 000000000..35e4d746c
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K832.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K832.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K832.xclbin
new file mode 100644
index 000000000..bc7238a4a
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K832.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K896.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K896.insts.bin
new file mode 100644
index 000000000..c29e6b961
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K896.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K896.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K896.xclbin
new file mode 100644
index 000000000..ac5ee2906
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K896.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K960.insts.bin b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K960.insts.bin
new file mode 100644
index 000000000..7f9deb905
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K960.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K960.xclbin b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K960.xclbin
new file mode 100644
index 000000000..a19732d82
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/bfp16/npu2_8col/gemm_bf16_K960.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/grid.json b/cpp/external/ryzenai_artifacts/grid.json
new file mode 100644
index 000000000..4d1aa7a4c
--- /dev/null
+++ b/cpp/external/ryzenai_artifacts/grid.json
@@ -0,0 +1,5991 @@
+{
+ "grid_version": 1,
+ "generated_by": "python/ryzenai_kernels/build_grid.py",
+ "note": "An xclbin depends only on (dtype, arch, n_aie_cols, K, tile). M and N are carried by the instruction stream, which sequence.cpp generates at run time, so compiled_at is provenance only and imposes no constraint on dispatch.",
+ "artifacts": [
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 1,
+ "K": 64,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_1col/gemm_bf16_K64.xclbin",
+ "xclbin_bytes": 25352,
+ "xclbin_sha256": "7c969f34b6fd4073543535cc5bd8b89d537e896d7b56f0e47fb3ed4cd746ab8c",
+ "insts_golden": "bf16/npu1_1col/gemm_bf16_K64.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 1,
+ "K": 128,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_1col/gemm_bf16_K128.xclbin",
+ "xclbin_bytes": 24776,
+ "xclbin_sha256": "eb9f1c6462381a22b24d46d70b189c9f8e3857b008c32fd88030168e54940b07",
+ "insts_golden": "bf16/npu1_1col/gemm_bf16_K128.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 1,
+ "K": 192,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_1col/gemm_bf16_K192.xclbin",
+ "xclbin_bytes": 23560,
+ "xclbin_sha256": "45757df712f937fbf4ff8b399c0414954e55296560e017b47c4303c2fb3dfe4f",
+ "insts_golden": "bf16/npu1_1col/gemm_bf16_K192.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 1,
+ "K": 256,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_1col/gemm_bf16_K256.xclbin",
+ "xclbin_bytes": 24328,
+ "xclbin_sha256": "c334af214fe8dde1d1b8e5f81e4e2054da3003b3ea0eb891188c1d034f3e3772",
+ "insts_golden": "bf16/npu1_1col/gemm_bf16_K256.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 1,
+ "K": 320,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_1col/gemm_bf16_K320.xclbin",
+ "xclbin_bytes": 25096,
+ "xclbin_sha256": "03ca1327e93a36a740479529a016621d7a2081e313271e5ee9b1395ffee951ea",
+ "insts_golden": "bf16/npu1_1col/gemm_bf16_K320.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 1,
+ "K": 384,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_1col/gemm_bf16_K384.xclbin",
+ "xclbin_bytes": 25864,
+ "xclbin_sha256": "62337215efbe1cb12c418e2d83f48bf16b234b8243a0626b384738210f960468",
+ "insts_golden": "bf16/npu1_1col/gemm_bf16_K384.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 1,
+ "K": 448,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_1col/gemm_bf16_K448.xclbin",
+ "xclbin_bytes": 26632,
+ "xclbin_sha256": "fa0fe57d4d518804400d60b9055cdb7ef488b8f1fa3be1e724866f9ccc776d58",
+ "insts_golden": "bf16/npu1_1col/gemm_bf16_K448.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 1,
+ "K": 512,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_1col/gemm_bf16_K512.xclbin",
+ "xclbin_bytes": 36104,
+ "xclbin_sha256": "61aa1696207da39c5e50237479101e5c3fdf5ab93146b8f03dcd89aad742973b",
+ "insts_golden": "bf16/npu1_1col/gemm_bf16_K512.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 1,
+ "K": 576,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_1col/gemm_bf16_K576.xclbin",
+ "xclbin_bytes": 32776,
+ "xclbin_sha256": "c9f04c212c62bbb3a2c1717710620657e438fa1cef3c4eba8bcaf3e0a85b1d34",
+ "insts_golden": "bf16/npu1_1col/gemm_bf16_K576.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 1,
+ "K": 640,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_1col/gemm_bf16_K640.xclbin",
+ "xclbin_bytes": 29896,
+ "xclbin_sha256": "c1c243f3f9a1bd06650684dbf4411d18e0274abd49fc87ff4aed6d099abf7391",
+ "insts_golden": "bf16/npu1_1col/gemm_bf16_K640.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 1,
+ "K": 704,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_1col/gemm_bf16_K704.xclbin",
+ "xclbin_bytes": 36616,
+ "xclbin_sha256": "f55254eb8ffad2c3bd0857e4fae26f9fe95d08366d2099912feef96f9421ab69",
+ "insts_golden": "bf16/npu1_1col/gemm_bf16_K704.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 1,
+ "K": 768,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_1col/gemm_bf16_K768.xclbin",
+ "xclbin_bytes": 36104,
+ "xclbin_sha256": "ab4a63fbd020f03533ba5980be353e11f74f35d0f2f2275d65f61a547edfa303",
+ "insts_golden": "bf16/npu1_1col/gemm_bf16_K768.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 1,
+ "K": 832,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_1col/gemm_bf16_K832.xclbin",
+ "xclbin_bytes": 35976,
+ "xclbin_sha256": "9d4f24d14bcf822aab91ce85752f24721d147003c18bdeece8688e7d7f56c39e",
+ "insts_golden": "bf16/npu1_1col/gemm_bf16_K832.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 1,
+ "K": 896,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_1col/gemm_bf16_K896.xclbin",
+ "xclbin_bytes": 29896,
+ "xclbin_sha256": "a850384e185434d62b46cd34e7cd8124bb9bd053d7b9328300654754b5d7a97b",
+ "insts_golden": "bf16/npu1_1col/gemm_bf16_K896.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 1,
+ "K": 960,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_1col/gemm_bf16_K960.xclbin",
+ "xclbin_bytes": 32776,
+ "xclbin_sha256": "d3e8cce386bec42daf6e8abbb3f356f67eaffe7a85baf82061192c7e6a303d6a",
+ "insts_golden": "bf16/npu1_1col/gemm_bf16_K960.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 1,
+ "K": 1024,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_1col/gemm_bf16_K1024.xclbin",
+ "xclbin_bytes": 36104,
+ "xclbin_sha256": "52829de6e37be5d857e206eba73bb3704b5ea090e0337758f60d156efdbb2b07",
+ "insts_golden": "bf16/npu1_1col/gemm_bf16_K1024.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 1,
+ "K": 1088,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_1col/gemm_bf16_K1088.xclbin",
+ "xclbin_bytes": 35976,
+ "xclbin_sha256": "9246e6e3f094f358b3505311e0ec98a58e2b7c00d38b38b9d6558c4638097ff0",
+ "insts_golden": "bf16/npu1_1col/gemm_bf16_K1088.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 1,
+ "K": 1152,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_1col/gemm_bf16_K1152.xclbin",
+ "xclbin_bytes": 32776,
+ "xclbin_sha256": "1d2a4f95fdedea7917d77671a667659edabc8b32044c115b3c576adb1ab088a5",
+ "insts_golden": "bf16/npu1_1col/gemm_bf16_K1152.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 1,
+ "K": 1216,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_1col/gemm_bf16_K1216.xclbin",
+ "xclbin_bytes": 36616,
+ "xclbin_sha256": "9987e61e67c86a3e23989403bfd538696b1c49254b06e3c689031f4bb24b622e",
+ "insts_golden": "bf16/npu1_1col/gemm_bf16_K1216.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 1,
+ "K": 1280,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_1col/gemm_bf16_K1280.xclbin",
+ "xclbin_bytes": 36104,
+ "xclbin_sha256": "cb6ae6307f951dd387fe394f870bb0e405deb58d3f5403e34397ed28d993e34f",
+ "insts_golden": "bf16/npu1_1col/gemm_bf16_K1280.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 1,
+ "K": 1344,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_1col/gemm_bf16_K1344.xclbin",
+ "xclbin_bytes": 32776,
+ "xclbin_sha256": "c8e1afc2af7d95f9a53a8774a36f7279d304e84d2d8150347e140a439ccd5e91",
+ "insts_golden": "bf16/npu1_1col/gemm_bf16_K1344.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 1,
+ "K": 1408,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_1col/gemm_bf16_K1408.xclbin",
+ "xclbin_bytes": 29896,
+ "xclbin_sha256": "e8a8c800a23d779467f1bef7b6d471cf00134dddceeab481f758112b03b085a9",
+ "insts_golden": "bf16/npu1_1col/gemm_bf16_K1408.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 1,
+ "K": 1472,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_1col/gemm_bf16_K1472.xclbin",
+ "xclbin_bytes": 36616,
+ "xclbin_sha256": "4d7f15310e4cd70181a5ba2287b12a8d2a1e76b8871b79150dd985177876b62a",
+ "insts_golden": "bf16/npu1_1col/gemm_bf16_K1472.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 1,
+ "K": 1536,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_1col/gemm_bf16_K1536.xclbin",
+ "xclbin_bytes": 36104,
+ "xclbin_sha256": "11f489c75e18bc82f833ba5a64988d0bb5b28f8243f32639965beea2c78a2ef2",
+ "insts_golden": "bf16/npu1_1col/gemm_bf16_K1536.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 1,
+ "K": 1728,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_1col/gemm_bf16_K1728.xclbin",
+ "xclbin_bytes": 32776,
+ "xclbin_sha256": "f5fd1871a7ed7363211c3f40f27652254fa983eca71fcf2f02090b294035d335",
+ "insts_golden": "bf16/npu1_1col/gemm_bf16_K1728.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 1,
+ "K": 2304,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_1col/gemm_bf16_K2304.xclbin",
+ "xclbin_bytes": 36104,
+ "xclbin_sha256": "6c42a4b2886e851b45dc635e4fa7cd84fd6f652787bbfe7cdf0660937b7a7934",
+ "insts_golden": "bf16/npu1_1col/gemm_bf16_K2304.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 1,
+ "K": 2880,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_1col/gemm_bf16_K2880.xclbin",
+ "xclbin_bytes": 32776,
+ "xclbin_sha256": "e918681710cd34c5888b59eeb32bf7169a6404f976839b03d18df8d2c1647545",
+ "insts_golden": "bf16/npu1_1col/gemm_bf16_K2880.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 1,
+ "K": 3456,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_1col/gemm_bf16_K3456.xclbin",
+ "xclbin_bytes": 32776,
+ "xclbin_sha256": "fa4ca0b4da846d0eb8bf16bb0f9524a58022a3d9e4629364562e227d648c5038",
+ "insts_golden": "bf16/npu1_1col/gemm_bf16_K3456.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 1,
+ "K": 4032,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_1col/gemm_bf16_K4032.xclbin",
+ "xclbin_bytes": 32776,
+ "xclbin_sha256": "fe09ef7ab254dc87ea40500774e59ffc905713f3a1210eecefdbfcc2e7a501f0",
+ "insts_golden": "bf16/npu1_1col/gemm_bf16_K4032.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 1,
+ "K": 4608,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_1col/gemm_bf16_K4608.xclbin",
+ "xclbin_bytes": 36104,
+ "xclbin_sha256": "778907658262107fd8f258f2a014f9f4daeda74f450a1ef4a53628b72d35955b",
+ "insts_golden": "bf16/npu1_1col/gemm_bf16_K4608.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 1,
+ "K": 5184,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_1col/gemm_bf16_K5184.xclbin",
+ "xclbin_bytes": 32776,
+ "xclbin_sha256": "b705d650b22dbf086e63528f4b8bae3d8824b9f445de53ce6d564a06dff739ba",
+ "insts_golden": "bf16/npu1_1col/gemm_bf16_K5184.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 1,
+ "K": 5760,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_1col/gemm_bf16_K5760.xclbin",
+ "xclbin_bytes": 32776,
+ "xclbin_sha256": "519041fbda3ae57e2ed71fc37e174f4c92a80f4c158807d29283474cd233396c",
+ "insts_golden": "bf16/npu1_1col/gemm_bf16_K5760.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 1,
+ "K": 6336,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_1col/gemm_bf16_K6336.xclbin",
+ "xclbin_bytes": 32776,
+ "xclbin_sha256": "7917f4746e698fcbad5eff28906767fee21cfd3285c42298484f981106de784c",
+ "insts_golden": "bf16/npu1_1col/gemm_bf16_K6336.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 1,
+ "K": 6912,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_1col/gemm_bf16_K6912.xclbin",
+ "xclbin_bytes": 36104,
+ "xclbin_sha256": "0d40fdc41f333b2a066248dc6e307fab5c82a0f2c5b522d0607aa7a9d6bfee40",
+ "insts_golden": "bf16/npu1_1col/gemm_bf16_K6912.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 2,
+ "K": 64,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_2col/gemm_bf16_K64.xclbin",
+ "xclbin_bytes": 42888,
+ "xclbin_sha256": "5b332c3214a4036238c5a07e31870f46fb40afd2370c7c53e2919506c2318d27",
+ "insts_golden": "bf16/npu1_2col/gemm_bf16_K64.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 2,
+ "K": 128,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_2col/gemm_bf16_K128.xclbin",
+ "xclbin_bytes": 41736,
+ "xclbin_sha256": "3eb70884e0f2b1ea6a2ca898827c5023610482c354544a9e91d95ceef0d47ed4",
+ "insts_golden": "bf16/npu1_2col/gemm_bf16_K128.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 2,
+ "K": 192,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_2col/gemm_bf16_K192.xclbin",
+ "xclbin_bytes": 39304,
+ "xclbin_sha256": "51ce027cbb472b4539e6a2edf606b4a16c22e4e819938dbe19a29dd72c90f49d",
+ "insts_golden": "bf16/npu1_2col/gemm_bf16_K192.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 2,
+ "K": 256,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_2col/gemm_bf16_K256.xclbin",
+ "xclbin_bytes": 40840,
+ "xclbin_sha256": "74f99246ff3a45dfb30f12082b13bdda532206242f32756a5de588883112d385",
+ "insts_golden": "bf16/npu1_2col/gemm_bf16_K256.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 2,
+ "K": 320,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_2col/gemm_bf16_K320.xclbin",
+ "xclbin_bytes": 42376,
+ "xclbin_sha256": "cb14e2a10bb90475da949a3249f115b2eac73ad6c67b4e9c3da108bbd2e5b205",
+ "insts_golden": "bf16/npu1_2col/gemm_bf16_K320.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 2,
+ "K": 384,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_2col/gemm_bf16_K384.xclbin",
+ "xclbin_bytes": 43912,
+ "xclbin_sha256": "a03e9672692fd1b95fd369c8375e8cab037aa8d6e6a7b6ead8eb2385399f42f6",
+ "insts_golden": "bf16/npu1_2col/gemm_bf16_K384.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 2,
+ "K": 448,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_2col/gemm_bf16_K448.xclbin",
+ "xclbin_bytes": 45448,
+ "xclbin_sha256": "b034f1973b3804cbbe7f7e1ecaeb2ead8ea20628387df3b3c44d337777f2e16c",
+ "insts_golden": "bf16/npu1_2col/gemm_bf16_K448.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 2,
+ "K": 512,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_2col/gemm_bf16_K512.xclbin",
+ "xclbin_bytes": 64392,
+ "xclbin_sha256": "ad44da70bf4970a7d2b48233d982af65187d777d851027cca5d6ed0fa079a5d4",
+ "insts_golden": "bf16/npu1_2col/gemm_bf16_K512.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 2,
+ "K": 576,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_2col/gemm_bf16_K576.xclbin",
+ "xclbin_bytes": 57736,
+ "xclbin_sha256": "cfb8b606d1f38ae4ddc43f04e5c92b25a6e635a9a0f5745677f53bd66618fe14",
+ "insts_golden": "bf16/npu1_2col/gemm_bf16_K576.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 2,
+ "K": 640,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_2col/gemm_bf16_K640.xclbin",
+ "xclbin_bytes": 51976,
+ "xclbin_sha256": "498303d10d0a46c43600ee821c5c7bf1f68e29e8e47425d6ab7115c1a55567a0",
+ "insts_golden": "bf16/npu1_2col/gemm_bf16_K640.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 2,
+ "K": 704,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_2col/gemm_bf16_K704.xclbin",
+ "xclbin_bytes": 65416,
+ "xclbin_sha256": "833ee4e1afae81e04c5387d2f14da21166154e6fb17d1f6fa3978e6f7b834198",
+ "insts_golden": "bf16/npu1_2col/gemm_bf16_K704.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 2,
+ "K": 768,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_2col/gemm_bf16_K768.xclbin",
+ "xclbin_bytes": 64392,
+ "xclbin_sha256": "0fa6eae1c482f0450abdb22fd2a35ce00b734205c48d7f7a7f4ed9684d4478e2",
+ "insts_golden": "bf16/npu1_2col/gemm_bf16_K768.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 2,
+ "K": 832,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_2col/gemm_bf16_K832.xclbin",
+ "xclbin_bytes": 64136,
+ "xclbin_sha256": "990d28e7242ecaf4ed02abe7040e0498eda3d8532cfccff7f8ac6a90beb306ca",
+ "insts_golden": "bf16/npu1_2col/gemm_bf16_K832.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 2,
+ "K": 896,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_2col/gemm_bf16_K896.xclbin",
+ "xclbin_bytes": 51976,
+ "xclbin_sha256": "20d02ae5dd9440a05e99c6285ad9906f74fb4dd6874e0b847bcb458e3a0ea075",
+ "insts_golden": "bf16/npu1_2col/gemm_bf16_K896.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 2,
+ "K": 960,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_2col/gemm_bf16_K960.xclbin",
+ "xclbin_bytes": 57736,
+ "xclbin_sha256": "69ccc59afcf8a1ea244260457cff38e956b9aded292da8d19ae8f0a300f9c710",
+ "insts_golden": "bf16/npu1_2col/gemm_bf16_K960.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 2,
+ "K": 1024,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_2col/gemm_bf16_K1024.xclbin",
+ "xclbin_bytes": 64392,
+ "xclbin_sha256": "389465d465c1a15dfea1641e376601782452fa4a6dc85c8b5d7d0b8f9e3ca8e3",
+ "insts_golden": "bf16/npu1_2col/gemm_bf16_K1024.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 2,
+ "K": 1088,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_2col/gemm_bf16_K1088.xclbin",
+ "xclbin_bytes": 64136,
+ "xclbin_sha256": "7d07ae03fedbe305e610c567ab2b9977eb133bc81566957e79fff5c912898bd2",
+ "insts_golden": "bf16/npu1_2col/gemm_bf16_K1088.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 2,
+ "K": 1152,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_2col/gemm_bf16_K1152.xclbin",
+ "xclbin_bytes": 57736,
+ "xclbin_sha256": "5e25b3acd78b45a925545ba3215aded0f413a1447d477cc4c8d22a08153675a7",
+ "insts_golden": "bf16/npu1_2col/gemm_bf16_K1152.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 2,
+ "K": 1216,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_2col/gemm_bf16_K1216.xclbin",
+ "xclbin_bytes": 65416,
+ "xclbin_sha256": "f13a4bc86520edb1de85a2cf53a2ee301745031139336e71b8a27c312a222f2b",
+ "insts_golden": "bf16/npu1_2col/gemm_bf16_K1216.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 2,
+ "K": 1280,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_2col/gemm_bf16_K1280.xclbin",
+ "xclbin_bytes": 64392,
+ "xclbin_sha256": "3b872db2707e866ad747a2dd01feaf01db6ee4f1c4cfc5b917e22d62bf20bfe7",
+ "insts_golden": "bf16/npu1_2col/gemm_bf16_K1280.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 2,
+ "K": 1344,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_2col/gemm_bf16_K1344.xclbin",
+ "xclbin_bytes": 57736,
+ "xclbin_sha256": "55c56d76ce1e27eeefe33c773ba2776c4637e2f310971a027ffeaea3f66651e3",
+ "insts_golden": "bf16/npu1_2col/gemm_bf16_K1344.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 2,
+ "K": 1408,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_2col/gemm_bf16_K1408.xclbin",
+ "xclbin_bytes": 51976,
+ "xclbin_sha256": "1ad0a7ffdeaa6767cd89f6a17f5f93acfbd6228a53d85e490db760b6fe618615",
+ "insts_golden": "bf16/npu1_2col/gemm_bf16_K1408.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 2,
+ "K": 1472,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_2col/gemm_bf16_K1472.xclbin",
+ "xclbin_bytes": 65416,
+ "xclbin_sha256": "6c27471444672a9702cacbbd91e9043f72c0edac968130f30dc5b57ff47d13b8",
+ "insts_golden": "bf16/npu1_2col/gemm_bf16_K1472.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 2,
+ "K": 1536,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_2col/gemm_bf16_K1536.xclbin",
+ "xclbin_bytes": 64392,
+ "xclbin_sha256": "1d4b9501e380e3e97fe9d51b385c8aece716ace1f3530007679a28a147a5bf06",
+ "insts_golden": "bf16/npu1_2col/gemm_bf16_K1536.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 2,
+ "K": 1728,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_2col/gemm_bf16_K1728.xclbin",
+ "xclbin_bytes": 57736,
+ "xclbin_sha256": "4a0dbb55d0461214ef8ae4f63e2740977c2ecae33cca5a0a17936bc4c3ee01f1",
+ "insts_golden": "bf16/npu1_2col/gemm_bf16_K1728.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 2,
+ "K": 2304,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_2col/gemm_bf16_K2304.xclbin",
+ "xclbin_bytes": 64392,
+ "xclbin_sha256": "d83a9b52d7d3ece51e736fdb7e14334f442304a34990ead4c3a37ec34f24f70f",
+ "insts_golden": "bf16/npu1_2col/gemm_bf16_K2304.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 2,
+ "K": 2880,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_2col/gemm_bf16_K2880.xclbin",
+ "xclbin_bytes": 57736,
+ "xclbin_sha256": "df5a47675abad7e4fab4d323b1906852b7a6ff5be329e4e4aa6eeef794ed3eac",
+ "insts_golden": "bf16/npu1_2col/gemm_bf16_K2880.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 2,
+ "K": 3456,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_2col/gemm_bf16_K3456.xclbin",
+ "xclbin_bytes": 57736,
+ "xclbin_sha256": "decc1dddae857180a2901207249194e4b5a32edc8a18f4229f9691880995709f",
+ "insts_golden": "bf16/npu1_2col/gemm_bf16_K3456.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 2,
+ "K": 4032,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_2col/gemm_bf16_K4032.xclbin",
+ "xclbin_bytes": 57736,
+ "xclbin_sha256": "e7d0a21426805ee7ada99a523c1243d84ca3ce74f56efe69d43a88e8987f97bc",
+ "insts_golden": "bf16/npu1_2col/gemm_bf16_K4032.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 2,
+ "K": 4608,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_2col/gemm_bf16_K4608.xclbin",
+ "xclbin_bytes": 64392,
+ "xclbin_sha256": "725ceb63599929dfa84c4cdff249da1dea9f0bb233d2cbb47d70a6d786f5899a",
+ "insts_golden": "bf16/npu1_2col/gemm_bf16_K4608.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 2,
+ "K": 5184,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_2col/gemm_bf16_K5184.xclbin",
+ "xclbin_bytes": 57736,
+ "xclbin_sha256": "557d93053a0d4c07aa3bd67da28efb440d37f0750d384152e501b466557598bf",
+ "insts_golden": "bf16/npu1_2col/gemm_bf16_K5184.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 2,
+ "K": 5760,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_2col/gemm_bf16_K5760.xclbin",
+ "xclbin_bytes": 57736,
+ "xclbin_sha256": "54d9fb3e866b00457a97c4fc0db3f8d3bc2da0348d6d928165ab7e60f7be1bb3",
+ "insts_golden": "bf16/npu1_2col/gemm_bf16_K5760.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 2,
+ "K": 6336,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_2col/gemm_bf16_K6336.xclbin",
+ "xclbin_bytes": 57736,
+ "xclbin_sha256": "cee452c7a7595d9594053bd7e545eccb5bc5ba370cf49abca8b2ba0934cacd0e",
+ "insts_golden": "bf16/npu1_2col/gemm_bf16_K6336.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 2,
+ "K": 6912,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_2col/gemm_bf16_K6912.xclbin",
+ "xclbin_bytes": 64392,
+ "xclbin_sha256": "ed1c9c92a5ee107710077a51cf02ae0447b693dd6a065706bba2c32a11874344",
+ "insts_golden": "bf16/npu1_2col/gemm_bf16_K6912.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 4,
+ "K": 64,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_4col/gemm_bf16_K64.xclbin",
+ "xclbin_bytes": 78366,
+ "xclbin_sha256": "003a016e289889bacbef273f76cbadb389c50e66be2bc7fd090e48d6f215314e",
+ "insts_golden": "bf16/npu1_4col/gemm_bf16_K64.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 4,
+ "K": 128,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_4col/gemm_bf16_K128.xclbin",
+ "xclbin_bytes": 76062,
+ "xclbin_sha256": "ff0decef376d05b68e80a362bedec423afbf078a16a2de35a858e526fc431213",
+ "insts_golden": "bf16/npu1_4col/gemm_bf16_K128.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 4,
+ "K": 192,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_4col/gemm_bf16_K192.xclbin",
+ "xclbin_bytes": 71197,
+ "xclbin_sha256": "ec78ae484cdf1ef4d0caa11184c7fe1e90ee80ba4386d847854f8742e0f99b21",
+ "insts_golden": "bf16/npu1_4col/gemm_bf16_K192.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 4,
+ "K": 256,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_4col/gemm_bf16_K256.xclbin",
+ "xclbin_bytes": 74270,
+ "xclbin_sha256": "2bd5e1d582128447a6bf6ffbee067ee985b28e8208fd469d05c0c88f9c810fc5",
+ "insts_golden": "bf16/npu1_4col/gemm_bf16_K256.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 4,
+ "K": 320,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_4col/gemm_bf16_K320.xclbin",
+ "xclbin_bytes": 77342,
+ "xclbin_sha256": "e211855cc4b732c59ed2fea1ef23adf33d603340f3ac7c8b213c111f35242faa",
+ "insts_golden": "bf16/npu1_4col/gemm_bf16_K320.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 4,
+ "K": 384,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_4col/gemm_bf16_K384.xclbin",
+ "xclbin_bytes": 80414,
+ "xclbin_sha256": "20d55b6f562badbdc9f91d2a21e010a79e495490eb772d07d2c20d81d363cfa5",
+ "insts_golden": "bf16/npu1_4col/gemm_bf16_K384.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 4,
+ "K": 448,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_4col/gemm_bf16_K448.xclbin",
+ "xclbin_bytes": 83486,
+ "xclbin_sha256": "37c688366e679927165d4e398a05de63988a1344cf9a7aec8409ef21b1284620",
+ "insts_golden": "bf16/npu1_4col/gemm_bf16_K448.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 4,
+ "K": 512,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_4col/gemm_bf16_K512.xclbin",
+ "xclbin_bytes": 121374,
+ "xclbin_sha256": "9347fd33202aef08625767f94f78f9c4cf2bd981a8bd098099438beed1fa3979",
+ "insts_golden": "bf16/npu1_4col/gemm_bf16_K512.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 4,
+ "K": 576,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_4col/gemm_bf16_K576.xclbin",
+ "xclbin_bytes": 108062,
+ "xclbin_sha256": "5d89770e92970216544d06859d450732a064a08eaacb09b04df8efd6ae55b498",
+ "insts_golden": "bf16/npu1_4col/gemm_bf16_K576.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 4,
+ "K": 640,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_4col/gemm_bf16_K640.xclbin",
+ "xclbin_bytes": 96542,
+ "xclbin_sha256": "4ee82d5d59a05cb1ebf76c31f995839f60e1e5f5516a6eb949547abcc6f86000",
+ "insts_golden": "bf16/npu1_4col/gemm_bf16_K640.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 4,
+ "K": 704,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_4col/gemm_bf16_K704.xclbin",
+ "xclbin_bytes": 123422,
+ "xclbin_sha256": "e6434bc2c4d65948f4f5ccc89ed7154b54321a3f917665f8c157a2dd4e6f4b35",
+ "insts_golden": "bf16/npu1_4col/gemm_bf16_K704.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 4,
+ "K": 768,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_4col/gemm_bf16_K768.xclbin",
+ "xclbin_bytes": 121374,
+ "xclbin_sha256": "59505b9e1d682fa4176da7dad877d413425857f71b843c8dbbaae65342ca1ec7",
+ "insts_golden": "bf16/npu1_4col/gemm_bf16_K768.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 4,
+ "K": 832,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_4col/gemm_bf16_K832.xclbin",
+ "xclbin_bytes": 120862,
+ "xclbin_sha256": "1b5647c8a1666e15aa5f98d89e9e994c663223c20e9b8ed74e6938e784377fe0",
+ "insts_golden": "bf16/npu1_4col/gemm_bf16_K832.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 4,
+ "K": 896,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_4col/gemm_bf16_K896.xclbin",
+ "xclbin_bytes": 96542,
+ "xclbin_sha256": "81e73eddafb95c1794e0b8db6d1fb2046fdf5b5cb21f25b107f53a17cadebb30",
+ "insts_golden": "bf16/npu1_4col/gemm_bf16_K896.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 4,
+ "K": 960,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_4col/gemm_bf16_K960.xclbin",
+ "xclbin_bytes": 108062,
+ "xclbin_sha256": "ad56f3b47b38c3af84744a4925d5ac5da4ee279b43fcce5b33aaacd05c7e3d5d",
+ "insts_golden": "bf16/npu1_4col/gemm_bf16_K960.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 4,
+ "K": 1024,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_4col/gemm_bf16_K1024.xclbin",
+ "xclbin_bytes": 121374,
+ "xclbin_sha256": "3461b5892d225c0b1bf1c62cf36f878348f1be9f4a450d7129dfecf1e32e2ef1",
+ "insts_golden": "bf16/npu1_4col/gemm_bf16_K1024.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 4,
+ "K": 1088,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_4col/gemm_bf16_K1088.xclbin",
+ "xclbin_bytes": 120862,
+ "xclbin_sha256": "5b0ffbbac9a44533545fe0441a4616375fa7cd58261ec4be241a8a3353ddf5c1",
+ "insts_golden": "bf16/npu1_4col/gemm_bf16_K1088.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 4,
+ "K": 1152,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_4col/gemm_bf16_K1152.xclbin",
+ "xclbin_bytes": 108062,
+ "xclbin_sha256": "47e696f4ce10571e4036b0118c6df735c381a3a6e945f7cc07db91cae5ab9ca5",
+ "insts_golden": "bf16/npu1_4col/gemm_bf16_K1152.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 4,
+ "K": 1216,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_4col/gemm_bf16_K1216.xclbin",
+ "xclbin_bytes": 123422,
+ "xclbin_sha256": "ab1467728cf873b3e7697a1590b2a89e4757cdf334a52fbaeb0918261718f0bd",
+ "insts_golden": "bf16/npu1_4col/gemm_bf16_K1216.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 4,
+ "K": 1280,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_4col/gemm_bf16_K1280.xclbin",
+ "xclbin_bytes": 121374,
+ "xclbin_sha256": "5c4cd599cda361acd0db732a838036ac99c41c98ab809317200979297c3b2258",
+ "insts_golden": "bf16/npu1_4col/gemm_bf16_K1280.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 4,
+ "K": 1344,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_4col/gemm_bf16_K1344.xclbin",
+ "xclbin_bytes": 108062,
+ "xclbin_sha256": "1944f3beac4fb17623533d158c582f10bdd60005b7a5d9ee7f5bc9721ab61d4d",
+ "insts_golden": "bf16/npu1_4col/gemm_bf16_K1344.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 4,
+ "K": 1408,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_4col/gemm_bf16_K1408.xclbin",
+ "xclbin_bytes": 96542,
+ "xclbin_sha256": "eca7e3cb6087e95fafd040d489e9cab00580d704d1b04ecb49eade4356c620d4",
+ "insts_golden": "bf16/npu1_4col/gemm_bf16_K1408.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 4,
+ "K": 1472,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_4col/gemm_bf16_K1472.xclbin",
+ "xclbin_bytes": 123422,
+ "xclbin_sha256": "c71fc305e5df7652805b06171483625502b8924fc2a10afc1a6760c418741d9e",
+ "insts_golden": "bf16/npu1_4col/gemm_bf16_K1472.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 4,
+ "K": 1536,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_4col/gemm_bf16_K1536.xclbin",
+ "xclbin_bytes": 121374,
+ "xclbin_sha256": "a107a9f1fc06866f5c50ad12a292141093aed1c6460c7b2ffb4f2a1598361718",
+ "insts_golden": "bf16/npu1_4col/gemm_bf16_K1536.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 4,
+ "K": 1728,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_4col/gemm_bf16_K1728.xclbin",
+ "xclbin_bytes": 108062,
+ "xclbin_sha256": "52ed1f4d6551aec1d18b1c560bc82ea418df2df984b31d854fd2e1b79e4b6856",
+ "insts_golden": "bf16/npu1_4col/gemm_bf16_K1728.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 4,
+ "K": 2304,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_4col/gemm_bf16_K2304.xclbin",
+ "xclbin_bytes": 121374,
+ "xclbin_sha256": "9879673fb966d76ec4815db94c1bc8183fd998404f0798e10cce84cc3ac2351d",
+ "insts_golden": "bf16/npu1_4col/gemm_bf16_K2304.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 4,
+ "K": 2880,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_4col/gemm_bf16_K2880.xclbin",
+ "xclbin_bytes": 108062,
+ "xclbin_sha256": "9a9ab6db21097d6ad19a661480f190e441dbd7ee945e2e0a3f43a99d476a7346",
+ "insts_golden": "bf16/npu1_4col/gemm_bf16_K2880.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 4,
+ "K": 3456,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_4col/gemm_bf16_K3456.xclbin",
+ "xclbin_bytes": 108062,
+ "xclbin_sha256": "18bbdb45d60b3a75b18fbebaeace4fbf9e7cad45187820d5548e4b4f08e637f2",
+ "insts_golden": "bf16/npu1_4col/gemm_bf16_K3456.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 4,
+ "K": 4032,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_4col/gemm_bf16_K4032.xclbin",
+ "xclbin_bytes": 108062,
+ "xclbin_sha256": "4bfe5846d244a03d66bbde0ecd3daf6fa0824d201c3db7bc7d23134517450023",
+ "insts_golden": "bf16/npu1_4col/gemm_bf16_K4032.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 4,
+ "K": 4608,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_4col/gemm_bf16_K4608.xclbin",
+ "xclbin_bytes": 121374,
+ "xclbin_sha256": "4c97987205d07d9b0882e01141891695e69092ab2a4008327f77b8d19705844d",
+ "insts_golden": "bf16/npu1_4col/gemm_bf16_K4608.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 4,
+ "K": 5184,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_4col/gemm_bf16_K5184.xclbin",
+ "xclbin_bytes": 108062,
+ "xclbin_sha256": "cdb4a58ed81caf48347843c3dd7e9c89098d32ccfa1ff59608384fc877647b67",
+ "insts_golden": "bf16/npu1_4col/gemm_bf16_K5184.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 4,
+ "K": 5760,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_4col/gemm_bf16_K5760.xclbin",
+ "xclbin_bytes": 108062,
+ "xclbin_sha256": "5596fa82555d16ff21502180039083c44dd84062fc69fa85029bac625b0995c6",
+ "insts_golden": "bf16/npu1_4col/gemm_bf16_K5760.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 4,
+ "K": 6336,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_4col/gemm_bf16_K6336.xclbin",
+ "xclbin_bytes": 108062,
+ "xclbin_sha256": "caacaa38cc225cd586f91185adf0572610e4cba017ab379a4b6e229b01f065a6",
+ "insts_golden": "bf16/npu1_4col/gemm_bf16_K6336.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu1",
+ "n_aie_cols": 4,
+ "K": 6912,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu1_4col/gemm_bf16_K6912.xclbin",
+ "xclbin_bytes": 121374,
+ "xclbin_sha256": "bc8588c72108ca6c10aa49823d77563955b03bfe54a977c9517cdfb58aaf294e",
+ "insts_golden": "bf16/npu1_4col/gemm_bf16_K6912.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 1,
+ "K": 64,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_1col/gemm_bf16_K64.xclbin",
+ "xclbin_bytes": 24520,
+ "xclbin_sha256": "e4bf1e46f419374054cb46b97903b10b914187500c1f30a6ebe3ad65ec2c44ba",
+ "insts_golden": "bf16/npu2_1col/gemm_bf16_K64.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 1,
+ "K": 128,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_1col/gemm_bf16_K128.xclbin",
+ "xclbin_bytes": 27592,
+ "xclbin_sha256": "9b3ae189f7412f5d57731bbcdbab62176f90136b67dc4559d60c4bcac8f52b28",
+ "insts_golden": "bf16/npu2_1col/gemm_bf16_K128.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 1,
+ "K": 192,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_1col/gemm_bf16_K192.xclbin",
+ "xclbin_bytes": 22536,
+ "xclbin_sha256": "508c6a00a33091e9baa63e022fdc370011dd00c0fe37b376c3da9ba0776575ca",
+ "insts_golden": "bf16/npu2_1col/gemm_bf16_K192.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 1,
+ "K": 256,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_1col/gemm_bf16_K256.xclbin",
+ "xclbin_bytes": 23240,
+ "xclbin_sha256": "b0a61e2b07814fc394645de64a71fdfd0f8e3d2b0ddc58a8aba3d0ef06e6b274",
+ "insts_golden": "bf16/npu2_1col/gemm_bf16_K256.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 1,
+ "K": 320,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_1col/gemm_bf16_K320.xclbin",
+ "xclbin_bytes": 23944,
+ "xclbin_sha256": "8a1ff9f99fb9fa7c9a23016f15fb76086472b153dc3d46a5eeeda3cfd2acdeaa",
+ "insts_golden": "bf16/npu2_1col/gemm_bf16_K320.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 1,
+ "K": 384,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_1col/gemm_bf16_K384.xclbin",
+ "xclbin_bytes": 24648,
+ "xclbin_sha256": "51bd46329159262a63263dfc9d1a0cdba0d168caf7471b725e9092c237734993",
+ "insts_golden": "bf16/npu2_1col/gemm_bf16_K384.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 1,
+ "K": 448,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_1col/gemm_bf16_K448.xclbin",
+ "xclbin_bytes": 25352,
+ "xclbin_sha256": "fb7d11766f238d07090f7c3f109aff732b3f3f4ea448388863d232b7c8da001e",
+ "insts_golden": "bf16/npu2_1col/gemm_bf16_K448.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 1,
+ "K": 512,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_1col/gemm_bf16_K512.xclbin",
+ "xclbin_bytes": 26056,
+ "xclbin_sha256": "990cc7fe77565cf0e1cfe1de58840cc49be3c0ff197040ca7ee4891e1c5cc221",
+ "insts_golden": "bf16/npu2_1col/gemm_bf16_K512.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 1,
+ "K": 576,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_1col/gemm_bf16_K576.xclbin",
+ "xclbin_bytes": 26760,
+ "xclbin_sha256": "ed5fe165764bec49fbcbfaad40c6c0176c54229739ebcfd3cc4c4455003ef899",
+ "insts_golden": "bf16/npu2_1col/gemm_bf16_K576.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 1,
+ "K": 640,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_1col/gemm_bf16_K640.xclbin",
+ "xclbin_bytes": 27464,
+ "xclbin_sha256": "61645b488f708fccb4a52123939f39e9a2371042e744c40231c2ee3867576149",
+ "insts_golden": "bf16/npu2_1col/gemm_bf16_K640.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 1,
+ "K": 704,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_1col/gemm_bf16_K704.xclbin",
+ "xclbin_bytes": 28168,
+ "xclbin_sha256": "00ef0fd9b726bb57aa9e118b8b953bd15fc893a5ab8d30a08e762ba5d6a78af9",
+ "insts_golden": "bf16/npu2_1col/gemm_bf16_K704.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 1,
+ "K": 768,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_1col/gemm_bf16_K768.xclbin",
+ "xclbin_bytes": 28872,
+ "xclbin_sha256": "58ad70211e7d60509ec2645eb61654858f68db830351804f5066e9afa5f2afd4",
+ "insts_golden": "bf16/npu2_1col/gemm_bf16_K768.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 1,
+ "K": 832,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_1col/gemm_bf16_K832.xclbin",
+ "xclbin_bytes": 23880,
+ "xclbin_sha256": "d11e93bf53a881387c0a94c038f0f696e79ba510f0ef39fe91422f5fb9164428",
+ "insts_golden": "bf16/npu2_1col/gemm_bf16_K832.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 1,
+ "K": 896,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_1col/gemm_bf16_K896.xclbin",
+ "xclbin_bytes": 22344,
+ "xclbin_sha256": "c2737c3612fb1849e4134a9faa5adb6a12ad98ed3e377c7c00ad8f9a12579a25",
+ "insts_golden": "bf16/npu2_1col/gemm_bf16_K896.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 1,
+ "K": 960,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_1col/gemm_bf16_K960.xclbin",
+ "xclbin_bytes": 22920,
+ "xclbin_sha256": "e5b0d210cb6feb8cfc875be6116dc489a3f28d3e97042f621d45622f4123cab3",
+ "insts_golden": "bf16/npu2_1col/gemm_bf16_K960.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 1,
+ "K": 1024,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_1col/gemm_bf16_K1024.xclbin",
+ "xclbin_bytes": 23560,
+ "xclbin_sha256": "79c2df60bb24998fbe0894d43795a0155a074ebd15b391260b18890286effad8",
+ "insts_golden": "bf16/npu2_1col/gemm_bf16_K1024.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 1,
+ "K": 1088,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_1col/gemm_bf16_K1088.xclbin",
+ "xclbin_bytes": 23880,
+ "xclbin_sha256": "be7fbb5d3de823019a4f90ed72666423cd50ed453aba5933d7042b8a4eb12340",
+ "insts_golden": "bf16/npu2_1col/gemm_bf16_K1088.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 1,
+ "K": 1152,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_1col/gemm_bf16_K1152.xclbin",
+ "xclbin_bytes": 22920,
+ "xclbin_sha256": "9122b4d17395a003aba92563a774cf2a9ff43f0b6c51b3d27f84e4dc8cc231fb",
+ "insts_golden": "bf16/npu2_1col/gemm_bf16_K1152.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 1,
+ "K": 1216,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_1col/gemm_bf16_K1216.xclbin",
+ "xclbin_bytes": 23816,
+ "xclbin_sha256": "1e52350f7f84adcb5ae02e7e3e2d968977f6554c629975b312c1c22332d90646",
+ "insts_golden": "bf16/npu2_1col/gemm_bf16_K1216.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 1,
+ "K": 1280,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_1col/gemm_bf16_K1280.xclbin",
+ "xclbin_bytes": 23560,
+ "xclbin_sha256": "5d2e8c05126d66f1b1ae6eb9f565381e3038310d619ec87f49ff8e12da9c4915",
+ "insts_golden": "bf16/npu2_1col/gemm_bf16_K1280.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 1,
+ "K": 1344,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_1col/gemm_bf16_K1344.xclbin",
+ "xclbin_bytes": 22920,
+ "xclbin_sha256": "f482d0d0c91cfea68c6ae032a4bc3c03da6370f5787379f28e813d87448a9484",
+ "insts_golden": "bf16/npu2_1col/gemm_bf16_K1344.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 1,
+ "K": 1408,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_1col/gemm_bf16_K1408.xclbin",
+ "xclbin_bytes": 22344,
+ "xclbin_sha256": "c59ef27ce3d2cb5a6aad0bca05d7c7c48420dc442b3bc9925079b742bca0625f",
+ "insts_golden": "bf16/npu2_1col/gemm_bf16_K1408.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 1,
+ "K": 1472,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_1col/gemm_bf16_K1472.xclbin",
+ "xclbin_bytes": 23816,
+ "xclbin_sha256": "828b64993ef33fc9c661d7c8b0df3c263b7a20ecd46b2008ef87b8f7a24049b0",
+ "insts_golden": "bf16/npu2_1col/gemm_bf16_K1472.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 1,
+ "K": 1536,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_1col/gemm_bf16_K1536.xclbin",
+ "xclbin_bytes": 23560,
+ "xclbin_sha256": "ec712aa979972ed68edb6a839d1bdd8819c1d1967bac98802194b6fe405e2c58",
+ "insts_golden": "bf16/npu2_1col/gemm_bf16_K1536.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 1,
+ "K": 1728,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_1col/gemm_bf16_K1728.xclbin",
+ "xclbin_bytes": 22920,
+ "xclbin_sha256": "e5cb6bc8439e9e09684e163d3c8acf6fbc87a0fbaf3e25cf8922e06362f2dadb",
+ "insts_golden": "bf16/npu2_1col/gemm_bf16_K1728.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 1,
+ "K": 2304,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_1col/gemm_bf16_K2304.xclbin",
+ "xclbin_bytes": 23560,
+ "xclbin_sha256": "c2e7b754ef446033a5ff81f9f7c3c7750fcd4a0ab3ae3c98ba749eb30900a66b",
+ "insts_golden": "bf16/npu2_1col/gemm_bf16_K2304.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 1,
+ "K": 2880,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_1col/gemm_bf16_K2880.xclbin",
+ "xclbin_bytes": 22920,
+ "xclbin_sha256": "27971e0059a690ec9ac28920ef8cbf55f6f0e2bd55f0bc6d9e23d065f38337e5",
+ "insts_golden": "bf16/npu2_1col/gemm_bf16_K2880.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 1,
+ "K": 3456,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_1col/gemm_bf16_K3456.xclbin",
+ "xclbin_bytes": 22920,
+ "xclbin_sha256": "e6e71f4bdeeec397550acbc070d7c25a5074c93af0f7d99ae7eb9cb9c67889c0",
+ "insts_golden": "bf16/npu2_1col/gemm_bf16_K3456.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 1,
+ "K": 4032,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_1col/gemm_bf16_K4032.xclbin",
+ "xclbin_bytes": 22920,
+ "xclbin_sha256": "0f9b0225639014ec6075d300192cf0948c117694d4a337ad14588ca4fbfa5688",
+ "insts_golden": "bf16/npu2_1col/gemm_bf16_K4032.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 1,
+ "K": 4608,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_1col/gemm_bf16_K4608.xclbin",
+ "xclbin_bytes": 23560,
+ "xclbin_sha256": "893bb1ea5a3924fbf077e979199115ac020600ce5d484f26dd7fb3ff4a71158d",
+ "insts_golden": "bf16/npu2_1col/gemm_bf16_K4608.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 1,
+ "K": 5184,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_1col/gemm_bf16_K5184.xclbin",
+ "xclbin_bytes": 22920,
+ "xclbin_sha256": "77df7410fa90109357a8a711315e7611705565b1baafe8100619c6033ef7d154",
+ "insts_golden": "bf16/npu2_1col/gemm_bf16_K5184.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 1,
+ "K": 5760,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_1col/gemm_bf16_K5760.xclbin",
+ "xclbin_bytes": 22920,
+ "xclbin_sha256": "3c47f724a6ca2d18900c42d03094810eb642b78f9b1cb516b120eca77d0208b6",
+ "insts_golden": "bf16/npu2_1col/gemm_bf16_K5760.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 1,
+ "K": 6336,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_1col/gemm_bf16_K6336.xclbin",
+ "xclbin_bytes": 22920,
+ "xclbin_sha256": "0886077d518b6e66a17f3a341396f6976e26f26af162db6c4e8e167cb0a56735",
+ "insts_golden": "bf16/npu2_1col/gemm_bf16_K6336.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 1,
+ "K": 6912,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_1col/gemm_bf16_K6912.xclbin",
+ "xclbin_bytes": 23560,
+ "xclbin_sha256": "eb83e3acd2fd6e24da03a8d694b1fd8528bec5831b8faab729ff60eb8da255b2",
+ "insts_golden": "bf16/npu2_1col/gemm_bf16_K6912.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 2,
+ "K": 64,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_2col/gemm_bf16_K64.xclbin",
+ "xclbin_bytes": 41304,
+ "xclbin_sha256": "006287507bfd8b051d57d99c0853f85a8a37bae2e77383ad748ab3125e6ff01d",
+ "insts_golden": "bf16/npu2_2col/gemm_bf16_K64.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 2,
+ "K": 128,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_2col/gemm_bf16_K128.xclbin",
+ "xclbin_bytes": 47448,
+ "xclbin_sha256": "80dae6541cc475672b34c7a2bc56df733d97a25de0baf54527e68784e7514a15",
+ "insts_golden": "bf16/npu2_2col/gemm_bf16_K128.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 2,
+ "K": 192,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_2col/gemm_bf16_K192.xclbin",
+ "xclbin_bytes": 37336,
+ "xclbin_sha256": "ef8f9ae50e8277a8bd03bb1231b5e8a37f425d83f435f98399d3d5c2a20d54c6",
+ "insts_golden": "bf16/npu2_2col/gemm_bf16_K192.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 2,
+ "K": 256,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_2col/gemm_bf16_K256.xclbin",
+ "xclbin_bytes": 38744,
+ "xclbin_sha256": "255d5cf6864d467c65c0b4311f459b80fe5dd0d5b3fa15c37228aa7033661997",
+ "insts_golden": "bf16/npu2_2col/gemm_bf16_K256.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 2,
+ "K": 320,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_2col/gemm_bf16_K320.xclbin",
+ "xclbin_bytes": 40152,
+ "xclbin_sha256": "0cc2b4edff23645d9b82333668ba32292381f2c4e40d8f3e689253062b797ca3",
+ "insts_golden": "bf16/npu2_2col/gemm_bf16_K320.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 2,
+ "K": 384,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_2col/gemm_bf16_K384.xclbin",
+ "xclbin_bytes": 41560,
+ "xclbin_sha256": "f3449fd32de835ea66ea4f870969f9f9cf6c513192badb485deba96f345ad0ba",
+ "insts_golden": "bf16/npu2_2col/gemm_bf16_K384.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 2,
+ "K": 448,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_2col/gemm_bf16_K448.xclbin",
+ "xclbin_bytes": 42968,
+ "xclbin_sha256": "90dc7cee8ccee5f2a7e43931eb6ee90af55dcc1dba2294c65d889cdfa1918f43",
+ "insts_golden": "bf16/npu2_2col/gemm_bf16_K448.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 2,
+ "K": 512,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_2col/gemm_bf16_K512.xclbin",
+ "xclbin_bytes": 44376,
+ "xclbin_sha256": "97c83dcc3eede5661bc32ddc8d48978db1e7b0d42a08c414ca19718c0a5e4052",
+ "insts_golden": "bf16/npu2_2col/gemm_bf16_K512.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 2,
+ "K": 576,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_2col/gemm_bf16_K576.xclbin",
+ "xclbin_bytes": 45784,
+ "xclbin_sha256": "52bc1a3317aafe725a2cc20b0b040d59b5e43650f6c020f93aaf491f42b487d8",
+ "insts_golden": "bf16/npu2_2col/gemm_bf16_K576.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 2,
+ "K": 640,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_2col/gemm_bf16_K640.xclbin",
+ "xclbin_bytes": 47192,
+ "xclbin_sha256": "f7d6cc7da150a1193901c0cf3d74a0684bfcefbbf1ab91e377e15059b6a65ac3",
+ "insts_golden": "bf16/npu2_2col/gemm_bf16_K640.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 2,
+ "K": 704,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_2col/gemm_bf16_K704.xclbin",
+ "xclbin_bytes": 48600,
+ "xclbin_sha256": "995ae5d9660f660b6683d8f0485d807f7ebb92e4984d38a0d29246e7d5d7829f",
+ "insts_golden": "bf16/npu2_2col/gemm_bf16_K704.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 2,
+ "K": 768,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_2col/gemm_bf16_K768.xclbin",
+ "xclbin_bytes": 50008,
+ "xclbin_sha256": "87126c39eea1b12360f5b02bedc5f84b2f0924cc2623a025cc23a69f1abbd415",
+ "insts_golden": "bf16/npu2_2col/gemm_bf16_K768.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 2,
+ "K": 832,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_2col/gemm_bf16_K832.xclbin",
+ "xclbin_bytes": 40024,
+ "xclbin_sha256": "665ee05045a554324690aea483a439420281e32387580d2870b0f1a2a39087c8",
+ "insts_golden": "bf16/npu2_2col/gemm_bf16_K832.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 2,
+ "K": 896,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_2col/gemm_bf16_K896.xclbin",
+ "xclbin_bytes": 36952,
+ "xclbin_sha256": "e43592fcc91f5c33c22dca7aec3902feee4f0e280fb6b48403af15949cf50ea4",
+ "insts_golden": "bf16/npu2_2col/gemm_bf16_K896.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 2,
+ "K": 960,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_2col/gemm_bf16_K960.xclbin",
+ "xclbin_bytes": 38104,
+ "xclbin_sha256": "600a067fa014d031ccf3e11b3447edbdd1f2e42ace8db1332667af9c676c0643",
+ "insts_golden": "bf16/npu2_2col/gemm_bf16_K960.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 2,
+ "K": 1024,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_2col/gemm_bf16_K1024.xclbin",
+ "xclbin_bytes": 39384,
+ "xclbin_sha256": "e7604da02d7ebfc25ee8828fe0a01f9988c973afadf0f531c8d49c7013857d93",
+ "insts_golden": "bf16/npu2_2col/gemm_bf16_K1024.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 2,
+ "K": 1088,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_2col/gemm_bf16_K1088.xclbin",
+ "xclbin_bytes": 40024,
+ "xclbin_sha256": "a902b8c7c04a1aefc27586aac4f9185d0394b9be7410fb88348d1ba71287c9bd",
+ "insts_golden": "bf16/npu2_2col/gemm_bf16_K1088.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 2,
+ "K": 1152,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_2col/gemm_bf16_K1152.xclbin",
+ "xclbin_bytes": 38104,
+ "xclbin_sha256": "0fe956ce37da767fa62dcf93a1f2e7d9d6e4170cf5367f179a96d49b98568209",
+ "insts_golden": "bf16/npu2_2col/gemm_bf16_K1152.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 2,
+ "K": 1216,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_2col/gemm_bf16_K1216.xclbin",
+ "xclbin_bytes": 39896,
+ "xclbin_sha256": "4b5d3af9966c3377171cb7fb98f16a315796a4162aa7178edf077f47136253f9",
+ "insts_golden": "bf16/npu2_2col/gemm_bf16_K1216.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 2,
+ "K": 1280,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_2col/gemm_bf16_K1280.xclbin",
+ "xclbin_bytes": 39384,
+ "xclbin_sha256": "8f18befeeadf27c1f35b773f4a57833a3580216541b545f7258e01476b6169ff",
+ "insts_golden": "bf16/npu2_2col/gemm_bf16_K1280.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 2,
+ "K": 1344,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_2col/gemm_bf16_K1344.xclbin",
+ "xclbin_bytes": 38104,
+ "xclbin_sha256": "636114cbac8366ae0dd795fcce10042c88acdc8f853b3d6b043e3ffcddd06162",
+ "insts_golden": "bf16/npu2_2col/gemm_bf16_K1344.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 2,
+ "K": 1408,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_2col/gemm_bf16_K1408.xclbin",
+ "xclbin_bytes": 36952,
+ "xclbin_sha256": "347dcc0f0a47279afc8a3a2b07745df34ee4405869a5ea63d08f57fba79c8438",
+ "insts_golden": "bf16/npu2_2col/gemm_bf16_K1408.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 2,
+ "K": 1472,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_2col/gemm_bf16_K1472.xclbin",
+ "xclbin_bytes": 39896,
+ "xclbin_sha256": "663b68104bcb6865631516d9b33d4ad7a31d9b464b95fabb8be0737862f6856c",
+ "insts_golden": "bf16/npu2_2col/gemm_bf16_K1472.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 2,
+ "K": 1536,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_2col/gemm_bf16_K1536.xclbin",
+ "xclbin_bytes": 39384,
+ "xclbin_sha256": "f1ee118c897a0574dd506bc4ebbdbe326d5284557f433a231f2db1607a557235",
+ "insts_golden": "bf16/npu2_2col/gemm_bf16_K1536.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 2,
+ "K": 1728,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_2col/gemm_bf16_K1728.xclbin",
+ "xclbin_bytes": 38104,
+ "xclbin_sha256": "402ade6814723f900f9814ae66a1f9aa6a5eb3f1e638a2cd42e38a883c87a9e9",
+ "insts_golden": "bf16/npu2_2col/gemm_bf16_K1728.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 2,
+ "K": 2304,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_2col/gemm_bf16_K2304.xclbin",
+ "xclbin_bytes": 39384,
+ "xclbin_sha256": "f2054cdc6b29c721dcc20b32c79f92b66bdecfc0043452a37cee3c7293e0d288",
+ "insts_golden": "bf16/npu2_2col/gemm_bf16_K2304.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 2,
+ "K": 2880,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_2col/gemm_bf16_K2880.xclbin",
+ "xclbin_bytes": 38104,
+ "xclbin_sha256": "b92e671ca1042885d76569a155eebf7da2e756b63ce73508cc60dd588947442d",
+ "insts_golden": "bf16/npu2_2col/gemm_bf16_K2880.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 2,
+ "K": 3456,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_2col/gemm_bf16_K3456.xclbin",
+ "xclbin_bytes": 38104,
+ "xclbin_sha256": "d172e0568e22425a4072361bb5d3b1c79e8cad35cf400582b43bc23ddccb6434",
+ "insts_golden": "bf16/npu2_2col/gemm_bf16_K3456.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 2,
+ "K": 4032,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_2col/gemm_bf16_K4032.xclbin",
+ "xclbin_bytes": 38104,
+ "xclbin_sha256": "57b7de3367d213c8515cce2d4d85537a82b3cdb77885544ab6a35d1dc4999ac4",
+ "insts_golden": "bf16/npu2_2col/gemm_bf16_K4032.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 2,
+ "K": 4608,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_2col/gemm_bf16_K4608.xclbin",
+ "xclbin_bytes": 39384,
+ "xclbin_sha256": "2ed32a5823cbdccd2b9e7aaa95eb340f28810b8242599fab39bbb82f4df8b408",
+ "insts_golden": "bf16/npu2_2col/gemm_bf16_K4608.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 2,
+ "K": 5184,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_2col/gemm_bf16_K5184.xclbin",
+ "xclbin_bytes": 38104,
+ "xclbin_sha256": "9f6af645e032d6b44b76408f68a4700a44ae3255b3bcd86f87a8fb4050d1fa39",
+ "insts_golden": "bf16/npu2_2col/gemm_bf16_K5184.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 2,
+ "K": 5760,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_2col/gemm_bf16_K5760.xclbin",
+ "xclbin_bytes": 38104,
+ "xclbin_sha256": "e923f4a4c0a9314d402a975d12d865eccb6dd8d3af1d3d81099cea25323aa328",
+ "insts_golden": "bf16/npu2_2col/gemm_bf16_K5760.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 2,
+ "K": 6336,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_2col/gemm_bf16_K6336.xclbin",
+ "xclbin_bytes": 38104,
+ "xclbin_sha256": "fc6676bc65b5f4c26a76021635dd198ee9a5fb53b292b8342292aa1f0709d7bc",
+ "insts_golden": "bf16/npu2_2col/gemm_bf16_K6336.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 2,
+ "K": 6912,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_2col/gemm_bf16_K6912.xclbin",
+ "xclbin_bytes": 39384,
+ "xclbin_sha256": "4bde66b816a68c6b30bdfdb2d0f4bfe02744daa692c2e12bc6128483a164e424",
+ "insts_golden": "bf16/npu2_2col/gemm_bf16_K6912.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 4,
+ "K": 64,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_4col/gemm_bf16_K64.xclbin",
+ "xclbin_bytes": 75118,
+ "xclbin_sha256": "79ed75cd139c6510a296eb27752bd16e02b7f3670c1cc1b33d086982bc169e77",
+ "insts_golden": "bf16/npu2_4col/gemm_bf16_K64.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 4,
+ "K": 128,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_4col/gemm_bf16_K128.xclbin",
+ "xclbin_bytes": 87406,
+ "xclbin_sha256": "c78300c611ba552f0723681991cb9071e38f09632937d8180667125ae4b740a7",
+ "insts_golden": "bf16/npu2_4col/gemm_bf16_K128.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 4,
+ "K": 192,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_4col/gemm_bf16_K192.xclbin",
+ "xclbin_bytes": 67176,
+ "xclbin_sha256": "84320cd5480206476d6461c90580bb7b436054f9d9d47528ba8f5a698c30a645",
+ "insts_golden": "bf16/npu2_4col/gemm_bf16_K192.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 4,
+ "K": 256,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_4col/gemm_bf16_K256.xclbin",
+ "xclbin_bytes": 69996,
+ "xclbin_sha256": "a93f125eb4d47fc72812f4fea46a1011239a91bf8e1bcabb7f871923c1b3e42c",
+ "insts_golden": "bf16/npu2_4col/gemm_bf16_K256.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 4,
+ "K": 320,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_4col/gemm_bf16_K320.xclbin",
+ "xclbin_bytes": 72814,
+ "xclbin_sha256": "286518b2e71f67cd220092112042fe6b902791ddd6de16c59a56f528b2b4f485",
+ "insts_golden": "bf16/npu2_4col/gemm_bf16_K320.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 4,
+ "K": 384,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_4col/gemm_bf16_K384.xclbin",
+ "xclbin_bytes": 75630,
+ "xclbin_sha256": "2eb4c11c20639c09ec51d45c343315f847da19c7e0b4e0b8a444a50013ae0c9f",
+ "insts_golden": "bf16/npu2_4col/gemm_bf16_K384.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 4,
+ "K": 448,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_4col/gemm_bf16_K448.xclbin",
+ "xclbin_bytes": 78446,
+ "xclbin_sha256": "8185b13d5e984837702f1826880bff09bc0cfb94edcb6b2a9eaba56929217431",
+ "insts_golden": "bf16/npu2_4col/gemm_bf16_K448.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 4,
+ "K": 512,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_4col/gemm_bf16_K512.xclbin",
+ "xclbin_bytes": 81262,
+ "xclbin_sha256": "997933eb5b8ee4d0cbaf02c7191440420aeda56c0710b52803f65e8cba14ddd9",
+ "insts_golden": "bf16/npu2_4col/gemm_bf16_K512.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 4,
+ "K": 576,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_4col/gemm_bf16_K576.xclbin",
+ "xclbin_bytes": 84078,
+ "xclbin_sha256": "999dc70d57fc9a9a75b4d010c5e5b92ac7fa0d57e16683ab50b8c92dec30c559",
+ "insts_golden": "bf16/npu2_4col/gemm_bf16_K576.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 4,
+ "K": 640,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_4col/gemm_bf16_K640.xclbin",
+ "xclbin_bytes": 86894,
+ "xclbin_sha256": "7369aabf82ac1d041a15e98a3e12f715b0686e37813db7075e9090087d36250f",
+ "insts_golden": "bf16/npu2_4col/gemm_bf16_K640.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 4,
+ "K": 704,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_4col/gemm_bf16_K704.xclbin",
+ "xclbin_bytes": 89710,
+ "xclbin_sha256": "76f5c6d29ca5ddeb65c45c51381c69fba5fc4add77137759af05a847ecbbb0c6",
+ "insts_golden": "bf16/npu2_4col/gemm_bf16_K704.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 4,
+ "K": 768,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_4col/gemm_bf16_K768.xclbin",
+ "xclbin_bytes": 92526,
+ "xclbin_sha256": "ea48f04d1dd86eedb41040baf82db7e7246f85d9726a7c2464bc01cab0ba3d51",
+ "insts_golden": "bf16/npu2_4col/gemm_bf16_K768.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 4,
+ "K": 832,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_4col/gemm_bf16_K832.xclbin",
+ "xclbin_bytes": 72558,
+ "xclbin_sha256": "cd258a75f834645722fb0b34a5a0b3613d7cac4146b786780b717009013fcc86",
+ "insts_golden": "bf16/npu2_4col/gemm_bf16_K832.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 4,
+ "K": 896,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_4col/gemm_bf16_K896.xclbin",
+ "xclbin_bytes": 66408,
+ "xclbin_sha256": "416b67d158d0b435986d332000559b313f71752e6c8074ad51822649ef99009e",
+ "insts_golden": "bf16/npu2_4col/gemm_bf16_K896.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 4,
+ "K": 960,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_4col/gemm_bf16_K960.xclbin",
+ "xclbin_bytes": 68712,
+ "xclbin_sha256": "3585d74e25051fd5626e7ffb806e6e867029799487137f3496c158a773b44379",
+ "insts_golden": "bf16/npu2_4col/gemm_bf16_K960.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 4,
+ "K": 1024,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_4col/gemm_bf16_K1024.xclbin",
+ "xclbin_bytes": 71277,
+ "xclbin_sha256": "ccd125add8210554cdd61fdda5aa908bc4f8a977f32d0170d357db40e202353a",
+ "insts_golden": "bf16/npu2_4col/gemm_bf16_K1024.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 4,
+ "K": 1088,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_4col/gemm_bf16_K1088.xclbin",
+ "xclbin_bytes": 72558,
+ "xclbin_sha256": "9806f58665e9be2b02a0519f684c662391c05508af2f6e6eee7b0c4ca3b0add8",
+ "insts_golden": "bf16/npu2_4col/gemm_bf16_K1088.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 4,
+ "K": 1152,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_4col/gemm_bf16_K1152.xclbin",
+ "xclbin_bytes": 68712,
+ "xclbin_sha256": "7890a0de7c0486fa01bb16f3ecbacf4d93f3f3144f40f9da0ae75c064c25a4d4",
+ "insts_golden": "bf16/npu2_4col/gemm_bf16_K1152.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 4,
+ "K": 1216,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_4col/gemm_bf16_K1216.xclbin",
+ "xclbin_bytes": 72302,
+ "xclbin_sha256": "2aabca7da9748e0f04725c3f52f7dbfa1cfbdd5c015100584e288df95bb7736e",
+ "insts_golden": "bf16/npu2_4col/gemm_bf16_K1216.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 4,
+ "K": 1280,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_4col/gemm_bf16_K1280.xclbin",
+ "xclbin_bytes": 71277,
+ "xclbin_sha256": "abd5429cbb5b217daac9e99209fd9d343e89927299c07356e5e1ee963ad7a11a",
+ "insts_golden": "bf16/npu2_4col/gemm_bf16_K1280.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 4,
+ "K": 1344,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_4col/gemm_bf16_K1344.xclbin",
+ "xclbin_bytes": 68712,
+ "xclbin_sha256": "a7f971cfc44be7e9547e2d7bc91e08bb2136d297267876e80d620e9b22564004",
+ "insts_golden": "bf16/npu2_4col/gemm_bf16_K1344.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 4,
+ "K": 1408,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_4col/gemm_bf16_K1408.xclbin",
+ "xclbin_bytes": 66408,
+ "xclbin_sha256": "07df015c64abec4ed272c9b4c61b5a276ef1165ef9acb6c9424590c66b341730",
+ "insts_golden": "bf16/npu2_4col/gemm_bf16_K1408.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 4,
+ "K": 1472,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_4col/gemm_bf16_K1472.xclbin",
+ "xclbin_bytes": 72302,
+ "xclbin_sha256": "09a4cd9d53d4cbc812920976d49be8ab9793850362ca0c0a95e8617603947eae",
+ "insts_golden": "bf16/npu2_4col/gemm_bf16_K1472.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 4,
+ "K": 1536,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_4col/gemm_bf16_K1536.xclbin",
+ "xclbin_bytes": 71277,
+ "xclbin_sha256": "7ace62757304ea913c5a2edb36f1b9aac07d53392fefd9c259f656d58d8df82c",
+ "insts_golden": "bf16/npu2_4col/gemm_bf16_K1536.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 4,
+ "K": 1728,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_4col/gemm_bf16_K1728.xclbin",
+ "xclbin_bytes": 68712,
+ "xclbin_sha256": "90f5178fab12b7f9d941b52108e5069d0cad7485bd3445920f8e286c846cf85e",
+ "insts_golden": "bf16/npu2_4col/gemm_bf16_K1728.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 4,
+ "K": 2304,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_4col/gemm_bf16_K2304.xclbin",
+ "xclbin_bytes": 71277,
+ "xclbin_sha256": "d8460ec6e26280e7ecb3df68e80ed84215a3c6284686db65bc4c701c573673d9",
+ "insts_golden": "bf16/npu2_4col/gemm_bf16_K2304.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 4,
+ "K": 2880,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_4col/gemm_bf16_K2880.xclbin",
+ "xclbin_bytes": 68712,
+ "xclbin_sha256": "604ec2a6c214a7d27f3af4a2a784ec71660fdd907cdf48bba02c915593660777",
+ "insts_golden": "bf16/npu2_4col/gemm_bf16_K2880.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 4,
+ "K": 3456,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_4col/gemm_bf16_K3456.xclbin",
+ "xclbin_bytes": 68712,
+ "xclbin_sha256": "37b374a8c6e4a464fca9aa093500dacb5aeaedb8b3849da9ce50f705356a6b28",
+ "insts_golden": "bf16/npu2_4col/gemm_bf16_K3456.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 4,
+ "K": 4032,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_4col/gemm_bf16_K4032.xclbin",
+ "xclbin_bytes": 68712,
+ "xclbin_sha256": "bb4b2db8eff8f17716e4eb83f32512f5efc8c33cbc70453c0f5c6dd5cf37010c",
+ "insts_golden": "bf16/npu2_4col/gemm_bf16_K4032.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 4,
+ "K": 4608,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_4col/gemm_bf16_K4608.xclbin",
+ "xclbin_bytes": 71277,
+ "xclbin_sha256": "8b4183a5274737e87a72b0e83f7e7237153db9ed66eb04f11a1b6e063d804a41",
+ "insts_golden": "bf16/npu2_4col/gemm_bf16_K4608.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 4,
+ "K": 5184,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_4col/gemm_bf16_K5184.xclbin",
+ "xclbin_bytes": 68712,
+ "xclbin_sha256": "8f8960fe592eb4188b69a3cde2816871971b9d381d40dd01913ba5388df1f859",
+ "insts_golden": "bf16/npu2_4col/gemm_bf16_K5184.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 4,
+ "K": 5760,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_4col/gemm_bf16_K5760.xclbin",
+ "xclbin_bytes": 68712,
+ "xclbin_sha256": "9741bb442e0f66a53ed75a936361ee03651170faa71c78b1e355d3e7d6c7518f",
+ "insts_golden": "bf16/npu2_4col/gemm_bf16_K5760.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 4,
+ "K": 6336,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_4col/gemm_bf16_K6336.xclbin",
+ "xclbin_bytes": 68712,
+ "xclbin_sha256": "55dcae8b4b5521089bfe2f11e6a306ffcf4119be8713dfb7c22dd0efa9c97dee",
+ "insts_golden": "bf16/npu2_4col/gemm_bf16_K6336.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 4,
+ "K": 6912,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_4col/gemm_bf16_K6912.xclbin",
+ "xclbin_bytes": 71277,
+ "xclbin_sha256": "691d1aa4684a6d2585dee3b7bec26dfbe4df37a687bcf17031a5e596442d6439",
+ "insts_golden": "bf16/npu2_4col/gemm_bf16_K6912.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 8,
+ "K": 64,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_8col/gemm_bf16_K64.xclbin",
+ "xclbin_bytes": 143182,
+ "xclbin_sha256": "e2494a9ac0f4287c0371c638fdba60f2dfa2c6ef72c7003ac20bf74f5853fffa",
+ "insts_golden": "bf16/npu2_8col/gemm_bf16_K64.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 8,
+ "K": 128,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_8col/gemm_bf16_K128.xclbin",
+ "xclbin_bytes": 167758,
+ "xclbin_sha256": "c8b37dcd46b57a59eea73927abf44245c8520795400e793c4ea2b73ad056262c",
+ "insts_golden": "bf16/npu2_8col/gemm_bf16_K128.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 8,
+ "K": 192,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_8col/gemm_bf16_K192.xclbin",
+ "xclbin_bytes": 127310,
+ "xclbin_sha256": "feb883195184247b3c833dd22a82ba210755fa6ab89d8b96096b23f3e511d5d8",
+ "insts_golden": "bf16/npu2_8col/gemm_bf16_K192.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 8,
+ "K": 256,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_8col/gemm_bf16_K256.xclbin",
+ "xclbin_bytes": 132942,
+ "xclbin_sha256": "6951e0707f4e78f77c4a2aae6bd2d95e7b42ab62d92191489b8f84f954d24104",
+ "insts_golden": "bf16/npu2_8col/gemm_bf16_K256.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 8,
+ "K": 320,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_8col/gemm_bf16_K320.xclbin",
+ "xclbin_bytes": 138574,
+ "xclbin_sha256": "d9d23d5ef87e7d9d3bf1073aa5618017d29f65c1a9a99a461aca04c2d1276f0c",
+ "insts_golden": "bf16/npu2_8col/gemm_bf16_K320.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 8,
+ "K": 384,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_8col/gemm_bf16_K384.xclbin",
+ "xclbin_bytes": 144206,
+ "xclbin_sha256": "8b0f4649cd80280e8545987dd5e6ba8f5e0008bf8a0ca843b0754f6ff1c0da5e",
+ "insts_golden": "bf16/npu2_8col/gemm_bf16_K384.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 8,
+ "K": 448,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_8col/gemm_bf16_K448.xclbin",
+ "xclbin_bytes": 149838,
+ "xclbin_sha256": "8d4845d4479815293fe2e2e85d475f57b48ba4c8cc9a7388f55c90abaff10350",
+ "insts_golden": "bf16/npu2_8col/gemm_bf16_K448.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 8,
+ "K": 512,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_8col/gemm_bf16_K512.xclbin",
+ "xclbin_bytes": 155470,
+ "xclbin_sha256": "d84ea0e15a2a90f9b8f055108736c6c707df0e0ae747ec0677ce093823341fcb",
+ "insts_golden": "bf16/npu2_8col/gemm_bf16_K512.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 8,
+ "K": 576,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_8col/gemm_bf16_K576.xclbin",
+ "xclbin_bytes": 161102,
+ "xclbin_sha256": "03268a8c721b44bc06bc5ceac53908c5bc2373bd394f6a8f8aef5ddd27ad97d2",
+ "insts_golden": "bf16/npu2_8col/gemm_bf16_K576.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 8,
+ "K": 640,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_8col/gemm_bf16_K640.xclbin",
+ "xclbin_bytes": 166734,
+ "xclbin_sha256": "e8ad1bbc35287c85736da2d3129c4c83c9c12a781fb3792d72a38e935ed55891",
+ "insts_golden": "bf16/npu2_8col/gemm_bf16_K640.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 8,
+ "K": 704,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_8col/gemm_bf16_K704.xclbin",
+ "xclbin_bytes": 172366,
+ "xclbin_sha256": "16c3dc40940532cbab463205f40bb636ea0177a1e2dea445cccec2a2fab91f78",
+ "insts_golden": "bf16/npu2_8col/gemm_bf16_K704.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 8,
+ "K": 768,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_8col/gemm_bf16_K768.xclbin",
+ "xclbin_bytes": 177998,
+ "xclbin_sha256": "968cd442ff0fa83a894fb26128f41b9f7698fb7c5be738174863e47c12b69daa",
+ "insts_golden": "bf16/npu2_8col/gemm_bf16_K768.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 8,
+ "K": 832,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_8col/gemm_bf16_K832.xclbin",
+ "xclbin_bytes": 138062,
+ "xclbin_sha256": "187a740d0c9ff85e6b1e0b0bbd826726bd4bfa3bec46f0a35632b3cff40195e6",
+ "insts_golden": "bf16/npu2_8col/gemm_bf16_K832.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 8,
+ "K": 896,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_8col/gemm_bf16_K896.xclbin",
+ "xclbin_bytes": 125774,
+ "xclbin_sha256": "e556b913088f780357c2237b992b8edbb0a40a808890ff965ec4b1f322662eec",
+ "insts_golden": "bf16/npu2_8col/gemm_bf16_K896.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 8,
+ "K": 960,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_8col/gemm_bf16_K960.xclbin",
+ "xclbin_bytes": 130382,
+ "xclbin_sha256": "3a09a4f7cb8f8c666dc4cc9ebb023e71027ac35826ab01c1e1b4326557b57736",
+ "insts_golden": "bf16/npu2_8col/gemm_bf16_K960.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 8,
+ "K": 1024,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_8col/gemm_bf16_K1024.xclbin",
+ "xclbin_bytes": 135502,
+ "xclbin_sha256": "da757c3b29dc7a9b027f25c5044f54b668f818b4005b832cc5cbc2dfa915a7d6",
+ "insts_golden": "bf16/npu2_8col/gemm_bf16_K1024.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 8,
+ "K": 1088,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_8col/gemm_bf16_K1088.xclbin",
+ "xclbin_bytes": 138062,
+ "xclbin_sha256": "f9094b909f91a6f07d7bea10f7f149c3bf57396bd849ed494a938c4acf65fce9",
+ "insts_golden": "bf16/npu2_8col/gemm_bf16_K1088.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 8,
+ "K": 1152,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_8col/gemm_bf16_K1152.xclbin",
+ "xclbin_bytes": 130382,
+ "xclbin_sha256": "cce71962480e758359f1c8638be509e069ca9dd5460ec6fa98efa65024e121f0",
+ "insts_golden": "bf16/npu2_8col/gemm_bf16_K1152.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 8,
+ "K": 1216,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_8col/gemm_bf16_K1216.xclbin",
+ "xclbin_bytes": 137550,
+ "xclbin_sha256": "c19665555ec548dd73c5cffc3b336e9638e91d115e1b10f6b2f5dc860b7e0f70",
+ "insts_golden": "bf16/npu2_8col/gemm_bf16_K1216.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 8,
+ "K": 1280,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_8col/gemm_bf16_K1280.xclbin",
+ "xclbin_bytes": 135502,
+ "xclbin_sha256": "bddbac9382b2c0d5bf984fa5ba8d01754ca0a670822ce0a2654812be9399e3db",
+ "insts_golden": "bf16/npu2_8col/gemm_bf16_K1280.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 8,
+ "K": 1344,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_8col/gemm_bf16_K1344.xclbin",
+ "xclbin_bytes": 130382,
+ "xclbin_sha256": "858b27302210793fbcdbb31fca79a195f3c85dfaa4de9ff19c639fcf39a965ea",
+ "insts_golden": "bf16/npu2_8col/gemm_bf16_K1344.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 8,
+ "K": 1408,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_8col/gemm_bf16_K1408.xclbin",
+ "xclbin_bytes": 125774,
+ "xclbin_sha256": "652ac1c37a7b0c5d4119b15b2901600f9f20a328dfaf8f9e47b6242188ca2db8",
+ "insts_golden": "bf16/npu2_8col/gemm_bf16_K1408.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 8,
+ "K": 1472,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_8col/gemm_bf16_K1472.xclbin",
+ "xclbin_bytes": 137550,
+ "xclbin_sha256": "aa57283c26a25af1fa4cebfe8df10873b65097cb3c46e8897af47baae0cd059e",
+ "insts_golden": "bf16/npu2_8col/gemm_bf16_K1472.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 8,
+ "K": 1536,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_8col/gemm_bf16_K1536.xclbin",
+ "xclbin_bytes": 135502,
+ "xclbin_sha256": "a52d03e5daf406326e717839ba0e16f7ac2cfd774e503d25027d414c1b95ce13",
+ "insts_golden": "bf16/npu2_8col/gemm_bf16_K1536.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 8,
+ "K": 1728,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_8col/gemm_bf16_K1728.xclbin",
+ "xclbin_bytes": 130382,
+ "xclbin_sha256": "9f5f7899847e6703af6ae484f9423507770c82513e21451c56463476cc8aca09",
+ "insts_golden": "bf16/npu2_8col/gemm_bf16_K1728.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 8,
+ "K": 2304,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_8col/gemm_bf16_K2304.xclbin",
+ "xclbin_bytes": 135502,
+ "xclbin_sha256": "bcf5f012d20c120cc6d94246f440b56b04a66f64f900a361246236cdd5990df5",
+ "insts_golden": "bf16/npu2_8col/gemm_bf16_K2304.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 8,
+ "K": 2880,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_8col/gemm_bf16_K2880.xclbin",
+ "xclbin_bytes": 130382,
+ "xclbin_sha256": "c7f369c2f8d54c1487a4a28a34709956056b9dda6d0e155415902af412c23dac",
+ "insts_golden": "bf16/npu2_8col/gemm_bf16_K2880.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 8,
+ "K": 3456,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_8col/gemm_bf16_K3456.xclbin",
+ "xclbin_bytes": 130382,
+ "xclbin_sha256": "3aa3c9fff07a4a422de82d8c77018c329e3900b385cd67bce41e384ea502dbd0",
+ "insts_golden": "bf16/npu2_8col/gemm_bf16_K3456.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 8,
+ "K": 4032,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_8col/gemm_bf16_K4032.xclbin",
+ "xclbin_bytes": 130382,
+ "xclbin_sha256": "113018f5babafddb48e33bf270cbcb5db3b9ff444d996564e475ce41aab57763",
+ "insts_golden": "bf16/npu2_8col/gemm_bf16_K4032.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 8,
+ "K": 4608,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_8col/gemm_bf16_K4608.xclbin",
+ "xclbin_bytes": 135502,
+ "xclbin_sha256": "952f906c44520dfeab9f56af71c8da380720a23868c52eda4e91a40eb3421ea2",
+ "insts_golden": "bf16/npu2_8col/gemm_bf16_K4608.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 8,
+ "K": 5184,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_8col/gemm_bf16_K5184.xclbin",
+ "xclbin_bytes": 130382,
+ "xclbin_sha256": "8714b4eeb0f9785549c1d35302d66a872730451aa2409d979a512f5ab042754e",
+ "insts_golden": "bf16/npu2_8col/gemm_bf16_K5184.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 8,
+ "K": 5760,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_8col/gemm_bf16_K5760.xclbin",
+ "xclbin_bytes": 130382,
+ "xclbin_sha256": "6214a18bf25b4e422160ce581536a3fb2d34a3b39c7cb89c0c10ca52234ae6f4",
+ "insts_golden": "bf16/npu2_8col/gemm_bf16_K5760.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 8,
+ "K": 6336,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_8col/gemm_bf16_K6336.xclbin",
+ "xclbin_bytes": 130382,
+ "xclbin_sha256": "3f0ebdae543262421789ad5b1f15dc59049f510b5f9ac68fc927a70223117c05",
+ "insts_golden": "bf16/npu2_8col/gemm_bf16_K6336.insts.bin"
+ },
+ {
+ "dtype": "bf16",
+ "arch": "npu2",
+ "n_aie_cols": 8,
+ "K": 6912,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bf16/npu2_8col/gemm_bf16_K6912.xclbin",
+ "xclbin_bytes": 135502,
+ "xclbin_sha256": "c2b08fab071deb041f99fc05e95f2f2b6ef4ab7b9c5ec314ca4ff07b297625a7",
+ "insts_golden": "bf16/npu2_8col/gemm_bf16_K6912.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 1,
+ "K": 64,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_1col/gemm_bf16_K64.xclbin",
+ "xclbin_bytes": 24072,
+ "xclbin_sha256": "d1d07825a5634c4d17ff5c391ce954e967017ba9284859a0031671b47a60e377",
+ "insts_golden": "bfp16/npu2_1col/gemm_bf16_K64.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 1,
+ "K": 128,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_1col/gemm_bf16_K128.xclbin",
+ "xclbin_bytes": 27144,
+ "xclbin_sha256": "6c8aa165c94a6720043fcc41ae47822b890e78da0a93cb6c71d66a112a3f49fd",
+ "insts_golden": "bfp16/npu2_1col/gemm_bf16_K128.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 1,
+ "K": 192,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_1col/gemm_bf16_K192.xclbin",
+ "xclbin_bytes": 22088,
+ "xclbin_sha256": "9fce785b2537dbaff461de54da6a1ee622676c4a3007e54bba3625ecd6b4ee5b",
+ "insts_golden": "bfp16/npu2_1col/gemm_bf16_K192.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 1,
+ "K": 256,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_1col/gemm_bf16_K256.xclbin",
+ "xclbin_bytes": 22792,
+ "xclbin_sha256": "fcdd89760327a3dbacaf7a5d30902620aa054dd6fd091236633ae08fd8762f7d",
+ "insts_golden": "bfp16/npu2_1col/gemm_bf16_K256.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 1,
+ "K": 320,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_1col/gemm_bf16_K320.xclbin",
+ "xclbin_bytes": 23496,
+ "xclbin_sha256": "938a4b6ff5efc14236674f5c1a5c777877d656a04e36d875f89a2dfc79732596",
+ "insts_golden": "bfp16/npu2_1col/gemm_bf16_K320.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 1,
+ "K": 384,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_1col/gemm_bf16_K384.xclbin",
+ "xclbin_bytes": 24200,
+ "xclbin_sha256": "958841a3c6d452f31fbc969b1a14ccea0d6f381eab4f95ed987af2527cf0f31b",
+ "insts_golden": "bfp16/npu2_1col/gemm_bf16_K384.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 1,
+ "K": 448,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_1col/gemm_bf16_K448.xclbin",
+ "xclbin_bytes": 24904,
+ "xclbin_sha256": "3c9771118902ecea046cd2f8d1fccf03a6caf33b5b6635b291bf159a731adc45",
+ "insts_golden": "bfp16/npu2_1col/gemm_bf16_K448.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 1,
+ "K": 512,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_1col/gemm_bf16_K512.xclbin",
+ "xclbin_bytes": 25608,
+ "xclbin_sha256": "44fcc1d31574c9941c978f3710b0ce9d7e1a6dd92d4c393d2862cd13c8f9225a",
+ "insts_golden": "bfp16/npu2_1col/gemm_bf16_K512.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 1,
+ "K": 576,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_1col/gemm_bf16_K576.xclbin",
+ "xclbin_bytes": 26312,
+ "xclbin_sha256": "17337a6311749172875c6e9d5779fbff2075b04b9feab5a7215d28ec2bda7770",
+ "insts_golden": "bfp16/npu2_1col/gemm_bf16_K576.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 1,
+ "K": 640,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_1col/gemm_bf16_K640.xclbin",
+ "xclbin_bytes": 27016,
+ "xclbin_sha256": "ce15bce3f8768fb80da470c815bee92d3cb459ef2726a95bc71820b001e9874e",
+ "insts_golden": "bfp16/npu2_1col/gemm_bf16_K640.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 1,
+ "K": 704,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_1col/gemm_bf16_K704.xclbin",
+ "xclbin_bytes": 27720,
+ "xclbin_sha256": "3add96796905a3c32a7e5ba212a7616e75decc42d7c15d282f21f73597c66505",
+ "insts_golden": "bfp16/npu2_1col/gemm_bf16_K704.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 1,
+ "K": 768,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_1col/gemm_bf16_K768.xclbin",
+ "xclbin_bytes": 28424,
+ "xclbin_sha256": "3647569a6a6b2e0bb6c32f3f24e4ba639f9f4690525a9770af8df02ac409af37",
+ "insts_golden": "bfp16/npu2_1col/gemm_bf16_K768.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 1,
+ "K": 832,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_1col/gemm_bf16_K832.xclbin",
+ "xclbin_bytes": 23432,
+ "xclbin_sha256": "755bc99e0d9aafa6e72dc27626bd21ca234396c740f18496d108343a0fc4c85a",
+ "insts_golden": "bfp16/npu2_1col/gemm_bf16_K832.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 1,
+ "K": 896,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_1col/gemm_bf16_K896.xclbin",
+ "xclbin_bytes": 21896,
+ "xclbin_sha256": "87ea1c9c21aac198a4e3f00b51ead3bfcc75b2404051770ff7dcc12718d4056c",
+ "insts_golden": "bfp16/npu2_1col/gemm_bf16_K896.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 1,
+ "K": 960,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_1col/gemm_bf16_K960.xclbin",
+ "xclbin_bytes": 22472,
+ "xclbin_sha256": "f50ca5b20e5df24510d6b3fc7330d988266c374059210559e71b7b6c05d5d3dc",
+ "insts_golden": "bfp16/npu2_1col/gemm_bf16_K960.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 1,
+ "K": 1024,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_1col/gemm_bf16_K1024.xclbin",
+ "xclbin_bytes": 23112,
+ "xclbin_sha256": "2728788f56768714823dd7b48eda12a7571f9ddf9c468897e436ac7a3f8dc419",
+ "insts_golden": "bfp16/npu2_1col/gemm_bf16_K1024.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 1,
+ "K": 1088,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_1col/gemm_bf16_K1088.xclbin",
+ "xclbin_bytes": 23432,
+ "xclbin_sha256": "9a9031de25689824564cc0f30bc42ee34d9ee5245798054483690775f8285f79",
+ "insts_golden": "bfp16/npu2_1col/gemm_bf16_K1088.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 1,
+ "K": 1152,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_1col/gemm_bf16_K1152.xclbin",
+ "xclbin_bytes": 22472,
+ "xclbin_sha256": "c101c667e4ce88ff2d0f7ad72fdc5cece635d608e85134b2324ce81d61caa03d",
+ "insts_golden": "bfp16/npu2_1col/gemm_bf16_K1152.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 1,
+ "K": 1216,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_1col/gemm_bf16_K1216.xclbin",
+ "xclbin_bytes": 23368,
+ "xclbin_sha256": "1184bad54724dabee4ca003b0f709a5b7e61a5e6fd41c9a4c876be9798ba4caf",
+ "insts_golden": "bfp16/npu2_1col/gemm_bf16_K1216.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 1,
+ "K": 1280,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_1col/gemm_bf16_K1280.xclbin",
+ "xclbin_bytes": 23112,
+ "xclbin_sha256": "fbdb12913542cd70fff4dc51f26281488c2afd61ac19f6c0e1a0ba67a5f505d4",
+ "insts_golden": "bfp16/npu2_1col/gemm_bf16_K1280.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 1,
+ "K": 1344,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_1col/gemm_bf16_K1344.xclbin",
+ "xclbin_bytes": 22472,
+ "xclbin_sha256": "fcc432a33e32b744aae674fe9c50850fc19a43c5f64ca71c8c30efcf947fb860",
+ "insts_golden": "bfp16/npu2_1col/gemm_bf16_K1344.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 1,
+ "K": 1408,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_1col/gemm_bf16_K1408.xclbin",
+ "xclbin_bytes": 21896,
+ "xclbin_sha256": "ade98b2cf7e758b1f91e94d6f46c2c3e16e1f9e1b946828138f59333a2bcade4",
+ "insts_golden": "bfp16/npu2_1col/gemm_bf16_K1408.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 1,
+ "K": 1472,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_1col/gemm_bf16_K1472.xclbin",
+ "xclbin_bytes": 23368,
+ "xclbin_sha256": "c205ad292a5edc11963659f481379be338da1eace8d9b378416602a4cd3c2c6c",
+ "insts_golden": "bfp16/npu2_1col/gemm_bf16_K1472.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 1,
+ "K": 1536,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_1col/gemm_bf16_K1536.xclbin",
+ "xclbin_bytes": 23112,
+ "xclbin_sha256": "eb17eb62c273b87e91cb6e091ccb2211f15c1bc40de94147338ed7b7886009fe",
+ "insts_golden": "bfp16/npu2_1col/gemm_bf16_K1536.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 1,
+ "K": 1728,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_1col/gemm_bf16_K1728.xclbin",
+ "xclbin_bytes": 22472,
+ "xclbin_sha256": "accd3dbd800b1dd53e98b4f380a90fbb64ca141d6fdee682dceae3ddfafae744",
+ "insts_golden": "bfp16/npu2_1col/gemm_bf16_K1728.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 1,
+ "K": 2304,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_1col/gemm_bf16_K2304.xclbin",
+ "xclbin_bytes": 23112,
+ "xclbin_sha256": "7a3f62314c612228c7f8198abe9847fdc7f1e80a7772e47ce0a9e0402feaff20",
+ "insts_golden": "bfp16/npu2_1col/gemm_bf16_K2304.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 1,
+ "K": 2880,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_1col/gemm_bf16_K2880.xclbin",
+ "xclbin_bytes": 22472,
+ "xclbin_sha256": "9055df355135e13a2afeccb5df479d8ff5e313e22bc461e20e12e2bf0a7ab2de",
+ "insts_golden": "bfp16/npu2_1col/gemm_bf16_K2880.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 1,
+ "K": 3456,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_1col/gemm_bf16_K3456.xclbin",
+ "xclbin_bytes": 22472,
+ "xclbin_sha256": "10a268e077ef34f8764cb11cb34895fe93efa1f3095949a5bf92039928ea3502",
+ "insts_golden": "bfp16/npu2_1col/gemm_bf16_K3456.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 1,
+ "K": 4032,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_1col/gemm_bf16_K4032.xclbin",
+ "xclbin_bytes": 22472,
+ "xclbin_sha256": "db84945621154a4eb06a5bc092c1c2a519dced2dbe0bd5a2a79c2deed2104606",
+ "insts_golden": "bfp16/npu2_1col/gemm_bf16_K4032.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 1,
+ "K": 4608,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_1col/gemm_bf16_K4608.xclbin",
+ "xclbin_bytes": 23112,
+ "xclbin_sha256": "65de9a4fc1d67ee75eaf857c798e499b655c5e450654f7148facd38dd5feb23d",
+ "insts_golden": "bfp16/npu2_1col/gemm_bf16_K4608.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 1,
+ "K": 5184,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_1col/gemm_bf16_K5184.xclbin",
+ "xclbin_bytes": 22472,
+ "xclbin_sha256": "410141301ecc3593d7abbd6bbfc11790edf1895bb91569a40006d6ba4471f63c",
+ "insts_golden": "bfp16/npu2_1col/gemm_bf16_K5184.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 1,
+ "K": 5760,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_1col/gemm_bf16_K5760.xclbin",
+ "xclbin_bytes": 22472,
+ "xclbin_sha256": "2d5d251aff5d2502f7d7ff90e3564fe7e33e164f2cf0ab36da1cab87acb6c570",
+ "insts_golden": "bfp16/npu2_1col/gemm_bf16_K5760.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 1,
+ "K": 6336,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_1col/gemm_bf16_K6336.xclbin",
+ "xclbin_bytes": 22472,
+ "xclbin_sha256": "d0582fdc36ffb093bd36a76cca4e7561b9829145ddf111ea5a1b3274ba55244c",
+ "insts_golden": "bfp16/npu2_1col/gemm_bf16_K6336.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 1,
+ "K": 6912,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_1col/gemm_bf16_K6912.xclbin",
+ "xclbin_bytes": 23112,
+ "xclbin_sha256": "ccdb87e23377c92864e11afaefb7988f45e3b35f2f46587fabafea2f67e52e7f",
+ "insts_golden": "bfp16/npu2_1col/gemm_bf16_K6912.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 2,
+ "K": 64,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_2col/gemm_bf16_K64.xclbin",
+ "xclbin_bytes": 40408,
+ "xclbin_sha256": "02c60093212674f55574c12f17dfd85338b03b4222372732de24964d7fcb529b",
+ "insts_golden": "bfp16/npu2_2col/gemm_bf16_K64.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 2,
+ "K": 128,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_2col/gemm_bf16_K128.xclbin",
+ "xclbin_bytes": 46552,
+ "xclbin_sha256": "60a58c4fff2f321f04ecad61ccbf5f160e6b62b4ab87308c7f67b0e747a2209b",
+ "insts_golden": "bfp16/npu2_2col/gemm_bf16_K128.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 2,
+ "K": 192,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_2col/gemm_bf16_K192.xclbin",
+ "xclbin_bytes": 36440,
+ "xclbin_sha256": "3afb1e417673640b5cfff123546aad909ee13ed9b63822828911f55b789fdfa0",
+ "insts_golden": "bfp16/npu2_2col/gemm_bf16_K192.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 2,
+ "K": 256,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_2col/gemm_bf16_K256.xclbin",
+ "xclbin_bytes": 37848,
+ "xclbin_sha256": "d60b15eb3d0dbe7e39d687fbafa40ffe0c891b983c9a05f79a6f5816c832a2ab",
+ "insts_golden": "bfp16/npu2_2col/gemm_bf16_K256.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 2,
+ "K": 320,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_2col/gemm_bf16_K320.xclbin",
+ "xclbin_bytes": 39256,
+ "xclbin_sha256": "5580dd4a6bdef4e83450031be47b536cfc9124572b90669d7bd02085db3f90bc",
+ "insts_golden": "bfp16/npu2_2col/gemm_bf16_K320.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 2,
+ "K": 384,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_2col/gemm_bf16_K384.xclbin",
+ "xclbin_bytes": 40664,
+ "xclbin_sha256": "fdd7131056501c791a51d17ef28e9f25f4bef5e9eeb2439f91969e6f3911141f",
+ "insts_golden": "bfp16/npu2_2col/gemm_bf16_K384.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 2,
+ "K": 448,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_2col/gemm_bf16_K448.xclbin",
+ "xclbin_bytes": 42072,
+ "xclbin_sha256": "59cc28f4cff76955d8aa517aae7b09d684520569ab2f6fe6fd0264ffdae0d854",
+ "insts_golden": "bfp16/npu2_2col/gemm_bf16_K448.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 2,
+ "K": 512,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_2col/gemm_bf16_K512.xclbin",
+ "xclbin_bytes": 43480,
+ "xclbin_sha256": "86d3ab7e8144a4c835586ec73813b2955274242a72d2759dfcd7258ae257e542",
+ "insts_golden": "bfp16/npu2_2col/gemm_bf16_K512.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 2,
+ "K": 576,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_2col/gemm_bf16_K576.xclbin",
+ "xclbin_bytes": 44888,
+ "xclbin_sha256": "cef09d28fc42ff9e77b67df6fa267ab6aec1eb0127b351c24b42580af0074494",
+ "insts_golden": "bfp16/npu2_2col/gemm_bf16_K576.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 2,
+ "K": 640,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_2col/gemm_bf16_K640.xclbin",
+ "xclbin_bytes": 46296,
+ "xclbin_sha256": "b27ec1f20b276f6239e7c48c7315f14ee5417a9c5114b28de0fe5707028b5980",
+ "insts_golden": "bfp16/npu2_2col/gemm_bf16_K640.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 2,
+ "K": 704,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_2col/gemm_bf16_K704.xclbin",
+ "xclbin_bytes": 47704,
+ "xclbin_sha256": "76f2c3c277052d44032b88d9a514eb8653938a32e867cde8c68cef0786fe663e",
+ "insts_golden": "bfp16/npu2_2col/gemm_bf16_K704.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 2,
+ "K": 768,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_2col/gemm_bf16_K768.xclbin",
+ "xclbin_bytes": 49112,
+ "xclbin_sha256": "a8a8840f67b66ba9fdbcf8cb7a8f277e4ed2148cc27335ebe704a391026edcc2",
+ "insts_golden": "bfp16/npu2_2col/gemm_bf16_K768.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 2,
+ "K": 832,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_2col/gemm_bf16_K832.xclbin",
+ "xclbin_bytes": 39128,
+ "xclbin_sha256": "2dd283d80d847bf5f1d87da4f09dae2200aada3af2f7e83a558fed3b2a628d3b",
+ "insts_golden": "bfp16/npu2_2col/gemm_bf16_K832.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 2,
+ "K": 896,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_2col/gemm_bf16_K896.xclbin",
+ "xclbin_bytes": 36056,
+ "xclbin_sha256": "68951377cb1d842b07bd0f5de858db6b3f185897b180d551404dfac5e4e93152",
+ "insts_golden": "bfp16/npu2_2col/gemm_bf16_K896.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 2,
+ "K": 960,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_2col/gemm_bf16_K960.xclbin",
+ "xclbin_bytes": 37208,
+ "xclbin_sha256": "1e7af2879091caed4338ad7605dabfa7fa9cc90c53f342a63f5e5262ece9102d",
+ "insts_golden": "bfp16/npu2_2col/gemm_bf16_K960.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 2,
+ "K": 1024,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_2col/gemm_bf16_K1024.xclbin",
+ "xclbin_bytes": 38488,
+ "xclbin_sha256": "d34d034096f72584fd613a22e59a6011d6af0b5b909cf4c565dbb7a7def23f81",
+ "insts_golden": "bfp16/npu2_2col/gemm_bf16_K1024.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 2,
+ "K": 1088,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_2col/gemm_bf16_K1088.xclbin",
+ "xclbin_bytes": 39128,
+ "xclbin_sha256": "49f40b1289e938377f4944b46192a643c0dafc99336fbf4abd7450a63026136b",
+ "insts_golden": "bfp16/npu2_2col/gemm_bf16_K1088.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 2,
+ "K": 1152,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_2col/gemm_bf16_K1152.xclbin",
+ "xclbin_bytes": 37208,
+ "xclbin_sha256": "5e07efe8f3ef6d4b48142bad27ed85873fd22b43a4d852e59f73836b6d847a34",
+ "insts_golden": "bfp16/npu2_2col/gemm_bf16_K1152.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 2,
+ "K": 1216,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_2col/gemm_bf16_K1216.xclbin",
+ "xclbin_bytes": 39000,
+ "xclbin_sha256": "e7fcbc21a3815406de047e5e16723fa6cf8a3c8627e400c57445472bf26fd74e",
+ "insts_golden": "bfp16/npu2_2col/gemm_bf16_K1216.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 2,
+ "K": 1280,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_2col/gemm_bf16_K1280.xclbin",
+ "xclbin_bytes": 38488,
+ "xclbin_sha256": "02cca9bae9b3b9f15821f04f8f79b2477cfda83003d433199725bb47d54223a3",
+ "insts_golden": "bfp16/npu2_2col/gemm_bf16_K1280.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 2,
+ "K": 1344,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_2col/gemm_bf16_K1344.xclbin",
+ "xclbin_bytes": 37208,
+ "xclbin_sha256": "007c4760fcc7bcd918fe2aa1c6e8a108dbe78b620acc337451a7b8b8b799d8c7",
+ "insts_golden": "bfp16/npu2_2col/gemm_bf16_K1344.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 2,
+ "K": 1408,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_2col/gemm_bf16_K1408.xclbin",
+ "xclbin_bytes": 36056,
+ "xclbin_sha256": "d26fefb8ce6f53eb136988efc73ba0b98e1a7f27da86ac1bc936caf9954f2ba6",
+ "insts_golden": "bfp16/npu2_2col/gemm_bf16_K1408.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 2,
+ "K": 1472,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_2col/gemm_bf16_K1472.xclbin",
+ "xclbin_bytes": 39000,
+ "xclbin_sha256": "37d739e791f2f1bc4d2dc0776ede5bddfdb42c5f04bf5b477ff6387e370b5a07",
+ "insts_golden": "bfp16/npu2_2col/gemm_bf16_K1472.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 2,
+ "K": 1536,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_2col/gemm_bf16_K1536.xclbin",
+ "xclbin_bytes": 38488,
+ "xclbin_sha256": "890a20e2dcd4e08b8dedc2b6dc8ed5216c12654d7dcf9321b449b65a7541b026",
+ "insts_golden": "bfp16/npu2_2col/gemm_bf16_K1536.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 2,
+ "K": 1728,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_2col/gemm_bf16_K1728.xclbin",
+ "xclbin_bytes": 37208,
+ "xclbin_sha256": "c1d59385f0a745f5f46fa226e31f5bf0cf952cf450098cc9b4a81e7df851a292",
+ "insts_golden": "bfp16/npu2_2col/gemm_bf16_K1728.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 2,
+ "K": 2304,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_2col/gemm_bf16_K2304.xclbin",
+ "xclbin_bytes": 38488,
+ "xclbin_sha256": "627f6f569e88cc63cdfc42802a13bccc353785336bafae00d468aa64e5fbc284",
+ "insts_golden": "bfp16/npu2_2col/gemm_bf16_K2304.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 2,
+ "K": 2880,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_2col/gemm_bf16_K2880.xclbin",
+ "xclbin_bytes": 37208,
+ "xclbin_sha256": "ae14438dc9c5a1e39025b15f2c7710253164c4e6655d8138a6ec82952a6c29eb",
+ "insts_golden": "bfp16/npu2_2col/gemm_bf16_K2880.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 2,
+ "K": 3456,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_2col/gemm_bf16_K3456.xclbin",
+ "xclbin_bytes": 37208,
+ "xclbin_sha256": "08577e771a2d672de3164c0ae8db73affae5be5d50faf06c81b2f34ae7f87452",
+ "insts_golden": "bfp16/npu2_2col/gemm_bf16_K3456.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 2,
+ "K": 4032,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_2col/gemm_bf16_K4032.xclbin",
+ "xclbin_bytes": 37208,
+ "xclbin_sha256": "ac8e6f2ff145dff08f8dc5d1c5d29c24c653729cde2327576eb829fd0d6803d5",
+ "insts_golden": "bfp16/npu2_2col/gemm_bf16_K4032.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 2,
+ "K": 4608,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_2col/gemm_bf16_K4608.xclbin",
+ "xclbin_bytes": 38488,
+ "xclbin_sha256": "9dba6a1c509f719f48d6d14fc687bb5361260f51e2548af6ae663ce2f00d3ffc",
+ "insts_golden": "bfp16/npu2_2col/gemm_bf16_K4608.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 2,
+ "K": 5184,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_2col/gemm_bf16_K5184.xclbin",
+ "xclbin_bytes": 37208,
+ "xclbin_sha256": "2a2a7e4463b4056693204c344142f32b9ed7761691cf49f35aa54627f36837fd",
+ "insts_golden": "bfp16/npu2_2col/gemm_bf16_K5184.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 2,
+ "K": 5760,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_2col/gemm_bf16_K5760.xclbin",
+ "xclbin_bytes": 37208,
+ "xclbin_sha256": "d3e6012696f7521f7c30b6f85305d43d0f3018cea6e65317960d0410ff8ab37f",
+ "insts_golden": "bfp16/npu2_2col/gemm_bf16_K5760.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 2,
+ "K": 6336,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_2col/gemm_bf16_K6336.xclbin",
+ "xclbin_bytes": 37208,
+ "xclbin_sha256": "9e775c0e8b989e7b3442dbcb04dea8c319a5310407625d02c49707e2cbe10ecd",
+ "insts_golden": "bfp16/npu2_2col/gemm_bf16_K6336.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 2,
+ "K": 6912,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_2col/gemm_bf16_K6912.xclbin",
+ "xclbin_bytes": 38488,
+ "xclbin_sha256": "e6c6bceb3389776f49cae4f8655c20ef00d4a418494015c63da25507919e4166",
+ "insts_golden": "bfp16/npu2_2col/gemm_bf16_K6912.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 4,
+ "K": 64,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_4col/gemm_bf16_K64.xclbin",
+ "xclbin_bytes": 73326,
+ "xclbin_sha256": "e819628fd9c26a5565bc71d448f549981ea5c6564fa9f1ff4f64b1bba1ba1aaa",
+ "insts_golden": "bfp16/npu2_4col/gemm_bf16_K64.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 4,
+ "K": 128,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_4col/gemm_bf16_K128.xclbin",
+ "xclbin_bytes": 85614,
+ "xclbin_sha256": "a10a927edb41ee27a123986f40f5fe32b4de8556f567317b13710bf0060646c9",
+ "insts_golden": "bfp16/npu2_4col/gemm_bf16_K128.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 4,
+ "K": 192,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_4col/gemm_bf16_K192.xclbin",
+ "xclbin_bytes": 65384,
+ "xclbin_sha256": "961b9722c18b488fc18ba1934bd4cbaa0c885c3110e3d7a45ea5f05f6c2f3f1c",
+ "insts_golden": "bfp16/npu2_4col/gemm_bf16_K192.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 4,
+ "K": 256,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_4col/gemm_bf16_K256.xclbin",
+ "xclbin_bytes": 68200,
+ "xclbin_sha256": "be22adfde4a3cf2f8fe3c3d0fafde7bd3cdcd1f9ecf5bfe34a894b4c3fbfee13",
+ "insts_golden": "bfp16/npu2_4col/gemm_bf16_K256.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 4,
+ "K": 320,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_4col/gemm_bf16_K320.xclbin",
+ "xclbin_bytes": 71021,
+ "xclbin_sha256": "01f1c40ec38fa51892389859165be2e5af2913b290aad9da1c3723bf4a5256d3",
+ "insts_golden": "bfp16/npu2_4col/gemm_bf16_K320.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 4,
+ "K": 384,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_4col/gemm_bf16_K384.xclbin",
+ "xclbin_bytes": 73838,
+ "xclbin_sha256": "1f26b37b0f2d53c212ee855daecf70c7e348dc45dc4e06a67607f9c36b24f206",
+ "insts_golden": "bfp16/npu2_4col/gemm_bf16_K384.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 4,
+ "K": 448,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_4col/gemm_bf16_K448.xclbin",
+ "xclbin_bytes": 76654,
+ "xclbin_sha256": "1b6cfc4668f57f17d4333a1d535cfc0013f611c0fecf7617376c9779201c4333",
+ "insts_golden": "bfp16/npu2_4col/gemm_bf16_K448.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 4,
+ "K": 512,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_4col/gemm_bf16_K512.xclbin",
+ "xclbin_bytes": 79470,
+ "xclbin_sha256": "a202a1fd78737020bcd939fc221cbaf281a96f0cc6967db52b52d846f15be87e",
+ "insts_golden": "bfp16/npu2_4col/gemm_bf16_K512.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 4,
+ "K": 576,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_4col/gemm_bf16_K576.xclbin",
+ "xclbin_bytes": 82286,
+ "xclbin_sha256": "bed5dbce60fb1b98d73d882ea8551c3543f9666484007fed103f30b68b34e4be",
+ "insts_golden": "bfp16/npu2_4col/gemm_bf16_K576.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 4,
+ "K": 640,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_4col/gemm_bf16_K640.xclbin",
+ "xclbin_bytes": 85102,
+ "xclbin_sha256": "ce01c70e311ed3b780ec61b3b95e8cca0dbc2d643b515ca464de193aae586c67",
+ "insts_golden": "bfp16/npu2_4col/gemm_bf16_K640.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 4,
+ "K": 704,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_4col/gemm_bf16_K704.xclbin",
+ "xclbin_bytes": 87918,
+ "xclbin_sha256": "1ffd95b5f7e44c2ba2b69924ffa6f072291baea974f580016cb74ffc6354d36a",
+ "insts_golden": "bfp16/npu2_4col/gemm_bf16_K704.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 4,
+ "K": 768,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_4col/gemm_bf16_K768.xclbin",
+ "xclbin_bytes": 90734,
+ "xclbin_sha256": "1d16bb804bb64d864f8d5e030b6e465d1f465aea36b1a289be7f958a3df6b081",
+ "insts_golden": "bfp16/npu2_4col/gemm_bf16_K768.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 4,
+ "K": 832,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_4col/gemm_bf16_K832.xclbin",
+ "xclbin_bytes": 70765,
+ "xclbin_sha256": "69eb90b890db50603199feffea62ab01313d4885756da0cc498b730e5d066f0b",
+ "insts_golden": "bfp16/npu2_4col/gemm_bf16_K832.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 4,
+ "K": 896,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_4col/gemm_bf16_K896.xclbin",
+ "xclbin_bytes": 64616,
+ "xclbin_sha256": "a54d6630942977d1a1f07c7c616ee6882fa3b63c0741c234fd8045a74aaeb8d9",
+ "insts_golden": "bfp16/npu2_4col/gemm_bf16_K896.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 4,
+ "K": 960,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_4col/gemm_bf16_K960.xclbin",
+ "xclbin_bytes": 66920,
+ "xclbin_sha256": "917dce7623f484e3036b8663f78943c54ba36df3884141a3d68d8bc98708e9a6",
+ "insts_golden": "bfp16/npu2_4col/gemm_bf16_K960.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 4,
+ "K": 1024,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_4col/gemm_bf16_K1024.xclbin",
+ "xclbin_bytes": 69484,
+ "xclbin_sha256": "6177618da825fdd1dd228fc75bc45943bc4f8ef96b7118dd0a3b77167ac7b315",
+ "insts_golden": "bfp16/npu2_4col/gemm_bf16_K1024.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 4,
+ "K": 1088,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_4col/gemm_bf16_K1088.xclbin",
+ "xclbin_bytes": 70765,
+ "xclbin_sha256": "58221bc28ac714e714bfaa8d24f78a62f16aa64ecab838494bf3ff343afd8d35",
+ "insts_golden": "bfp16/npu2_4col/gemm_bf16_K1088.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 4,
+ "K": 1152,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_4col/gemm_bf16_K1152.xclbin",
+ "xclbin_bytes": 66920,
+ "xclbin_sha256": "0f61410e90b8f51191afa18adfbfaf79d78cab367142d5e27d9265fd06dde50f",
+ "insts_golden": "bfp16/npu2_4col/gemm_bf16_K1152.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 4,
+ "K": 1216,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_4col/gemm_bf16_K1216.xclbin",
+ "xclbin_bytes": 70508,
+ "xclbin_sha256": "977cb054bb985c9cebe960889bcad5afc290c0ef41717c08e486400a4a673e41",
+ "insts_golden": "bfp16/npu2_4col/gemm_bf16_K1216.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 4,
+ "K": 1280,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_4col/gemm_bf16_K1280.xclbin",
+ "xclbin_bytes": 69484,
+ "xclbin_sha256": "a109377f0552449f7c81ae9303593145ff8d61396a5948acc4762a8e6d94e9ec",
+ "insts_golden": "bfp16/npu2_4col/gemm_bf16_K1280.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 4,
+ "K": 1344,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_4col/gemm_bf16_K1344.xclbin",
+ "xclbin_bytes": 66920,
+ "xclbin_sha256": "2227922cbffee3e5afed5fdfe189d709520da1d8ca7f4f033eb12ebdf1724f51",
+ "insts_golden": "bfp16/npu2_4col/gemm_bf16_K1344.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 4,
+ "K": 1408,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_4col/gemm_bf16_K1408.xclbin",
+ "xclbin_bytes": 64616,
+ "xclbin_sha256": "fd3109a9b8ba6d7132fe44fcbe6a8e86fe2cac57aef86d8f5108536a98fda91a",
+ "insts_golden": "bfp16/npu2_4col/gemm_bf16_K1408.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 4,
+ "K": 1472,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_4col/gemm_bf16_K1472.xclbin",
+ "xclbin_bytes": 70508,
+ "xclbin_sha256": "57c9bf4358005911864e81800f80dad73fab479a69dcc6a6280d8fe3d21ea1db",
+ "insts_golden": "bfp16/npu2_4col/gemm_bf16_K1472.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 4,
+ "K": 1536,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_4col/gemm_bf16_K1536.xclbin",
+ "xclbin_bytes": 69484,
+ "xclbin_sha256": "ab95dd844d12354f07e4661db4d2851d51b9bbefd38c74bb79b9b8f0e199941e",
+ "insts_golden": "bfp16/npu2_4col/gemm_bf16_K1536.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 4,
+ "K": 1728,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_4col/gemm_bf16_K1728.xclbin",
+ "xclbin_bytes": 66920,
+ "xclbin_sha256": "e40d30a59ade6e6fac5eefb9c8126f47b5b5a65fade7bd35717be5870ece2320",
+ "insts_golden": "bfp16/npu2_4col/gemm_bf16_K1728.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 4,
+ "K": 2304,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_4col/gemm_bf16_K2304.xclbin",
+ "xclbin_bytes": 69484,
+ "xclbin_sha256": "c500a5f2393fc48ed7cb84ec53f695eae893cbb72247c07c08186ae08a40b898",
+ "insts_golden": "bfp16/npu2_4col/gemm_bf16_K2304.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 4,
+ "K": 2880,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_4col/gemm_bf16_K2880.xclbin",
+ "xclbin_bytes": 66920,
+ "xclbin_sha256": "76d4daadfe6a0848385bdff242aa3c7fb383b9e75b9837aa4485901aca1c2ddc",
+ "insts_golden": "bfp16/npu2_4col/gemm_bf16_K2880.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 4,
+ "K": 3456,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_4col/gemm_bf16_K3456.xclbin",
+ "xclbin_bytes": 66920,
+ "xclbin_sha256": "7eaf9c23477614a670234bc4b93cb0923ef58a8d5cab3a612183bc5b4e8a0f19",
+ "insts_golden": "bfp16/npu2_4col/gemm_bf16_K3456.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 4,
+ "K": 4032,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_4col/gemm_bf16_K4032.xclbin",
+ "xclbin_bytes": 66920,
+ "xclbin_sha256": "f3ec382d6a480c344af37544961eb67ee7c674420bf00e9c3a0d5c9a794856b4",
+ "insts_golden": "bfp16/npu2_4col/gemm_bf16_K4032.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 4,
+ "K": 4608,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_4col/gemm_bf16_K4608.xclbin",
+ "xclbin_bytes": 69484,
+ "xclbin_sha256": "05305863cf8c52704deff169b96956626538311605c23dd58e438c79f1cacdcf",
+ "insts_golden": "bfp16/npu2_4col/gemm_bf16_K4608.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 4,
+ "K": 5184,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_4col/gemm_bf16_K5184.xclbin",
+ "xclbin_bytes": 66920,
+ "xclbin_sha256": "bb714eefdd789fc427f395ecca0c29efb50cc7ddb13df89ee78f944db91b4602",
+ "insts_golden": "bfp16/npu2_4col/gemm_bf16_K5184.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 4,
+ "K": 5760,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_4col/gemm_bf16_K5760.xclbin",
+ "xclbin_bytes": 66920,
+ "xclbin_sha256": "a064bac7accd69565f16e176738b7e9b6175300b5bf202358d0a06fe39499efb",
+ "insts_golden": "bfp16/npu2_4col/gemm_bf16_K5760.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 4,
+ "K": 6336,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_4col/gemm_bf16_K6336.xclbin",
+ "xclbin_bytes": 66920,
+ "xclbin_sha256": "2c6a36192781aaa2d5c111ccd1b3d5dd7d6894eab5e76fd56e3cfc8f11e8305d",
+ "insts_golden": "bfp16/npu2_4col/gemm_bf16_K6336.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 4,
+ "K": 6912,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_4col/gemm_bf16_K6912.xclbin",
+ "xclbin_bytes": 69484,
+ "xclbin_sha256": "4c31467c43a633a2b46c86ec696f3da70193e2f3ddb0dd3cc28e67e14115ba29",
+ "insts_golden": "bfp16/npu2_4col/gemm_bf16_K6912.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 8,
+ "K": 64,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_8col/gemm_bf16_K64.xclbin",
+ "xclbin_bytes": 139598,
+ "xclbin_sha256": "1bd01d897e944442a1f786d0e2f45c266b86daa36fc85dc0b857553dfc2ee446",
+ "insts_golden": "bfp16/npu2_8col/gemm_bf16_K64.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 8,
+ "K": 128,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_8col/gemm_bf16_K128.xclbin",
+ "xclbin_bytes": 164174,
+ "xclbin_sha256": "ef6ff050b6861792b071d9d43243ad28414ce3645ce9abf5792a36abf238079e",
+ "insts_golden": "bfp16/npu2_8col/gemm_bf16_K128.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 8,
+ "K": 192,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_8col/gemm_bf16_K192.xclbin",
+ "xclbin_bytes": 123726,
+ "xclbin_sha256": "8ccb6299dbc40bf9ee957eac738becfcbf8cb54b1373d54b4c516f5edcbe1197",
+ "insts_golden": "bfp16/npu2_8col/gemm_bf16_K192.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 8,
+ "K": 256,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_8col/gemm_bf16_K256.xclbin",
+ "xclbin_bytes": 129358,
+ "xclbin_sha256": "8456c5495e23e97424f92a8a844a77337120020135055af6bf6d849d0198e7aa",
+ "insts_golden": "bfp16/npu2_8col/gemm_bf16_K256.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 8,
+ "K": 320,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_8col/gemm_bf16_K320.xclbin",
+ "xclbin_bytes": 134990,
+ "xclbin_sha256": "5948a5d6c55ae1b4add12ed4d586187b25f39c69c0c765120d3ae79f610dee3a",
+ "insts_golden": "bfp16/npu2_8col/gemm_bf16_K320.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 8,
+ "K": 384,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_8col/gemm_bf16_K384.xclbin",
+ "xclbin_bytes": 140622,
+ "xclbin_sha256": "95692d6313f0c5ff18e4349c730035c53a13cadd6428652079883f917495994e",
+ "insts_golden": "bfp16/npu2_8col/gemm_bf16_K384.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 8,
+ "K": 448,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_8col/gemm_bf16_K448.xclbin",
+ "xclbin_bytes": 146254,
+ "xclbin_sha256": "b66ce2192335ec5e7b8457d291ce41ee0d21680f1c73c655f0bc002827e1a8cb",
+ "insts_golden": "bfp16/npu2_8col/gemm_bf16_K448.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 8,
+ "K": 512,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_8col/gemm_bf16_K512.xclbin",
+ "xclbin_bytes": 151886,
+ "xclbin_sha256": "02aa5976c23dcca376cd98031e4aff4a2bc40d3f52ffd1586215a82e4e67d865",
+ "insts_golden": "bfp16/npu2_8col/gemm_bf16_K512.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 8,
+ "K": 576,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_8col/gemm_bf16_K576.xclbin",
+ "xclbin_bytes": 157518,
+ "xclbin_sha256": "c4a390f9ed65c90e798bf34e8ba42d543b0a7fbfad854bab272f41d63ef31744",
+ "insts_golden": "bfp16/npu2_8col/gemm_bf16_K576.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 8,
+ "K": 640,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_8col/gemm_bf16_K640.xclbin",
+ "xclbin_bytes": 163150,
+ "xclbin_sha256": "58931746df02710ca37f5df8233a19bd3de2c00da4e3dbe1c957484ea57e7ca1",
+ "insts_golden": "bfp16/npu2_8col/gemm_bf16_K640.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 8,
+ "K": 704,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_8col/gemm_bf16_K704.xclbin",
+ "xclbin_bytes": 168782,
+ "xclbin_sha256": "ac2078220a88aba00da4e8d5bd8a7689862baf426aa8aa1d9ae009e38590eadb",
+ "insts_golden": "bfp16/npu2_8col/gemm_bf16_K704.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 8,
+ "K": 768,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_8col/gemm_bf16_K768.xclbin",
+ "xclbin_bytes": 174414,
+ "xclbin_sha256": "3f7157cc3c43d368805eff95b8e759dbfba060ef5a8fbf68bc6bf01c33b59b83",
+ "insts_golden": "bfp16/npu2_8col/gemm_bf16_K768.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 8,
+ "K": 832,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_8col/gemm_bf16_K832.xclbin",
+ "xclbin_bytes": 134478,
+ "xclbin_sha256": "5b70104afee64fe26d33cb0a5c78ac9d118bb96905351496fe38df8c2fb619d1",
+ "insts_golden": "bfp16/npu2_8col/gemm_bf16_K832.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 8,
+ "K": 896,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_8col/gemm_bf16_K896.xclbin",
+ "xclbin_bytes": 122190,
+ "xclbin_sha256": "fa4891601074638b98d7a2af867861b68271c3e5ab8f2b630302b3835faa3839",
+ "insts_golden": "bfp16/npu2_8col/gemm_bf16_K896.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 8,
+ "K": 960,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_8col/gemm_bf16_K960.xclbin",
+ "xclbin_bytes": 126798,
+ "xclbin_sha256": "3f011c299e2d512500cd465b497b3d0316565842b26f6d3e1eafbceb77daa3d6",
+ "insts_golden": "bfp16/npu2_8col/gemm_bf16_K960.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 8,
+ "K": 1024,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_8col/gemm_bf16_K1024.xclbin",
+ "xclbin_bytes": 131918,
+ "xclbin_sha256": "c57aa38b1245dc331962dd7dfc1d1c4babdb740eb023581a861dbf10a919109f",
+ "insts_golden": "bfp16/npu2_8col/gemm_bf16_K1024.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 8,
+ "K": 1088,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_8col/gemm_bf16_K1088.xclbin",
+ "xclbin_bytes": 134478,
+ "xclbin_sha256": "556cb0a47e9ffeda26a982ce511602dc529084a24607c4b19ed74a6f83b5e77e",
+ "insts_golden": "bfp16/npu2_8col/gemm_bf16_K1088.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 8,
+ "K": 1152,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_8col/gemm_bf16_K1152.xclbin",
+ "xclbin_bytes": 126798,
+ "xclbin_sha256": "9c628a99f5eb15cace83610eb84a31dcc0e9bdb83dfbae2b80df56c98849a918",
+ "insts_golden": "bfp16/npu2_8col/gemm_bf16_K1152.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 8,
+ "K": 1216,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_8col/gemm_bf16_K1216.xclbin",
+ "xclbin_bytes": 133966,
+ "xclbin_sha256": "9ec5ec561ff9036cca86b0293276842e8ca439b418ec7577de8fbe81bd18457f",
+ "insts_golden": "bfp16/npu2_8col/gemm_bf16_K1216.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 8,
+ "K": 1280,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_8col/gemm_bf16_K1280.xclbin",
+ "xclbin_bytes": 131918,
+ "xclbin_sha256": "282c5a6bc70c69a0c436d6a272427b8e43ce490f75e2da26f49d3f226524ee40",
+ "insts_golden": "bfp16/npu2_8col/gemm_bf16_K1280.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 8,
+ "K": 1344,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_8col/gemm_bf16_K1344.xclbin",
+ "xclbin_bytes": 126798,
+ "xclbin_sha256": "b2c9440ab12f508e501881ec2a5d1daf0aaad95c92b8d44522d610d466fde32e",
+ "insts_golden": "bfp16/npu2_8col/gemm_bf16_K1344.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 8,
+ "K": 1408,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_8col/gemm_bf16_K1408.xclbin",
+ "xclbin_bytes": 122190,
+ "xclbin_sha256": "cb48d7e0331a95fb56f3c456ac71dd94dab389d0e39d718eb90fad00c193aa06",
+ "insts_golden": "bfp16/npu2_8col/gemm_bf16_K1408.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 8,
+ "K": 1472,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_8col/gemm_bf16_K1472.xclbin",
+ "xclbin_bytes": 133966,
+ "xclbin_sha256": "fe17d33ca2fbf1500d9f0a3cd43929d21aba1acf7956cd384b0c8462e0b332a7",
+ "insts_golden": "bfp16/npu2_8col/gemm_bf16_K1472.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 8,
+ "K": 1536,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_8col/gemm_bf16_K1536.xclbin",
+ "xclbin_bytes": 131918,
+ "xclbin_sha256": "8573fd92a2e8ec244eb1e1c222c8d44f68218c83a44fcb3806ee52707bbde099",
+ "insts_golden": "bfp16/npu2_8col/gemm_bf16_K1536.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 8,
+ "K": 1728,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_8col/gemm_bf16_K1728.xclbin",
+ "xclbin_bytes": 126798,
+ "xclbin_sha256": "360ad0d2f8dc4cb7b4c2e063c8adfcd1cdb2b854d3c1336bf8fb60c2d47785ab",
+ "insts_golden": "bfp16/npu2_8col/gemm_bf16_K1728.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 8,
+ "K": 2304,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_8col/gemm_bf16_K2304.xclbin",
+ "xclbin_bytes": 131918,
+ "xclbin_sha256": "b91f6f975e9e57a497f960e99c488577058648103906b4a07bf38c74af7ebe91",
+ "insts_golden": "bfp16/npu2_8col/gemm_bf16_K2304.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 8,
+ "K": 2880,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_8col/gemm_bf16_K2880.xclbin",
+ "xclbin_bytes": 126798,
+ "xclbin_sha256": "f0a2dbc010168d29e19dbe6741de6be0604fd0b142cc3fa0b517541462ed38c6",
+ "insts_golden": "bfp16/npu2_8col/gemm_bf16_K2880.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 8,
+ "K": 3456,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_8col/gemm_bf16_K3456.xclbin",
+ "xclbin_bytes": 126798,
+ "xclbin_sha256": "31f09dc17e003c01185862946ba0fcb57c2aedf6d6ca4bb1f86bc2448e948d0a",
+ "insts_golden": "bfp16/npu2_8col/gemm_bf16_K3456.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 8,
+ "K": 4032,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_8col/gemm_bf16_K4032.xclbin",
+ "xclbin_bytes": 126798,
+ "xclbin_sha256": "ee895895fb295052dab9538deac03aede03fb6a85525d172455e2f861318cd4b",
+ "insts_golden": "bfp16/npu2_8col/gemm_bf16_K4032.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 8,
+ "K": 4608,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_8col/gemm_bf16_K4608.xclbin",
+ "xclbin_bytes": 131918,
+ "xclbin_sha256": "93168c53a58ea02c9a1ea27d3020918aeb80be750ce10d29581e2b13f9a15505",
+ "insts_golden": "bfp16/npu2_8col/gemm_bf16_K4608.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 8,
+ "K": 5184,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_8col/gemm_bf16_K5184.xclbin",
+ "xclbin_bytes": 126798,
+ "xclbin_sha256": "c2fe1daa1838285d3487a36c180577e27fa9f617d6d84e29c6893b7366e774ea",
+ "insts_golden": "bfp16/npu2_8col/gemm_bf16_K5184.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 8,
+ "K": 5760,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_8col/gemm_bf16_K5760.xclbin",
+ "xclbin_bytes": 126798,
+ "xclbin_sha256": "207ff29c827a7109c122385c93785d92b1d869faf7de806ca7c859aa5387e89d",
+ "insts_golden": "bfp16/npu2_8col/gemm_bf16_K5760.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 8,
+ "K": 6336,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_8col/gemm_bf16_K6336.xclbin",
+ "xclbin_bytes": 126798,
+ "xclbin_sha256": "beddce21342623ec8b88c31f6890dfca9165b72b3033f65e3487c2f0f17f0b0a",
+ "insts_golden": "bfp16/npu2_8col/gemm_bf16_K6336.insts.bin"
+ },
+ {
+ "dtype": "bfp16",
+ "arch": "npu2",
+ "n_aie_cols": 8,
+ "K": 6912,
+ "compiled_at": null,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "xclbin": "bfp16/npu2_8col/gemm_bf16_K6912.xclbin",
+ "xclbin_bytes": 131918,
+ "xclbin_sha256": "500adfc65f86f4b607bbef5c276d5ea6ed2e048a8b4e7797cfed2244a4ba03f8",
+ "insts_golden": "bfp16/npu2_8col/gemm_bf16_K6912.insts.bin"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/cpp/external/ryzenai_artifacts/manifest.json b/cpp/external/ryzenai_artifacts/manifest.json
new file mode 100644
index 000000000..4e0328538
--- /dev/null
+++ b/cpp/external/ryzenai_artifacts/manifest.json
@@ -0,0 +1,894 @@
+{
+ "manifest_version": 1,
+ "generated_by": "cpp/neuralnet/ryzenai/kernels/build_kernels.py",
+ "generated_at": "2026-08-13T02:43:20+00:00",
+ "design": {
+ "template": "mlir-aie programming_examples/basic/matrix_multiplication/whole_array",
+ "gemm": "bf16 x bf16 -> fp32 (fp32 accumulate), row-major A/B/C host buffers",
+ "bfp16_note": "dtype=bfp16 uses AIE2P BFP16-emulated bf16 MMUL (mac_dims (8,8,8)); same host ABI as bf16",
+ "n_aie_rows": 4,
+ "lookup": "artifacts[] by (arch, dtype, n_aie_cols, M, K, N)"
+ },
+ "abi": {
+ "kernel_name": "MLIR_AIE",
+ "arg_slots": [
+ {
+ "slot": 0,
+ "name": "opcode",
+ "kind": "scalar",
+ "value": 3,
+ "note": "ERT start-kernel-with-instruction-buffer opcode; pass as a 32-bit scalar (xclbin metadata declares uint64, only the low 32 bits are used)"
+ },
+ {
+ "slot": 1,
+ "name": "instr",
+ "kind": "bo",
+ "flags": "XCL_BO_FLAGS_CACHEABLE",
+ "group_id": "kernel.group_id(1)",
+ "content": "raw bytes of the .insts.bin file"
+ },
+ {
+ "slot": 2,
+ "name": "n_instr",
+ "kind": "scalar",
+ "unit": "uint32_words",
+ "note": "official mlir-aie C++ harness passes the word count (insts_bytes / 4); the Python iron runtime passes the byte count. Both were verified to run correctly on XRT 2.21 / Strix (the TXN control code self-describes its length). Use the word count for consistency with the C++ harness."
+ },
+ {
+ "slot": 3,
+ "name": "A",
+ "kind": "bo",
+ "flags": "XRT_BO_FLAGS_HOST_ONLY",
+ "group_id": "kernel.group_id(3)"
+ },
+ {
+ "slot": 4,
+ "name": "B",
+ "kind": "bo",
+ "flags": "XRT_BO_FLAGS_HOST_ONLY",
+ "group_id": "kernel.group_id(4)"
+ },
+ {
+ "slot": 5,
+ "name": "C",
+ "kind": "bo",
+ "flags": "XRT_BO_FLAGS_HOST_ONLY",
+ "group_id": "kernel.group_id(5)"
+ }
+ ],
+ "data_arg_order": [
+ "A",
+ "B",
+ "C"
+ ],
+ "declared_bo_slots": 5,
+ "declared_bo_slots_note": "the xclbin declares 5 data BO slots (bo0..bo4, kernel args 3..7); this design uses the first 3. Never pass more than 5 data BOs.",
+ "group_id_note": "group_id values are assigned by XRT at load time; always query kernel.group_id(n) at runtime, never hardcode the observed numbers.",
+ "data_layout": {
+ "A": "M x K bfloat16, plain row-major contiguous (row stride = K elements), 2 bytes little-endian per element, no tiling or packing in the host buffer",
+ "B": "K x N bfloat16, plain row-major contiguous (row stride = N elements), 2 bytes little-endian per element, no tiling or packing in the host buffer",
+ "C": "M x N float32, plain row-major contiguous (row stride = N elements), written by the NPU, no tiling or packing in the host buffer",
+ "note": "all (r,s,t) sub-tile reordering required by the MMUL intrinsic is performed on-chip by the shim/memtile/core DMAs; the host buffers stay plain row-major"
+ },
+ "sync": "sync instr + A + B + C XCL_BO_SYNC_BO_TO_DEVICE after filling them (C sync is only needed if the host wrote to it); sync C XCL_BO_SYNC_BO_FROM_DEVICE after run.wait()",
+ "dispatch_cpp": "xrt::device dev(0); auto x = xrt::xclbin(xclbin_path); dev.register_xclbin(x); xrt::hw_context ctx(dev, x.get_uuid()); xrt::kernel k(ctx, \"MLIR_AIE\"); xrt::bo instr(dev, insts_bytes, XCL_BO_FLAGS_CACHEABLE, k.group_id(1)); xrt::bo a(dev, M*K*2, XRT_BO_FLAGS_HOST_ONLY, k.group_id(3)); xrt::bo b(dev, K*N*2, XRT_BO_FLAGS_HOST_ONLY, k.group_id(4)); xrt::bo c(dev, M*N*4, XRT_BO_FLAGS_HOST_ONLY, k.group_id(5)); xrt::run r(k); r.set_arg(0, 3); r.set_arg(1, instr); r.set_arg(2, insts_bytes/4); r.set_arg(3, a); r.set_arg(4, b); r.set_arg(5, c); r.start(); r.wait();"
+ },
+ "artifacts": [
+ {
+ "xclbin": "bf16/npu1_4col/gemm_bf16_M512K384N384.xclbin",
+ "insts": "bf16/npu1_4col/gemm_bf16_M512K384N384.insts.bin",
+ "arch": "npu1",
+ "dtype": "bf16",
+ "n_aie_cols": 4,
+ "M": 512,
+ "K": 384,
+ "N": 384,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 48
+ },
+ "mac_dims": [
+ 4,
+ 8,
+ 4
+ ],
+ "core_kernel": "MLIR_AIE",
+ "zero_kernel": "zero_f32",
+ "n_instr_words": 1292,
+ "xclbin_bytes": 80926,
+ "xclbin_sha256": "09253c368a044ac44d5ee1776956ea5456d0753ebd1104cf72fed909b59d2166",
+ "insts_bytes": 5168,
+ "insts_sha256": "6ee5b46c5c3093571a731d70608455fb3c3009b2830c005cfe37c1f383ed3697",
+ "bo_sizes_bytes": {
+ "A": 393216,
+ "B": 294912,
+ "C": 786432
+ },
+ "hardware_verified": false,
+ "compile_seconds": 11.7
+ },
+ {
+ "xclbin": "bf16/npu1_4col/gemm_bf16_M512K512N512.xclbin",
+ "insts": "bf16/npu1_4col/gemm_bf16_M512K512N512.insts.bin",
+ "arch": "npu1",
+ "dtype": "bf16",
+ "n_aie_cols": 4,
+ "M": 512,
+ "K": 512,
+ "N": 512,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "mac_dims": [
+ 4,
+ 8,
+ 4
+ ],
+ "core_kernel": "MLIR_AIE",
+ "zero_kernel": "zero_f32",
+ "n_instr_words": 1292,
+ "xclbin_bytes": 75294,
+ "xclbin_sha256": "2355c501070130d288f573306c401e409a833954d845cb557a1a5907e74fbc34",
+ "insts_bytes": 5168,
+ "insts_sha256": "e8eba035c40cf34dccbad9b9308b618e15809c6575ad813940377d7ea9ca10e2",
+ "bo_sizes_bytes": {
+ "A": 524288,
+ "B": 524288,
+ "C": 1048576
+ },
+ "hardware_verified": false,
+ "compile_seconds": 10.0
+ },
+ {
+ "xclbin": "bf16/npu1_4col/gemm_bf16_M512K768N768.xclbin",
+ "insts": "bf16/npu1_4col/gemm_bf16_M512K768N768.insts.bin",
+ "arch": "npu1",
+ "dtype": "bf16",
+ "n_aie_cols": 4,
+ "M": 512,
+ "K": 768,
+ "N": 768,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "mac_dims": [
+ 4,
+ 8,
+ 4
+ ],
+ "core_kernel": "MLIR_AIE",
+ "zero_kernel": "zero_f32",
+ "n_instr_words": 1292,
+ "xclbin_bytes": 75294,
+ "xclbin_sha256": "d5927c3ee36767b7967ef33ebb592195786fea05f29cc148828cdb1873dce77b",
+ "insts_bytes": 5168,
+ "insts_sha256": "0ec974baa93d488a7616563445a8da5863370ac03ce3206328b736ea8a7c7626",
+ "bo_sizes_bytes": {
+ "A": 786432,
+ "B": 1179648,
+ "C": 1572864
+ },
+ "hardware_verified": false,
+ "compile_seconds": 9.9
+ },
+ {
+ "xclbin": "bf16/npu1_1col/gemm_bf16_M512K384N384.xclbin",
+ "insts": "bf16/npu1_1col/gemm_bf16_M512K384N384.insts.bin",
+ "arch": "npu1",
+ "dtype": "bf16",
+ "n_aie_cols": 1,
+ "M": 512,
+ "K": 384,
+ "N": 384,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 48
+ },
+ "mac_dims": [
+ 4,
+ 8,
+ 4
+ ],
+ "core_kernel": "MLIR_AIE",
+ "zero_kernel": "zero_f32",
+ "n_instr_words": 326,
+ "xclbin_bytes": 25992,
+ "xclbin_sha256": "5877ac0160d710727cfa784c134937dce32505fb8e23a5d4917f9fbef74263f5",
+ "insts_bytes": 1304,
+ "insts_sha256": "2ebffa614ea2feb73cb68f41f15d9af2fb2aa9cf9571551fd8a0d205c5955a16",
+ "bo_sizes_bytes": {
+ "A": 393216,
+ "B": 294912,
+ "C": 786432
+ },
+ "hardware_verified": false,
+ "compile_seconds": 6.9
+ },
+ {
+ "xclbin": "bf16/npu1_1col/gemm_bf16_M512K512N512.xclbin",
+ "insts": "bf16/npu1_1col/gemm_bf16_M512K512N512.insts.bin",
+ "arch": "npu1",
+ "dtype": "bf16",
+ "n_aie_cols": 1,
+ "M": 512,
+ "K": 512,
+ "N": 512,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "mac_dims": [
+ 4,
+ 8,
+ 4
+ ],
+ "core_kernel": "MLIR_AIE",
+ "zero_kernel": "zero_f32",
+ "n_instr_words": 326,
+ "xclbin_bytes": 24584,
+ "xclbin_sha256": "ecc71a1a490366bac779a9ad7a70a0cdadad608a7cf9998987ad77282e93a1e9",
+ "insts_bytes": 1304,
+ "insts_sha256": "dcff95ae97b99ee11f823f30dd3631e05a62a78fe300ff9127386aa45c78caed",
+ "bo_sizes_bytes": {
+ "A": 524288,
+ "B": 524288,
+ "C": 1048576
+ },
+ "hardware_verified": false,
+ "compile_seconds": 7.7
+ },
+ {
+ "xclbin": "bf16/npu1_1col/gemm_bf16_M512K768N768.xclbin",
+ "insts": "bf16/npu1_1col/gemm_bf16_M512K768N768.insts.bin",
+ "arch": "npu1",
+ "dtype": "bf16",
+ "n_aie_cols": 1,
+ "M": 512,
+ "K": 768,
+ "N": 768,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "mac_dims": [
+ 4,
+ 8,
+ 4
+ ],
+ "core_kernel": "MLIR_AIE",
+ "zero_kernel": "zero_f32",
+ "n_instr_words": 326,
+ "xclbin_bytes": 24584,
+ "xclbin_sha256": "26ab701bb20d6cc48887eeafd30bfea4779eb7b3c5ad30515fd9e2ccb08d11e5",
+ "insts_bytes": 1304,
+ "insts_sha256": "69d9ddceeebaec17d92a1766008b67377463a215a67be514dadc93b0efb3cbca",
+ "bo_sizes_bytes": {
+ "A": 786432,
+ "B": 1179648,
+ "C": 1572864
+ },
+ "hardware_verified": false,
+ "compile_seconds": 7.0
+ },
+ {
+ "xclbin": "bf16/npu2_8col/gemm_bf16_M512K384N384.xclbin",
+ "insts": "bf16/npu2_8col/gemm_bf16_M512K384N384.insts.bin",
+ "arch": "npu2",
+ "dtype": "bf16",
+ "n_aie_cols": 8,
+ "M": 512,
+ "K": 384,
+ "N": 384,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 48
+ },
+ "mac_dims": [
+ 4,
+ 8,
+ 8
+ ],
+ "core_kernel": "MLIR_AIE",
+ "zero_kernel": "zero_f32",
+ "n_instr_words": 2100,
+ "xclbin_bytes": 145230,
+ "xclbin_sha256": "fac999294a6d1daa779e3c8315655bfe6317e44352604c22143eb2332d5b7f90",
+ "insts_bytes": 8400,
+ "insts_sha256": "274294c4864594591c01afa7fb5794ad66fe4df6e7db17b6322e72994201846f",
+ "bo_sizes_bytes": {
+ "A": 393216,
+ "B": 294912,
+ "C": 786432
+ },
+ "hardware_verified": true,
+ "compile_seconds": 32.4
+ },
+ {
+ "xclbin": "bf16/npu2_8col/gemm_bf16_M512K512N512.xclbin",
+ "insts": "bf16/npu2_8col/gemm_bf16_M512K512N512.insts.bin",
+ "arch": "npu2",
+ "dtype": "bf16",
+ "n_aie_cols": 8,
+ "M": 512,
+ "K": 512,
+ "N": 512,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "mac_dims": [
+ 4,
+ 8,
+ 8
+ ],
+ "core_kernel": "MLIR_AIE",
+ "zero_kernel": "zero_f32",
+ "n_instr_words": 2100,
+ "xclbin_bytes": 155470,
+ "xclbin_sha256": "fe38a588635df848f7e427736e6b57d24f8e19ed1700fc7100cb02e48e45e2bb",
+ "insts_bytes": 8400,
+ "insts_sha256": "08d5727f5f47de1315af95c8a2f30e96787608d4576ddbb2663b60eee3b1aac3",
+ "bo_sizes_bytes": {
+ "A": 524288,
+ "B": 524288,
+ "C": 1048576
+ },
+ "hardware_verified": true,
+ "compile_seconds": 36.0
+ },
+ {
+ "xclbin": "bf16/npu2_8col/gemm_bf16_M512K768N768.xclbin",
+ "insts": "bf16/npu2_8col/gemm_bf16_M512K768N768.insts.bin",
+ "arch": "npu2",
+ "dtype": "bf16",
+ "n_aie_cols": 8,
+ "M": 512,
+ "K": 768,
+ "N": 768,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "mac_dims": [
+ 4,
+ 8,
+ 8
+ ],
+ "core_kernel": "MLIR_AIE",
+ "zero_kernel": "zero_f32",
+ "n_instr_words": 2100,
+ "xclbin_bytes": 177998,
+ "xclbin_sha256": "ca6f9ab1edb8960cc1973aeefe1a72db06256f8e18dca3512b0a73ab275c934d",
+ "insts_bytes": 8400,
+ "insts_sha256": "e8614292674a4946074446354f86aff268ff9bec581dd8cd04441b1ad68f16ab",
+ "bo_sizes_bytes": {
+ "A": 786432,
+ "B": 1179648,
+ "C": 1572864
+ },
+ "hardware_verified": true,
+ "compile_seconds": 39.9
+ },
+ {
+ "xclbin": "bf16/npu2_4col/gemm_bf16_M512K384N384.xclbin",
+ "insts": "bf16/npu2_4col/gemm_bf16_M512K384N384.insts.bin",
+ "arch": "npu2",
+ "dtype": "bf16",
+ "n_aie_cols": 4,
+ "M": 512,
+ "K": 384,
+ "N": 384,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 48
+ },
+ "mac_dims": [
+ 4,
+ 8,
+ 8
+ ],
+ "core_kernel": "MLIR_AIE",
+ "zero_kernel": "zero_f32",
+ "n_instr_words": 1292,
+ "xclbin_bytes": 76142,
+ "xclbin_sha256": "fbdb691f2b846213dc8341e92cd635043157f70ea7c3425cc866c4767c7d407a",
+ "insts_bytes": 5168,
+ "insts_sha256": "77aa4246090925aa8a8580dcbe702f636d059806886b6ccc07f594290e75d8db",
+ "bo_sizes_bytes": {
+ "A": 393216,
+ "B": 294912,
+ "C": 786432
+ },
+ "hardware_verified": true,
+ "compile_seconds": 24.5
+ },
+ {
+ "xclbin": "bf16/npu2_4col/gemm_bf16_M512K512N512.xclbin",
+ "insts": "bf16/npu2_4col/gemm_bf16_M512K512N512.insts.bin",
+ "arch": "npu2",
+ "dtype": "bf16",
+ "n_aie_cols": 4,
+ "M": 512,
+ "K": 512,
+ "N": 512,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "mac_dims": [
+ 4,
+ 8,
+ 8
+ ],
+ "core_kernel": "MLIR_AIE",
+ "zero_kernel": "zero_f32",
+ "n_instr_words": 1292,
+ "xclbin_bytes": 81262,
+ "xclbin_sha256": "da7b65ac807c2a5883d376b035cb113548fba3ae20f256d04848568e83f4c0a9",
+ "insts_bytes": 5168,
+ "insts_sha256": "e8f42bb5b265fb51d50191844250afe8321ea7d2b735986fd882e62de8bcdea4",
+ "bo_sizes_bytes": {
+ "A": 524288,
+ "B": 524288,
+ "C": 1048576
+ },
+ "hardware_verified": true,
+ "compile_seconds": 20.5
+ },
+ {
+ "xclbin": "bf16/npu2_4col/gemm_bf16_M512K768N768.xclbin",
+ "insts": "bf16/npu2_4col/gemm_bf16_M512K768N768.insts.bin",
+ "arch": "npu2",
+ "dtype": "bf16",
+ "n_aie_cols": 4,
+ "M": 512,
+ "K": 768,
+ "N": 768,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "mac_dims": [
+ 4,
+ 8,
+ 8
+ ],
+ "core_kernel": "MLIR_AIE",
+ "zero_kernel": "zero_f32",
+ "n_instr_words": 1292,
+ "xclbin_bytes": 92526,
+ "xclbin_sha256": "d45773b5755dd9359a96096225f97e104ff8cc8f14ebcb8d200f2144ec88126e",
+ "insts_bytes": 5168,
+ "insts_sha256": "a5288db6688002b9b32f169e15ae32c473e1f05fa6090ba7764ebc87b0306118",
+ "bo_sizes_bytes": {
+ "A": 786432,
+ "B": 1179648,
+ "C": 1572864
+ },
+ "hardware_verified": true,
+ "compile_seconds": 23.3
+ },
+ {
+ "xclbin": "bf16/npu2_1col/gemm_bf16_M512K384N384.xclbin",
+ "insts": "bf16/npu2_1col/gemm_bf16_M512K384N384.insts.bin",
+ "arch": "npu2",
+ "dtype": "bf16",
+ "n_aie_cols": 1,
+ "M": 512,
+ "K": 384,
+ "N": 384,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 48
+ },
+ "mac_dims": [
+ 4,
+ 8,
+ 8
+ ],
+ "core_kernel": "MLIR_AIE",
+ "zero_kernel": "zero_f32",
+ "n_instr_words": 326,
+ "xclbin_bytes": 24776,
+ "xclbin_sha256": "b7b0ac807bfe0fb0920e28e7bd4a36461a1e0a507836206b13add7f0bd3a8389",
+ "insts_bytes": 1304,
+ "insts_sha256": "cf1e307b8a68b83590126bfde26ea157530cd219c1867eb04867f5a2f4fb1a2b",
+ "bo_sizes_bytes": {
+ "A": 393216,
+ "B": 294912,
+ "C": 786432
+ },
+ "hardware_verified": true,
+ "compile_seconds": 18.0
+ },
+ {
+ "xclbin": "bf16/npu2_1col/gemm_bf16_M512K512N512.xclbin",
+ "insts": "bf16/npu2_1col/gemm_bf16_M512K512N512.insts.bin",
+ "arch": "npu2",
+ "dtype": "bf16",
+ "n_aie_cols": 1,
+ "M": 512,
+ "K": 512,
+ "N": 512,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "mac_dims": [
+ 4,
+ 8,
+ 8
+ ],
+ "core_kernel": "MLIR_AIE",
+ "zero_kernel": "zero_f32",
+ "n_instr_words": 326,
+ "xclbin_bytes": 26056,
+ "xclbin_sha256": "90ee826c18937809151e0ff4c43d1705e426ebf065e8531d45786b94c3a40825",
+ "insts_bytes": 1304,
+ "insts_sha256": "2382f2e853c9ba939466ab84acca02b3087ff261972eb62d38402a1f1d77a909",
+ "bo_sizes_bytes": {
+ "A": 524288,
+ "B": 524288,
+ "C": 1048576
+ },
+ "hardware_verified": true,
+ "compile_seconds": 10.0
+ },
+ {
+ "xclbin": "bf16/npu2_1col/gemm_bf16_M512K768N768.xclbin",
+ "insts": "bf16/npu2_1col/gemm_bf16_M512K768N768.insts.bin",
+ "arch": "npu2",
+ "dtype": "bf16",
+ "n_aie_cols": 1,
+ "M": 512,
+ "K": 768,
+ "N": 768,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "mac_dims": [
+ 4,
+ 8,
+ 8
+ ],
+ "core_kernel": "MLIR_AIE",
+ "zero_kernel": "zero_f32",
+ "n_instr_words": 326,
+ "xclbin_bytes": 28872,
+ "xclbin_sha256": "347637ed652ca26cfba0d9d90bd513cfe68d8f3ec8bd43666079481774b397e4",
+ "insts_bytes": 1304,
+ "insts_sha256": "6b4a2a790b460eb92efc46aaab6e2ddf080178d40e75affd1e9cfa0f0e9e0d17",
+ "bo_sizes_bytes": {
+ "A": 786432,
+ "B": 1179648,
+ "C": 1572864
+ },
+ "hardware_verified": true,
+ "compile_seconds": 9.3
+ },
+ {
+ "xclbin": "bfp16/npu2_8col/gemm_bf16_M512K384N384.xclbin",
+ "insts": "bfp16/npu2_8col/gemm_bf16_M512K384N384.insts.bin",
+ "arch": "npu2",
+ "dtype": "bfp16",
+ "n_aie_cols": 8,
+ "M": 512,
+ "K": 384,
+ "N": 384,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 48
+ },
+ "mac_dims": [
+ 8,
+ 8,
+ 8
+ ],
+ "core_kernel": "MLIR_AIE",
+ "zero_kernel": "zero_f32",
+ "n_instr_words": 2100,
+ "xclbin_bytes": 142670,
+ "xclbin_sha256": "6264bd24fe75554fee7164a8ebe05e74f1b72684d598f9f4b9984970a205cd0e",
+ "insts_bytes": 8400,
+ "insts_sha256": "274294c4864594591c01afa7fb5794ad66fe4df6e7db17b6322e72994201846f",
+ "bo_sizes_bytes": {
+ "A": 393216,
+ "B": 294912,
+ "C": 786432
+ },
+ "hardware_verified": false,
+ "compile_seconds": 17.0
+ },
+ {
+ "xclbin": "bfp16/npu2_8col/gemm_bf16_M512K512N512.xclbin",
+ "insts": "bfp16/npu2_8col/gemm_bf16_M512K512N512.insts.bin",
+ "arch": "npu2",
+ "dtype": "bfp16",
+ "n_aie_cols": 8,
+ "M": 512,
+ "K": 512,
+ "N": 512,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "mac_dims": [
+ 8,
+ 8,
+ 8
+ ],
+ "core_kernel": "MLIR_AIE",
+ "zero_kernel": "zero_f32",
+ "n_instr_words": 2100,
+ "xclbin_bytes": 151886,
+ "xclbin_sha256": "759e4c06fd9eea81055e649d1255fb54fc1c8c9ba8966c9af1dd2d3415132ce7",
+ "insts_bytes": 8400,
+ "insts_sha256": "08d5727f5f47de1315af95c8a2f30e96787608d4576ddbb2663b60eee3b1aac3",
+ "bo_sizes_bytes": {
+ "A": 524288,
+ "B": 524288,
+ "C": 1048576
+ },
+ "hardware_verified": false,
+ "compile_seconds": 20.0
+ },
+ {
+ "xclbin": "bfp16/npu2_8col/gemm_bf16_M512K768N768.xclbin",
+ "insts": "bfp16/npu2_8col/gemm_bf16_M512K768N768.insts.bin",
+ "arch": "npu2",
+ "dtype": "bfp16",
+ "n_aie_cols": 8,
+ "M": 512,
+ "K": 768,
+ "N": 768,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "mac_dims": [
+ 8,
+ 8,
+ 8
+ ],
+ "core_kernel": "MLIR_AIE",
+ "zero_kernel": "zero_f32",
+ "n_instr_words": 2100,
+ "xclbin_bytes": 174414,
+ "xclbin_sha256": "94baa0eae6363ed609b834e03574407649b86ecb6e21874732d4d64bdbc463fe",
+ "insts_bytes": 8400,
+ "insts_sha256": "e8614292674a4946074446354f86aff268ff9bec581dd8cd04441b1ad68f16ab",
+ "bo_sizes_bytes": {
+ "A": 786432,
+ "B": 1179648,
+ "C": 1572864
+ },
+ "hardware_verified": false,
+ "compile_seconds": 25.5
+ },
+ {
+ "xclbin": "bfp16/npu2_4col/gemm_bf16_M512K384N384.xclbin",
+ "insts": "bfp16/npu2_4col/gemm_bf16_M512K384N384.insts.bin",
+ "arch": "npu2",
+ "dtype": "bfp16",
+ "n_aie_cols": 4,
+ "M": 512,
+ "K": 384,
+ "N": 384,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 48
+ },
+ "mac_dims": [
+ 8,
+ 8,
+ 8
+ ],
+ "core_kernel": "MLIR_AIE",
+ "zero_kernel": "zero_f32",
+ "n_instr_words": 1292,
+ "xclbin_bytes": 74862,
+ "xclbin_sha256": "9353f2bbc9746edae37aca13441e70d4d1c3618b5b68a852fb24184197586bf4",
+ "insts_bytes": 5168,
+ "insts_sha256": "77aa4246090925aa8a8580dcbe702f636d059806886b6ccc07f594290e75d8db",
+ "bo_sizes_bytes": {
+ "A": 393216,
+ "B": 294912,
+ "C": 786432
+ },
+ "hardware_verified": false,
+ "compile_seconds": 15.1
+ },
+ {
+ "xclbin": "bfp16/npu2_4col/gemm_bf16_M512K512N512.xclbin",
+ "insts": "bfp16/npu2_4col/gemm_bf16_M512K512N512.insts.bin",
+ "arch": "npu2",
+ "dtype": "bfp16",
+ "n_aie_cols": 4,
+ "M": 512,
+ "K": 512,
+ "N": 512,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "mac_dims": [
+ 8,
+ 8,
+ 8
+ ],
+ "core_kernel": "MLIR_AIE",
+ "zero_kernel": "zero_f32",
+ "n_instr_words": 1292,
+ "xclbin_bytes": 79470,
+ "xclbin_sha256": "24eaa3d3ef86293b83fb571b3f628ab6cfafc72b1168843d344fd2ee6e505de0",
+ "insts_bytes": 5168,
+ "insts_sha256": "e8f42bb5b265fb51d50191844250afe8321ea7d2b735986fd882e62de8bcdea4",
+ "bo_sizes_bytes": {
+ "A": 524288,
+ "B": 524288,
+ "C": 1048576
+ },
+ "hardware_verified": false,
+ "compile_seconds": 11.9
+ },
+ {
+ "xclbin": "bfp16/npu2_4col/gemm_bf16_M512K768N768.xclbin",
+ "insts": "bfp16/npu2_4col/gemm_bf16_M512K768N768.insts.bin",
+ "arch": "npu2",
+ "dtype": "bfp16",
+ "n_aie_cols": 4,
+ "M": 512,
+ "K": 768,
+ "N": 768,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "mac_dims": [
+ 8,
+ 8,
+ 8
+ ],
+ "core_kernel": "MLIR_AIE",
+ "zero_kernel": "zero_f32",
+ "n_instr_words": 1292,
+ "xclbin_bytes": 90734,
+ "xclbin_sha256": "b91967c2a06d25291179ad748655e40300f5b7afb356c9bf272507f85c3001a9",
+ "insts_bytes": 5168,
+ "insts_sha256": "a5288db6688002b9b32f169e15ae32c473e1f05fa6090ba7764ebc87b0306118",
+ "bo_sizes_bytes": {
+ "A": 786432,
+ "B": 1179648,
+ "C": 1572864
+ },
+ "hardware_verified": false,
+ "compile_seconds": 12.8
+ },
+ {
+ "xclbin": "bfp16/npu2_1col/gemm_bf16_M512K384N384.xclbin",
+ "insts": "bfp16/npu2_1col/gemm_bf16_M512K384N384.insts.bin",
+ "arch": "npu2",
+ "dtype": "bfp16",
+ "n_aie_cols": 1,
+ "M": 512,
+ "K": 384,
+ "N": 384,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 48
+ },
+ "mac_dims": [
+ 8,
+ 8,
+ 8
+ ],
+ "core_kernel": "MLIR_AIE",
+ "zero_kernel": "zero_f32",
+ "n_instr_words": 326,
+ "xclbin_bytes": 24456,
+ "xclbin_sha256": "4a81b7e99e330c8a95f0c9dedc6224ff6d779bd65694b7b62ccb984db945948e",
+ "insts_bytes": 1304,
+ "insts_sha256": "cf1e307b8a68b83590126bfde26ea157530cd219c1867eb04867f5a2f4fb1a2b",
+ "bo_sizes_bytes": {
+ "A": 393216,
+ "B": 294912,
+ "C": 786432
+ },
+ "hardware_verified": false,
+ "compile_seconds": 9.1
+ },
+ {
+ "xclbin": "bfp16/npu2_1col/gemm_bf16_M512K512N512.xclbin",
+ "insts": "bfp16/npu2_1col/gemm_bf16_M512K512N512.insts.bin",
+ "arch": "npu2",
+ "dtype": "bfp16",
+ "n_aie_cols": 1,
+ "M": 512,
+ "K": 512,
+ "N": 512,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "mac_dims": [
+ 8,
+ 8,
+ 8
+ ],
+ "core_kernel": "MLIR_AIE",
+ "zero_kernel": "zero_f32",
+ "n_instr_words": 326,
+ "xclbin_bytes": 25608,
+ "xclbin_sha256": "fe666f21f7a0e09e69507096a37487fd50401a56abce51ae716a4d90715a48a4",
+ "insts_bytes": 1304,
+ "insts_sha256": "2382f2e853c9ba939466ab84acca02b3087ff261972eb62d38402a1f1d77a909",
+ "bo_sizes_bytes": {
+ "A": 524288,
+ "B": 524288,
+ "C": 1048576
+ },
+ "hardware_verified": false,
+ "compile_seconds": 10.2
+ },
+ {
+ "xclbin": "bfp16/npu2_1col/gemm_bf16_M512K768N768.xclbin",
+ "insts": "bfp16/npu2_1col/gemm_bf16_M512K768N768.insts.bin",
+ "arch": "npu2",
+ "dtype": "bfp16",
+ "n_aie_cols": 1,
+ "M": 512,
+ "K": 768,
+ "N": 768,
+ "tile": {
+ "m": 32,
+ "k": 64,
+ "n": 32
+ },
+ "mac_dims": [
+ 8,
+ 8,
+ 8
+ ],
+ "core_kernel": "MLIR_AIE",
+ "zero_kernel": "zero_f32",
+ "n_instr_words": 326,
+ "xclbin_bytes": 28424,
+ "xclbin_sha256": "6c3843f37343c3c3d110929c607ff6e6b2cf59a1849b8a3ec9ba1a7a875791f1",
+ "insts_bytes": 1304,
+ "insts_sha256": "6b4a2a790b460eb92efc46aaab6e2ddf080178d40e75affd1e9cfa0f0e9e0d17",
+ "bo_sizes_bytes": {
+ "A": 786432,
+ "B": 1179648,
+ "C": 1572864
+ },
+ "hardware_verified": false,
+ "compile_seconds": 9.9
+ }
+ ]
+}
diff --git a/cpp/external/ryzenai_artifacts/ops/attn_h12_s169.insts.bin b/cpp/external/ryzenai_artifacts/ops/attn_h12_s169.insts.bin
new file mode 100644
index 000000000..787435a2b
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/attn_h12_s169.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/attn_h12_s169.xclbin b/cpp/external/ryzenai_artifacts/ops/attn_h12_s169.xclbin
new file mode 100644
index 000000000..28460dc06
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/attn_h12_s169.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/attn_h12_s361.insts.bin b/cpp/external/ryzenai_artifacts/ops/attn_h12_s361.insts.bin
new file mode 100644
index 000000000..e65ceb22e
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/attn_h12_s361.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/attn_h12_s361.xclbin b/cpp/external/ryzenai_artifacts/ops/attn_h12_s361.xclbin
new file mode 100644
index 000000000..365be9a7b
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/attn_h12_s361.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/attn_h12_s81.insts.bin b/cpp/external/ryzenai_artifacts/ops/attn_h12_s81.insts.bin
new file mode 100644
index 000000000..d117a37e8
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/attn_h12_s81.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/attn_h12_s81.xclbin b/cpp/external/ryzenai_artifacts/ops/attn_h12_s81.xclbin
new file mode 100644
index 000000000..2563b756c
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/attn_h12_s81.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/attn_h6_s169.insts.bin b/cpp/external/ryzenai_artifacts/ops/attn_h6_s169.insts.bin
new file mode 100644
index 000000000..956193771
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/attn_h6_s169.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/attn_h6_s169.xclbin b/cpp/external/ryzenai_artifacts/ops/attn_h6_s169.xclbin
new file mode 100644
index 000000000..d433a723b
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/attn_h6_s169.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/attn_h6_s361.insts.bin b/cpp/external/ryzenai_artifacts/ops/attn_h6_s361.insts.bin
new file mode 100644
index 000000000..f4850c7e5
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/attn_h6_s361.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/attn_h6_s361.xclbin b/cpp/external/ryzenai_artifacts/ops/attn_h6_s361.xclbin
new file mode 100644
index 000000000..0524c8f60
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/attn_h6_s361.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/attn_h6_s81.insts.bin b/cpp/external/ryzenai_artifacts/ops/attn_h6_s81.insts.bin
new file mode 100644
index 000000000..1cca8f517
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/attn_h6_s81.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/attn_h6_s81.xclbin b/cpp/external/ryzenai_artifacts/ops/attn_h6_s81.xclbin
new file mode 100644
index 000000000..b8347e8bf
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/attn_h6_s81.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/attn_h8_s169.insts.bin b/cpp/external/ryzenai_artifacts/ops/attn_h8_s169.insts.bin
new file mode 100644
index 000000000..69b8f2c8b
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/attn_h8_s169.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/attn_h8_s169.xclbin b/cpp/external/ryzenai_artifacts/ops/attn_h8_s169.xclbin
new file mode 100644
index 000000000..c68dacd39
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/attn_h8_s169.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/attn_h8_s361.insts.bin b/cpp/external/ryzenai_artifacts/ops/attn_h8_s361.insts.bin
new file mode 100644
index 000000000..ce6dab1aa
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/attn_h8_s361.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/attn_h8_s361.xclbin b/cpp/external/ryzenai_artifacts/ops/attn_h8_s361.xclbin
new file mode 100644
index 000000000..d0e5892cf
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/attn_h8_s361.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/attn_h8_s81.insts.bin b/cpp/external/ryzenai_artifacts/ops/attn_h8_s81.insts.bin
new file mode 100644
index 000000000..397818f18
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/attn_h8_s81.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/attn_h8_s81.xclbin b/cpp/external/ryzenai_artifacts/ops/attn_h8_s81.xclbin
new file mode 100644
index 000000000..7aa634382
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/attn_h8_s81.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/bnmish_1536x1024.insts.bin b/cpp/external/ryzenai_artifacts/ops/bnmish_1536x1024.insts.bin
new file mode 100644
index 000000000..bb1332af0
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/bnmish_1536x1024.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/bnmish_1536x1024.xclbin b/cpp/external/ryzenai_artifacts/ops/bnmish_1536x1024.xclbin
new file mode 100644
index 000000000..9d6ecb62e
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/bnmish_1536x1024.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/bnmish_1536x192.insts.bin b/cpp/external/ryzenai_artifacts/ops/bnmish_1536x192.insts.bin
new file mode 100644
index 000000000..8f4699914
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/bnmish_1536x192.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/bnmish_1536x192.xclbin b/cpp/external/ryzenai_artifacts/ops/bnmish_1536x192.xclbin
new file mode 100644
index 000000000..5ecb97e7c
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/bnmish_1536x192.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/bnmish_1536x256.insts.bin b/cpp/external/ryzenai_artifacts/ops/bnmish_1536x256.insts.bin
new file mode 100644
index 000000000..ab4eed40c
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/bnmish_1536x256.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/bnmish_1536x256.xclbin b/cpp/external/ryzenai_artifacts/ops/bnmish_1536x256.xclbin
new file mode 100644
index 000000000..48bee6a3c
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/bnmish_1536x256.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/bnmish_1536x384.insts.bin b/cpp/external/ryzenai_artifacts/ops/bnmish_1536x384.insts.bin
new file mode 100644
index 000000000..9c300e69b
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/bnmish_1536x384.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/bnmish_1536x384.xclbin b/cpp/external/ryzenai_artifacts/ops/bnmish_1536x384.xclbin
new file mode 100644
index 000000000..acefa67ab
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/bnmish_1536x384.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/bnmish_1536x512.insts.bin b/cpp/external/ryzenai_artifacts/ops/bnmish_1536x512.insts.bin
new file mode 100644
index 000000000..3ec78beef
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/bnmish_1536x512.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/bnmish_1536x512.xclbin b/cpp/external/ryzenai_artifacts/ops/bnmish_1536x512.xclbin
new file mode 100644
index 000000000..c10accb7c
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/bnmish_1536x512.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/bnmish_1536x768.insts.bin b/cpp/external/ryzenai_artifacts/ops/bnmish_1536x768.insts.bin
new file mode 100644
index 000000000..6244af867
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/bnmish_1536x768.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/bnmish_1536x768.xclbin b/cpp/external/ryzenai_artifacts/ops/bnmish_1536x768.xclbin
new file mode 100644
index 000000000..6b7cdfeca
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/bnmish_1536x768.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/bnmish_3072x1024.insts.bin b/cpp/external/ryzenai_artifacts/ops/bnmish_3072x1024.insts.bin
new file mode 100644
index 000000000..895b49b66
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/bnmish_3072x1024.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/bnmish_3072x1024.xclbin b/cpp/external/ryzenai_artifacts/ops/bnmish_3072x1024.xclbin
new file mode 100644
index 000000000..238b69ba7
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/bnmish_3072x1024.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/bnmish_3072x192.insts.bin b/cpp/external/ryzenai_artifacts/ops/bnmish_3072x192.insts.bin
new file mode 100644
index 000000000..a0ebddae7
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/bnmish_3072x192.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/bnmish_3072x192.xclbin b/cpp/external/ryzenai_artifacts/ops/bnmish_3072x192.xclbin
new file mode 100644
index 000000000..4177f8d21
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/bnmish_3072x192.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/bnmish_3072x256.insts.bin b/cpp/external/ryzenai_artifacts/ops/bnmish_3072x256.insts.bin
new file mode 100644
index 000000000..49ffbde24
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/bnmish_3072x256.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/bnmish_3072x256.xclbin b/cpp/external/ryzenai_artifacts/ops/bnmish_3072x256.xclbin
new file mode 100644
index 000000000..7a6f76f86
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/bnmish_3072x256.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/bnmish_3072x384.insts.bin b/cpp/external/ryzenai_artifacts/ops/bnmish_3072x384.insts.bin
new file mode 100644
index 000000000..1bfb1aed2
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/bnmish_3072x384.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/bnmish_3072x384.xclbin b/cpp/external/ryzenai_artifacts/ops/bnmish_3072x384.xclbin
new file mode 100644
index 000000000..3f7996b65
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/bnmish_3072x384.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/bnmish_3072x512.insts.bin b/cpp/external/ryzenai_artifacts/ops/bnmish_3072x512.insts.bin
new file mode 100644
index 000000000..d04182c80
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/bnmish_3072x512.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/bnmish_3072x512.xclbin b/cpp/external/ryzenai_artifacts/ops/bnmish_3072x512.xclbin
new file mode 100644
index 000000000..84a2592ce
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/bnmish_3072x512.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/bnmish_3072x768.insts.bin b/cpp/external/ryzenai_artifacts/ops/bnmish_3072x768.insts.bin
new file mode 100644
index 000000000..536d9e888
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/bnmish_3072x768.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/bnmish_3072x768.xclbin b/cpp/external/ryzenai_artifacts/ops/bnmish_3072x768.xclbin
new file mode 100644
index 000000000..e7fc9a786
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/bnmish_3072x768.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/bnmish_384x1024.insts.bin b/cpp/external/ryzenai_artifacts/ops/bnmish_384x1024.insts.bin
new file mode 100644
index 000000000..406d72c54
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/bnmish_384x1024.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/bnmish_384x1024.xclbin b/cpp/external/ryzenai_artifacts/ops/bnmish_384x1024.xclbin
new file mode 100644
index 000000000..64d102d87
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/bnmish_384x1024.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/bnmish_384x128.insts.bin b/cpp/external/ryzenai_artifacts/ops/bnmish_384x128.insts.bin
new file mode 100644
index 000000000..30faf3b35
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/bnmish_384x128.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/bnmish_384x128.xclbin b/cpp/external/ryzenai_artifacts/ops/bnmish_384x128.xclbin
new file mode 100644
index 000000000..25a7199bf
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/bnmish_384x128.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/bnmish_384x160.insts.bin b/cpp/external/ryzenai_artifacts/ops/bnmish_384x160.insts.bin
new file mode 100644
index 000000000..af9eea42e
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/bnmish_384x160.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/bnmish_384x160.xclbin b/cpp/external/ryzenai_artifacts/ops/bnmish_384x160.xclbin
new file mode 100644
index 000000000..a2d1a197c
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/bnmish_384x160.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/bnmish_384x192.insts.bin b/cpp/external/ryzenai_artifacts/ops/bnmish_384x192.insts.bin
new file mode 100644
index 000000000..c831da614
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/bnmish_384x192.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/bnmish_384x192.xclbin b/cpp/external/ryzenai_artifacts/ops/bnmish_384x192.xclbin
new file mode 100644
index 000000000..31a55a260
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/bnmish_384x192.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/bnmish_384x256.insts.bin b/cpp/external/ryzenai_artifacts/ops/bnmish_384x256.insts.bin
new file mode 100644
index 000000000..d0ac495be
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/bnmish_384x256.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/bnmish_384x256.xclbin b/cpp/external/ryzenai_artifacts/ops/bnmish_384x256.xclbin
new file mode 100644
index 000000000..fab04700e
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/bnmish_384x256.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/bnmish_384x320.insts.bin b/cpp/external/ryzenai_artifacts/ops/bnmish_384x320.insts.bin
new file mode 100644
index 000000000..5646456e7
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/bnmish_384x320.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/bnmish_384x320.xclbin b/cpp/external/ryzenai_artifacts/ops/bnmish_384x320.xclbin
new file mode 100644
index 000000000..0f1f42f35
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/bnmish_384x320.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/bnmish_384x384.insts.bin b/cpp/external/ryzenai_artifacts/ops/bnmish_384x384.insts.bin
new file mode 100644
index 000000000..9c9cea2c8
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/bnmish_384x384.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/bnmish_384x384.xclbin b/cpp/external/ryzenai_artifacts/ops/bnmish_384x384.xclbin
new file mode 100644
index 000000000..f20cc1e28
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/bnmish_384x384.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/bnmish_384x512.insts.bin b/cpp/external/ryzenai_artifacts/ops/bnmish_384x512.insts.bin
new file mode 100644
index 000000000..d5f93a979
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/bnmish_384x512.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/bnmish_384x512.xclbin b/cpp/external/ryzenai_artifacts/ops/bnmish_384x512.xclbin
new file mode 100644
index 000000000..480f34ce1
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/bnmish_384x512.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/bnmish_384x64.insts.bin b/cpp/external/ryzenai_artifacts/ops/bnmish_384x64.insts.bin
new file mode 100644
index 000000000..31a4b8495
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/bnmish_384x64.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/bnmish_384x64.xclbin b/cpp/external/ryzenai_artifacts/ops/bnmish_384x64.xclbin
new file mode 100644
index 000000000..174bb6984
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/bnmish_384x64.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/bnmish_384x640.insts.bin b/cpp/external/ryzenai_artifacts/ops/bnmish_384x640.insts.bin
new file mode 100644
index 000000000..3280e0abc
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/bnmish_384x640.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/bnmish_384x640.xclbin b/cpp/external/ryzenai_artifacts/ops/bnmish_384x640.xclbin
new file mode 100644
index 000000000..a93a7380a
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/bnmish_384x640.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/bnmish_384x768.insts.bin b/cpp/external/ryzenai_artifacts/ops/bnmish_384x768.insts.bin
new file mode 100644
index 000000000..0d12fbd88
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/bnmish_384x768.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/bnmish_384x768.xclbin b/cpp/external/ryzenai_artifacts/ops/bnmish_384x768.xclbin
new file mode 100644
index 000000000..b459fcdb4
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/bnmish_384x768.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/bnmish_384x96.insts.bin b/cpp/external/ryzenai_artifacts/ops/bnmish_384x96.insts.bin
new file mode 100644
index 000000000..a7fd90631
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/bnmish_384x96.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/bnmish_384x96.xclbin b/cpp/external/ryzenai_artifacts/ops/bnmish_384x96.xclbin
new file mode 100644
index 000000000..d7af94f5c
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/bnmish_384x96.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/rmsnorm_384x384.insts.bin b/cpp/external/ryzenai_artifacts/ops/rmsnorm_384x384.insts.bin
new file mode 100644
index 000000000..902f8e30f
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/rmsnorm_384x384.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/rmsnorm_384x384.xclbin b/cpp/external/ryzenai_artifacts/ops/rmsnorm_384x384.xclbin
new file mode 100644
index 000000000..2f8663a1a
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/rmsnorm_384x384.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/softmax_1024x192.insts.bin b/cpp/external/ryzenai_artifacts/ops/softmax_1024x192.insts.bin
new file mode 100644
index 000000000..ec02697c1
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/softmax_1024x192.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/softmax_1024x192.xclbin b/cpp/external/ryzenai_artifacts/ops/softmax_1024x192.xclbin
new file mode 100644
index 000000000..9012837d2
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/softmax_1024x192.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/softmax_1024x96.insts.bin b/cpp/external/ryzenai_artifacts/ops/softmax_1024x96.insts.bin
new file mode 100644
index 000000000..fbd1d34bb
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/softmax_1024x96.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/softmax_1024x96.xclbin b/cpp/external/ryzenai_artifacts/ops/softmax_1024x96.xclbin
new file mode 100644
index 000000000..74d14b8eb
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/softmax_1024x96.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/softmax_1408x192.insts.bin b/cpp/external/ryzenai_artifacts/ops/softmax_1408x192.insts.bin
new file mode 100644
index 000000000..2740a1183
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/softmax_1408x192.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/softmax_1408x192.xclbin b/cpp/external/ryzenai_artifacts/ops/softmax_1408x192.xclbin
new file mode 100644
index 000000000..352b6681d
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/softmax_1408x192.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/softmax_2048x192.insts.bin b/cpp/external/ryzenai_artifacts/ops/softmax_2048x192.insts.bin
new file mode 100644
index 000000000..22913f137
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/softmax_2048x192.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/softmax_2048x192.xclbin b/cpp/external/ryzenai_artifacts/ops/softmax_2048x192.xclbin
new file mode 100644
index 000000000..2f7516c87
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/softmax_2048x192.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/softmax_2176x384.insts.bin b/cpp/external/ryzenai_artifacts/ops/softmax_2176x384.insts.bin
new file mode 100644
index 000000000..c1cd70895
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/softmax_2176x384.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/softmax_2176x384.xclbin b/cpp/external/ryzenai_artifacts/ops/softmax_2176x384.xclbin
new file mode 100644
index 000000000..34074b0ef
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/softmax_2176x384.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/softmax_2944x384.insts.bin b/cpp/external/ryzenai_artifacts/ops/softmax_2944x384.insts.bin
new file mode 100644
index 000000000..51769eb19
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/softmax_2944x384.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/softmax_2944x384.xclbin b/cpp/external/ryzenai_artifacts/ops/softmax_2944x384.xclbin
new file mode 100644
index 000000000..42809c641
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/softmax_2944x384.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/softmax_4352x384.insts.bin b/cpp/external/ryzenai_artifacts/ops/softmax_4352x384.insts.bin
new file mode 100644
index 000000000..b8958fa54
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/softmax_4352x384.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/softmax_4352x384.xclbin b/cpp/external/ryzenai_artifacts/ops/softmax_4352x384.xclbin
new file mode 100644
index 000000000..5eb01e138
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/softmax_4352x384.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/softmax_512x96.insts.bin b/cpp/external/ryzenai_artifacts/ops/softmax_512x96.insts.bin
new file mode 100644
index 000000000..66077038e
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/softmax_512x96.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/softmax_512x96.xclbin b/cpp/external/ryzenai_artifacts/ops/softmax_512x96.xclbin
new file mode 100644
index 000000000..4b785487c
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/softmax_512x96.xclbin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/softmax_704x96.insts.bin b/cpp/external/ryzenai_artifacts/ops/softmax_704x96.insts.bin
new file mode 100644
index 000000000..f59c6afe1
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/softmax_704x96.insts.bin differ
diff --git a/cpp/external/ryzenai_artifacts/ops/softmax_704x96.xclbin b/cpp/external/ryzenai_artifacts/ops/softmax_704x96.xclbin
new file mode 100644
index 000000000..8b72ce37b
Binary files /dev/null and b/cpp/external/ryzenai_artifacts/ops/softmax_704x96.xclbin differ
diff --git a/cpp/main.cpp b/cpp/main.cpp
index a843f991d..0f6cf1a67 100644
--- a/cpp/main.cpp
+++ b/cpp/main.cpp
@@ -271,6 +271,8 @@ string Version::getKataGoVersionFullInfo() {
#endif
#elif defined(USE_EIGEN_BACKEND)
out << "Using Eigen(CPU) backend" << endl;
+#elif defined(USE_RYZENAI_BACKEND)
+ out << "Using RyzenAI (AMD NPU) backend" << endl;
#elif defined(USE_ONNX_BACKEND)
out << "Using ONNX Runtime backend" << endl;
#else
@@ -311,6 +313,8 @@ string Version::getGitRevisionWithBackend() {
s += "-opencl";
#elif defined(USE_EIGEN_BACKEND)
s += "-eigen";
+#elif defined(USE_RYZENAI_BACKEND)
+ s += "-ryzenai";
#elif defined(USE_ONNX_BACKEND)
s += "-onnx";
#else
diff --git a/cpp/neuralnet/ryzenaibackend.cpp b/cpp/neuralnet/ryzenaibackend.cpp
new file mode 100644
index 000000000..c290c30f2
--- /dev/null
+++ b/cpp/neuralnet/ryzenaibackend.cpp
@@ -0,0 +1,694 @@
+#ifdef USE_RYZENAI_BACKEND
+
+/** RyzenAI (AMD NPU) backend.
+ *
+ * Structured after cpp/neuralnet/eigenbackend.cpp. Currently all evaluation
+ * runs on the pure C++ CPU reference forward path (neuralnet/ryzenaireference.h);
+ * NPU kernel dispatch via XRT will be layered on top of it. Inputs and all
+ * internal activations are NHWC float32.
+ */
+
+#include "../neuralnet/nninterface.h"
+
+#include "../neuralnet/desc.h"
+#include "../neuralnet/modelversion.h"
+#include "../neuralnet/nninputs.h"
+#include "../neuralnet/nneval.h"
+
+#include "../core/test.h"
+
+#include "../neuralnet/ryzenaidevice.h"
+#include "../neuralnet/ryzenaikernel.h"
+#include "../neuralnet/ryzenaimatmul.h"
+#include "../neuralnet/ryzenaireference.h"
+#include "../neuralnet/ryzenaishapes.h"
+
+using namespace std;
+
+// LoadedModel / ModelDesc ---------------------------------------------------------------------------------------------
+
+struct LoadedModel {
+ ModelDesc modelDesc;
+
+ LoadedModel(const string& fileName, const string& expectedSha256) {
+ ModelDesc::loadFromFileMaybeGZipped(fileName,modelDesc,expectedSha256);
+ }
+
+ LoadedModel() = delete;
+ LoadedModel(const LoadedModel&) = delete;
+ LoadedModel& operator=(const LoadedModel&) = delete;
+};
+
+LoadedModel* NeuralNet::loadModelFile(const string& file, const string& expectedSha256) {
+ LoadedModel* loadedModel = new LoadedModel(file,expectedSha256);
+ return loadedModel;
+}
+
+void NeuralNet::freeLoadedModel(LoadedModel* loadedModel) {
+ // NOTE: modelDesc weights must still be intact here if any Workspace still
+ // references them - but all ComputeHandles are always freed before this.
+ delete loadedModel;
+}
+
+const ModelDesc& NeuralNet::getModelDesc(const LoadedModel* loadedModel) {
+ return loadedModel->modelDesc;
+}
+
+// --------------------------------------------------------------------------------------------------------------
+
+struct ComputeContext {
+ const int nnXLen;
+ const int nnYLen;
+
+ const enabled_t useFP16Mode;
+
+ // Backend-specific configuration, read off of cfg in createComputeContext.
+ // Device indices themselves (ryzenaiDeviceToUse / ryzenaiDeviceToUseThread)
+ // are parsed uniformly by setup.cpp and arrive via gpuIdxs / gpuIdxForThisThread.
+ const string artifactDir;
+ const string dtype;
+ const bool forceNpuOnly;
+ const bool verboseDispatch;
+ const int maxCols;
+ const int forceK;
+ const vector gpuIdxs;
+ const vector xclbins;
+
+ ComputeContext() = delete;
+ ComputeContext(const ComputeContext&) = delete;
+ ComputeContext& operator=(const ComputeContext&) = delete;
+
+ ComputeContext(
+ int nnX,
+ int nnY,
+ enabled_t fp16Mode,
+ const string& aDir,
+ const string& dt,
+ bool forceNpu,
+ bool verbose,
+ int maxColumns,
+ int forceReduceDim,
+ const vector& gIdxs,
+ const vector& xcl
+ )
+ : nnXLen(nnX),
+ nnYLen(nnY),
+ useFP16Mode(fp16Mode),
+ artifactDir(aDir),
+ dtype(dt),
+ forceNpuOnly(forceNpu),
+ verboseDispatch(verbose),
+ maxCols(maxColumns),
+ forceK(forceReduceDim),
+ gpuIdxs(gIdxs),
+ xclbins(xcl)
+ {}
+ ~ComputeContext() {}
+};
+
+// --------------------------------------------------------------------------------------------------------------
+
+struct ComputeHandle {
+ ComputeContext* context;
+ bool inputsUseNHWC;
+ int gpuIdxForThisThread;
+
+ // NOT owned - owned by the LoadedModel, which always outlives this handle.
+ // Do not call releaseWeights() on it: the workspace references its weights.
+ const ModelDesc& modelDesc;
+
+ RyzenAIRef::Workspace* workspace;
+
+ // Dense-layer accelerator. Null when no NPU/artifact is usable, in which case
+ // the workspace runs entirely on the CPU reference path.
+ RyzenAIMatMul::Accel* accel;
+ string accelInitError;
+ Logger* logger; // not owned; may be null
+
+ // Output buffers for RyzenAIRef::forward(), allocated once per handle.
+ vector policyBuf;
+ vector policyPassBuf;
+ vector valueBuf;
+ vector scoreValueBuf;
+ vector ownershipBuf;
+
+ ComputeHandle() = delete;
+ ComputeHandle(const ComputeHandle&) = delete;
+ ComputeHandle& operator=(const ComputeHandle&) = delete;
+
+ ComputeHandle(
+ ComputeContext* ctx,
+ const LoadedModel& loadedModel,
+ int maxBatchSize,
+ bool iNHWC,
+ int gpuIdx,
+ Logger* lg
+ )
+ : context(ctx),
+ inputsUseNHWC(iNHWC),
+ gpuIdxForThisThread(gpuIdx),
+ modelDesc(loadedModel.modelDesc),
+ workspace(NULL),
+ accel(NULL),
+ logger(lg)
+ {
+ workspace = RyzenAIRef::createWorkspace(modelDesc,maxBatchSize,context->nnXLen,context->nnYLen);
+ RyzenAIRef::setProfileEnabled(context->verboseDispatch);
+
+ RyzenAIMatMul::Options options;
+ options.artifactDir = context->artifactDir;
+ options.deviceIdx = gpuIdx;
+ options.dtype = context->dtype;
+ options.maxCols = context->maxCols;
+ options.forceK = context->forceK;
+ string accelErr;
+ accel = RyzenAIMatMul::create(options,accelErr);
+ if(accel != NULL)
+ RyzenAIRef::setMatMulAccel(workspace,accel);
+ else
+ accelInitError = accelErr;
+
+ const int nnXLen = context->nnXLen;
+ const int nnYLen = context->nnYLen;
+ policyBuf = vector((size_t)maxBatchSize * nnXLen * nnYLen * modelDesc.numPolicyChannels);
+ policyPassBuf = vector((size_t)maxBatchSize * modelDesc.numPolicyChannels);
+ valueBuf = vector((size_t)maxBatchSize * modelDesc.numValueChannels);
+ scoreValueBuf = vector((size_t)maxBatchSize * modelDesc.numScoreValueChannels);
+ ownershipBuf = vector((size_t)maxBatchSize * nnXLen * nnYLen * modelDesc.numOwnershipChannels);
+ }
+
+ ~ComputeHandle() {
+ // Report the NPU/CPU split here rather than at startup: how many dense
+ // layers were actually accelerated is only known after evaluating.
+ if(logger != NULL && accel != NULL && context->verboseDispatch)
+ logger->write(RyzenAIMatMul::report(accel));
+ if(logger != NULL && context->verboseDispatch)
+ logger->write(RyzenAIRef::profileReport());
+
+ // The workspace holds a bare pointer to the accelerator, so it has to stop
+ // referring to it before the accelerator's device buffers go away.
+ if(workspace != NULL)
+ RyzenAIRef::setMatMulAccel(workspace,NULL);
+ if(accel != NULL)
+ RyzenAIMatMul::free(accel);
+ accel = NULL;
+ if(workspace != NULL)
+ RyzenAIRef::freeWorkspace(workspace);
+ workspace = NULL;
+ }
+};
+
+//--------------------------------------------------------------
+
+struct InputBuffers {
+ int maxBatchSize;
+
+ size_t singleInputElts;
+ size_t singleInputGlobalElts;
+ size_t singleInputMetaElts;
+
+ size_t singlePolicyPassResultElts;
+ size_t singlePolicyResultElts;
+ size_t singleValueResultElts;
+ size_t singleScoreValueResultElts;
+ size_t singleOwnershipResultElts;
+
+ std::vector spatialInput;
+ std::vector globalInput;
+ std::vector metaInput;
+
+ InputBuffers(const LoadedModel* loadedModel, int maxBatchSz, int nnXLen, int nnYLen) {
+ const ModelDesc& m = loadedModel->modelDesc;
+
+ maxBatchSize = maxBatchSz;
+ singleInputElts = m.numInputChannels * nnXLen * nnYLen;
+ singleInputGlobalElts = m.numInputGlobalChannels;
+ singleInputMetaElts = m.numInputMetaChannels;
+
+ singlePolicyPassResultElts = (size_t)(m.numPolicyChannels);
+ singlePolicyResultElts = (size_t)(m.numPolicyChannels * nnXLen * nnYLen);
+ singleValueResultElts = (size_t)m.numValueChannels;
+ singleScoreValueResultElts = (size_t)m.numScoreValueChannels;
+ singleOwnershipResultElts = (size_t)m.numOwnershipChannels * nnXLen * nnYLen;
+
+ testAssert(NNModelVersion::getNumSpatialFeatures(m.modelVersion) == m.numInputChannels);
+ testAssert(NNModelVersion::getNumGlobalFeatures(m.modelVersion) == m.numInputGlobalChannels);
+ if(m.numInputMetaChannels > 0) {
+ testAssert(SGFMetadata::METADATA_INPUT_NUM_CHANNELS == m.numInputMetaChannels);
+ }
+
+ spatialInput = vector(m.numInputChannels * nnXLen * nnYLen * maxBatchSize);
+ globalInput = vector(m.numInputGlobalChannels * maxBatchSize);
+ if(m.numInputMetaChannels > 0)
+ metaInput = vector(m.numInputMetaChannels * maxBatchSize);
+ else
+ metaInput = vector(1);
+ }
+
+ ~InputBuffers() { }
+
+ InputBuffers() = delete;
+ InputBuffers(const InputBuffers&) = delete;
+ InputBuffers& operator=(const InputBuffers&) = delete;
+};
+
+InputBuffers* NeuralNet::createInputBuffers(const LoadedModel* loadedModel, int maxBatchSize, int nnXLen, int nnYLen) {
+ return new InputBuffers(loadedModel, maxBatchSize, nnXLen, nnYLen);
+}
+void NeuralNet::freeInputBuffers(InputBuffers* inputBuffers) {
+ delete inputBuffers;
+}
+
+// NeuralNet -----------------------------------------------------------------------------------------------------------
+
+void NeuralNet::globalInitialize() {
+ // Must happen before the first XRT call of the process. printDevices() also
+ // runs before any compute context exists, so it calls this too.
+ RyzenAIDevice::ensureRuntimeLibraryPath();
+}
+
+void NeuralNet::globalCleanup() {
+ // no-op
+}
+
+//------------------------------------------------------------------------------
+
+ComputeContext* NeuralNet::createComputeContext(
+ const std::vector& gpuIdxs,
+ Logger* logger,
+ int nnXLen,
+ int nnYLen,
+ const string& homeDataDirOverride,
+ enabled_t useFP16Mode,
+ const LoadedModel* loadedModel,
+ ConfigParser& cfg
+) {
+ string artifactDirConfig = cfg.contains("ryzenaiArtifactDir") ? cfg.getString("ryzenaiArtifactDir") : "";
+ // auto | bf16 | bfp16. Both bf16 and bfp16 hand the NPU bfloat16 operands and
+ // read float32 back - the difference is entirely inside the kernel - so this
+ // only selects which artifact directory is loaded. See resolveDtype() for why
+ // auto currently means bf16 even on hardware that supports bfp16.
+ string dtypeStr = cfg.contains("ryzenaiDtype") ? cfg.getString("ryzenaiDtype") : "auto";
+ RyzenAIKernel::Dtype dtype = RyzenAIKernel::Dtype::Auto;
+ if(!RyzenAIKernel::parseDtype(dtypeStr, dtype))
+ throw StringError(
+ "RyzenAI backend: unrecognized ryzenaiDtype = '" + dtypeStr + "', expected auto, bf16 or bfp16"
+ );
+ bool forceNpuOnly = cfg.contains("ryzenaiForceNpuOnly") ? cfg.getBool("ryzenaiForceNpuOnly") : false;
+ bool verboseDispatch = cfg.contains("ryzenaiVerboseDispatch") ? cfg.getBool("ryzenaiVerboseDispatch") : false;
+ // Wider is not automatically faster: at one board per evaluation the array
+ // is starved and the fixed dispatch cost dominates, so 4 columns measured
+ // faster than 8. 0 means "as wide as the device allows".
+ int maxCols = cfg.contains("ryzenaiMaxColumns") ? cfg.getInt("ryzenaiMaxColumns",0,64) : 4;
+ // Run every layer from one xclbin, trading zero-padded arithmetic for not
+ // switching hardware contexts. 0 = pick the closest K per layer.
+ // -1 (the default) means decide from the model: see RyzenAIShapes::chooseSingleK.
+ // 0 disables it, a positive value forces that reduction dim.
+ int forceK = cfg.contains("ryzenaiForceK") ? cfg.getInt("ryzenaiForceK",-1,65536) : -1;
+ if(forceK < 0) {
+ // 4x is where the measured trade turns: below it the extra zero-padded
+ // arithmetic is lost in the noise (NPU compute is ~1% of a forward pass),
+ // above it the padding is real work on models whose GEMMs are already big.
+ forceK = loadedModel != NULL ? RyzenAIShapes::chooseSingleK(loadedModel->modelDesc, nnXLen, nnYLen, 4.0) : 0;
+ }
+
+ string artifactDir = RyzenAIDevice::resolveArtifactDir(artifactDirConfig);
+
+ if(logger != NULL) {
+ logger->write("RyzenAI backend: " + RyzenAIDevice::ensureRuntimeLibraryPath());
+ logger->write("RyzenAI backend: " + RyzenAIDevice::describeRuntime());
+ logger->write("RyzenAI backend: artifact dir = " + artifactDir);
+ logger->write("RyzenAI backend: dtype = " + dtypeStr + " (resolved: " +
+ RyzenAIKernel::dtypeName(RyzenAIKernel::resolveDtype(dtype, RyzenAIDevice::archOfDevice(-1))) + ")");
+ if(useFP16Mode == enabled_t::True)
+ logger->write("RyzenAI backend: useFP16 = true was requested, but the current reference path always computes in fp32");
+ }
+
+ vector xclbins = RyzenAIDevice::listXclbins(artifactDir);
+ if(xclbins.empty()) {
+ if(forceNpuOnly) {
+ throw StringError(
+ "RyzenAI backend: ryzenaiForceNpuOnly = true but no .xclbin NPU kernel artifacts were found in " +
+ artifactDir + " - NPU dispatch is not possible"
+ );
+ }
+ if(logger != NULL) {
+ logger->write(
+ "RyzenAI backend: no .xclbin NPU kernel artifacts found in " + artifactDir +
+ " - running on the CPU reference forward path, NPU acceleration is not enabled yet"
+ );
+ }
+ }
+ else if(cfg.contains("ryzenaiSelfTest") && cfg.getBool("ryzenaiSelfTest")) {
+ // Loads every artifact, dispatches it on the NPU and checks it against a
+ // plain-C++ GEMM. Opt-in because it costs a few seconds of startup, but it
+ // is the fastest way to tell whether a machine's NPU/driver/artifact set is
+ // actually working.
+ if(logger != NULL)
+ logger->write(RyzenAIKernel::selfTest(artifactDir, -1));
+ }
+
+ // Which GEMM shapes this model actually needs. An xclbin bakes in the
+ // reduction dim K (and only K -- M and N ride in the instruction stream), so
+ // this is what decides which artifacts must exist and which layers fall back
+ // to the CPU reference path.
+ if(cfg.contains("ryzenaiShapeReport") && cfg.getBool("ryzenaiShapeReport")) {
+ if(logger != NULL && loadedModel != NULL)
+ logger->write(RyzenAIShapes::report(loadedModel->modelDesc, nnXLen, nnYLen));
+ }
+
+ if(!xclbins.empty()) {
+ if(logger != NULL) {
+ // Count only: the shipped grid is a few hundred files, and naming them
+ // all put tens of thousands of characters on one line of every log.
+ // Which ones actually got loaded is what matters, and verbose dispatch
+ // reports that per engine.
+ logger->write(
+ "RyzenAI backend: found " + Global::uint64ToString((uint64_t)xclbins.size()) +
+ " NPU kernel artifacts in " + artifactDir
+ );
+ }
+ }
+
+ ComputeContext* context = new ComputeContext(
+ nnXLen,nnYLen,useFP16Mode,artifactDir,dtypeStr,forceNpuOnly,verboseDispatch,maxCols,forceK,gpuIdxs,xclbins
+ );
+ return context;
+}
+
+void NeuralNet::freeComputeContext(ComputeContext* computeContext) {
+ delete computeContext;
+}
+
+//------------------------------------------------------------------------------
+
+ComputeHandle* NeuralNet::createComputeHandle(
+ ComputeContext* context,
+ const LoadedModel* loadedModel,
+ Logger* logger,
+ int maxBatchSize,
+ bool requireExactNNLen,
+ bool inputsUseNHWC,
+ int gpuIdxForThisThread,
+ int serverThreadIdx
+) {
+ if(logger != NULL) {
+ logger->write("RyzenAI (AMD NPU) backend thread " + Global::intToString(serverThreadIdx) + ": Model version " + Global::intToString(loadedModel->modelDesc.modelVersion));
+ logger->write("RyzenAI (AMD NPU) backend thread " + Global::intToString(serverThreadIdx) + ": Model name: " + loadedModel->modelDesc.name + " (" + loadedModel->modelDesc.getShortInfoString() + ")");
+ }
+
+ (void)requireExactNNLen; //We don't bother with mask optimizations if we know exact sizes right now.
+
+ if(!inputsUseNHWC)
+ throw StringError("RyzenAI backend: inputsUseNHWC = false unsupported (the reference path requires NHWC input)");
+
+ ComputeHandle* handle = new ComputeHandle(context, *loadedModel, maxBatchSize, inputsUseNHWC, gpuIdxForThisThread, logger);
+ if(logger != NULL) {
+ const string prefix = "RyzenAI (AMD NPU) backend thread " + Global::intToString(serverThreadIdx) + ": ";
+ if(handle->accel == NULL)
+ logger->write(prefix + "dense layers stay on the CPU (" + handle->accelInitError + ")");
+ else if(context->verboseDispatch)
+ logger->write(prefix + "device index " + Global::intToString(gpuIdxForThisThread) +
+ ", dense layers offered to the NPU");
+ }
+ return handle;
+}
+
+void NeuralNet::freeComputeHandle(ComputeHandle* gpuHandle) {
+ delete gpuHandle;
+}
+
+
+bool NeuralNet::isUsingFP16(const ComputeHandle* handle) {
+ (void)handle;
+ return false;
+}
+
+bool NeuralNet::setIsWarmup(const ComputeHandle* handle, bool isWarmup) {
+ (void)handle;
+ (void)isWarmup;
+ return false;
+}
+
+//------------------------------------------------------------------------------
+
+void NeuralNet::getOutput(
+ ComputeHandle* computeHandle,
+ InputBuffers* inputBuffers,
+ int numBatchEltsFilled,
+ NNResultBuf** inputBufs,
+ vector& outputs
+) {
+ assert(numBatchEltsFilled <= inputBuffers->maxBatchSize);
+ assert(numBatchEltsFilled > 0);
+ const int batchSize = numBatchEltsFilled;
+ const int nnXLen = computeHandle->context->nnXLen;
+ const int nnYLen = computeHandle->context->nnYLen;
+ const ModelDesc& modelDesc = computeHandle->modelDesc;
+ const int modelVersion = modelDesc.modelVersion;
+
+ const int numSpatialFeatures = NNModelVersion::getNumSpatialFeatures(modelVersion);
+ const int numGlobalFeatures = NNModelVersion::getNumGlobalFeatures(modelVersion);
+ const int numMetaFeatures = inputBuffers->singleInputMetaElts;
+ assert(numSpatialFeatures == modelDesc.numInputChannels);
+ assert(numSpatialFeatures * nnXLen * nnYLen == inputBuffers->singleInputElts);
+ assert(numGlobalFeatures == inputBuffers->singleInputGlobalElts);
+ const int numPolicyChannels = modelDesc.numPolicyChannels;
+
+ for(int nIdx = 0; nIdxspatialInput.data() + (inputBuffers->singleInputElts * nIdx);
+ float* rowGlobalInput = inputBuffers->globalInput.data() + (inputBuffers->singleInputGlobalElts * nIdx);
+ float* rowMetaInput = inputBuffers->metaInput.data() + (inputBuffers->singleInputMetaElts * nIdx);
+
+ const float* rowGlobal = inputBufs[nIdx]->rowGlobalBuf.data();
+ const float* rowSpatial = inputBufs[nIdx]->rowSpatialBuf.data();
+ const float* rowMeta = inputBufs[nIdx]->rowMetaBuf.data();
+ const bool hasRowMeta = inputBufs[nIdx]->hasRowMeta;
+ std::copy(rowGlobal,rowGlobal+numGlobalFeatures,rowGlobalInput);
+ if(numMetaFeatures > 0) {
+ testAssert(rowMeta != NULL);
+ testAssert(hasRowMeta);
+ std::copy(rowMeta,rowMeta+numMetaFeatures,rowMetaInput);
+ }
+ else {
+ testAssert(!hasRowMeta);
+ }
+ SymmetryHelpers::copyInputsWithSymmetry(rowSpatial, rowSpatialInput, 1, nnYLen, nnXLen, numSpatialFeatures, computeHandle->inputsUseNHWC, inputBufs[nIdx]->symmetry);
+ }
+
+ RyzenAIRef::forward(
+ computeHandle->workspace,
+ batchSize,
+ inputBuffers->spatialInput.data(),
+ inputBuffers->globalInput.data(),
+ (numMetaFeatures > 0 ? inputBuffers->metaInput.data() : NULL),
+ computeHandle->policyBuf.data(),
+ computeHandle->policyPassBuf.data(),
+ computeHandle->valueBuf.data(),
+ computeHandle->scoreValueBuf.data(),
+ computeHandle->ownershipBuf.data()
+ );
+
+ assert(inputBuffers->singlePolicyPassResultElts == numPolicyChannels);
+ assert(inputBuffers->singlePolicyResultElts == numPolicyChannels * nnXLen * nnYLen);
+
+ assert(outputs.size() == batchSize);
+
+ float policyProbsTmp[NNPos::MAX_NN_POLICY_SIZE];
+
+ const float* policyData = computeHandle->policyBuf.data();
+ const float* policyPassData = computeHandle->policyPassBuf.data();
+ const float* valueData = computeHandle->valueBuf.data();
+ const float* scoreValueData = computeHandle->scoreValueBuf.data();
+ const float* ownershipData = computeHandle->ownershipBuf.data();
+
+ for(int row = 0; row < batchSize; row++) {
+ NNOutput* output = outputs[row];
+ assert(output->nnXLen == nnXLen);
+ assert(output->nnYLen == nnYLen);
+ float policyOptimism = (float)inputBufs[row]->policyOptimism;
+
+ const float* policyPassSrcBuf = policyPassData + row * numPolicyChannels;
+ const float* policySrcBuf = policyData + row * numPolicyChannels * nnXLen * nnYLen;
+ float* policyProbs = output->policyProbs;
+
+ // These are in logits, the client does the postprocessing to turn them into
+ // policy probabilities and white game outcome probabilities
+ // Also we don't fill in the nnHash here either
+ // Handle version >= 12 policy optimism
+ if(numPolicyChannels == 2 || (numPolicyChannels == 4 && modelVersion >= 16)) {
+ // NHWC
+ for(int i = 0; isymmetry);
+ policyProbs[nnXLen*nnYLen] = policyPassSrcBuf[0] + (policyPassSrcBuf[1] - policyPassSrcBuf[0]) * policyOptimism;
+ }
+ else {
+ assert(numPolicyChannels == 1);
+ SymmetryHelpers::copyOutputsWithSymmetry(policySrcBuf, policyProbs, 1, nnYLen, nnXLen, inputBufs[row]->symmetry);
+ policyProbs[inputBuffers->singlePolicyResultElts] = policyPassSrcBuf[0];
+ }
+
+ int numValueChannels = modelDesc.numValueChannels;
+ assert(numValueChannels == 3);
+ output->whiteWinProb = valueData[row * numValueChannels];
+ output->whiteLossProb = valueData[row * numValueChannels + 1];
+ output->whiteNoResultProb = valueData[row * numValueChannels + 2];
+
+ //As above, these are NOT actually from white's perspective, but rather the player to move.
+ //As usual the client does the postprocessing.
+ if(output->whiteOwnerMap != NULL) {
+ const float* ownershipSrcBuf = ownershipData + row * nnXLen * nnYLen;
+ assert(modelDesc.numOwnershipChannels == 1);
+ SymmetryHelpers::copyOutputsWithSymmetry(ownershipSrcBuf, output->whiteOwnerMap, 1, nnYLen, nnXLen, inputBufs[row]->symmetry);
+ }
+
+ if(modelVersion >= 9) {
+ int numScoreValueChannels = modelDesc.numScoreValueChannels;
+ assert(numScoreValueChannels == 6);
+ output->whiteScoreMean = scoreValueData[row * numScoreValueChannels];
+ output->whiteScoreMeanSq = scoreValueData[row * numScoreValueChannels + 1];
+ output->whiteLead = scoreValueData[row * numScoreValueChannels + 2];
+ output->varTimeLeft = scoreValueData[row * numScoreValueChannels + 3];
+ output->shorttermWinlossError = scoreValueData[row * numScoreValueChannels + 4];
+ output->shorttermScoreError = scoreValueData[row * numScoreValueChannels + 5];
+ }
+ else if(modelVersion >= 8) {
+ int numScoreValueChannels = modelDesc.numScoreValueChannels;
+ assert(numScoreValueChannels == 4);
+ output->whiteScoreMean = scoreValueData[row * numScoreValueChannels];
+ output->whiteScoreMeanSq = scoreValueData[row * numScoreValueChannels + 1];
+ output->whiteLead = scoreValueData[row * numScoreValueChannels + 2];
+ output->varTimeLeft = scoreValueData[row * numScoreValueChannels + 3];
+ output->shorttermWinlossError = 0;
+ output->shorttermScoreError = 0;
+ }
+ else if(modelVersion >= 4) {
+ int numScoreValueChannels = modelDesc.numScoreValueChannels;
+ assert(numScoreValueChannels == 2);
+ output->whiteScoreMean = scoreValueData[row * numScoreValueChannels];
+ output->whiteScoreMeanSq = scoreValueData[row * numScoreValueChannels + 1];
+ output->whiteLead = output->whiteScoreMean;
+ output->varTimeLeft = 0;
+ output->shorttermWinlossError = 0;
+ output->shorttermScoreError = 0;
+ }
+ else if(modelVersion >= 3) {
+ int numScoreValueChannels = modelDesc.numScoreValueChannels;
+ assert(numScoreValueChannels == 1);
+ output->whiteScoreMean = scoreValueData[row * numScoreValueChannels];
+ //Version 3 neural nets don't have any second moment output, implicitly already folding it in, so we just use the mean squared
+ output->whiteScoreMeanSq = output->whiteScoreMean * output->whiteScoreMean;
+ output->whiteLead = output->whiteScoreMean;
+ output->varTimeLeft = 0;
+ output->shorttermWinlossError = 0;
+ output->shorttermScoreError = 0;
+ }
+ else {
+ ASSERT_UNREACHABLE;
+ }
+ }
+}
+
+//------------------------------------------------------------------------------
+
+void NeuralNet::printDevices() {
+ cout << RyzenAIDevice::ensureRuntimeLibraryPath() << endl;
+ cout << RyzenAIDevice::describeRuntime() << endl;
+}
+
+// FOR TESTING ---------------------------------------------------------------------------------------------------------
+bool NeuralNet::testEvaluateConv(
+ const ConvLayerDesc* desc,
+ int batchSize,
+ int nnXLen,
+ int nnYLen,
+ bool useFP16,
+ bool useNHWC,
+ const std::vector& inputBuffer,
+ std::vector& outputBuffer
+) {
+ (void)desc;
+ (void)batchSize;
+ (void)nnXLen;
+ (void)nnYLen;
+ (void)useFP16;
+ (void)useNHWC;
+ (void)inputBuffer;
+ (void)outputBuffer;
+ return false;
+}
+
+bool NeuralNet::testEvaluateBatchNorm(
+ const BatchNormLayerDesc* desc,
+ int batchSize,
+ int nnXLen,
+ int nnYLen,
+ bool useFP16,
+ bool useNHWC,
+ const std::vector& inputBuffer,
+ const std::vector& maskBuffer,
+ std::vector& outputBuffer
+) {
+ (void)desc;
+ (void)batchSize;
+ (void)nnXLen;
+ (void)nnYLen;
+ (void)useFP16;
+ (void)useNHWC;
+ (void)inputBuffer;
+ (void)maskBuffer;
+ (void)outputBuffer;
+ return false;
+}
+
+bool NeuralNet::testEvaluateResidualBlock(
+ const ResidualBlockDesc* desc,
+ int batchSize,
+ int nnXLen,
+ int nnYLen,
+ bool useFP16,
+ bool useNHWC,
+ const std::vector& inputBuffer,
+ const std::vector& maskBuffer,
+ std::vector& outputBuffer
+) {
+ (void)desc;
+ (void)batchSize;
+ (void)nnXLen;
+ (void)nnYLen;
+ (void)useFP16;
+ (void)useNHWC;
+ (void)inputBuffer;
+ (void)maskBuffer;
+ (void)outputBuffer;
+ return false;
+}
+
+bool NeuralNet::testEvaluateGlobalPoolingResidualBlock(
+ const GlobalPoolingResidualBlockDesc* desc,
+ int batchSize,
+ int nnXLen,
+ int nnYLen,
+ bool useFP16,
+ bool useNHWC,
+ const std::vector& inputBuffer,
+ const std::vector& maskBuffer,
+ std::vector& outputBuffer
+) {
+ (void)desc;
+ (void)batchSize;
+ (void)nnXLen;
+ (void)nnYLen;
+ (void)useFP16;
+ (void)useNHWC;
+ (void)inputBuffer;
+ (void)maskBuffer;
+ (void)outputBuffer;
+ return false;
+}
+
+#endif // USE_RYZENAI_BACKEND
diff --git a/cpp/neuralnet/ryzenaidevice.cpp b/cpp/neuralnet/ryzenaidevice.cpp
new file mode 100644
index 000000000..4295d3d85
--- /dev/null
+++ b/cpp/neuralnet/ryzenaidevice.cpp
@@ -0,0 +1,225 @@
+#include "../neuralnet/ryzenaidevice.h"
+
+#include
+#include
+
+#include "../core/global.h"
+#include "../core/os.h"
+#include "../dataio/homedata.h"
+
+#ifdef OS_IS_WINDOWS
+#include
+#endif
+
+// XRT's headers are noisy under MSVC's default warning level and pull in a lot
+// of Windows machinery; keep them isolated to this translation unit.
+#ifdef _MSC_VER
+#pragma warning(push)
+#pragma warning(disable : 4100 4245 4267 4996)
+#endif
+#include "xrt/xrt_device.h"
+#include "xrt/experimental/xrt_system.h"
+#ifdef _MSC_VER
+#pragma warning(pop)
+#endif
+
+#include "../external/filesystem-1.5.8/include/ghc/filesystem.hpp"
+
+namespace gfs = ghc::filesystem;
+
+using namespace std;
+
+int RyzenAIDevice::maxColumns(Arch arch) {
+ switch(arch) {
+ case Arch::NPU1: return 4;
+ case Arch::NPU2: return 8;
+ default: return 0;
+ }
+}
+
+const char* RyzenAIDevice::archName(Arch arch) {
+ switch(arch) {
+ case Arch::NPU1: return "npu1";
+ case Arch::NPU2: return "npu2";
+ default: return "unknown";
+ }
+}
+
+RyzenAIDevice::Arch RyzenAIDevice::archOfDeviceName(const string& name) {
+ const string lowered = Global::toLower(name);
+ auto has = [&lowered](const char* needle) { return lowered.find(needle) != string::npos; };
+
+ // XDNA2 / aie2p
+ if(has("strix") || has("krackan") || has("halo") || has("npu2"))
+ return Arch::NPU2;
+ // XDNA1 / aie2
+ if(has("phoenix") || has("hawk") || has("npu1"))
+ return Arch::NPU1;
+ return Arch::Unknown;
+}
+
+namespace {
+
+string repointXrtIfNeeded() {
+#ifdef OS_IS_WINDOWS
+ static const char* const kRuntimeLib = "xrt_core.dll";
+#else
+ static const char* const kRuntimeLib = "libxrt_core.so";
+#endif
+
+ auto hasRuntime = [](const string& dir) {
+ if(dir.size() <= 0)
+ return false;
+ std::error_code ec;
+ return gfs::exists(gfs::u8path(dir) / kRuntimeLib, ec);
+ };
+
+ string current;
+ const char* env = std::getenv("XILINX_XRT");
+ if(env != NULL)
+ current = env;
+ if(hasRuntime(current))
+ return "XILINX_XRT = " + current;
+
+ string exeDir;
+ try {
+ const vector dirs = HomeData::getDefaultFilesDirs();
+ if(dirs.size() > 0)
+ exeDir = dirs[0];
+ }
+ catch(const std::exception&) {
+ // Leave exeDir empty; handled below.
+ }
+ if(!hasRuntime(exeDir)) {
+ if(current.size() > 0)
+ return "XILINX_XRT = " + current + " (no " + kRuntimeLib +
+ " there, and none next to the executable either)";
+ return string("XILINX_XRT is unset and no ") + kRuntimeLib +
+ " sits next to the executable; relying on the system library path";
+ }
+
+ // Both the Win32 environment block and the CRT copy need updating: XRT lives
+ // in its own DLL with its own CRT, and which one it reads is not contractual.
+#ifdef OS_IS_WINDOWS
+ SetEnvironmentVariableA("XILINX_XRT", exeDir.c_str());
+ _putenv_s("XILINX_XRT", exeDir.c_str());
+#else
+ setenv("XILINX_XRT", exeDir.c_str(), 1);
+#endif
+
+ if(current.size() > 0)
+ return "XILINX_XRT was " + current + ", which has no " + kRuntimeLib +
+ "; repointed at " + exeDir;
+ return "XILINX_XRT set to " + exeDir;
+}
+
+} // namespace
+
+string RyzenAIDevice::ensureRuntimeLibraryPath() {
+ // Only the first call changes anything. Later callers are logging paths, and
+ // caching means they report the repair that actually happened rather than the
+ // already-repaired state, which reads as if nothing had been wrong.
+ static const string description = repointXrtIfNeeded();
+ return description;
+}
+
+RyzenAIDevice::Arch RyzenAIDevice::archOfDevice(int deviceIdx) {
+ try {
+ xrt::device device((unsigned int)(deviceIdx < 0 ? 0 : deviceIdx));
+ return archOfDeviceName(device.get_info());
+ }
+ catch(const std::exception&) {
+ return Arch::Unknown;
+ }
+}
+
+vector RyzenAIDevice::enumerate() {
+ vector devices;
+ unsigned int numDevices = 0;
+ try {
+ numDevices = xrt::system::enumerate_devices();
+ }
+ catch(const std::exception&) {
+ // No driver, no device, or an XRT that cannot talk to it. Not an error
+ // here - the caller reports "none found".
+ return devices;
+ }
+
+ for(unsigned int i = 0; i < numDevices; i++) {
+ Info info;
+ info.index = (int)i;
+ info.arch = Arch::Unknown;
+ try {
+ xrt::device device(i);
+ info.name = device.get_info();
+ info.bdf = device.get_info();
+ info.arch = archOfDeviceName(info.name);
+ }
+ catch(const std::exception& e) {
+ // Report the device as present but undescribable rather than dropping it,
+ // so that a device that exists-but-is-busy is still visible to the user.
+ info.name = string("(could not query: ") + e.what() + ")";
+ }
+ devices.push_back(info);
+ }
+ return devices;
+}
+
+string RyzenAIDevice::describeRuntime() {
+ vector devices = enumerate();
+ if(devices.size() <= 0)
+ return string(
+ "No NPU devices found by XRT. Check that the AMD NPU driver is installed and that the NPU is "
+ "enabled in the BIOS."
+ );
+
+ string ret = "Found " + Global::uint64ToString((uint64_t)devices.size()) + " NPU device(s):";
+ for(size_t i = 0; i < devices.size(); i++) {
+ ret += "\n Device " + Global::intToString(devices[i].index) + ": " + devices[i].name +
+ (devices[i].bdf.size() > 0 ? (" [" + devices[i].bdf + "]") : string(""));
+ if(devices[i].arch == Arch::Unknown)
+ ret += " - unrecognized architecture, NPU acceleration unavailable (will use the CPU reference path)";
+ else
+ ret += " - " + string(archName(devices[i].arch)) + ", up to " +
+ Global::intToString(maxColumns(devices[i].arch)) + " columns";
+ }
+ return ret;
+}
+
+string RyzenAIDevice::resolveArtifactDir(const string& configuredDir) {
+ if(configuredDir.size() > 0)
+ return configuredDir;
+
+ // Kernel artifacts are deployed next to the executable, so that an install is
+ // just exe + dlls + this directory.
+ vector dirs = HomeData::getDefaultFilesDirs();
+ if(dirs.size() > 0) {
+ gfs::path p = gfs::u8path(dirs[0]) / "ryzenai";
+ return p.u8string();
+ }
+ return string("ryzenai");
+}
+
+vector RyzenAIDevice::listXclbins(const string& dir) {
+ vector names;
+ try {
+ gfs::path p = gfs::u8path(dir);
+ if(!gfs::exists(p) || !gfs::is_directory(p))
+ return names;
+ // Artifacts are grouped into per-dtype subdirectories (bf16/, ...), so
+ // recurse and report paths relative to dir rather than bare filenames.
+ for(const auto& entry : gfs::recursive_directory_iterator(p)) {
+ if(!gfs::is_regular_file(entry.path()))
+ continue;
+ string filename = entry.path().filename().u8string();
+ if(Global::isSuffix(Global::toLower(filename), ".xclbin"))
+ names.push_back(gfs::relative(entry.path(), p).generic_u8string());
+ }
+ }
+ catch(const std::exception&) {
+ // An unreadable directory is equivalent to an empty one for our purposes.
+ return names;
+ }
+ std::sort(names.begin(), names.end());
+ return names;
+}
diff --git a/cpp/neuralnet/ryzenaidevice.h b/cpp/neuralnet/ryzenaidevice.h
new file mode 100644
index 000000000..0bb53872b
--- /dev/null
+++ b/cpp/neuralnet/ryzenaidevice.h
@@ -0,0 +1,82 @@
+/*
+ * XRT device discovery and NPU kernel-artifact (xclbin) location for the
+ * RyzenAI backend.
+ *
+ * This layer is deliberately the ONLY place that includes XRT headers, so that
+ * the rest of the backend can be built and reasoned about without them.
+ */
+
+#ifndef NEURALNET_RYZENAI_DEVICE_H_
+#define NEURALNET_RYZENAI_DEVICE_H_
+
+#include
+#include
+
+namespace RyzenAIDevice {
+
+ // AIE architecture family. Kernel binaries are per-family and NOT
+ // interchangeable: XDNA2 cores run the aie2p ISA, XDNA1 cores run aie2, so an
+ // xclbin built for one will not load on the other. The families also differ in
+ // width - XDNA1 exposes 4 columns (16 compute tiles) to the toolchain, XDNA2
+ // exposes 8 (32 tiles) - and only XDNA2 supports the BFP16 path.
+ enum class Arch { Unknown, NPU1, NPU2 };
+
+ // Largest column count the toolchain can target for a family, which is also
+ // the widest artifact variant we ship for it.
+ int maxColumns(Arch arch);
+ const char* archName(Arch arch); // "npu1" / "npu2" / "unknown"
+
+ struct Info {
+ int index;
+ std::string name; // e.g. "NPU Strix"
+ std::string bdf; // e.g. "00c2:00:01.1"
+ Arch arch;
+ };
+
+ // Classifies a device by the product name XRT reports. Substring matching is
+ // all that is available: XRT exposes no architecture field, so new silicon
+ // will read as Unknown until its name is added here (which degrades to the CPU
+ // reference path rather than loading a wrong-ISA xclbin).
+ Arch archOfDeviceName(const std::string& name);
+
+ // Architecture of one device, or Unknown if it cannot be opened/classified.
+ // deviceIdx < 0 selects the default device.
+ Arch archOfDevice(int deviceIdx);
+
+ // Makes XRT able to find its own runtime libraries, and must be called before
+ // any other function here.
+ //
+ // XRT resolves xrt_core from $XILINX_XRT. The Windows XRT *SDK* installs only
+ // headers and import libraries under that path - the runtime DLLs live in the
+ // driver store and are shipped next to katago.exe - so a machine where
+ // XILINX_XRT points at the SDK (the natural thing to do when building) has
+ // every XRT call fail with "No such library ...\\xrt_core.dll", which surfaces
+ // as "no NPU devices found" rather than as anything pointing at the cause.
+ //
+ // If the variable is unset or points somewhere without xrt_core, and the DLL
+ // is present beside the executable, this repoints it there. Returns a
+ // description of what it did, for logging; never throws.
+ std::string ensureRuntimeLibraryPath();
+
+ // Enumerates NPU devices visible to XRT. Never throws: on any XRT failure it
+ // returns an empty vector, since callers (notably printDevices) must stay
+ // usable on machines with no NPU or no driver.
+ std::vector enumerate();
+
+ // Human-readable one-line summary of the XRT/driver stack, e.g. for logging.
+ // Returns an explanatory string rather than throwing if XRT is unavailable.
+ std::string describeRuntime();
+
+ // Directory holding the NPU kernel binaries. Resolution order:
+ // 1. configuredDir, if non-empty (the ryzenaiArtifactDir config key)
+ // 2. "/ryzenai"
+ // The directory is not required to exist; callers decide how to react.
+ std::string resolveArtifactDir(const std::string& configuredDir);
+
+ // Names (not full paths) of the *.xclbin files found directly under dir, or
+ // an empty vector if dir does not exist. Sorted, for reproducible logging.
+ std::vector listXclbins(const std::string& dir);
+
+} // namespace RyzenAIDevice
+
+#endif // NEURALNET_RYZENAI_DEVICE_H_
diff --git a/cpp/neuralnet/ryzenaikernel.cpp b/cpp/neuralnet/ryzenaikernel.cpp
new file mode 100644
index 000000000..1e4a4d782
--- /dev/null
+++ b/cpp/neuralnet/ryzenaikernel.cpp
@@ -0,0 +1,738 @@
+#include "../neuralnet/ryzenaikernel.h"
+
+#include
+#include
+#if defined(_M_X64) || defined(__x86_64__) || defined(__SSE2__)
+#define RYZENAI_BF16_SSE2 1
+#include
+#endif
+#include
+#include
+#include