diff --git a/0001-oneDNN-2.6.2-add-loongarch64-support.patch b/0001-oneDNN-2.6.2-add-loongarch64-support.patch new file mode 100644 index 0000000000000000000000000000000000000000..5fc79dec204f7cef0ce8b59ac3a7695aa761d2ed --- /dev/null +++ b/0001-oneDNN-2.6.2-add-loongarch64-support.patch @@ -0,0 +1,46 @@ +diff -Naur oneDNN-2.6.bak/cmake/platform.cmake oneDNN-2.6/cmake/platform.cmake +--- oneDNN-2.6.bak/cmake/platform.cmake 2024-05-16 19:21:17.453108850 +0800 ++++ oneDNN-2.6/cmake/platform.cmake 2024-05-16 19:38:59.705108850 +0800 +@@ -195,8 +195,10 @@ + if (CMAKE_SYSTEM_PROCESSOR STREQUAL CMAKE_HOST_SYSTEM_PROCESSOR) + append(DEF_ARCH_OPT_FLAGS "-march=native") + endif() +- elseif(DNNL_TARGET_ARCH STREQUAL "X64") +- set(DEF_ARCH_OPT_FLAGS "-msse4.1") ++ elseif(DNNL_TARGET_ARCH STREQUAL "LOONGARCH64") ++ set(DEF_ARCH_OPT_FLAGS "-O3") ++ elseif(DNNL_TARGET_ARCH STREQUAL "X64") ++ set(DEF_ARCH_OPT_FLAGS "-msse4.1") + endif() + # Clang cannot vectorize some loops with #pragma omp simd and gets + # very upset. Tell it that it's okay and that we love it +@@ -297,7 +299,16 @@ + elseif(DNNL_TARGET_ARCH STREQUAL "RV64") + # G = General-purpose extensions, C = Compression extension (very common). + append(DEF_ARCH_OPT_FLAGS "-march=rv64gc") +- elseif(DNNL_TARGET_ARCH STREQUAL "X64") ++ elseif(DNNL_TARGET_ARCH STREQUAL "LOONGARCH64") ++ if (NOT CMAKE_BUILD_TYPE STREQUAL "Debug") ++ set(DEF_ARCH_OPT_FLAGS "-O3") ++ endif() ++ # In GCC, -ftree-vectorize is turned on under -O3 since 2007. ++ # For native compilation tune for the host processor ++ if (CMAKE_SYSTEM_PROCESSOR STREQUAL CMAKE_HOST_SYSTEM_PROCESSOR) ++ append(DEF_ARCH_OPT_FLAGS "-march=native") ++ endif() ++ elseif(DNNL_TARGET_ARCH STREQUAL "X64") + platform_gnu_x64_arch_ccxx_flags(DEF_ARCH_OPT_FLAGS) + endif() + platform_gnu_nowarn_ccxx_flags(CMAKE_CCXX_NOWARN_FLAGS ${CMAKE_CXX_COMPILER_VERSION}) +diff -Naur oneDNN-2.6.bak/CMakeLists.txt oneDNN-2.6/CMakeLists.txt +--- oneDNN-2.6.bak/CMakeLists.txt 2024-05-16 19:21:17.449108850 +0800 ++++ oneDNN-2.6/CMakeLists.txt 2024-05-16 19:33:40.165108850 +0800 +@@ -95,6 +95,8 @@ + set(DNNL_TARGET_ARCH "S390X") + elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(rv.*|RV.*|riscv.*|RISCV.*)") + set(DNNL_TARGET_ARCH "RV64") ++ elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(larch64.*|loongarch64.*|loongarch64-64.*)") ++ set(DNNL_TARGET_ARCH "LOONGARCH64") + else() + set(DNNL_TARGET_ARCH "X64") + endif() diff --git a/onednn.spec b/onednn.spec index 527329ce73fedb89eacf9c6b817a709335c502db..eeabfa84d002ffbddda3415f3ab2817e4cd5272e 100644 --- a/onednn.spec +++ b/onednn.spec @@ -2,16 +2,16 @@ Name: onednn Version: 2.6 -Release: 2 +Release: 3 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 # This package only work in 64bit arches for now -ExclusiveArch: x86_64 aarch64 riscv64 +ExclusiveArch: x86_64 aarch64 riscv64 loongarch64 BuildRequires: cmake doxygen gcc-c++ @@ -89,6 +89,9 @@ rm -rf %{buildroot}%{_docdir}/dnnl %{_libdir}/cmake/dnnl/*.cmake %changelog +* Thu May 16 2024 shenzhongwei - 2.6-3 +- Add loongarch64 support + * Wed Feb 8 2023 laokz - 2.6-2 - Add riscv64 to ExclusiveArch. * Sat Aug 6 2022 wisespreading - 2.6-1