Update to 2.6 for AMX

Signed-off-by: Jincheng Miao <jincheng.miao@intel.com>
(cherry picked from commit 9caa1d09c41c48a4a3622f750520a9267a629ad8)
This commit is contained in:
Jincheng Miao 2022-08-09 14:21:58 +00:00 committed by openeuler-sync-bot
parent a1cfc51f10
commit a755901812
7 changed files with 8 additions and 164 deletions

View File

@ -1,63 +0,0 @@
From bae5eda24f3d5e257a99bdffafc91d87e1e1278e Mon Sep 17 00:00:00 2001
From: Pablo Romero <pablorcum@gmail.com>
Date: Sun, 3 Oct 2021 07:48:39 +0200
Subject: [PATCH 1/4] tests: fix build issues on QNX
This fixes #1164. Add required macros and libraries for QNX.
This fixes #1165. Set required libraries to link for QNX.
---
tests/benchdnn/CMakeLists.txt | 7 +++++--
tests/benchdnn/dnnl_common.cpp | 2 +-
tests/gtests/gtest/CMakeLists.txt | 4 +++-
3 files changed, 9 insertions(+), 4 deletions(-)
diff --git a/tests/benchdnn/CMakeLists.txt b/tests/benchdnn/CMakeLists.txt
index c4d7e00ee..4ff1bd281 100644
--- a/tests/benchdnn/CMakeLists.txt
+++ b/tests/benchdnn/CMakeLists.txt
@@ -35,10 +35,13 @@ if(CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
append_if(UNIX CMAKE_CXX_FLAGS "-prec-div -prec-sqrt -fp-model precise")
endif()
-if(UNIX AND NOT APPLE)
+if(UNIX AND NOT APPLE AND NOT QNXNTO)
find_library(LIBRT rt)
+elseif(QNXNTO)
+ find_library(LIBREGEX regex)
+ find_library(LIBSOCKET socket)
endif()
-register_exe(benchdnn "${SOURCES}" "" "${LIBRT}")
+register_exe(benchdnn "${SOURCES}" "" "${LIBRT};${LIBREGEX};${LIBSOCKET}")
file(COPY inputs DESTINATION .)
diff --git a/tests/benchdnn/dnnl_common.cpp b/tests/benchdnn/dnnl_common.cpp
index 18af190e7..244583bd1 100644
--- a/tests/benchdnn/dnnl_common.cpp
+++ b/tests/benchdnn/dnnl_common.cpp
@@ -460,7 +460,7 @@ static size_t get_cpu_ram_size() {
GlobalMemoryStatusEx(&s);
return s.ullTotalPhys;
}
-#elif defined(__APPLE__) || defined(__FreeBSD__)
+#elif defined(__APPLE__) || defined(__FreeBSD__) || defined(__QNXNTO__)
#include <unistd.h>
#include <sys/sysctl.h>
diff --git a/tests/gtests/gtest/CMakeLists.txt b/tests/gtests/gtest/CMakeLists.txt
index eacac64f1..2fb7b4f4f 100644
--- a/tests/gtests/gtest/CMakeLists.txt
+++ b/tests/gtests/gtest/CMakeLists.txt
@@ -13,6 +13,8 @@ add_library(${TARGET_NAME} STATIC ${MAIN_SRC})
# In that case FindThreads module may skip adding any flags for pthread library
# because they are not needed for C compiler but this may led to issues with
# C++ compiler which is not checked.
-if(UNIX OR MINGW)
+if((UNIX AND NOT QNXNTO) OR MINGW)
target_link_libraries(${TARGET_NAME} pthread)
+elseif(QNXNTO)
+ target_link_libraries(${TARGET_NAME} regex)
endif()
--
2.17.1

View File

@ -1,31 +0,0 @@
From a66a10e8b9b11ee238a82058bb2bb895b018cb24 Mon Sep 17 00:00:00 2001
From: nSircombe <32057673+nSircombe@users.noreply.github.com>
Date: Fri, 9 Jul 2021 01:02:34 +0100
Subject: [PATCH 2/4] build: fix to include path for ArmPL builds. (#1111)
---
cmake/blas.cmake | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/cmake/blas.cmake b/cmake/blas.cmake
index 4a5712496..7dc113fd5 100644
--- a/cmake/blas.cmake
+++ b/cmake/blas.cmake
@@ -1,5 +1,5 @@
# *******************************************************************************
-# Copyright 2020 Arm Limited and affiliates.
+# Copyright 2020-2021 Arm Limited and affiliates.
# SPDX-License-Identifier: Apache-2.0
#
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -51,6 +51,7 @@ if(DNNL_BLAS_VENDOR STREQUAL "MKL")
elseif(DNNL_BLAS_VENDOR STREQUAL "OPENBLAS")
set(BLA_VENDOR "OpenBLAS")
elseif(DNNL_BLAS_VENDOR STREQUAL "ARMPL")
+ set(CBLAS_HEADERS "armpl.h")
expect_arch_or_generic("AARCH64")
if(DNNL_CPU_RUNTIME STREQUAL "OMP")
set(BLA_VENDOR "Arm_mp")
--
2.17.1

View File

@ -1,24 +0,0 @@
From e2f932bbf0d06734461a3f344c9d6a5062723057 Mon Sep 17 00:00:00 2001
From: Alexandre Truong <alexandre.truong@arm.com>
Date: Wed, 28 Apr 2021 10:32:35 +0100
Subject: [PATCH 3/4] cpu: aarch64: missing include for arm_compute::Scheduler
---
src/cpu/aarch64/acl_indirect_gemm_convolution.hpp | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/cpu/aarch64/acl_indirect_gemm_convolution.hpp b/src/cpu/aarch64/acl_indirect_gemm_convolution.hpp
index 86d2bed73..040311f8c 100644
--- a/src/cpu/aarch64/acl_indirect_gemm_convolution.hpp
+++ b/src/cpu/aarch64/acl_indirect_gemm_convolution.hpp
@@ -26,6 +26,7 @@
#include "arm_compute/runtime/FunctionDescriptors.h"
#include "arm_compute/runtime/NEON/NEFunctions.h"
+#include "arm_compute/runtime/Scheduler.h"
namespace dnnl {
namespace impl {
--
2.17.1

View File

@ -1,28 +0,0 @@
From 6067e2fd599b1133c0d7b404fe7a1ca0e04432b0 Mon Sep 17 00:00:00 2001
From: Isuru Fernando <isuruf@gmail.com>
Date: Mon, 8 Mar 2021 11:22:22 -0600
Subject: [PATCH 4/4] cpu: x64: amx: Remove errorneous use of UINT8_C
UINT8_C should only be used for converting an integer literal to uint8_t,
but 'no' is not an integer literal an is a uint8_t variable. If UINT8_C(v)
is defined as 'v ## U`, then this fails to compile
---
src/cpu/x64/jit_avx512_core_amx_conv_kernel.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/cpu/x64/jit_avx512_core_amx_conv_kernel.cpp b/src/cpu/x64/jit_avx512_core_amx_conv_kernel.cpp
index 00792f450..9cc71b2ad 100644
--- a/src/cpu/x64/jit_avx512_core_amx_conv_kernel.cpp
+++ b/src/cpu/x64/jit_avx512_core_amx_conv_kernel.cpp
@@ -480,7 +480,7 @@ void jit_avx512_core_amx_copy_to_wbuffer_t::generate() {
const uint8_t nr = is_bf16 ? 2 : 4; // 2r or 4r
for (uint8_t o = 0; o < no; ++o) {
for (uint8_t r = 0; r < nr; r++) {
- const uint8_t index = o + r * UINT8_C(no);
+ const uint8_t index = o + r * no;
if (is_bf16)
dw(index);
else
--
2.17.1

Binary file not shown.

BIN
onednn-2.6.tar.gz Normal file

Binary file not shown.

View File

@ -1,21 +1,17 @@
%global __cmake_in_source_build 1
Name: onednn
Version: 2.2
Release: 3
Version: 2.6
Release: 1
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-tests-fix-build-issues-on-QNX.patch
Patch1: 0002-build-fix-to-include-path-for-ArmPL-builds.-1111.patch
Patch2: 0003-cpu-aarch64-missing-include-for-arm_compute-Schedule.patch
Patch3: 0004-cpu-x64-amx-Remove-errorneous-use-of-UINT8_C.patch
# This package only work in few arches for now
ExclusiveArch: x86_64 aarch64 ppc64le
# This package only work in 64bit arches for now
ExclusiveArch: x86_64 aarch64
BuildRequires: cmake doxygen gcc-c++
@ -83,24 +79,18 @@ rm -rf %{buildroot}%{_docdir}/dnnl
%doc README.md CONTRIBUTING.md CODE_OF_CONDUCT.md
%{_libdir}/libdnnl.so.2
%{_libdir}/libdnnl.so.2.*
%{_libdir}/libmkldnn.so.2
%{_libdir}/libmkldnn.so.2.*
%files devel
%{_includedir}/mkldnn*.h*
%dir %{_includedir}/oneapi
%{_includedir}/oneapi/dnnl
%{_includedir}/dnnl*.h*
%dir %{_includedir}/oneapi/dnnl
%{_includedir}/oneapi/dnnl/*
%{_libdir}/libdnnl.so
%{_libdir}/libmkldnn.so
%dir %{_libdir}/cmake/dnnl
%{_libdir}/cmake/dnnl/*.cmake
%dir %{_libdir}/cmake/mkldnn
%{_libdir}/cmake/mkldnn/*.cmake
%changelog
* Sat Aug 6 2022 wisespreading <wisespreading@gmail.com> - 2.6-1
- Update to 2.6 for AMX
* Wed Dec 22 2021 baihuawei <baihuawei@huawei.com> - 2.2-3
- Fix spec file.
* Wed Dec 1 2021 baihuawei <baihuawei@huawei.com> - 2.2-2