| 23 |
23 |
|
| 24 |
24 |
IUSE="test mkl cblas static-libs +openmp"
|
| 25 |
25 |
|
| 26 |
|
RESTRICT="!test? ( test )"
|
|
26 |
RESTRICT="test" # Some test are very long to execute
|
| 27 |
27 |
|
| 28 |
28 |
DEPEND="
|
| 29 |
29 |
mkl? ( sci-libs/mkl )
|
| ... | ... | |
| 39 |
39 |
)
|
| 40 |
40 |
"
|
| 41 |
41 |
|
| 42 |
|
PATCHES=(
|
| 43 |
|
"${FILESDIR}"/${PN}-3.6.2-cmake.patch
|
| 44 |
|
)
|
| 45 |
|
|
| 46 |
42 |
pkg_pretend() {
|
| 47 |
43 |
[[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
|
| 48 |
44 |
}
|
| ... | ... | |
| 59 |
55 |
fi
|
| 60 |
56 |
|
| 61 |
57 |
local mycmakeargs=(
|
| 62 |
|
-DDNNL_LIBRARY_TYPE=$(usex static-libs STATIC SHARED)
|
| 63 |
|
-DDNNL_CPU_RUNTIME=$(usex openmp OMP SEQ)
|
| 64 |
|
-DDNNL_GPU_RUNTIME=NONE
|
| 65 |
|
-DDNNL_BUILD_EXAMPLES=OFF
|
| 66 |
|
-DDNNL_BUILD_TESTS="$(usex test)"
|
| 67 |
|
-DDNNL_ENABLE_CONCURRENT_EXEC=OFF
|
| 68 |
|
-DDNNL_ENABLE_JIT_PROFILING=ON
|
| 69 |
|
-DDNNL_ENABLE_ITT_TASKS=ON
|
| 70 |
|
-DDNNL_ENABLE_PRIMITIVE_CACHE=ON
|
| 71 |
|
-DDNNL_ENABLE_MAX_CPU_ISA=ON
|
| 72 |
|
-DDNNL_ENABLE_CPU_ISA_HINTS=ON
|
| 73 |
|
-DDNNL_ENABLE_WORKLOAD=TRAINING
|
| 74 |
|
-DDNNL_ENABLE_PRIMITIVE=ALL
|
| 75 |
|
-DDNNL_ENABLE_PRIMITIVE_GPU_ISA=ALL
|
| 76 |
|
-DDNNL_EXPERIMENTAL=OFF
|
| 77 |
|
-DDNNL_VERBOSE=ON
|
| 78 |
|
-DDNNL_DEV_MODE=OFF
|
| 79 |
|
-DDNNL_AARCH64_USE_ACL=OFF
|
| 80 |
|
-DDNNL_EXPERIMENTAL_UKERNEL=ON
|
| 81 |
|
-DDNNL_GPU_VENDOR=INTEL
|
| 82 |
|
-DDNNL_LIBRARY_NAME=dnnl
|
|
58 |
-DONEDNN_LIBRARY_TYPE=$(usex static-libs STATIC SHARED)
|
|
59 |
-DONEDNN_CPU_RUNTIME=$(usex openmp OMP SEQ)
|
|
60 |
-DONEDNN_GPU_RUNTIME=NONE
|
|
61 |
-DONEDNN_BUILD_EXAMPLES=OFF
|
|
62 |
-DONEDNN_BUILD_TESTS="$(usex test)"
|
|
63 |
-DONEDNN_ENABLE_CONCURRENT_EXEC=OFF
|
|
64 |
-DONEDNN_ENABLE_JIT_PROFILING=ON
|
|
65 |
-DONEDNN_ENABLE_ITT_TASKS=ON
|
|
66 |
-DONEDNN_ENABLE_PRIMITIVE_CACHE=ON
|
|
67 |
-DONEDNN_ENABLE_MAX_CPU_ISA=ON
|
|
68 |
-DONEDNN_ENABLE_CPU_ISA_HINTS=ON
|
|
69 |
-DONEDNN_ENABLE_WORKLOAD=TRAINING
|
|
70 |
-DONEDNN_ENABLE_PRIMITIVE=ALL
|
|
71 |
-DONEDNN_ENABLE_PRIMITIVE_GPU_ISA=ALL
|
|
72 |
-DONEDNN_EXPERIMENTAL=OFF
|
|
73 |
-DONEDNN_VERBOSE=ON
|
|
74 |
-DONEDNN_DEV_MODE=OFF
|
|
75 |
-DONEDNN_AARCH64_USE_ACL=OFF
|
|
76 |
-DONEDNN_EXPERIMENTAL_UKERNEL=ON
|
|
77 |
-DONEDNN_GPU_VENDOR=INTEL
|
|
78 |
-DONEDNN_LIBRARY_NAME=dnnl
|
| 83 |
79 |
-DONEDNN_BUILD_GRAPH=ON
|
| 84 |
80 |
-DONEDNN_ENABLE_GRAPH_DUMP=OFF
|
| 85 |
|
-DONEDNN_EXPERIMENTAL_GRAPH_COMPILER_BACKEND=OFF
|
| 86 |
|
-DDNNL_ENABLE_PRIMITIVE_CPU_ISA=ALL
|
|
81 |
-DONEDNN_ENABLE_PRIMITIVE_CPU_ISA=ALL
|
| 87 |
82 |
-DONEDNN_ENABLE_GEMM_KERNELS_ISA=ALL
|
| 88 |
|
-Wno-dev
|
| 89 |
83 |
)
|
| 90 |
84 |
|
| 91 |
85 |
if use mkl ; then
|
| ... | ... | |
| 97 |
91 |
export MKLROOT="${EPREFIX}"/usr
|
| 98 |
92 |
fi
|
| 99 |
93 |
|
| 100 |
|
mycmakeargs+=( -DDNNL_BLAS_VENDOR=MKL )
|
|
94 |
mycmakeargs+=( -DONEDNN_BLAS_VENDOR=MKL )
|
| 101 |
95 |
elif use cblas; then
|
| 102 |
|
mycmakeargs+=( -DDNNL_BLAS_VENDOR=ANY -DBLA_VENDOR=Generic -DBLAS_LIBRARIES=-lcblas )
|
|
96 |
mycmakeargs+=( -DONEDNN_BLAS_VENDOR=ANY -DBLA_VENDOR=Generic -DBLAS_LIBRARIES=-lcblas )
|
| 103 |
97 |
else
|
| 104 |
|
mycmakeargs+=( -DDNNL_BLAS_VENDOR=NONE )
|
|
98 |
mycmakeargs+=( -DONEDNN_BLAS_VENDOR=NONE )
|
| 105 |
99 |
fi
|
| 106 |
100 |
|
| 107 |
101 |
cmake_src_configure
|
| ... | ... | |
| 112 |
106 |
docs_compile
|
| 113 |
107 |
}
|
| 114 |
108 |
|
| 115 |
|
src_install() {
|
| 116 |
|
cmake_src_install
|
| 117 |
|
|
| 118 |
|
# Correct docdir
|
| 119 |
|
mv "${ED}/usr/share/doc/dnnl"* "${ED}/usr/share/doc/${PF}" || die
|
| 120 |
|
}
|
| 121 |
|
|
| 122 |
109 |
src_test() {
|
| 123 |
|
local CMAKE_SKIP_TESTS=(
|
| 124 |
|
# Crashes in sandbox (see #922886 and #923013);
|
| 125 |
|
# waits for sys-apps/sandbox-2.39 release and stabilization.
|
| 126 |
|
test_graph_unit_interface
|
| 127 |
|
test_graph_unit_dnnl_layout_propagator
|
| 128 |
|
test_graph_unit_dnnl_op_executable
|
| 129 |
|
test_graph_unit_utils
|
| 130 |
|
# Errored
|
| 131 |
|
test_graph_unit_dnnl_layer_norm_usm_cpu
|
| 132 |
|
test_graph_unit_dnnl_sdp_decomp_usm_cpu
|
| 133 |
|
)
|
| 134 |
|
|
| 135 |
110 |
if use openmp ; then
|
| 136 |
111 |
# Don't run tests in parallel, each test is already parallelized
|
| 137 |
112 |
OMP_NUM_THREADS=$(get_makeopts_jobs) cmake_src_test -j1
|
| ... | ... | |
| 139 |
114 |
cmake_src_test
|
| 140 |
115 |
fi
|
| 141 |
116 |
}
|
|
117 |
|
|
118 |
src_install() {
|
|
119 |
cmake_src_install
|
|
120 |
|
|
121 |
# Correct docdir
|
|
122 |
mv "${ED}/usr/share/doc/dnnl"* "${ED}/usr/share/doc/${PF}" || die
|
|
123 |
}
|