commit:     21e4ec1e86feffb18c6795c5c9548c9a56d4e7c2
Author:     Alfredo Tupone <tupone <AT> gentoo <DOT> org>
AuthorDate: Fri Apr 25 07:53:22 2025 +0000
Commit:     Alfredo Tupone <tupone <AT> gentoo <DOT> org>
CommitDate: Fri Apr 25 07:53:22 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=21e4ec1e

sci-ml/oneDNN: add 3.7.1

Signed-off-by: Alfredo Tupone <tupone <AT> gentoo.org>

 sci-ml/oneDNN/Manifest            |   1 +
 sci-ml/oneDNN/oneDNN-3.7.1.ebuild | 134 ++++++++++++++++++++++++++++++++++++++
 2 files changed, 135 insertions(+)

diff --git a/sci-ml/oneDNN/Manifest b/sci-ml/oneDNN/Manifest
index b23ffdd083aa..b562c18060d0 100644
--- a/sci-ml/oneDNN/Manifest
+++ b/sci-ml/oneDNN/Manifest
@@ -1,2 +1,3 @@
 DIST oneDNN-3.5.3.tar.gz 13190748 BLAKE2B 
04ad0a6c6edeb1d356397bcd25cb77aaa2be00ea8eed343cd088e400b10fb3d7f7658ed35797f16dbe8434fb9a2bf2c715def7a8e749271ea2c911957f9e98fc
 SHA512 
251da59164c102a6dd3c97e92aef58a879930c0def6e9fe6e43e68e1316ed0c9844796e69eecebbde12085900bfcda6c1ab30db6df24ba9826883171c87a964d
 DIST oneDNN-3.6.2.tar.gz 13788211 BLAKE2B 
bc6039d24b33ac5a3f362d161b7dddbeb3f6b2b865175a1eecf66bb199d641d017b4036f7cfa18740302c96d06b2ed8d210de922136924edc309434731b16f36
 SHA512 
b45b6ae398ac33fdb79415395865bc34e0af35995015154df82a434bf5dc7a6ae126fb52cefc264b6abab04b2da5d60f6325f47052fa9430650c77dd54e612f6
+DIST oneDNN-3.7.1.tar.gz 14097902 BLAKE2B 
0f6359e8ed00f5c58bd588576a549f4c88eb18b8734454c8435fb7a9a678abdaa17bc7fcb74a19384f6b4a63489d0464a0f97546c516b0b1f3b6d39557554432
 SHA512 
f7c4fea4ea16058e3197b756a2c879346698ee1189572ff0eec28e88ad3edb539c5dfcca18c36941de762b25e64f4610a40c391287294affe24ec18f3ebb4060

diff --git a/sci-ml/oneDNN/oneDNN-3.7.1.ebuild 
b/sci-ml/oneDNN/oneDNN-3.7.1.ebuild
new file mode 100644
index 000000000000..a76d3055d225
--- /dev/null
+++ b/sci-ml/oneDNN/oneDNN-3.7.1.ebuild
@@ -0,0 +1,134 @@
+# Copyright 2024-2025 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" # Some test are very long to execute
+
+DEPEND="
+       mkl? ( sci-libs/mkl )
+       cblas? ( !mkl? ( virtual/cblas ) )
+"
+RDEPEND="${DEPEND}"
+BDEPEND="
+       openmp? (
+               || (
+                       sys-devel/gcc[openmp]
+                       llvm-core/clang-runtime[openmp]
+               )
+       )
+"
+
+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_EXPERIMENTAL_UKERNEL=ON
+               -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_interface
+               test_graph_unit_dnnl_layout_propagator
+               test_graph_unit_dnnl_op_executable
+               test_graph_unit_utils
+       )
+
+       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
+}

Reply via email to