18
18
# *******************************************************************************
19
19
20
20
# Build oneDNN for aarch64.
21
-
22
21
set -o errexit -o pipefail -o noclobber
23
22
24
23
SCRIPT_DIR=" $( dirname " $( readlink -f " $0 " ) " ) "
25
24
25
+
26
+ # Function to clone and install Eigen
27
+ install_eigen () {
28
+ local eigen_repo=" https://gitlab.com/libeigen/eigen.git"
29
+ local eigen_commit=" aa6964bf3a34fd607837dd8123bc42465185c4f8"
30
+
31
+ echo " Cloning Eigen repository..."
32
+ if ! git clone " $eigen_repo " --depth 1; then
33
+ echo " Error: Failed to clone Eigen repository."
34
+ return 1
35
+ fi
36
+
37
+ cd eigen
38
+
39
+ if ! git fetch --depth 1 origin " $eigen_commit " || ! git checkout " $eigen_commit " ; then
40
+ echo " Error: Failed to fetch or checkout commit."
41
+ return 1
42
+ fi
43
+
44
+ cd ..
45
+
46
+ mkdir -p eigen-build && cd eigen-build
47
+
48
+ if ! cmake -DCMAKE_INSTALL_PREFIX=" ${EIGEN_INSTALL_PATH} " " $EIGEN_PATH " ; then
49
+ echo " Error: CMake configuration failed."
50
+ return 1
51
+ fi
52
+
53
+ # Build and install Eigen
54
+ echo " Building and installing Eigen..."
55
+ if ! make -s -j install; then
56
+ echo " Error: Build or installation failed."
57
+ return 1
58
+ fi
59
+
60
+ echo " Eigen installed successfully!"
61
+ }
62
+
26
63
# Defines MP, CC, CXX and OS.
27
64
source ${SCRIPT_DIR} /common_aarch64.sh
28
65
@@ -46,7 +83,11 @@ CMAKE_OPTIONS="-Bbuild -S. \
46
83
"
47
84
48
85
if [[ " $SCHEDULER " == ' TP' ]]; then
49
- EIGEN_INSTALL_PATH=${EIGEN_INSTALL_PATH:- " $PWD " }
86
+ # install eigen
87
+ export EIGEN_INSTALL_PATH=${EIGEN_INSTALL_PATH:- " $PWD " }
88
+ export EIGEN_PATH=${EIGEN_PATH:- " $PWD /eigen" }
89
+ install_eigen
90
+
50
91
CMAKE_OPTIONS=" ${CMAKE_OPTIONS} -DDNNL_CPU_RUNTIME=THREADPOOL \
51
92
-D_DNNL_TEST_THREADPOOL_IMPL=EIGEN -DEigen3_DIR=${EIGEN_INSTALL_PATH} /share/eigen3/cmake"
52
93
elif [[ " $SCHEDULER " == " OMP" ] || [ " $SCHEDULER " == " SEQ" ]]; then
0 commit comments