From 2b3dd8b6d5dbc1de22f1314b3732fe8ca128b76f Mon Sep 17 00:00:00 2001 From: Yuri Victorovich Date: Sat, 7 Nov 2020 09:00:44 +0000 Subject: [PATCH] math/onednn: Add CPU_RUNTIME options; Change cmake variables to defined cmake optons. --- math/onednn/Makefile | 36 +++++++++++++++++++------- math/onednn/files/patch-CMakeLists.txt | 28 -------------------- 2 files changed, 26 insertions(+), 38 deletions(-) delete mode 100644 math/onednn/files/patch-CMakeLists.txt diff --git a/math/onednn/Makefile b/math/onednn/Makefile index 13d581277ef4..0bb7bf2615b5 100644 --- a/math/onednn/Makefile +++ b/math/onednn/Makefile @@ -3,7 +3,7 @@ PORTNAME= onednn DISTVERSIONPREFIX= v DISTVERSION= 1.7 -PORTREVISION= 2 +PORTREVISION= 3 CATEGORIES= math # machine-learning MAINTAINER= yuri@FreeBSD.org @@ -23,15 +23,18 @@ GH_ACCOUNT= oneapi-src GH_PROJECT= oneDNN USE_LDCONFIG= yes -CMAKE_OFF= BUILD_TESTING +CMAKE_OFF= DNNL_BUILD_TESTS DNNL_BUILD_EXAMPLES -OPTIONS_DEFINE= OPENMP -OPTIONS_DEFAULT= OPENMP SIMD_DEFAULT -OPTIONS_SINGLE= SIMD -OPTIONS_SINGLE_SIMD= SIMD_DEFAULT SIMD_NATIVE +OPTIONS_DEFAULT= SIMD_DEFAULT OPENMP +OPTIONS_SINGLE= SIMD CPU_RUNTIME +OPTIONS_SINGLE_SIMD= SIMD_DEFAULT SIMD_NATIVE +OPTIONS_SINGLE_CPU_RUNTIME= OPENMP TBB SEQ THREADPOOL_STANDALONE THREADPOOL_EIGEN THREADPOOL_TBB +CPU_RUNTIME_DESC= Threading runtime for CPU engines -OPENMP_CMAKE_BOOL= USE_OPENMP -OPENMP_BROKEN_OFF= still requires omp.h, see https://github.com/intel/mkl-dnn/issues/581 +OPENMP_CMAKE_ON= -DDNNL_CPU_RUNTIME=OMP + +SEQ_DESC= Sequential (no parallelism) +SEQ_CMAKE_ON= -DDNNL_CPU_RUNTIME=SEQ SIMD_DEFAULT_DESC= Default, no non-default SIMD instructions are used @@ -41,13 +44,26 @@ SIMD_NATIVE_CXXFLAGS= -march=native SIMD_SSE41_DESC= Use SSE4.1 instructions SIMD_SSE41_CXXFLAGS= -msse4.1 +TBB_DESC= Threading Building Blocks +TBB_CMAKE_ON= -DDNNL_CPU_RUNTIME=TBB +TBB_BROKEN= https://github.com/oneapi-src/oneDNN/issues/876 + +THREADPOOL_STANDALONE_DESC= Threadpool based on the standalone implementation +THREADPOOL_STANDALONE_CMAKE_ON= -DDNNL_CPU_RUNTIME=THREADPOOL -D_DNNL_TEST_THREADPOOL_IMPL=STANDALONE +THREADPOOL_STANDALONE_BROKEN= https://github.com/oneapi-src/oneDNN/issues/877 +THREADPOOL_EIGEN_DESC= Threadpool based on the Eigen implementation +THREADPOOL_EIGEN_CMAKE_ON= -DDNNL_CPU_RUNTIME=THREADPOOL -D_DNNL_TEST_THREADPOOL_IMPL=EIGEN +THREADPOOL_TBB_DESC= Threadpool based on the TBB implementation +THREADPOOL_TBB_CMAKE_ON= -DDNNL_CPU_RUNTIME=THREADPOOL -D_DNNL_TEST_THREADPOOL_IMPL=TBB +THREADPOOL_TBB_BROKEN= https://github.com/oneapi-src/oneDNN/issues/876 + ARCH_LOCAL!= /usr/bin/uname -p # because OPTIONS_SINGLE_SIMD doesn't support per-ARCH values OPTIONS_SINGLE_SIMD_{arch}, like OPTIONS_DEFINE_{arch} .if ${ARCH_LOCAL} == i386 || ${ARCH_LOCAL} == amd64 OPTIONS_SINGLE_SIMD+= SIMD_SSE41 .endif -CXXFLAGS:= ${CXXFLAGS:S/-O2/-O3/} # clang writes wrong binary code when -O2 optimization is used and one testcase is failing, see https://github.com/oneapi-src/oneDNN/issues/873#issuecomment-722778910 +CXXFLAGS:= ${CXXFLAGS:S/-O2/-O3/} # clang writes wrong binary code when -O2 optimization is used and one testcase is failing, see https://bugs.llvm.org/show_bug.cgi?id=48104 post-install: @${RM} -r ${STAGEDIR}${PREFIX}/share/doc @@ -55,7 +71,7 @@ post-install: do-test: # some tests are known to fail: https://github.com/intel/mkl-dnn/issues/350 (the upstream failed to reproduce it and closed the report) @${REINPLACE_CMD} 's| /bin/bash | ${LOCALBASE}/bin/bash |' ${WRKSRC}/tests/CMakeLists.txt @cd ${BUILD_WRKSRC} && \ - ${SETENV} ${CONFIGURE_ENV} ${CMAKE_BIN} ${CMAKE_ARGS} -DBUILD_TESTING=ON ${CMAKE_SOURCE_PATH} && \ + ${SETENV} ${CONFIGURE_ENV} ${CMAKE_BIN} ${CMAKE_ARGS} -DDNNL_BUILD_TESTS=ON ${CMAKE_SOURCE_PATH} && \ ${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_ARGS} ${ALL_TARGET} && \ ${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_ARGS} test diff --git a/math/onednn/files/patch-CMakeLists.txt b/math/onednn/files/patch-CMakeLists.txt deleted file mode 100644 index b5465477d487..000000000000 --- a/math/onednn/files/patch-CMakeLists.txt +++ /dev/null @@ -1,28 +0,0 @@ ---- CMakeLists.txt.orig 2020-10-28 05:50:44 UTC -+++ CMakeLists.txt -@@ -115,7 +115,9 @@ include("cmake/mkldnn_compat.cmake") - - include("cmake/utils.cmake") - include("cmake/options.cmake") --include("cmake/OpenMP.cmake") -+if (USE_OPENMP) -+ include("cmake/OpenMP.cmake") -+endif() - include("cmake/TBB.cmake") - include("cmake/Threadpool.cmake") - include("cmake/OpenCL.cmake") -@@ -160,8 +162,12 @@ include(GNUInstallDirs) - include(CMakePackageConfigHelpers) - - add_subdirectory(src) --add_subdirectory(examples) --add_subdirectory(tests) -+if(BUILD_EXAMPLES) -+ add_subdirectory(examples) -+endif() -+if(BUILD_TESTING) -+ add_subdirectory(tests) -+endif() - - if(DNNL_INSTALL_MODE STREQUAL "BUNDLE") - install(FILES LICENSE DESTINATION ${CMAKE_INSTALL_PREFIX})