oneDNN patch

This commit is contained in:
baihuawei 2022-01-12 15:44:27 +08:00
parent 67e843ec7f
commit 3766a9cd06
2 changed files with 21 additions and 0 deletions

View File

@ -21,6 +21,7 @@ else()
LIBS dnnl mkldnn LIBS dnnl mkldnn
URL ${REQ_URL} URL ${REQ_URL}
MD5 ${MD5} MD5 ${MD5}
PATCHES ${CMAKE_SOURCE_DIR}/third_party/patch/onednn/0001-fix-user-threadpool-bug.patch
CMAKE_OPTION -DDNNL_ARCH_OPT_FLAGS='' -DDNNL_BUILD_EXAMPLES=OFF -DDNNL_BUILD_TESTS=OFF CMAKE_OPTION -DDNNL_ARCH_OPT_FLAGS='' -DDNNL_BUILD_EXAMPLES=OFF -DDNNL_BUILD_TESTS=OFF
-DDNNL_ENABLE_CONCURRENT_EXEC=ON) -DDNNL_ENABLE_CONCURRENT_EXEC=ON)
endif() endif()

View File

@ -0,0 +1,20 @@
diff --git a/src/common/dnnl_thread.hpp b/src/common/dnnl_thread.hpp
index 342bc3b00..0b9190f9c 100644
--- a/src/common/dnnl_thread.hpp
+++ b/src/common/dnnl_thread.hpp
@@ -104,10 +104,11 @@ inline int dnnl_get_max_threads() {
def_max_threads
= (int)dnnl::impl::cpu::platform::get_max_threads_to_use();
assert(def_max_threads > 0);
- // Use the default value if the threadpool-provided is outside the range
- // [1, def_max_threads]
- return tp ? std::min(std::max(1, tp->get_num_threads()), def_max_threads)
- : def_max_threads;
+
+ // Make user responsible for number of threads provided at execution time.
+ // This relates to the fact that the library may identify `def_max_threads`
+ // incorrectly for a platform.
+ return tp ? std::max(1, tp->get_num_threads()) : def_max_threads;
}
inline int dnnl_in_parallel() {
using namespace dnnl::impl::threadpool_utils;