From bfeb0ec51c040979f594e640fea87b91c5887acf Mon Sep 17 00:00:00 2001 From: Gian Marco Iodice Date: Fri, 31 May 2024 15:03:33 +0100 Subject: [PATCH] Add int4 matmul micro-kernel guide - Add guide to explain how to invoke the int4 matmul micro-kernel Signed-off-by: Gian Marco Iodice --- docs/README.md | 15 + docs/matmul_qsi4cx/README.md | 286 ++++++++++++++++++ .../imgs/int4_matmul_per_channel.png | Bin 0 -> 182178 bytes .../imgs/int4_matmul_per_channel.png.license | 3 + .../CMakeLists.txt | 39 +-- .../matmul_clamp_f32_qai8dxp_qsi4cxp.cpp | 24 +- 6 files changed, 339 insertions(+), 28 deletions(-) create mode 100644 docs/README.md create mode 100644 docs/matmul_qsi4cx/README.md create mode 100644 docs/matmul_qsi4cx/imgs/int4_matmul_per_channel.png create mode 100644 docs/matmul_qsi4cx/imgs/int4_matmul_per_channel.png.license diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 00000000..330d4503 --- /dev/null +++ b/docs/README.md @@ -0,0 +1,15 @@ + + +# KleidiAI documentation and guides + +Welcome to the KleidiAI documentation hub. Here, you will find a variety of step-by-step guides to help you master this library. For instance, you can explore introductory tutorials on running a micro-kernel and discover best practices for optimizing the performance of your AI framework on Arm® CPUs. + +## Table of Contents + +### Guides + +- [How to run the int4 matmul micro-kernels](matmul_qsi4cx/README.md) diff --git a/docs/matmul_qsi4cx/README.md b/docs/matmul_qsi4cx/README.md new file mode 100644 index 00000000..efa0cd4b --- /dev/null +++ b/docs/matmul_qsi4cx/README.md @@ -0,0 +1,286 @@ + + +# How to run the int4 matmul micro-kernels + +## Prerequisities + +- Understanding of matrix multiplication routines +- Knowledge of quantization schemes, such as 8-bit per-channel quantization +- Experience with Arm® cross-compilation on Linux® or Android™ +- Proficiency with Linux® commands + +## Goal + +In this guide, we will explore the use of the integer 4-bit (int4) matrix multiplication (matmul) micro-kernel with the per-channel quantization (cx). + +## Target Arm® CPUs + +Arm® CPUs with FEAT_I8MM extension. + +## Introduction + +In this guide, we will perform matrix multiplication between two matrices with the following data types and dimensions: + +- Left-hand side (**LHS**) matrix: with `M` rows and `K` columns and with `f32` data type +- Right-hand side (**RHS**) matrix: with `N` rows and `K` columns and with quantized (`q`) symmetric (`s`) signed 4-bit (`i4`) with per-channel quantization (`cx`) + +Since the **RHS** matrix uses symmetric per-channel quantization, it is accompanied by an additional array (`RHS scales`) containing the scale quantization parameters for each `N` value. + +> ℹ️ The quantization is called per-channel because matrix multiplication is commonly used to accelerate the convolution layer and the `N` dimension corresponds to the `output channel` (`output feature maps`) + +The following image visually describes the operations involved to perform this matrix multiplication type: +![int4_matmul_per_channel](imgs/int4_matmul_per_channel.png) + +As you can see from the preceeding image, the LHS matrix is dynamically quantized to int8. + +> ℹ️ In the previous image you can also see that both the LHS and RHS matrices are packed. This type of operation will be introduced later in the guide. + +The int4 matmul per-channel micro-kernels are all available in the **[matmul_clamp_f32_qai8dxp_qsi4cxp](../../kai/ukernels/matmul/matmul_clamp_f32_qai8dxp_qsi4cxp/)** folder. + +The specific micro-kernel variant we will be running in this guide is **[kai_matmul_clamp_f32_qai8dxp4x8_qsu4cxp8x8_8x8x32_neon_i8mm](../../kai/ukernels/matmul/matmul_clamp_f32_qai8dxp_qsi4cxp/kai_matmul_clamp_f32_qai8dxp4x8_qsi4cxp8x8_8x8x32_neon_i8mm.c)**. + +The filename might seem intimidating at first glance. However, the filename actually describes what the micro-kernel accomplishes. So, our first step is to dissect it to better understand how the computation is executed. + +### Dissecting the micro-kernel filename + +The first part of the filename indicates that the micro-kernel comprises **matrix multiplication (`matmul`)** followed by a **clamp (`clamp`)** operation. + +Following the operation performed, we encounter a list of matrices utilized for matrix multiplication, including the following: + +- The destination matrix: `f32` type +- The left-hand side (LHS) matrix: quantized (`q`) asymmetric (`a`) signed 8-bit (`i8`) with per-dimension quantization (`dx`) type +- The right-hand side (RHS) matrix: quantized (`q`) symmetric (`s`) signed 4-bit (`i4`) with per-channel quantization (`cx`) + +Subsequently, the filename provides information about the 2D output block size processed (`8x8`) and the number of accumulations performed by the single innermost for loop (`x32`). The filename concludes with details about the technology used (`neon`) and the Arm® extension exploited (`i8mm`). + +You might have observed that the LHS and RHS matrices also include additional information starting with the letter `p`. When encountering the letter `p`, it indicates that the matrix is **packed**, meaning it needs to be transformed to facilitate computation. + +### How do we pack the LHS and RHS matrices? + +In the header of the matrix multiplication micro-kernel we report the additional micro-kernels required to leverage the computation. For this specific case, the additional micro-kernels are the following: + +- [kai_lhs_quant_pack_qai8dxp_f32](../../kai/ukernels/matmul/pack/kai_lhs_quant_pack_qai8dxp_f32.c) +- [kai_rhs_pack_nxk_qsu4cxp_qsu4cxs1s0](../../kai/ukernels/matmul/pack/kai_rhs_pack_nxk_qsu4cxp_qsu4cxs1s0.c) + +The **kai_lhs_quant_pack_qai8dxp_f32** micro-kernel performs the dynamic quantization of the LHS matrix from f32 to 8-bit and packs the value to improve the cache locality during the matrix multiplication routine. +Instead, the **kai_rhs_pack_nxk_qsu4cxp_qsu4cxs1s0** packs the original integer 4-bit RHS matrix to improve the cache locality during the matrix multiplication routine + +The packing arguments required to run the preceeding micro-kernels, such as **mr**, **kr**, and **sr**, are obtained using the helper methods provided in the matrix multiplication micro-kernel. + +At this point, it should be clear that matrix multiplication with int4 per-channel quantization requires three micro-kernels: + +- Two micro-kernels for packing the LHS and RHS matrices +- One micro-kernel to perform matrix multiplication + +Now that we know all the components for performing matrix multiplication, let's see how we can execute the micro-kernels. + +## Running the micro-kernel + +Create a new C project with an empty `main()` function using your favourite IDE: + +```c +int main(int argc, char** argv) { + return 0; +} +``` + +Then, follow the following steps to run the int4 matmul micro-kernel on an Arm® CPU with i8mm extension. + +### Step 1 + +Include the micro-kernels' headers files: + +```c +#include "kai_lhs_quant_pack_qai8dxp_f32.h" +#include "kai_rhs_pack_nxk_qsi4cxp_qsi4cxs1s0.h" +#include "kai_matmul_clamp_f32_qai8dxp4x8_qsi4cxp8x8_8x8x32_neon_i8mm.h" +``` + +Since the int4 matmul micro-kernel requires both the LHS and RHS to be packed, performing the matrix multiplication requires three micro-kernels: + +- Two micro-kernels for packing the LHS and RHS matrices +- One micro-kernel to perform the matrix multiplication + +> ℹ️ Including the `kai_common.h` header file is not required. Nonetheless, as it is a dependency of the micro-kernel, its directory must be included in your build script. + +### Step 2 + +Inside the `main()` function, declare and initizialize three variables with the **M**, **N**, and **K** dimensions: + +```c + const size_t m = 13; + const size_t n = 17; + const size_t k = 18; +``` + +In the preceed code snippet, **M** is `13`, **N** is `17`, and **K** is `18`. + +### Step 3 + +Allocate the memory for the LHS (f32) and RHS (int4) matrices, and the destination (f32) matrix: + +```c + const size_t lhs_native_size_f32 = m * k * sizeof(float); + const size_t rhs_native_size_qs4cx = n * (k / 2) * sizeof(uint8_t); + const size_t dst_size_f32 = m * n * sizeof(float); + + // Allocate the memory + uint8_t* lhs_native_mtx_f32 = new uint8_t[lhs_native_size_f32]; + uint8_t* rhs_native_mtx_qs4cx = new uint8_t[rhs_native_size_qs4cx]; + uint8_t* dst_mtx_f32 = new uint8_t[dst_size_f32]; +``` + +As the micro-kernel does not handle memory allocation, it is the user's responsibility to allocate memory for all matrices and manage their lifetimes. + +> ℹ️ When calculating the size of thr RHS matrix, you need to consider how the 4-bit values are stored. Specifically, since two 4-bit values are held in one 8-bit value, we need to adjust the size accordingly by dividing the `k` dimension by `2`. + +### Step 4 + +Allocate the memory for the RHS scales: + +```c + const size_t rhs_scales_size_f32 = n * sizeof(float); + + uint8_t* rhs_scales_f32 = new uint8_t[rhs_scales_size_f32]; +``` + +The RHS matrix is quantized (`q`) symmetric (`s`) with per-channel quantization (`cx`). Therefore, we have one scale factor for each output channel (`n`). + +### Step 5: + +Allocate the memory for the LHS and RHS packed matrices: + +```c + // Get the packing parameters + const size_t mr = kai_get_mr_matmul_clamp_f32_qai8dxp4x8_qsi4cxp8x8_8x8x32_neon_i8mm(); + const size_t nr = kai_get_nr_matmul_clamp_f32_qai8dxp4x8_qsi4cxp8x8_8x8x32_neon_i8mm(); + const size_t kr = kai_get_kr_matmul_clamp_f32_qai8dxp4x8_qsi4cxp8x8_8x8x32_neon_i8mm(); + const size_t sr = kai_get_sr_matmul_clamp_f32_qai8dxp4x8_qsi4cxp8x8_8x8x32_neon_i8mm(); + + // Get the size in bytes for the packed matrices + const size_t lhs_packed_size = kai_get_lhs_packed_size_lhs_quant_pack_qai8dxp_f32(m, k, mr, kr); + const size_t rhs_packed_size = kai_get_rhs_packed_size_rhs_pack_nxk_qsi4cxp_qsu4cxs1s0(n, k, nr, kr); + + // Allocate the matrices + uint8_t* lhs_packed_mtx_qa8dx = new uint8_t[lhs_packed_size]; + uint8_t* rhs_packed_mtx_qs4cx = new uint8_t[rhs_packed_size]; + +``` + +In the preceding code snippet, we first use the helper methods of the int4 matmul micro-kernel to get the packing parameters (`mr`, `nr`, `kr`, and `sr`). +Then, we use the helper functions of the packing micro-kernels to know the size of the packed tensors (`lhs_packed_size` and `rhs_packed_size`). + +> ℹ️ All micro-kernels have a helper method to return the size in bytes for the destination tensors/matrix. + +Once we know the size of the packed matrices, we allocate the memory for the packed matrices. + +### Step 6: + +Assuming you have filled the native LHS and RHS matrices with some random values, perform the RHS packing: + +```c + struct kai_rhs_pack_nxk_qsi4cxp_qsu4cxs1s0_params params; + params.lhs_zero_point = 1; + params.rhs_zero_point = 8; + + // RHS packing + kai_run_rhs_pack_nxk_qsi4cxp_qsu4cxs1s0( + 1, n, k, nr, kr, sr, // Packing arguments + (const uint8_t*)(rhs_native_mtx_qs4cx), // RHS + NULL, // Bias + (const float*)(rhs_scales_f32), // Scale + rhs_packed_mtx_qs4cx, // RHS packed + 0, ¶ms); +``` + +Since the RHS matrix commonly keeps the weights of the trained model, you should perform this operation only once and free the memory of the native RHS matrix if not used elsewhere. + +### Step 7: + +Convert the LHS matrix from f32 to integer 8-bit and pack the data: + +```c + kai_run_lhs_quant_pack_qai8dxp_f32( + m, k, mr, kr, sr, 0, // Packing arguments + (const float*)lhs_native_mtx_f32, // LHS + k * sizeof(float), // LHS stride + lhs_packed_mtx_qa8dx); // LHS packed +``` + +Since the content of the LHS matrix changes at runtime, the LHS dynamic quantization and packing must be performed always before computing the matrix multiplication. + +### Step 8: + +Perform the matrix multiplication: + +```c + kai_run_matmul_clamp_f32_qai8dxp4x8_qsu4cxp8x8_8x8x32_neon_i8mm( + m, n, k, // Dimensions + lhs_ptr, // LHS packed + rhs_ptr, // RHS packed + dst_ptr, // DST + dst_stride, // DST stride (row) + sizeof(float), // DST stride (column) + -FLT_MAX, FLT_MAX); // Min and max for the clamp operation +``` + +Now, write the build script to compile the example. If you are using CMake, your script might look like this: + +```cmake +cmake_minimum_required(VERSION 3.16) + +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17") +set(KLEIDIAI_PATH ../../) +set(MATMUL_PACK_PATH ${KLEIDIAI_PATH}/kai/ukernels/matmul/pack/) +set(MATMUL_PATH ${KLEIDIAI_PATH}/kai/ukernels/matmul/matmul_clamp_f32_qai8dxp_qsi4cxp/) + +# KleidiAI include directories +include_directories( + ${KLEIDIAI_PATH} + ${MATMUL_PACK_PATH} + ${MATMUL_PATH}) + +# Files requires to build the executable +add_executable(matmul_clamp_f32_qai8dxp_qsi4cxp + matmul_clamp_f32_qai8dxp_qsi4cxp.cpp + ${MATMUL_PACK_PATH}/kai_rhs_pack_nxk_qsi4cxp_qsu4cxs1s0.c + ${MATMUL_PACK_PATH}/kai_lhs_quant_pack_qai8dxp_f32.c + ${MATMUL_PATH}/kai_matmul_clamp_f32_qai8dxp4x8_qsi4cxp8x8_8x8x32_neon_i8mm.c) +``` + +As you can see from the preceeding CMake script, we include the following directory paths: + +- The KleidiAI root directory (`${KLEIDIAI_PATH}`) +- The matmul pack directory (`${MATMUL_PACK_PATH}`) +- The matmul with the int4 per-channel quantization directory (`${MATMUL_PATH}`) + +Once you have prepared the build script, you can compile the project. + +For example, to build the project for Android™, you can use the following commands in your terminal: + +```bash +mkdir build && cd build + +export NDK_PATH="your-android-ndk-path" + +cmake -DCMAKE_TOOLCHAIN_FILE=${NDK_PATH}/build/cmake/android.toolchain.cmake -DANDROID_ABI=arm64-v8a -DANDROID_PLATFORM=android-23 -DCMAKE_C_FLAGS=-march=armv8.2a+i8mm -DCMAKE_CXX_FLAGS=-march=armv8.2a+i8mm .. + +make +``` + +The Android™ NDK can be downloaded from [here](https://developer.android.com/ndk/downloads). + +That’s all for this guide! + +## To learn more + +This guide is an adaptation of the **matmul_clamp_f32_qai8dxp_qsi4cxp** example available at this [link](../../examples/matmul_clamp_f32_qai8dxp_qsi4cxp/matmul_clamp_f32_qai8dxp_qsi4cxp.cpp). + +In the **matmul_clamp_f32_qai8dxp_qsi4cxp** example, you will learn: + +- How to quantize a f32 matrix to int4 adopting a per-channel quantization +- How to invoke different micro-kernel variants of the same type diff --git a/docs/matmul_qsi4cx/imgs/int4_matmul_per_channel.png b/docs/matmul_qsi4cx/imgs/int4_matmul_per_channel.png new file mode 100644 index 0000000000000000000000000000000000000000..e15a2b979c0f64fa7da15b517e4218dac055ab8b GIT binary patch literal 182178 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 literal 0 HcmV?d00001 diff --git a/docs/matmul_qsi4cx/imgs/int4_matmul_per_channel.png.license b/docs/matmul_qsi4cx/imgs/int4_matmul_per_channel.png.license new file mode 100644 index 00000000..efa11a94 --- /dev/null +++ b/docs/matmul_qsi4cx/imgs/int4_matmul_per_channel.png.license @@ -0,0 +1,3 @@ +# SPDX-FileCopyrightText: Copyright 2024 Arm Limited and/or its affiliates + +# SPDX-License-Identifier: Apache-2.0 diff --git a/examples/matmul_clamp_f32_qai8dxp_qsi4cxp/CMakeLists.txt b/examples/matmul_clamp_f32_qai8dxp_qsi4cxp/CMakeLists.txt index cf80906e..b2cddb6a 100644 --- a/examples/matmul_clamp_f32_qai8dxp_qsi4cxp/CMakeLists.txt +++ b/examples/matmul_clamp_f32_qai8dxp_qsi4cxp/CMakeLists.txt @@ -6,33 +6,26 @@ cmake_minimum_required(VERSION 3.16) +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17") +set(KLEIDIAI_PATH ../../) +set(MATMUL_PACK_PATH ${KLEIDIAI_PATH}/kai/ukernels/matmul/pack/) +set(MATMUL_PATH ${KLEIDIAI_PATH}/kai/ukernels/matmul/matmul_clamp_f32_qai8dxp_qsi4cxp/) + # KleidiAI include directories include_directories( - ../../ - ../../kai/ukernels/matmul/pack/ - ../../kai/ukernels/matmul/matmul_clamp_f32_qai8dxp_qsi4cxp/) - -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17") + ${KLEIDIAI_PATH} + ${MATMUL_PACK_PATH} + ${MATMUL_PATH}) # Files requires to build the executable add_executable(matmul_clamp_f32_qai8dxp_qsi4cxp matmul_clamp_f32_qai8dxp_qsi4cxp.cpp - ../../kai/kai_common.h - ../../kai/ukernels/matmul/pack/kai_rhs_pack_nxk_qsi4cxp_qsu4cxs1s0.h - ../../kai/ukernels/matmul/pack/kai_rhs_pack_nxk_qsi4cxp_qsu4cxs1s0.c - ../../kai/ukernels/matmul/pack/kai_lhs_quant_pack_qai8dxp_f32.h - ../../kai/ukernels/matmul/pack/kai_lhs_quant_pack_qai8dxp_f32.c - ../../kai/ukernels/matmul/matmul_clamp_f32_qai8dxp_qsi4cxp/kai_matmul_clamp_f32_qai8dxp_qsi4cxp_interface.h - ../../kai/ukernels/matmul/matmul_clamp_f32_qai8dxp_qsi4cxp/kai_matmul_clamp_f32_qai8dxp1x8_qsi4cxp4x8_1x4x32_neon_dotprod.h - ../../kai/ukernels/matmul/matmul_clamp_f32_qai8dxp_qsi4cxp/kai_matmul_clamp_f32_qai8dxp1x8_qsi4cxp4x8_1x4x32_neon_dotprod.c - ../../kai/ukernels/matmul/matmul_clamp_f32_qai8dxp_qsi4cxp/kai_matmul_clamp_f32_qai8dxp1x8_qsi4cxp8x8_1x8x32_neon_dotprod.h - ../../kai/ukernels/matmul/matmul_clamp_f32_qai8dxp_qsi4cxp/kai_matmul_clamp_f32_qai8dxp1x8_qsi4cxp8x8_1x8x32_neon_dotprod.c - ../../kai/ukernels/matmul/matmul_clamp_f32_qai8dxp_qsi4cxp/kai_matmul_clamp_f32_qai8dxp4x8_qsi4cxp4x8_4x4x32_neon_i8mm.h - ../../kai/ukernels/matmul/matmul_clamp_f32_qai8dxp_qsi4cxp/kai_matmul_clamp_f32_qai8dxp4x8_qsi4cxp4x8_4x4x32_neon_i8mm.c - ../../kai/ukernels/matmul/matmul_clamp_f32_qai8dxp_qsi4cxp/kai_matmul_clamp_f32_qai8dxp4x8_qsi4cxp4x8_8x4x32_neon_i8mm.h - ../../kai/ukernels/matmul/matmul_clamp_f32_qai8dxp_qsi4cxp/kai_matmul_clamp_f32_qai8dxp4x8_qsi4cxp4x8_8x4x32_neon_i8mm.c - ../../kai/ukernels/matmul/matmul_clamp_f32_qai8dxp_qsi4cxp/kai_matmul_clamp_f32_qai8dxp4x8_qsi4cxp8x8_4x8x32_neon_i8mm.h - ../../kai/ukernels/matmul/matmul_clamp_f32_qai8dxp_qsi4cxp/kai_matmul_clamp_f32_qai8dxp4x8_qsi4cxp8x8_4x8x32_neon_i8mm.c - ../../kai/ukernels/matmul/matmul_clamp_f32_qai8dxp_qsi4cxp/kai_matmul_clamp_f32_qai8dxp4x8_qsi4cxp8x8_8x8x32_neon_i8mm.h - ../../kai/ukernels/matmul/matmul_clamp_f32_qai8dxp_qsi4cxp/kai_matmul_clamp_f32_qai8dxp4x8_qsi4cxp8x8_8x8x32_neon_i8mm.c) + ${MATMUL_PACK_PATH}/kai_rhs_pack_nxk_qsi4cxp_qsu4cxs1s0.c + ${MATMUL_PACK_PATH}/kai_lhs_quant_pack_qai8dxp_f32.c + ${MATMUL_PATH}/kai_matmul_clamp_f32_qai8dxp1x8_qsi4cxp4x8_1x4x32_neon_dotprod.c + ${MATMUL_PATH}/kai_matmul_clamp_f32_qai8dxp1x8_qsi4cxp8x8_1x8x32_neon_dotprod.c + ${MATMUL_PATH}/kai_matmul_clamp_f32_qai8dxp4x8_qsi4cxp4x8_4x4x32_neon_i8mm.c + ${MATMUL_PATH}/kai_matmul_clamp_f32_qai8dxp4x8_qsi4cxp4x8_8x4x32_neon_i8mm.c + ${MATMUL_PATH}/kai_matmul_clamp_f32_qai8dxp4x8_qsi4cxp8x8_4x8x32_neon_i8mm.c + ${MATMUL_PATH}/kai_matmul_clamp_f32_qai8dxp4x8_qsi4cxp8x8_8x8x32_neon_i8mm.c) diff --git a/examples/matmul_clamp_f32_qai8dxp_qsi4cxp/matmul_clamp_f32_qai8dxp_qsi4cxp.cpp b/examples/matmul_clamp_f32_qai8dxp_qsi4cxp/matmul_clamp_f32_qai8dxp_qsi4cxp.cpp index bde6447c..1d1ae147 100644 --- a/examples/matmul_clamp_f32_qai8dxp_qsi4cxp/matmul_clamp_f32_qai8dxp_qsi4cxp.cpp +++ b/examples/matmul_clamp_f32_qai8dxp_qsi4cxp/matmul_clamp_f32_qai8dxp_qsi4cxp.cpp @@ -3,7 +3,9 @@ // // SPDX-License-Identifier: Apache-2.0 // - +#if !defined(__ARM_FEATURE_DOTPROD) && !defined(__ARM_FEATURE_MATMUL_INT8) +#error "Dotprod and I8mm extensions required to compile this example" +#else #include #include #include @@ -400,16 +402,19 @@ int main(int argc, char** argv) { // RHS packing kai_run_rhs_pack_nxk_qsi4cxp_qsu4cxs1s0( - 1, n, k, nr, kr, sr, + 1, n, k, nr, kr, sr, // Packing arguments (const uint8_t*)(rhs_native_mtx_qs4cx), // RHS NULL, // Bias (const float*)(rhs_scales_f32), // Scale - rhs_packed_mtx_qs4cx, // DST + rhs_packed_mtx_qs4cx, // RHS packed 0, ¶ms); // LHS packing kai_run_lhs_quant_pack_qai8dxp_f32( - m, k, mr, kr, sr, 0, (const float*)lhs_native_mtx_f32, k * sizeof(float), lhs_packed_mtx_qa8dx); + m, k, mr, kr, sr, 0, // Packing arguments + (const float*)lhs_native_mtx_f32, // LHS + k * sizeof(float), // LHS stride + lhs_packed_mtx_qa8dx); // LHS packed // Matmul { @@ -423,7 +428,14 @@ int main(int argc, char** argv) { float* dst_ptr = (float*)((uint8_t*)dst_act_mtx_f32 + dst_offset); ukernel_variants[idx_variant].ukernel.run_matmul( - m, n, k, lhs_ptr, rhs_ptr, dst_ptr, dst_stride, sizeof(float), -FLT_MAX, FLT_MAX); + m, n, k, // Dimensions + lhs_ptr, // LHS packed + rhs_ptr, // RHS packed + dst_ptr, // DST + dst_stride, // DST stride (row) + sizeof(float), // DST stride (col) + -FLT_MAX, FLT_MAX // Min and max for the clamp operation + ); } const bool is_valid = @@ -447,3 +459,5 @@ int main(int argc, char** argv) { //----------- END MICRO-KERNELS TESTS //------------------------------------ //------------------------------------ + +#endif // Architectural feature check -- GitLab