Skip to content

Commit 9705212

Browse files
yanbing-jfacebook-github-bot
authored andcommitted
Upgrade oneDNN to v2.5.2 (pytorch#71546)
Summary: This PR upgrades oneDNN to v2.5.2, and includes some building support for oneDNN v2.5.2. v2.4 changes: - Improved performance for future Intel Xeon Scalable processor (code name Sapphire Rapids). The functionality is disabled by default and should be enabled via CPU dispatcher control. - Improved binary primitive performance for cases when one of the tensors is broadcasted. - Improved performance of reduction primitive, reorder, shuffle primitives. - Improved performance of depthwise convolution forward propagation for processors with Intel AVX5-12 support - Improved performance of forward inner product primitive for the shapes with minibatch equal to 1 for processors with Intel AVX-512 support - Improved performance of int8 matmul and inner product primitives for processors with Intel AVX2 and Intel DL Boost support v2.5 changes: - Improved performance for future Intel Xeon Scalable processors (code name Sapphire Rapids). The functionality is now enabled by default and requires Linux kernel 5.16. - Improved performance of matmul primitive for processors with Intel AVX-512 support. v2.5.2 changes: - Fixed performance regression in binary primitive with broadcast - Fixed segmentation fault in depthwise convolution primitive for shapes with huge spatial size for processors with Intel AVX-512 support Pull Request resolved: pytorch#71546 Reviewed By: george-qi Differential Revision: D33827108 Pulled By: VitalyFedyunin fbshipit-source-id: 8f5a19b331c82af5b0783f081e061e1034a93952
1 parent f21ced4 commit 9705212

File tree

4 files changed

+43
-14
lines changed

4 files changed

+43
-14
lines changed

aten/src/ATen/Version.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
#endif
77

88
#if AT_MKLDNN_ENABLED()
9-
#include <mkldnn.hpp>
9+
#include <dnnl.hpp>
1010
#include <ideep.hpp>
1111
#endif
1212

@@ -42,7 +42,7 @@ std::string get_mkldnn_version() {
4242
// Apparently no way to get ideep version?
4343
// https://github.com/intel/ideep/issues/29
4444
{
45-
const mkldnn_version_t* ver = mkldnn_version();
45+
const dnnl_version_t* ver = dnnl_version();
4646
ss << "Intel(R) MKL-DNN v" << ver->major << "." << ver->minor << "." << ver->patch
4747
<< " (Git Hash " << ver->hash << ")";
4848
}

cmake/Modules/FindMKLDNN.cmake

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ SET(MKLDNN_ROOT "${IDEEP_ROOT}/mkl-dnn/third_party/oneDNN")
2222

2323
FIND_PACKAGE(BLAS)
2424
FIND_PATH(IDEEP_INCLUDE_DIR ideep.hpp PATHS ${IDEEP_ROOT} PATH_SUFFIXES include)
25-
FIND_PATH(MKLDNN_INCLUDE_DIR mkldnn.hpp mkldnn.h PATHS ${MKLDNN_ROOT} PATH_SUFFIXES include)
25+
FIND_PATH(MKLDNN_INCLUDE_DIR dnnl.hpp dnnl.h PATHS ${MKLDNN_ROOT} PATH_SUFFIXES include)
2626
IF (NOT MKLDNN_INCLUDE_DIR)
2727
EXECUTE_PROCESS(COMMAND git${CMAKE_EXECUTABLE_SUFFIX} submodule update --init --jobs 0 mkl-dnn WORKING_DIRECTORY ${IDEEP_ROOT})
2828
FIND_PATH(MKLDNN_INCLUDE_DIR mkldnn.hpp mkldnn.h PATHS ${MKLDNN_ROOT} PATH_SUFFIXES include)
@@ -53,27 +53,28 @@ ELSEIF (MKLDNN_CPU_RUNTIME STREQUAL "TBB")
5353
SET(Threading_cmake_included TRUE)
5454

5555
SET(DNNL_CPU_THREADING_RUNTIME ${MKLDNN_CPU_RUNTIME})
56-
INCLUDE_DIRECTORIES(${TBB_INCLUDE_DIRS})
56+
INCLUDE_DIRECTORIES(${TBB_INCLUDE_DIR})
5757
LIST(APPEND EXTRA_SHARED_LIBS TBB::tbb)
5858
ELSE()
5959
MESSAGE(FATAL_ERROR "MKLDNN_CPU_RUNTIME is set to TBB but TBB is not used")
6060
ENDIF()
6161
ENDIF()
6262
MESSAGE(STATUS "MKLDNN_CPU_RUNTIME = ${MKLDNN_CPU_RUNTIME}")
6363

64-
SET(MKLDNN_BUILD_TESTS FALSE CACHE BOOL "" FORCE)
65-
SET(MKLDNN_BUILD_EXAMPLES FALSE CACHE BOOL "" FORCE)
66-
SET(MKLDNN_LIBRARY_TYPE STATIC CACHE STRING "" FORCE)
64+
SET(MKLDNN_CPU_RUNTIME ${MKLDNN_CPU_RUNTIME} CACHE STRING "" FORCE)
65+
SET(DNNL_BUILD_TESTS FALSE CACHE BOOL "" FORCE)
66+
SET(DNNL_BUILD_EXAMPLES FALSE CACHE BOOL "" FORCE)
67+
SET(DNNL_LIBRARY_TYPE STATIC CACHE STRING "" FORCE)
6768
SET(DNNL_ENABLE_PRIMITIVE_CACHE TRUE CACHE BOOL "" FORCE)
6869
IF(MKLDNN_USE_NATIVE_ARCH) # Disable HostOpts in MKLDNN unless MKLDNN_USE_NATIVE_ARCH is set.
69-
SET(MKLDNN_ARCH_OPT_FLAGS "HostOpts" CACHE STRING "" FORCE)
70+
SET(DNNL_ARCH_OPT_FLAGS "HostOpts" CACHE STRING "" FORCE)
7071
ELSE()
7172
IF(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
7273
IF(CPU_INTEL)
73-
SET(MKLDNN_ARCH_OPT_FLAGS "-msse4" CACHE STRING "" FORCE)
74+
SET(DNNL_ARCH_OPT_FLAGS "-msse4" CACHE STRING "" FORCE)
7475
ENDIF()
7576
ELSE()
76-
SET(MKLDNN_ARCH_OPT_FLAGS "" CACHE STRING "" FORCE)
77+
SET(DNNL_ARCH_OPT_FLAGS "" CACHE STRING "" FORCE)
7778
ENDIF()
7879
ENDIF()
7980

third_party/mkl-dnn.BUILD

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,34 @@ _DNNL_RUNTIME_OMP = {
99
"#cmakedefine DNNL_WITH_SYCL": "/* #undef DNNL_WITH_SYCL */",
1010
"#cmakedefine DNNL_WITH_LEVEL_ZERO": "/* #undef DNNL_WITH_LEVEL_ZERO */",
1111
"#cmakedefine DNNL_SYCL_CUDA": "/* #undef DNNL_SYCL_CUDA */",
12+
"#cmakedefine DNNL_ENABLE_STACK_CHECKER": "#undef DNNL_ENABLE_STACK_CHECKER",
13+
"#cmakedefine01 BUILD_TRAINING": "#define BUILD_TRAINING 1",
14+
"#cmakedefine01 BUILD_INFERENCE": "#define BUILD_INFERENCE 0",
15+
"#cmakedefine01 BUILD_PRIMITIVE_ALL": "#define BUILD_PRIMITIVE_ALL 1",
16+
"#cmakedefine01 BUILD_BATCH_NORMALIZATION": "#define BUILD_BATCH_NORMALIZATION 0",
17+
"#cmakedefine01 BUILD_BINARY": "#define BUILD_BINARY 0",
18+
"#cmakedefine01 BUILD_CONCAT": "#define BUILD_CONCAT 0",
19+
"#cmakedefine01 BUILD_CONVOLUTION": "#define BUILD_CONVOLUTION 0",
20+
"#cmakedefine01 BUILD_DECONVOLUTION": "#define BUILD_DECONVOLUTION 0",
21+
"#cmakedefine01 BUILD_ELTWISE": "#define BUILD_ELTWISE 0",
22+
"#cmakedefine01 BUILD_INNER_PRODUCT": "#define BUILD_INNER_PRODUCT 0",
23+
"#cmakedefine01 BUILD_LAYER_NORMALIZATION": "#define BUILD_LAYER_NORMALIZATION 0",
24+
"#cmakedefine01 BUILD_LRN": "#define BUILD_LRN 0",
25+
"#cmakedefine01 BUILD_MATMUL": "#define BUILD_MATMUL 0",
26+
"#cmakedefine01 BUILD_POOLING": "#define BUILD_POOLING 0",
27+
"#cmakedefine01 BUILD_PRELU": "#define BUILD_PRELU 0",
28+
"#cmakedefine01 BUILD_REDUCTION": "#define BUILD_REDUCTION 0",
29+
"#cmakedefine01 BUILD_REORDER": "#define BUILD_REORDER 0",
30+
"#cmakedefine01 BUILD_RESAMPLING": "#define BUILD_RESAMPLING 0",
31+
"#cmakedefine01 BUILD_RNN": "#define BUILD_RNN 0",
32+
"#cmakedefine01 BUILD_SHUFFLE": "#define BUILD_SHUFFLE 0",
33+
"#cmakedefine01 BUILD_SOFTMAX": "#define BUILD_SOFTMAX 0",
34+
"#cmakedefine01 BUILD_SUM": "#define BUILD_SUM 0",
35+
"#cmakedefine01 BUILD_PRIMITIVE_CPU_ISA_ALL": "#define BUILD_PRIMITIVE_CPU_ISA_ALL 1",
36+
"#cmakedefine01 BUILD_SSE41": "#define BUILD_SSE41 0",
37+
"#cmakedefine01 BUILD_AVX2": "#define BUILD_AVX2 0",
38+
"#cmakedefine01 BUILD_AVX512": "#define BUILD_AVX512 0",
39+
"#cmakedefine01 BUILD_AMX": "#define BUILD_AMX 0",
1240
}
1341

1442
template_rule(
@@ -17,9 +45,9 @@ template_rule(
1745
out = "third_party/oneDNN/include/oneapi/dnnl/dnnl_version.h",
1846
substitutions = {
1947
"@DNNL_VERSION_MAJOR@": "2",
20-
"@DNNL_VERSION_MINOR@": "3",
21-
"@DNNL_VERSION_PATCH@": "3",
22-
"@DNNL_VERSION_HASH@": "f40443c413429c29570acd6cf5e3d1343cf647b4",
48+
"@DNNL_VERSION_MINOR@": "5",
49+
"@DNNL_VERSION_PATCH@": "2",
50+
"@DNNL_VERSION_HASH@": "a9302535553c73243c632ad3c4c80beec3d19a1e",
2351
},
2452
)
2553

0 commit comments

Comments
 (0)