summaryrefslogtreecommitdiff
path: root/sci-ml/oneDNN
diff options
context:
space:
mode:
Diffstat (limited to 'sci-ml/oneDNN')
-rw-r--r--sci-ml/oneDNN/Manifest5
-rw-r--r--sci-ml/oneDNN/metadata.xml24
-rw-r--r--sci-ml/oneDNN/oneDNN-3.5.3.ebuild134
-rw-r--r--sci-ml/oneDNN/oneDNN-3.6.2.ebuild134
4 files changed, 297 insertions, 0 deletions
diff --git a/sci-ml/oneDNN/Manifest b/sci-ml/oneDNN/Manifest
new file mode 100644
index 000000000000..8106154b495b
--- /dev/null
+++ b/sci-ml/oneDNN/Manifest
@@ -0,0 +1,5 @@
+DIST oneDNN-3.5.3.tar.gz 13190748 BLAKE2B 04ad0a6c6edeb1d356397bcd25cb77aaa2be00ea8eed343cd088e400b10fb3d7f7658ed35797f16dbe8434fb9a2bf2c715def7a8e749271ea2c911957f9e98fc SHA512 251da59164c102a6dd3c97e92aef58a879930c0def6e9fe6e43e68e1316ed0c9844796e69eecebbde12085900bfcda6c1ab30db6df24ba9826883171c87a964d
+DIST oneDNN-3.6.2.tar.gz 13788211 BLAKE2B bc6039d24b33ac5a3f362d161b7dddbeb3f6b2b865175a1eecf66bb199d641d017b4036f7cfa18740302c96d06b2ed8d210de922136924edc309434731b16f36 SHA512 b45b6ae398ac33fdb79415395865bc34e0af35995015154df82a434bf5dc7a6ae126fb52cefc264b6abab04b2da5d60f6325f47052fa9430650c77dd54e612f6
+EBUILD oneDNN-3.5.3.ebuild 3442 BLAKE2B 053eb20fedef2decd28ae08da95d2fd99a5a35d878e4a5fab947e8a73e0d6d70ff390cec776b6de01ad03647f4bef35057c1df0059edbde2e9f9191ec9a8810c SHA512 1e910f8de84a5fd7f4f82de41cbc89e10eb5014b6ea5205b52c291bad30c383c81cc9ed5125d49a554411eedd596e047dbf020c461a88bd117d303347f048a9c
+EBUILD oneDNN-3.6.2.ebuild 3469 BLAKE2B de447103492dac212cfc55ec81db1ddb2e96855abca1f0fe18f0c1e8f810b2112b3529475010ae8f4e3c54f5efe87c0ed0358ab7acf81632dd6e47c6ccf10cbe SHA512 a6e64a5c0640bb505b6895cb7960223b7cdebcd0a8eb26bfd8fd743a889204bc4fd2a2197808c731ea9522f5d5f89aef90a5367415b78dc081c5198b58722628
+MISC metadata.xml 777 BLAKE2B 33c65c97e0c8132e315aa389c395407e8985fbe1607222f2affb04534c33e4df14776d90f3293fc651d7892f703cc8eff5803d075291c979bcd828aa51ab1778 SHA512 9b0c2354f69d0e2656bba2995fb956f16d6fad65887f240b670548d244074e7fe92bff73afd379e9d9a208c39ac7da01de97463aa65c37dd51aded32228aafd3
diff --git a/sci-ml/oneDNN/metadata.xml b/sci-ml/oneDNN/metadata.xml
new file mode 100644
index 000000000000..1e6efe71ca6a
--- /dev/null
+++ b/sci-ml/oneDNN/metadata.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>tupone@gentoo.org</email>
+ <name>Tupone Alfredo</name>
+ </maintainer>
+ <maintainer type="person">
+ <email>lockalsash@gmail.com</email>
+ <name>Sv. Lockal</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <upstream>
+ <bugs-to>https://github.com/oneapi-src/oneDNN/issues</bugs-to>
+ <remote-id type="github">oneapi-src/oneDNN</remote-id>
+ </upstream>
+ <use>
+ <flag name="mkl">Use sci-libs/mkl for sgemm routines</flag>
+ <flag name="cblas">Use virtual/cblas for sgemm routines</flag>
+ </use>
+</pkgmetadata>
diff --git a/sci-ml/oneDNN/oneDNN-3.5.3.ebuild b/sci-ml/oneDNN/oneDNN-3.5.3.ebuild
new file mode 100644
index 000000000000..8f80ba4e76f9
--- /dev/null
+++ b/sci-ml/oneDNN/oneDNN-3.5.3.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? ( test )"
+
+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
+}
diff --git a/sci-ml/oneDNN/oneDNN-3.6.2.ebuild b/sci-ml/oneDNN/oneDNN-3.6.2.ebuild
new file mode 100644
index 000000000000..a76d3055d225
--- /dev/null
+++ b/sci-ml/oneDNN/oneDNN-3.6.2.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
+}