From e52d8a30a04e7aed873d80a2451c69b2423bb49c Mon Sep 17 00:00:00 2001 From: "Huang, Haixin" Date: Wed, 21 Aug 2024 17:05:29 +0800 Subject: [PATCH 1/2] fix ut under unsupported platform --- .../ExecutionEngine/BrgemmRuntime.cpp | 20 +++++++++++++++++++ .../unittests/ExecutionEngine/CMakeLists.txt | 4 ++++ 2 files changed, 24 insertions(+) diff --git a/test/mlir/unittests/ExecutionEngine/BrgemmRuntime.cpp b/test/mlir/unittests/ExecutionEngine/BrgemmRuntime.cpp index b6e458172..eb196f31f 100644 --- a/test/mlir/unittests/ExecutionEngine/BrgemmRuntime.cpp +++ b/test/mlir/unittests/ExecutionEngine/BrgemmRuntime.cpp @@ -10,6 +10,12 @@ #include #include +// manually include xbyak header here to avoid no-exception compile issue +#define XBYAK_NO_EXCEPTION +#include // NOLINT +#undef XBYAK_NO_EXCEPTION + +#include #include "gc/ExecutionEngine/CPURuntime/Microkernel/BrgemmInterface.h" extern "C" { @@ -103,6 +109,8 @@ template inline bool compareDataInt(T *ref, T *dst, size_t size) { return true; } +using namespace dnnl::impl::cpu::x64; + inline void testBrgemmRuntimeInt(int batch, int M, int N, int K, int LDA, int LDB, int LDC, int strideA, int strideB, float beta) { @@ -138,6 +146,10 @@ inline void testBrgemmRuntimeInt(int batch, int M, int N, int K, int LDA, TEST(ExecutionEngine, TestBrgemmRuntimeF32) { gc_runtime_keep_alive = 0; + bool supported_platform = mayiuse(avx512_core_amx) || mayiuse(avx512_core) || mayiuse(avx2); + if (!supported_platform) + GTEST_SKIP(); + srand(static_cast(time(nullptr))); constexpr int batch = 4; @@ -154,6 +166,10 @@ TEST(ExecutionEngine, TestBrgemmRuntimeF32) { TEST(ExecutionEngine, TestBrgemmRuntimeBF16) { gc_runtime_keep_alive = 0; + bool supported_platform = mayiuse(avx512_core_amx) || mayiuse(avx512_core_bf16) || mayiuse(avx2_vnni_2); + if (!supported_platform) + GTEST_SKIP(); + srand(static_cast(time(nullptr))); constexpr int batch = 4; @@ -169,6 +185,10 @@ TEST(ExecutionEngine, TestBrgemmRuntimeBF16) { TEST(ExecutionEngine, TestBrgemmRuntimeU8S8) { gc_runtime_keep_alive = 0; + + bool supported_platform = mayiuse(avx512_core_amx) || mayiuse(avx512_core_vnni) || mayiuse(avx512_core) || mayiuse(avx2_vnni_2) || mayiuse(avx2_vnni); + if (!supported_platform) + GTEST_SKIP(); srand(static_cast(time(nullptr))); diff --git a/test/mlir/unittests/ExecutionEngine/CMakeLists.txt b/test/mlir/unittests/ExecutionEngine/CMakeLists.txt index 2735abb28..9f5747b58 100644 --- a/test/mlir/unittests/ExecutionEngine/CMakeLists.txt +++ b/test/mlir/unittests/ExecutionEngine/CMakeLists.txt @@ -3,7 +3,11 @@ add_mlir_unittest(GCExecutionEngineTests BrgemmRuntime.cpp ) +get_property(GC_DNNL_INCLUDES GLOBAL PROPERTY GC_DNNL_INCLUDES) +target_include_directories(GCExecutionEngineTests PRIVATE ${GC_DNNL_INCLUDES}) + target_link_libraries(GCExecutionEngineTests PRIVATE GcJitWrapper GcCpuRuntime) + From af809bad00f4c4465be7499cd39c3709f0ad1494 Mon Sep 17 00:00:00 2001 From: "Huang, Haixin" Date: Wed, 21 Aug 2024 02:13:28 -0700 Subject: [PATCH 2/2] fix format --- .../ExecutionEngine/BrgemmRuntime.cpp | 22 +++++++++++-------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/test/mlir/unittests/ExecutionEngine/BrgemmRuntime.cpp b/test/mlir/unittests/ExecutionEngine/BrgemmRuntime.cpp index eb196f31f..cdc35ff43 100644 --- a/test/mlir/unittests/ExecutionEngine/BrgemmRuntime.cpp +++ b/test/mlir/unittests/ExecutionEngine/BrgemmRuntime.cpp @@ -15,8 +15,8 @@ #include // NOLINT #undef XBYAK_NO_EXCEPTION -#include #include "gc/ExecutionEngine/CPURuntime/Microkernel/BrgemmInterface.h" +#include extern "C" { extern int gc_runtime_keep_alive; @@ -146,9 +146,10 @@ inline void testBrgemmRuntimeInt(int batch, int M, int N, int K, int LDA, TEST(ExecutionEngine, TestBrgemmRuntimeF32) { gc_runtime_keep_alive = 0; - bool supported_platform = mayiuse(avx512_core_amx) || mayiuse(avx512_core) || mayiuse(avx2); + bool supported_platform = + mayiuse(avx512_core_amx) || mayiuse(avx512_core) || mayiuse(avx2); if (!supported_platform) - GTEST_SKIP(); + GTEST_SKIP(); srand(static_cast(time(nullptr))); @@ -166,10 +167,11 @@ TEST(ExecutionEngine, TestBrgemmRuntimeF32) { TEST(ExecutionEngine, TestBrgemmRuntimeBF16) { gc_runtime_keep_alive = 0; - bool supported_platform = mayiuse(avx512_core_amx) || mayiuse(avx512_core_bf16) || mayiuse(avx2_vnni_2); + bool supported_platform = mayiuse(avx512_core_amx) || + mayiuse(avx512_core_bf16) || mayiuse(avx2_vnni_2); if (!supported_platform) - GTEST_SKIP(); - + GTEST_SKIP(); + srand(static_cast(time(nullptr))); constexpr int batch = 4; @@ -185,10 +187,12 @@ TEST(ExecutionEngine, TestBrgemmRuntimeBF16) { TEST(ExecutionEngine, TestBrgemmRuntimeU8S8) { gc_runtime_keep_alive = 0; - - bool supported_platform = mayiuse(avx512_core_amx) || mayiuse(avx512_core_vnni) || mayiuse(avx512_core) || mayiuse(avx2_vnni_2) || mayiuse(avx2_vnni); + + bool supported_platform = mayiuse(avx512_core_amx) || + mayiuse(avx512_core_vnni) || mayiuse(avx512_core) || + mayiuse(avx2_vnni_2) || mayiuse(avx2_vnni); if (!supported_platform) - GTEST_SKIP(); + GTEST_SKIP(); srand(static_cast(time(nullptr)));