diff --git a/.gitignore b/.gitignore
index 7799d05291..e49a7a35b3 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 c601ceff07..01fba73c38 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 f34a1628c7..518f731a22 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 3cc803444d..7598d9980f 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 1b89821387..e96b362fb0 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 0000000000..53473ceb7e
--- /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 0000000000..71d072e583
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 0000000000..71071aeeac
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 0000000000..975f5e755c
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 0000000000..ac7b26c04a
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 0000000000..607afdceb5
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 0000000000..9c7d8430f8
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 0000000000..0585094928
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 0000000000..96b4ef8f87
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 0000000000..cb2d1c0301
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 0000000000..986462c3b8
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 0000000000..ee181535b5
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 0000000000..9c18dd20f1
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 0000000000..b72f20c5f4
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 0000000000..e5a836569f
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 0000000000..a6a10b0d53
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 0000000000..852d75aa07
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 0000000000..b1197ebc90
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 0000000000..5aa967853e
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 0000000000..f840c13e23
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 0000000000..3bd132f768
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 0000000000..7ccdc3d77f
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 0000000000..e858e56742
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 0000000000..80f71c7b5c
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 0000000000..dd502c6b4f
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 0000000000..1868d70d8c
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 0000000000..d7da02d54f
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 0000000000..2334935971
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 0000000000..30ecaf4d82
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 0000000000..543f08d185
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 0000000000..00adb8a7fe
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 0000000000..d3da630d5b
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 0000000000..0b0b9a6f7f
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 0000000000..25c6c244c1
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 0000000000..0e4a1ad97e
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 0000000000..271f6d3ac5
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 0000000000..b9f880ea35
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 0000000000..954df43c1d
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 0000000000..a7de5fce1e
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 0000000000..4cea74c185
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 0000000000..0707f3e46d
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 0000000000..d6e7641ee3
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 0000000000..55a138db2f
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 0000000000..db416b3191
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 0000000000..c58a4085a5
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 0000000000..23e8e4ed87
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 0000000000..78c066dcb3
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 0000000000..28b503e98f
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 0000000000..2e39deb5ed
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 0000000000..951456cf70
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 0000000000..ff1ab23931
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 0000000000..e194995f23
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 0000000000..e401d9ab62
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 0000000000..7974b11df5
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 0000000000..dc9ced24ab
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 0000000000..be203bdd9a
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 0000000000..4903039113
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 0000000000..8f47a3626f
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 0000000000..76954ac8da
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 0000000000..9de1533a3c
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 0000000000..7712655920
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 0000000000..ab0ad45d49
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 0000000000..5e449c44f6
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 0000000000..7f904f8cda
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 0000000000..cbfa75f3f5
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 0000000000..027e3f99d2
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 0000000000..e4682c6db3
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 0000000000..a939cbed3c
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 0000000000..de2f9ba900
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 0000000000..7dd5a285e9
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 0000000000..5492583229
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 0000000000..64919bdc48
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 0000000000..82482b6f34
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 0000000000..2dfe888ee3
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 0000000000..023e3e46b3
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 0000000000..4ca1d83afd
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 0000000000..e65df9b33d
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 0000000000..4e350c1cba
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 0000000000..226a1e464f
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 0000000000..b92cbd029c
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 0000000000..f3b19679f3
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 0000000000..4fdae56fef
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 0000000000..9b32c88674
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 0000000000..e44e05f1a1
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 0000000000..727c9bd050
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 0000000000..2ff8741e20
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 0000000000..90ee2ed42f
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 0000000000..97676fc97d
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 0000000000..c8d2028955
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 0000000000..edf03be9fd
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 0000000000..77c4d6fe78
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 0000000000..a2b68ea5c4
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 0000000000..b9cbf3dc19
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 0000000000..0958e10374
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 0000000000..216b2bd41e
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 0000000000..2c07be337b
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 0000000000..b196fce9cd
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 0000000000..a1575e4961
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 0000000000..6d34e13a3f
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 0000000000..552346d0f6
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 0000000000..a3260adde2
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 0000000000..7db53b3adb
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 0000000000..ab51684e4d
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 0000000000..b747772de6
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 0000000000..6066790afe
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 0000000000..3f01c4bef2
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 0000000000..eeb7f6daff
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 0000000000..5bbc2c8037
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 0000000000..d9a9e83af4
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 0000000000..72fc6873ff
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 0000000000..82061ce92f
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 0000000000..dd5cf038e5
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 0000000000..ae38647fc0
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 0000000000..bff8949ff0
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 0000000000..b991d4c5fa
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 0000000000..319a9e207b
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 0000000000..290227cebb
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 0000000000..ae66b1363b
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 0000000000..09f77c5380
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 0000000000..2332d84cfe
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 0000000000..d2e2d527e3
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 0000000000..7dda4f963d
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 0000000000..954934e572
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 0000000000..959d1568ea
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 0000000000..6d5556d88e
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 0000000000..02a4b95626
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 0000000000..51585b6657
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 0000000000..d623b6a4ff
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 0000000000..c77c0202d8
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 0000000000..6068f4df2a
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 0000000000..1226e12009
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 0000000000..e8ddb40e64
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 0000000000..8dc04f930a
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 0000000000..bd2d3d8e51
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 0000000000..96cf55e65d
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 0000000000..f1a875a380
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 0000000000..a973a6a6b3
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 0000000000..ae028dfd46
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 0000000000..fec15a4ca1
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 0000000000..9ec8e5e759
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 0000000000..0f6f303e01
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 0000000000..83e2f29119
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 0000000000..c118af4209
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 0000000000..56bd566b7d
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 0000000000..8af22be77f
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 0000000000..6a4f107c48
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 0000000000..c480a89798
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 0000000000..124175f63d
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 0000000000..0b2d1ee73d
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 0000000000..3442444348
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 0000000000..d4c844ce86
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 0000000000..09dcc26cff
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 0000000000..59122cbb09
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 0000000000..9de67a3838
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 0000000000..c4872da856
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 0000000000..29d01dc08d
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 0000000000..79bbe933f4
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 0000000000..32dcb05073
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 0000000000..fde3b53c34
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 0000000000..6cf5e1370c
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 0000000000..d0152de2f5
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 0000000000..20ea251410
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 0000000000..5a9a5b9be5
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 0000000000..603eed1225
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 0000000000..694d9a860d
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 0000000000..8c64fb14b4
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 0000000000..050862bfde
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 0000000000..9171ffd94d
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 0000000000..0dc7458261
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 0000000000..182565c168
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 0000000000..000ea1720e
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 0000000000..5df33ed482
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 0000000000..0fac40f4a1
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 0000000000..83ce6fb05d
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 0000000000..5c26d00ccc
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 0000000000..9ba9c37ab3
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 0000000000..425364a3a2
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 0000000000..5f17c4a0e8
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 0000000000..ad1f715a50
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 0000000000..c2c6a3f69c
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 0000000000..69bc587a5a
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 0000000000..cb70f5a63e
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 0000000000..3672e1bb6a
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 0000000000..edf667f4fe
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 0000000000..1533f35c66
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 0000000000..127df17c68
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 0000000000..6ab1d1b638
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 0000000000..e1ab5b16b9
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 0000000000..3a40d95b7f
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 0000000000..293e1005e8
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 0000000000..8b02fd6ed5
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 0000000000..b0ace521df
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 0000000000..f2a834ab44
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 0000000000..1e16f1958c
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 0000000000..08746a939f
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 0000000000..eb96e88101
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 0000000000..922e536372
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 0000000000..6360cc38b4
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 0000000000..68664b0425
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 0000000000..eda8c8c63c
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 0000000000..fc6f78f6bc
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 0000000000..f6cf51a689
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 0000000000..d9d6329a1c
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 0000000000..c17fa8fa90
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 0000000000..3645a10008
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 0000000000..3506534205
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 0000000000..24eb75d369
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 0000000000..827007b807
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 0000000000..9bfdb266ad
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 0000000000..611b1d73e6
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 0000000000..ec051451a9
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 0000000000..3dd5cb105f
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 0000000000..663d0a1434
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 0000000000..25b377b3ac
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 0000000000..a8a7735ed8
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 0000000000..9c0d93e210
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 0000000000..6552795c4d
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 0000000000..6b76ab7e4d
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 0000000000..e208f6802b
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 0000000000..b22bf81fc1
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 0000000000..a103edb14e
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 0000000000..c653c311c4
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 0000000000..54156a2d2c
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 0000000000..180f2aa733
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 0000000000..9f8fade367
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 0000000000..2807778366
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 0000000000..1c11b4d715
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 0000000000..54c9870b5a
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 0000000000..d6fa926a5e
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 0000000000..f66f5e6cf6
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 0000000000..dfc1c189ad
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 0000000000..f394da9661
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 0000000000..4985b4f28a
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 0000000000..e73a6d81bf
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 0000000000..914a2072b8
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 0000000000..892f903ba5
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 0000000000..48f7f87df5
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 0000000000..8a9c139382
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 0000000000..c24d0bafcf
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 0000000000..1110a1cf10
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 0000000000..3219c40ebf
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 0000000000..8afab021eb
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 0000000000..ff604b84c8
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 0000000000..facd35956f
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 0000000000..6e09e74bda
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 0000000000..a5070232aa
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 0000000000..dca21a2b94
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 0000000000..75eb7c84f1
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 0000000000..9a2f2f49e7
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 0000000000..0aa903c7ce
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 0000000000..bb6565b316
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 0000000000..bf6a90ca57
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 0000000000..40c99dfc97
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 0000000000..e395cbcd76
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 0000000000..ca9655d327
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 0000000000..1b0f11f5cc
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 0000000000..35b0d8fd4b
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 0000000000..0e81bc25d6
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 0000000000..bf361d2e20
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 0000000000..d37991e081
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 0000000000..4d8ac966ce
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 0000000000..25ad11d325
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 0000000000..a443ee0720
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 0000000000..6ede7cbf14
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 0000000000..d5826cc3d6
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 0000000000..9e5a4b13e3
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 0000000000..20e2a20fe7
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 0000000000..665e9a7a69
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 0000000000..41743c68d6
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 0000000000..2e24981a29
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 0000000000..9d5b2d6c7b
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 0000000000..21319011ab
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 0000000000..a1e9eb3af1
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 0000000000..611b1d73e6
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 0000000000..0d1eab8e7d
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 0000000000..75eb7c84f1
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 0000000000..b7876e8c2a
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 0000000000..9e5a4b13e3
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 0000000000..1db4121112
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 0000000000..1c8ebd22a0
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 0000000000..af7f075a60
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 0000000000..09582183ff
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 0000000000..42d88c8018
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 0000000000..e1df7f0b93
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 0000000000..a28852ab1a
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 0000000000..d037496e7d
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 0000000000..c9c5c72a83
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 0000000000..d61a8e023c
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 0000000000..8109762b97
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 0000000000..d7fa3ef711
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 0000000000..1958736f5d
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 0000000000..1310f06cf1
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 0000000000..4a38901a06
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 0000000000..ae9ba043f5
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 0000000000..c29b7c4ab2
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 0000000000..5349aeb589
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 0000000000..debfab1757
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 0000000000..cefaa62dde
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 0000000000..3c1bd980a5
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 0000000000..670051ecc8
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 0000000000..9f4594aa62
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 0000000000..6ef2decc86
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 0000000000..d581f483f0
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 0000000000..aec8a5cf0e
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 0000000000..837c597db9
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 0000000000..2ff3ce5798
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 0000000000..bdd4038c94
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 0000000000..60293f6352
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 0000000000..2e1c8d3548
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 0000000000..02f0cd0232
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 0000000000..b1b05e7fb6
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 0000000000..94652c5494
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 0000000000..b55055b9b0
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 0000000000..c87b1ef7b4
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 0000000000..2acb64a73d
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 0000000000..aaecb8e0d6
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 0000000000..2c40562043
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 0000000000..e2976167f5
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 0000000000..83732f5039
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 0000000000..26b0965ae3
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 0000000000..2eeeb47213
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 0000000000..919b800428
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 0000000000..08e2106b28
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 0000000000..dc6113afc8
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 0000000000..5aec5f41a3
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 0000000000..787e7ea194
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 0000000000..6574b285e0
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 0000000000..3a68c9056a
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 0000000000..e23b02d84e
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 0000000000..7e2edcb9b5
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 0000000000..948bd307e2
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 0000000000..217f3e399f
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 0000000000..844bb43b46
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 0000000000..099cb6f937
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 0000000000..1b379ffe82
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 0000000000..fed5bed846
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 0000000000..39bf82cb19
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 0000000000..c430f70cd9
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 0000000000..2c3d9b4f2f
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 0000000000..b8917db472
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 0000000000..de9f0bf9ba
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 0000000000..85ba2471ab
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 0000000000..9f844f8845
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 0000000000..1e3c76cf37
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 0000000000..51c228e7fa
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 0000000000..05dce0e338
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 0000000000..29acfb28e2
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 0000000000..e1df7f0b93
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 0000000000..bc962b6194
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 0000000000..919b800428
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 0000000000..07da3b5ee7
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 0000000000..b8917db472
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 0000000000..a98cf90663
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 0000000000..5cbfe311b3
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 0000000000..a79d41ba9c
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 0000000000..41743a80d0
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 0000000000..3956ee5f11
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 0000000000..33045e378e
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 0000000000..a1c5c4689d
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 0000000000..0614a3f889
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 0000000000..b2f7580cd4
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 0000000000..5fa273b74e
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 0000000000..4c86d6747a
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 0000000000..8242a1319f
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 0000000000..c2f27f319e
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 0000000000..ba0f2578a3
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 0000000000..d6426d6bca
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 0000000000..976a5d6637
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 0000000000..41771c2cff
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 0000000000..ee438bb651
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 0000000000..01bc1bf902
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 0000000000..b0d62fdc55
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 0000000000..8bacafbcba
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 0000000000..dd34d9bf41
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 0000000000..d6e80a0c93
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 0000000000..736fe8c846
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 0000000000..933df1c3b2
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 0000000000..8f69659815
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 0000000000..3996c5b8b7
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 0000000000..cafec2c34c
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 0000000000..86e5b6bea2
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 0000000000..dead816e09
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 0000000000..6e9155e816
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 0000000000..a50f9880fd
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 0000000000..ba74776fc9
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 0000000000..860cf18c5b
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 0000000000..a65983c624
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 0000000000..fa403ad1a9
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 0000000000..b642dd7f3f
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 0000000000..b55077e012
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 0000000000..3c7caf322f
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 0000000000..e11d8b40ef
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 0000000000..f3f1768868
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 0000000000..aee8534a94
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 0000000000..909228840b
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 0000000000..d6995a53c0
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 0000000000..63d9f0073c
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 0000000000..55a0999d5e
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 0000000000..3d1b747d74
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 0000000000..58832296bc
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 0000000000..1e06296cc5
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 0000000000..1f0b1713e9
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 0000000000..457f226aa7
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 0000000000..d52329b17e
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 0000000000..5bdb7008ba
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 0000000000..9cb6c916ec
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 0000000000..657218707b
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 0000000000..8ebccc8870
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 0000000000..9a5664dacc
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 0000000000..8bf0e5df3d
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 0000000000..d8af62ce3b
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 0000000000..5376402b8e
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 0000000000..1c0a354e0f
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 0000000000..9921028c04
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 0000000000..b89283a611
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 0000000000..f873753c0c
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 0000000000..921576992a
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 0000000000..45d5ddd890
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 0000000000..297bd44a0d
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 0000000000..07303920c4
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 0000000000..b4fe524006
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 0000000000..33045e378e
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 0000000000..089ec7bffe
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 0000000000..d6995a53c0
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 0000000000..c7c85eaa50
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 0000000000..9921028c04
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 0000000000..e945efee83
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 0000000000..b53ab18170
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 0000000000..2d5bcdac4d
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 0000000000..da0edb6a80
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 0000000000..a84ff261ff
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 0000000000..096bf56a12
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 0000000000..fc91029da9
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 0000000000..65ee30f417
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 0000000000..a55636bd00
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 0000000000..a2f77098d1
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 0000000000..9562788b07
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 0000000000..9be50fc010
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 0000000000..bce2e1ac24
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 0000000000..05d4e0835a
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 0000000000..6f266698a3
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 0000000000..aed546861a
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 0000000000..3fd8e30d33
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 0000000000..f8f9236b5a
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 0000000000..39dc4093fd
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 0000000000..0636bfa399
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 0000000000..49c01c4a20
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 0000000000..cad7daadf1
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 0000000000..6a2f3fd40c
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 0000000000..528819524c
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 0000000000..89fda5b80c
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 0000000000..eed41f9256
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 0000000000..29ac688c7c
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 0000000000..f034f15385
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 0000000000..e0f485730e
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 0000000000..717bbcd8a8
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 0000000000..184506fccb
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 0000000000..cc6bec853d
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 0000000000..2dc5c5d20d
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 0000000000..698019297a
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 0000000000..ddd739e504
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 0000000000..ffeb6e2ec5
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 0000000000..a57cf7253e
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 0000000000..9fcd1454b6
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 0000000000..da09b255a5
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 0000000000..9e16732f59
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 0000000000..4b10c22587
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 0000000000..1078908aef
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 0000000000..5359b32886
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 0000000000..0c0ba6388e
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 0000000000..3dcaf12087
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 0000000000..7811a3a55b
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 0000000000..82b12fa6c6
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 0000000000..44b553df40
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 0000000000..f8d38b0625
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 0000000000..3fec8bb87b
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 0000000000..219f5f7f77
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 0000000000..208ddbd43f
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 0000000000..d3ec154d63
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 0000000000..1d146405fd
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 0000000000..821fdf5369
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 0000000000..7e5083706a
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 0000000000..34770edfde
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 0000000000..59b7466b31
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 0000000000..b660c986d0
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 0000000000..4f678d507e
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 0000000000..cf725f97cb
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 0000000000..36ea560814
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 0000000000..0b44612853
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 0000000000..35e4d746c1
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 0000000000..aeacf8cbe7
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 0000000000..c29e6b9612
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 0000000000..54e4bb9a37
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 0000000000..7f9deb9052
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 0000000000..dcf774dd66
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 0000000000..3506534205
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 0000000000..66d6aa1b0d
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 0000000000..827007b807
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 0000000000..be6276a303
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 0000000000..611b1d73e6
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 0000000000..739f581434
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 0000000000..3dd5cb105f
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 0000000000..106d53b177
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 0000000000..25b377b3ac
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 0000000000..fe60b53973
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 0000000000..9c0d93e210
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 0000000000..43c4816474
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 0000000000..6b76ab7e4d
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 0000000000..b9922f2c86
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 0000000000..b22bf81fc1
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 0000000000..ba9ebc084d
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 0000000000..c653c311c4
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 0000000000..844037fdd3
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 0000000000..180f2aa733
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 0000000000..991af3b7ea
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 0000000000..2807778366
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 0000000000..738db4c600
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 0000000000..54c9870b5a
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 0000000000..2e0cf50918
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 0000000000..f66f5e6cf6
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 0000000000..c502e8d6a2
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 0000000000..f394da9661
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 0000000000..b253372650
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 0000000000..e73a6d81bf
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 0000000000..100dbd7c4b
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 0000000000..892f903ba5
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 0000000000..f50aab83e6
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 0000000000..8a9c139382
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 0000000000..7764fe05f4
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 0000000000..1110a1cf10
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 0000000000..d19ecc4229
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 0000000000..8afab021eb
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 0000000000..eb9a895f31
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 0000000000..facd35956f
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 0000000000..112e9b66e5
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 0000000000..a5070232aa
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 0000000000..222379dbe3
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 0000000000..75eb7c84f1
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 0000000000..6b5a57e3dd
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 0000000000..0aa903c7ce
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 0000000000..3d6ae8df9a
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 0000000000..bf6a90ca57
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 0000000000..1bad4bba12
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 0000000000..e395cbcd76
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 0000000000..8f75bd527a
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 0000000000..1b0f11f5cc
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 0000000000..b02726175c
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 0000000000..0e81bc25d6
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 0000000000..0a5c8300e5
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 0000000000..d37991e081
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 0000000000..60c4f93c69
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 0000000000..25ad11d325
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 0000000000..6d3be98679
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 0000000000..6ede7cbf14
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 0000000000..9b1b077d51
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 0000000000..9e5a4b13e3
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 0000000000..2320b275a4
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 0000000000..665e9a7a69
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 0000000000..7fde632759
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 0000000000..2e24981a29
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 0000000000..72c59610a0
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 0000000000..21319011ab
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 0000000000..d49886968a
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 0000000000..1c8ebd22a0
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 0000000000..174f9af972
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 0000000000..09582183ff
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 0000000000..1d2fcbfb9f
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 0000000000..e1df7f0b93
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 0000000000..b49bf13806
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 0000000000..d037496e7d
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 0000000000..7c0281c3c0
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 0000000000..d61a8e023c
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 0000000000..e6bd84a0c2
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 0000000000..d7fa3ef711
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 0000000000..4d1745f5aa
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 0000000000..1310f06cf1
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 0000000000..58aa65a499
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 0000000000..ae9ba043f5
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 0000000000..db612767ce
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 0000000000..5349aeb589
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 0000000000..43ca43de4d
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 0000000000..cefaa62dde
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 0000000000..fe44f9b17e
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 0000000000..670051ecc8
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 0000000000..3fd0296a61
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 0000000000..6ef2decc86
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 0000000000..25735f6789
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 0000000000..aec8a5cf0e
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 0000000000..6a9185aabd
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 0000000000..2ff3ce5798
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 0000000000..bd445a7726
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 0000000000..60293f6352
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 0000000000..379f8147df
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 0000000000..02f0cd0232
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 0000000000..d21293b254
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 0000000000..94652c5494
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 0000000000..ad2c5dd4e2
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 0000000000..c87b1ef7b4
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 0000000000..8b08cba868
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 0000000000..aaecb8e0d6
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 0000000000..642533c88f
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 0000000000..e2976167f5
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 0000000000..759d780f09
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 0000000000..26b0965ae3
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 0000000000..fe28b36882
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 0000000000..919b800428
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 0000000000..a9f19d972d
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 0000000000..dc6113afc8
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 0000000000..7e59f5cee1
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 0000000000..787e7ea194
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 0000000000..6cc983455d
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 0000000000..3a68c9056a
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 0000000000..2b0aae58d9
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 0000000000..7e2edcb9b5
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 0000000000..b7310a60fd
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 0000000000..217f3e399f
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 0000000000..26dc9125d8
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 0000000000..099cb6f937
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 0000000000..bd2c933038
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 0000000000..fed5bed846
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 0000000000..114b742fb7
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 0000000000..c430f70cd9
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 0000000000..9bcc647817
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 0000000000..b8917db472
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 0000000000..8e3889b14c
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 0000000000..85ba2471ab
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 0000000000..bb1a0a07e2
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 0000000000..1e3c76cf37
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 0000000000..ef15627962
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 0000000000..05dce0e338
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 0000000000..d03703942c
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 0000000000..5cbfe311b3
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 0000000000..3bb93a7743
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 0000000000..41743a80d0
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 0000000000..5dcd0bcf06
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 0000000000..33045e378e
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 0000000000..e398438064
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 0000000000..0614a3f889
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 0000000000..9efc0a1e1e
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 0000000000..5fa273b74e
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 0000000000..6d7dd74ffc
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 0000000000..8242a1319f
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 0000000000..e32e488db6
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 0000000000..ba0f2578a3
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 0000000000..9081865575
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 0000000000..976a5d6637
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 0000000000..0731d18379
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 0000000000..ee438bb651
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 0000000000..ed03992e45
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 0000000000..b0d62fdc55
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 0000000000..f8d42946f1
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 0000000000..dd34d9bf41
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 0000000000..c4922c5e2d
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 0000000000..736fe8c846
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 0000000000..0b7a5bab45
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 0000000000..8f69659815
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 0000000000..eb8a8b3737
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 0000000000..cafec2c34c
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 0000000000..74a4297ea8
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 0000000000..dead816e09
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 0000000000..5b0d4cc38f
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 0000000000..a50f9880fd
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 0000000000..f86ee83c8f
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 0000000000..860cf18c5b
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 0000000000..57cce138f3
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 0000000000..fa403ad1a9
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 0000000000..699c5ab5de
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 0000000000..b55077e012
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 0000000000..2b2b532829
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 0000000000..e11d8b40ef
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 0000000000..af2f814864
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 0000000000..aee8534a94
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 0000000000..1d8e276bc3
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 0000000000..d6995a53c0
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 0000000000..1b2da991ea
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 0000000000..55a0999d5e
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 0000000000..e7919b64da
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 0000000000..58832296bc
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 0000000000..d9435ba4db
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 0000000000..1f0b1713e9
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 0000000000..62ea5267ba
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 0000000000..d52329b17e
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 0000000000..b08ac7a2d5
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 0000000000..9cb6c916ec
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 0000000000..02f4a4fbf6
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 0000000000..8ebccc8870
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 0000000000..ea96c931ca
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 0000000000..8bf0e5df3d
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 0000000000..f0de94e698
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 0000000000..5376402b8e
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 0000000000..34dbaafaa1
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 0000000000..9921028c04
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 0000000000..5a992c56e4
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 0000000000..f873753c0c
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 0000000000..5d6a238c7c
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 0000000000..45d5ddd890
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 0000000000..44301ec54c
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 0000000000..07303920c4
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 0000000000..8950666358
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 0000000000..b53ab18170
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 0000000000..674d9ec659
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 0000000000..da0edb6a80
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 0000000000..1fb42addce
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 0000000000..096bf56a12
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 0000000000..0348bb5f65
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 0000000000..65ee30f417
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 0000000000..ccf4dcf69c
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 0000000000..a2f77098d1
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 0000000000..d69fed509b
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 0000000000..9be50fc010
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 0000000000..918029b2ac
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 0000000000..05d4e0835a
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 0000000000..c161c13813
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 0000000000..aed546861a
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 0000000000..9be10f2684
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 0000000000..f8f9236b5a
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 0000000000..64bfefcf87
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 0000000000..0636bfa399
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 0000000000..41b5214718
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 0000000000..cad7daadf1
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 0000000000..2609490ed6
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 0000000000..528819524c
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 0000000000..f39b848bf4
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 0000000000..eed41f9256
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 0000000000..bd544ca745
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 0000000000..f034f15385
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 0000000000..e8d6015dfe
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 0000000000..717bbcd8a8
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 0000000000..20df413300
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 0000000000..cc6bec853d
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 0000000000..d49df87a58
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 0000000000..698019297a
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 0000000000..7b84e78c18
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 0000000000..ffeb6e2ec5
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 0000000000..7b5a79266b
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 0000000000..9fcd1454b6
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 0000000000..263edd0881
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 0000000000..9e16732f59
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 0000000000..0b4a43b539
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 0000000000..1078908aef
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 0000000000..3eb4a0b15e
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 0000000000..0c0ba6388e
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 0000000000..ab2476dbc5
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 0000000000..7811a3a55b
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 0000000000..250fc9f6a3
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 0000000000..44b553df40
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 0000000000..1ad0ff55f0
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 0000000000..3fec8bb87b
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 0000000000..40b05d9b30
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 0000000000..208ddbd43f
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 0000000000..2f0b58a85d
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 0000000000..1d146405fd
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 0000000000..8f206f8984
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 0000000000..7e5083706a
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 0000000000..10ce2bc8a7
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 0000000000..59b7466b31
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 0000000000..b92d525b1f
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 0000000000..4f678d507e
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 0000000000..435228c441
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 0000000000..36ea560814
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 0000000000..5e87043e45
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 0000000000..35e4d746c1
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 0000000000..bc7238a4ab
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 0000000000..c29e6b9612
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 0000000000..ac5ee29068
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 0000000000..7f9deb9052
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 0000000000..a19732d82a
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 0000000000..4d1aa7a4c4
--- /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 0000000000..4e03285389
--- /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 0000000000..787435a2b3
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 0000000000..28460dc063
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 0000000000..e65ceb22ec
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 0000000000..365be9a7bb
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 0000000000..d117a37e81
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 0000000000..2563b756cc
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 0000000000..956193771f
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 0000000000..d433a723b4
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 0000000000..f4850c7e57
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 0000000000..0524c8f606
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 0000000000..1cca8f517a
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 0000000000..b8347e8bf6
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 0000000000..69b8f2c8b4
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 0000000000..c68dacd39a
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 0000000000..ce6dab1aa8
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 0000000000..d0e5892cf3
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 0000000000..397818f189
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 0000000000..7aa6343827
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 0000000000..bb1332af02
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 0000000000..9d6ecb62ea
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 0000000000..8f46999144
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 0000000000..5ecb97e7c8
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 0000000000..ab4eed40c1
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 0000000000..48bee6a3cf
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 0000000000..9c300e69b6
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 0000000000..acefa67abc
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 0000000000..3ec78beef6
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 0000000000..c10accb7c4
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 0000000000..6244af8675
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 0000000000..6b7cdfeca5
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 0000000000..895b49b66e
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 0000000000..238b69ba7c
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 0000000000..a0ebddae7b
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 0000000000..4177f8d217
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 0000000000..49ffbde245
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 0000000000..7a6f76f862
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 0000000000..1bfb1aed22
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 0000000000..3f7996b658
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 0000000000..d04182c80c
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 0000000000..84a2592ce3
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 0000000000..536d9e8884
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 0000000000..e7fc9a7865
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 0000000000..406d72c544
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 0000000000..64d102d872
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 0000000000..30faf3b356
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 0000000000..25a7199bf6
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 0000000000..af9eea42ef
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 0000000000..a2d1a197cc
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 0000000000..c831da6147
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 0000000000..31a55a2609
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 0000000000..d0ac495be6
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 0000000000..fab04700ed
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 0000000000..5646456e7d
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 0000000000..0f1f42f353
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 0000000000..9c9cea2c8c
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 0000000000..f20cc1e288
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 0000000000..d5f93a9792
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 0000000000..480f34ce10
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 0000000000..31a4b84959
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 0000000000..174bb6984a
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 0000000000..3280e0abce
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 0000000000..a93a7380a8
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 0000000000..0d12fbd88c
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 0000000000..b459fcdb4d
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 0000000000..a7fd906314
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 0000000000..d7af94f5ce
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 0000000000..902f8e30f0
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 0000000000..2f8663a1a9
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 0000000000..ec02697c1a
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 0000000000..9012837d29
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 0000000000..fbd1d34bbf
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 0000000000..74d14b8eb1
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 0000000000..2740a11838
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 0000000000..352b6681dc
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 0000000000..22913f137a
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 0000000000..2f7516c87b
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 0000000000..c1cd70895c
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 0000000000..34074b0efb
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 0000000000..51769eb19f
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 0000000000..42809c641c
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 0000000000..b8958fa548
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 0000000000..5eb01e138b
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 0000000000..66077038e6
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 0000000000..4b785487cb
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 0000000000..f59c6afe1b
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 0000000000..8b72ce37b8
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 a843f991db..0f6cf1a67b 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 0000000000..c290c30f26
--- /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 0000000000..4295d3d85c
--- /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 0000000000..0bb53872b3
--- /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 0000000000..1e4a4d7829
--- /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