diff --git a/0002-oneDNN-2.6.2-add-sw_64-support.patch b/0002-oneDNN-2.6.2-add-sw_64-support.patch new file mode 100644 index 0000000000000000000000000000000000000000..0206d00167c39f51d213467d094770aa8074a19c --- /dev/null +++ b/0002-oneDNN-2.6.2-add-sw_64-support.patch @@ -0,0 +1,79 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index ce019db..b1cca50 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -95,6 +95,8 @@ if(NOT DNNL_TARGET_ARCH) + set(DNNL_TARGET_ARCH "S390X") + elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(rv.*|RV.*|riscv.*|RISCV.*)") + set(DNNL_TARGET_ARCH "RV64") ++elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(sw_64.*|SW_64.*|sw64.*|SW64.*)") ++ set(DNNL_TARGET_ARCH "SW64") + elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(larch64.*|loongarch64.*|loongarch64-64.*)") + set(DNNL_TARGET_ARCH "LOONGARCH64") + else() +diff --git a/cmake/platform.cmake b/cmake/platform.cmake +index a126135..769cb54 100644 +--- a/cmake/platform.cmake ++++ b/cmake/platform.cmake +@@ -197,6 +197,8 @@ elseif(UNIX OR MINGW) + endif() + elseif(DNNL_TARGET_ARCH STREQUAL "LOONGARCH64") + set(DEF_ARCH_OPT_FLAGS "-O3") ++ elseif(DNNL_TARGET_ARCH STREQUAL "SW64") ++ set(DEF_ARCH_OPT_FLAGS "-O3") + elseif(DNNL_TARGET_ARCH STREQUAL "X64") + set(DEF_ARCH_OPT_FLAGS "-msse4.1") + endif() +diff --git a/src/cpu/platform.hpp b/src/cpu/platform.hpp +index 9ff529a..1ff3542 100644 +--- a/src/cpu/platform.hpp ++++ b/src/cpu/platform.hpp +@@ -30,11 +30,12 @@ + // - DNNL_PPC64 + // - DNNL_S390X + // - DNNL_RV64 ++// - DNNL_SW64 + // - DNNL_ARCH_GENERIC + // Target architecture macro is set to 1, others to 0. All macros are defined. + + #if defined(DNNL_X64) + defined(DNNL_AARCH64) + defined(DNNL_PPC64) \ +- + defined(DNNL_S390X) + defined(DNNL_RV64) \ ++ + defined(DNNL_S390X) + defined(DNNL_RV64) + defined(DNNL_SW64) \ + + defined(DNNL_ARCH_GENERIC) \ + == 0 + #if defined(__x86_64__) || defined(_M_X64) +@@ -47,13 +48,15 @@ + #define DNNL_S390X 1 + #elif defined(__riscv) + #define DNNL_RV64 1 ++#elif defined(__sw_64) ++#define DNNL_SW64 1 + #else + #define DNNL_ARCH_GENERIC 1 + #endif + #endif // defined(DNNL_X64) + ... == 0 + + #if defined(DNNL_X64) + defined(DNNL_AARCH64) + defined(DNNL_PPC64) \ +- + defined(DNNL_S390X) + defined(DNNL_RV64) \ ++ + defined(DNNL_S390X) + defined(DNNL_RV64) + defined(DNNL_SW64) \ + + defined(DNNL_ARCH_GENERIC) \ + != 1 + #error One and only one architecture should be defined at a time +@@ -74,6 +77,9 @@ + #if !defined(DNNL_RV64) + #define DNNL_RV64 0 + #endif ++#if !defined(DNNL_SW64) ++#define DNNL_SW64 0 ++#endif + #if !defined(DNNL_ARCH_GENERIC) + #define DNNL_ARCH_GENERIC 0 + #endif +@@ -83,6 +89,7 @@ + #define DNNL_X64_ONLY(...) Z_CONDITIONAL_DO(DNNL_X64, __VA_ARGS__) + #define DNNL_PPC64_ONLY(...) Z_CONDITIONAL_DO(DNNL_PPC64_ONLY, __VA_ARGS__) + #define DNNL_S390X_ONLY(...) Z_CONDITIONAL_DO(DNNL_S390X_ONLY, __VA_ARGS__) ++#define DNNL_SW64_ONLY(...) Z_CONDITIONAL_DO(DNNL_SW64_ONLY, __VA_ARGS__) + #define DNNL_AARCH64_ONLY(...) Z_CONDITIONAL_DO(DNNL_AARCH64, __VA_ARGS__) + + // Negation of the helper macros above diff --git a/onednn.spec b/onednn.spec index eeabfa84d002ffbddda3415f3ab2817e4cd5272e..92cf9d75b8c13bbca09e99c9e99abad9e4ed2d0a 100644 --- a/onednn.spec +++ b/onednn.spec @@ -2,16 +2,17 @@ Name: onednn Version: 2.6 -Release: 3 +Release: 4 Summary: Deep Neural Network Library License: ASL 2.0 and BSD and Boost and MIT URL: https://github.com/oneapi-src/oneDNN/ Source0: %{url}/archive/v%{version}/onednn-%{version}.tar.gz Patch0: 0001-oneDNN-2.6.2-add-loongarch64-support.patch +Patch1: 0002-oneDNN-2.6.2-add-sw_64-support.patch # This package only work in 64bit arches for now -ExclusiveArch: x86_64 aarch64 riscv64 loongarch64 +ExclusiveArch: x86_64 aarch64 riscv64 loongarch64 sw_64 BuildRequires: cmake doxygen gcc-c++ @@ -89,6 +90,8 @@ rm -rf %{buildroot}%{_docdir}/dnnl %{_libdir}/cmake/dnnl/*.cmake %changelog +* Tue Jul 15 2025 Verney7 - 2.6-4 +- Add sw_64 support * Thu May 16 2024 shenzhongwei - 2.6-3 - Add loongarch64 support