svn commit: r554310 - in head/math/onednn: . files
Yuri Victorovich
yuri at FreeBSD.org
Fri Nov 6 18:51:37 UTC 2020
Author: yuri
Date: Fri Nov 6 18:51:36 2020
New Revision: 554310
URL: https://svnweb.freebsd.org/changeset/ports/554310
Log:
math/onednn: Add options for SIMD optimization level; Use standard BUILD_TESTING cmake variable instead of BUILD_TESTS
Modified:
head/math/onednn/Makefile
head/math/onednn/files/patch-CMakeLists.txt
head/math/onednn/files/patch-cmake_platform.cmake
Modified: head/math/onednn/Makefile
==============================================================================
--- head/math/onednn/Makefile Fri Nov 6 18:38:46 2020 (r554309)
+++ head/math/onednn/Makefile Fri Nov 6 18:51:36 2020 (r554310)
@@ -3,7 +3,7 @@
PORTNAME= onednn
DISTVERSIONPREFIX= v
DISTVERSION= 1.7
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= math # machine-learning
MAINTAINER= yuri at FreeBSD.org
@@ -23,30 +23,39 @@ GH_ACCOUNT= oneapi-src
GH_PROJECT= oneDNN
USE_LDCONFIG= yes
+CMAKE_OFF= BUILD_TESTING
+
OPTIONS_DEFINE= OPENMP
-OPTIONS_DEFAULT= OPENMP
+OPTIONS_DEFAULT= OPENMP SIMD_DEFAULT
+OPTIONS_SINGLE= SIMD
+OPTIONS_SINGLE_SIMD= SIMD_DEFAULT SIMD_NATIVE
OPENMP_CMAKE_BOOL= USE_OPENMP
OPENMP_BROKEN_OFF= still requires omp.h, see https://github.com/intel/mkl-dnn/issues/581
-CXXFLAGS_amd64= -msse4.1
-CXXFLAGS_i386= -msse4.1
+SIMD_DEFAULT_DESC= Default, no non-default SIMD instructions are used
-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
+SIMD_NATIVE_DESC= Optimize for this CPU
+SIMD_NATIVE_CXXFLAGS= -march=native
-.include <bsd.port.options.mk>
+SIMD_SSE41_DESC= Use SSE4.1 instructions
+SIMD_SSE41_CXXFLAGS= -msse4.1
-.if ${ARCH} != aarch64 && ${ARCH} != amd64 && ${ARCH} != powerpc64
-CMAKE_ARGS+= -DDNNL_TARGET_ARCH:STRING="GENERIC"
+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
+
post-install:
@${RM} -r ${STAGEDIR}${PREFIX}/share/doc
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_TESTS=ON ${CMAKE_SOURCE_PATH} && \
+ ${SETENV} ${CONFIGURE_ENV} ${CMAKE_BIN} ${CMAKE_ARGS} -DBUILD_TESTING=ON ${CMAKE_SOURCE_PATH} && \
${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_ARGS} ${ALL_TARGET} && \
${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_ARGS} test
Modified: head/math/onednn/files/patch-CMakeLists.txt
==============================================================================
--- head/math/onednn/files/patch-CMakeLists.txt Fri Nov 6 18:38:46 2020 (r554309)
+++ head/math/onednn/files/patch-CMakeLists.txt Fri Nov 6 18:51:36 2020 (r554310)
@@ -20,7 +20,7 @@
+if(BUILD_EXAMPLES)
+ add_subdirectory(examples)
+endif()
-+if(BUILD_TESTS)
++if(BUILD_TESTING)
+ add_subdirectory(tests)
+endif()
Modified: head/math/onednn/files/patch-cmake_platform.cmake
==============================================================================
--- head/math/onednn/files/patch-cmake_platform.cmake Fri Nov 6 18:38:46 2020 (r554309)
+++ head/math/onednn/files/patch-cmake_platform.cmake Fri Nov 6 18:51:36 2020 (r554310)
@@ -27,8 +27,28 @@
set(DEF_ARCH_OPT_FLAGS "-msse4.1")
endif()
# Clang cannot vectorize some loops with #pragma omp simd and gets
-@@ -203,7 +203,7 @@ elseif(UNIX OR MINGW)
- if (CMAKE_SYSTEM_PROCESSOR STREQUAL CMAKE_HOST_SYSTEM_PROCESSOR)
+@@ -186,24 +186,24 @@ elseif(UNIX OR MINGW)
+ if(DNNL_TARGET_ARCH STREQUAL "AARCH64")
+ set(DEF_ARCH_OPT_FLAGS "-O3")
+ # For native compilation tune for the host processor
+- if (CMAKE_SYSTEM_PROCESSOR STREQUAL CMAKE_HOST_SYSTEM_PROCESSOR)
++ if (FALSE AND CMAKE_SYSTEM_PROCESSOR STREQUAL CMAKE_HOST_SYSTEM_PROCESSOR)
+ append(DEF_ARCH_OPT_FLAGS "-mcpu=native")
+ endif()
+ elseif(DNNL_TARGET_ARCH STREQUAL "PPC64")
+ set(DEF_ARCH_OPT_FLAGS "-O3")
+ # 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)
++ if (FALSE AND CMAKE_SYSTEM_PROCESSOR STREQUAL CMAKE_HOST_SYSTEM_PROCESSOR)
+ append(DEF_ARCH_OPT_FLAGS "-mcpu=native")
+ endif()
+ elseif(DNNL_TARGET_ARCH STREQUAL "S390X")
+ set(DEF_ARCH_OPT_FLAGS "-O3")
+ # 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)
++ if (FALSE AND CMAKE_SYSTEM_PROCESSOR STREQUAL CMAKE_HOST_SYSTEM_PROCESSOR)
append(DEF_ARCH_OPT_FLAGS "-march=native")
endif()
- elseif(DNNL_TARGET_ARCH STREQUAL "X64")
More information about the svn-ports-all
mailing list