summaryrefslogtreecommitdiff
path: root/dev-libs/oneDNN
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2024-02-16 23:37:06 +0000
committerV3n3RiX <venerix@koprulu.sector>2024-02-16 23:37:06 +0000
commitd228f661892a9e55a86f00c2c14625490631d797 (patch)
tree1ff5297945a5544ca5b30a9206eb788ab4c431d7 /dev-libs/oneDNN
parent3b00f2d2f95f5d6ff01e71259eb94fa714a92232 (diff)
gentoo auto-resync : 16:02:2024 - 23:37:06
Diffstat (limited to 'dev-libs/oneDNN')
-rw-r--r--dev-libs/oneDNN/Manifest4
-rw-r--r--dev-libs/oneDNN/oneDNN-3.3.3-r1.ebuild (renamed from dev-libs/oneDNN/oneDNN-3.3.3.ebuild)76
-rw-r--r--dev-libs/oneDNN/oneDNN-3.3.4.ebuild134
3 files changed, 187 insertions, 27 deletions
diff --git a/dev-libs/oneDNN/Manifest b/dev-libs/oneDNN/Manifest
index 980ae8b279fd..9fc6954eff85 100644
--- a/dev-libs/oneDNN/Manifest
+++ b/dev-libs/oneDNN/Manifest
@@ -1,4 +1,6 @@
AUX oneDNN-3.3.3-include-cstdint.patch 384 BLAKE2B dd958da1fbb85ebb4946025e9dc53f1263f0e6da06add1a3689bed951f6eeebbdc2f925961c04f3f97d3ad458dcd0819154023f74558f12c9470e767cfa77220 SHA512 e03ed31bca57ffa7f1c8d672a120e0411d41e211435964f5ef751bf22791fc438aa282c68255dd88e7aeb3396d6ab0c77e616d8a16fa1c65f6c8c60d8fc3ff01
DIST oneDNN-3.3.3.tar.gz 11577369 BLAKE2B 85df74235d70d30d69ebb1702dcb328466d38046b37f4078b1d6880c7cbe079d095e53e5c9e2f0f77daca057cae62e661ac1bf919e8f128cf9c76a847dc0425d SHA512 bb4a6b33b3191b9e517a321dd089b7debb528dd2d4be48f52626308fe0e1dbea3fa6149fd9debe6aa23f11224ac80e4d3ee1e251d2007faf9bcc262bb895de71
-EBUILD oneDNN-3.3.3.ebuild 3000 BLAKE2B d0bd32d0bd563bd1e1f44e3e625a6d0e34e45f14f96f9a50999ef35ded395a1a07a97165c521bdab3ef5d668a1d867b1ac464ee1b349a8d5fd6e1d856fb5b051 SHA512 54b405d620aca298ce5135a677b5e0db4f43b59e51d8e98c1f19e2ffa9dff7a5083aeb0bf7c73e2bddc37e9531bde054403f07228902eda0c0440ab9c6d3100d
+DIST oneDNN-3.3.4.tar.gz 11577725 BLAKE2B abfcf14f8f7ade2341004d3afdb2879814b50edb76dcc677f0c97aa061e3f5c958a8810fb3eb90926c7dc5d007406daf7b73e9ce660f8c0094a49338e9255f8c SHA512 ff31f3f6b59529aad47d5a8154572aa8d7e8267c4b8150aa32eeac7baa378e1dbfdc1adc6d503ebf1bd132bc09446019abf80e5dd8b54bd6aebfb08b7fb6b066
+EBUILD oneDNN-3.3.3-r1.ebuild 3359 BLAKE2B 024db5675c0447cea91c260cabd06b6847ad21607134ac213f5d2cf5458eb10721f9a97f59509bc69cf20b12b04dffe27d70484560711921ecf9b79faeb236f1 SHA512 52f542c8fe049bb35e4aed3f1c196786002be9eae3ae30030cb2d2be663ce1faac59abcc2a9b20daed92efeb1c4055768e68a32aae66e12aa46909548a9b2760
+EBUILD oneDNN-3.3.4.ebuild 3359 BLAKE2B 024db5675c0447cea91c260cabd06b6847ad21607134ac213f5d2cf5458eb10721f9a97f59509bc69cf20b12b04dffe27d70484560711921ecf9b79faeb236f1 SHA512 52f542c8fe049bb35e4aed3f1c196786002be9eae3ae30030cb2d2be663ce1faac59abcc2a9b20daed92efeb1c4055768e68a32aae66e12aa46909548a9b2760
MISC metadata.xml 777 BLAKE2B 33c65c97e0c8132e315aa389c395407e8985fbe1607222f2affb04534c33e4df14776d90f3293fc651d7892f703cc8eff5803d075291c979bcd828aa51ab1778 SHA512 9b0c2354f69d0e2656bba2995fb956f16d6fad65887f240b670548d244074e7fe92bff73afd379e9d9a208c39ac7da01de97463aa65c37dd51aded32228aafd3
diff --git a/dev-libs/oneDNN/oneDNN-3.3.3.ebuild b/dev-libs/oneDNN/oneDNN-3.3.3-r1.ebuild
index 6ce3ea96e786..f67b93c73e22 100644
--- a/dev-libs/oneDNN/oneDNN-3.3.3.ebuild
+++ b/dev-libs/oneDNN/oneDNN-3.3.3-r1.ebuild
@@ -11,7 +11,7 @@ DOCS_DIR="${WORKDIR}/${P}_build"
CMAKE_REMOVE_MODULES_LIST=( none )
# There is additional sphinx documentation but we are missing dependency doxyrest.
-inherit cmake docs
+inherit cmake docs multiprocessing toolchain-funcs
DESCRIPTION="oneAPI Deep Neural Network Library"
HOMEPAGE="https://github.com/oneapi-src/oneDNN"
@@ -21,7 +21,7 @@ LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="~amd64"
-IUSE="test cpu_flags_x86_avx512f cpu_flags_x86_avx2 cpu_flags_x86_sse4_1 mkl cblas static-libs"
+IUSE="test mkl cblas static-libs +openmp"
RESTRICT="!test? ( test )"
@@ -30,15 +30,37 @@ DEPEND="
cblas? ( !mkl? ( virtual/cblas ) )
"
RDEPEND="${DEPEND}"
+BDEPEND="
+ openmp? (
+ || (
+ sys-devel/gcc[openmp]
+ sys-devel/clang-runtime[openmp]
+ )
+ )
+"
PATCHES=(
"${FILESDIR}/${PN}-3.3.3-include-cstdint.patch"
)
+pkg_pretend() {
+ [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
+}
+
+pkg_setup() {
+ [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
+}
+
src_configure() {
+ if ! use openmp ; then
+ ewarn "WARNING: oneDNN is being built with sequential runtime."
+ ewarn "Proceeding might lead to highly sub-optimal performance."
+ ewarn "Conside enabling \"openmp\" USE flag."
+ fi
+
local mycmakeargs=(
-DDNNL_LIBRARY_TYPE=$(usex static-libs STATIC SHARED)
- -DDNNL_CPU_RUNTIME=OMP
+ -DDNNL_CPU_RUNTIME=$(usex openmp OMP SEQ)
-DDNNL_GPU_RUNTIME=NONE
-DDNNL_BUILD_EXAMPLES=OFF
-DDNNL_BUILD_TESTS="$(usex test)"
@@ -60,33 +82,20 @@ src_configure() {
-DONEDNN_BUILD_GRAPH=ON
-DONEDNN_ENABLE_GRAPH_DUMP=OFF
-DONEDNN_EXPERIMENTAL_GRAPH_COMPILER_BACKEND=OFF
+ -DDNNL_ENABLE_PRIMITIVE_CPU_ISA=ALL
+ -DONEDNN_ENABLE_GEMM_KERNELS_ISA=ALL
-Wno-dev
)
- local isa="ALL"
-
- if use cpu_flags_x86_avx512f ; then
- isa="AVX512"
- elif use cpu_flags_x86_avx2; then
- isa="AVX2"
- elif use cpu_flags_x86_sse4_1; then
- isa="SSE41"
- else
- ewarn "WARNING: oneDNN is being built with for all ISA."
- ewarn "These may cause runtime issues CPUs that are not supported by oneDNN."
- ewarn ""
- ewarn "To configure oneDNN with ISA that is optimal for your CPU,"
- ewarn "set CPU_FLAGS_X86 in your make.conf, and re-emerge oneDNN."
- ewarn ""
- ewarn "See the list of supported CPUs at"
- ewarn "https://github.com/oneapi-src/oneDNN?tab=readme-ov-file#system-requirements"
- ewarn "For CPU_FLAGS_X86 documentation visit https://wiki.gentoo.org/wiki/CPU_FLAGS_*"
- fi
-
- mycmakeargs+=( -DDNNL_ENABLE_PRIMITIVE_CPU_ISA="${isa}" -DONEDNN_ENABLE_GEMM_KERNELS_ISA="${isa}" )
-
if use mkl ; then
- source /opt/intel/oneapi/mkl/latest/env/vars.sh
+ if [ -e "${EPREFIX}"/opt/intel/oneapi/mkl/latest/env/vars.sh ]; then
+ source "${EPREFIX}"/opt/intel/oneapi/mkl/latest/env/vars.sh || die
+ else
+ # bug 923109: sci-libs/mkl-2020.4.304 has no vars.sh, configure it manually
+ export CPATH="${EPREFIX}"/usr/include/mkl
+ export MKLROOT="${EPREFIX}"/usr
+ fi
+
mycmakeargs+=( -DDNNL_BLAS_VENDOR=MKL )
elif use cblas; then
mycmakeargs+=( -DDNNL_BLAS_VENDOR=ANY -DBLA_VENDOR=Generic -DBLAS_LIBRARIES=-lcblas )
@@ -108,3 +117,18 @@ src_install() {
# Correct docdir
mv "${ED}/usr/share/doc/dnnl"* "${ED}/usr/share/doc/${PF}" || die
}
+
+src_test() {
+ local CMAKE_SKIP_TESTS=(
+ # Crashes in sandbox (see #922886 and #923013);
+ # waits for sys-apps/sandbox-2.39 release and stabilization.
+ test_graph_unit_cpu
+ )
+
+ if use openmp ; then
+ # Don't run tests in parallel, each test is already parallelized
+ OMP_NUM_THREADS=$(makeopts_jobs) cmake_src_test -j1
+ else
+ cmake_src_test
+ fi
+}
diff --git a/dev-libs/oneDNN/oneDNN-3.3.4.ebuild b/dev-libs/oneDNN/oneDNN-3.3.4.ebuild
new file mode 100644
index 000000000000..f67b93c73e22
--- /dev/null
+++ b/dev-libs/oneDNN/oneDNN-3.3.4.ebuild
@@ -0,0 +1,134 @@
+# Copyright 2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DOCS_BUILDER="doxygen"
+DOCS_DIR="${WORKDIR}/${P}_build"
+
+# oneDNN has its own FindBLAS.cmake file to find MKL (in a non-standard way).
+# Removing of CMake modules is disabled.
+CMAKE_REMOVE_MODULES_LIST=( none )
+
+# There is additional sphinx documentation but we are missing dependency doxyrest.
+inherit cmake docs multiprocessing toolchain-funcs
+
+DESCRIPTION="oneAPI Deep Neural Network Library"
+HOMEPAGE="https://github.com/oneapi-src/oneDNN"
+SRC_URI="https://github.com/oneapi-src/oneDNN/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+
+IUSE="test mkl cblas static-libs +openmp"
+
+RESTRICT="!test? ( test )"
+
+DEPEND="
+ mkl? ( sci-libs/mkl )
+ cblas? ( !mkl? ( virtual/cblas ) )
+"
+RDEPEND="${DEPEND}"
+BDEPEND="
+ openmp? (
+ || (
+ sys-devel/gcc[openmp]
+ sys-devel/clang-runtime[openmp]
+ )
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-3.3.3-include-cstdint.patch"
+)
+
+pkg_pretend() {
+ [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
+}
+
+pkg_setup() {
+ [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
+}
+
+src_configure() {
+ if ! use openmp ; then
+ ewarn "WARNING: oneDNN is being built with sequential runtime."
+ ewarn "Proceeding might lead to highly sub-optimal performance."
+ ewarn "Conside enabling \"openmp\" USE flag."
+ fi
+
+ local mycmakeargs=(
+ -DDNNL_LIBRARY_TYPE=$(usex static-libs STATIC SHARED)
+ -DDNNL_CPU_RUNTIME=$(usex openmp OMP SEQ)
+ -DDNNL_GPU_RUNTIME=NONE
+ -DDNNL_BUILD_EXAMPLES=OFF
+ -DDNNL_BUILD_TESTS="$(usex test)"
+ -DDNNL_ENABLE_CONCURRENT_EXEC=OFF
+ -DDNNL_ENABLE_JIT_PROFILING=ON
+ -DDNNL_ENABLE_ITT_TASKS=ON
+ -DDNNL_ENABLE_PRIMITIVE_CACHE=ON
+ -DDNNL_ENABLE_MAX_CPU_ISA=ON
+ -DDNNL_ENABLE_CPU_ISA_HINTS=ON
+ -DDNNL_ENABLE_WORKLOAD=TRAINING
+ -DDNNL_ENABLE_PRIMITIVE=ALL
+ -DDNNL_ENABLE_PRIMITIVE_GPU_ISA=ALL
+ -DDNNL_EXPERIMENTAL=OFF
+ -DDNNL_VERBOSE=ON
+ -DDNNL_DEV_MODE=OFF
+ -DDNNL_AARCH64_USE_ACL=OFF
+ -DDNNL_GPU_VENDOR=INTEL
+ -DDNNL_LIBRARY_NAME=dnnl
+ -DONEDNN_BUILD_GRAPH=ON
+ -DONEDNN_ENABLE_GRAPH_DUMP=OFF
+ -DONEDNN_EXPERIMENTAL_GRAPH_COMPILER_BACKEND=OFF
+ -DDNNL_ENABLE_PRIMITIVE_CPU_ISA=ALL
+ -DONEDNN_ENABLE_GEMM_KERNELS_ISA=ALL
+ -Wno-dev
+ )
+
+ if use mkl ; then
+ if [ -e "${EPREFIX}"/opt/intel/oneapi/mkl/latest/env/vars.sh ]; then
+ source "${EPREFIX}"/opt/intel/oneapi/mkl/latest/env/vars.sh || die
+ else
+ # bug 923109: sci-libs/mkl-2020.4.304 has no vars.sh, configure it manually
+ export CPATH="${EPREFIX}"/usr/include/mkl
+ export MKLROOT="${EPREFIX}"/usr
+ fi
+
+ mycmakeargs+=( -DDNNL_BLAS_VENDOR=MKL )
+ elif use cblas; then
+ mycmakeargs+=( -DDNNL_BLAS_VENDOR=ANY -DBLA_VENDOR=Generic -DBLAS_LIBRARIES=-lcblas )
+ else
+ mycmakeargs+=( -DDNNL_BLAS_VENDOR=NONE )
+ fi
+
+ cmake_src_configure
+}
+
+src_compile() {
+ cmake_src_compile
+ docs_compile
+}
+
+src_install() {
+ cmake_src_install
+
+ # Correct docdir
+ mv "${ED}/usr/share/doc/dnnl"* "${ED}/usr/share/doc/${PF}" || die
+}
+
+src_test() {
+ local CMAKE_SKIP_TESTS=(
+ # Crashes in sandbox (see #922886 and #923013);
+ # waits for sys-apps/sandbox-2.39 release and stabilization.
+ test_graph_unit_cpu
+ )
+
+ if use openmp ; then
+ # Don't run tests in parallel, each test is already parallelized
+ OMP_NUM_THREADS=$(makeopts_jobs) cmake_src_test -j1
+ else
+ cmake_src_test
+ fi
+}