-
Notifications
You must be signed in to change notification settings - Fork 26
Expand file tree
/
Copy pathbuild.sh
More file actions
157 lines (146 loc) · 4.62 KB
/
Copy pathbuild.sh
File metadata and controls
157 lines (146 loc) · 4.62 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
#!/bin/sh
export DPCPP_HOME=~/sycl_workspace
export CUDA_ROOT=/usr/local/cuda-10.2
export LD_LIBRARY_PATH=$DPCPP_HOME/deploy/lib/:$DPCPP_HOME/deploy/lib64/:$DPCPP_HOME/lapack/install/lib64/:$DPCPP_HOME/OpenCL-ICD-Loader/install/lib64:$CUDA_ROOT/lib:$CUDA_ROOT/lib64:$LD_LIBRARY_PATH
export PATH=$DPCPP_HOME/deploy/bin/:$CUDA_ROOT/bin:$PATH
mkdir -p $DPCPP_HOME
cd $DPCPP_HOME
mkdir -p deploy
#export LD_PRELOAD=/opt/intel/opencl/libOpenCL.so.1
run_test=false
cmake_test="OFF"
if [[ -z "$DPCPP_TESTS" ]]; then
echo "Not testing"
else
echo "testing"
run_test=true
cmake_test="ON"
fi
export CXXFLAGS="${CXXFLAGS} -D_GLIBCXX_USE_CXX11_ABI=1"
# OpenCL headers+ICD
cd $DPCPP_HOME
(if cd OpenCL-Headers; then git pull; else git clone https://github.com/KhronosGroup/OpenCL-Headers.git; fi)
(if cd OpenCL-ICD-Loader; then git pull; else git clone https://github.com/KhronosGroup/OpenCL-ICD-Loader.git; fi)
cd OpenCL-ICD-Loader
mkdir -p build
cd build
cmake \
-DOPENCL_ICD_LOADER_HEADERS_DIR=$DPCPP_HOME/OpenCL-Headers \
-DCMAKE_INSTALL_PREFIX=$DPCPP_HOME/OpenCL-ICD-Loader/install \
..
make install -j $(nproc)
#sycl compiler with cuda
source /opt/intel/opencl/env/compiler_rt_vars.sh
cd $DPCPP_HOME
(if cd llvm; then git pull; else git clone https://github.com/intel/llvm.git -b sycl; fi)
cd llvm
python3 ./buildbot/configure.py \
--cuda \
-t release \
--cmake-opt="-DCMAKE_INSTALL_PREFIX=$DPCPP_HOME/deploy" \
--cmake-opt="-DCUDA_SDK_ROOT_DIR=$CUDA_ROOT" \
--cmake-opt="-DLLVM_BINUTILS_INCDIR=/usr/local/include" \
--cmake-opt="-DLLVM_ENABLE_PROJECTS=clang;sycl;llvm-spirv;libunwind;opencl;libdevice;xpti;xptifw;libclc;lld;lldb;libc;libcxx;libcxxabi;openmp;clang-tools-extra;compiler-rt" \
--cmake-opt="-DLLVM_BUILD_TESTS=$cmake_test" \
--cmake-opt="-DCMAKE_CXX_STANDARD=17" \
--cmake-opt="-DLLVM_ENABLE_LTO=off" \
--cmake-opt="-DLLVM_ENABLE_LLD=ON" \
--cmake-opt="-DSYCL_ENABLE_WERROR=OFF" \
--cmake-opt="-Wno-dev"
cd build
ninja install -j $(nproc)
if $run_test; then
echo "testing llvm"
ninja check -j $(nproc)
fi
#Lapack Reference
cd $DPCPP_HOME
(if cd lapack; then git pull; else git clone https://github.com/Reference-LAPACK/lapack.git; fi)
cd lapack/
mkdir -p build
cd build/
cmake \
-DBUILD_SHARED_LIBS=ON \
-DCBLAS=ON \
-DLAPACKE=ON \
-DBUILD_TESTING=$cmake_test \
-DCMAKE_INSTALL_PREFIX=$DPCPP_HOME/lapack/install \
..
cmake --build . -j $(nproc) --target install
if $run_test; then
cmake --build . -j $(nproc) --target test
fi
#oneTBB
cd $DPCPP_HOME
(if cd oneTBB; then git pull; else git clone https://github.com/oneapi-src/oneTBB.git; fi)
cd oneTBB
mkdir -p build
cd build
cmake -GNinja \
-DCMAKE_CXX_COMPILER=$DPCPP_HOME/deploy/bin/clang++ \
-DCMAKE_BUILD_TYPE=Release \
-DTBB_STRICT=OFF \
-DCMAKE_INSTALL_PREFIX=$DPCPP_HOME/deploy/ \
-DTBB_TEST=$cmake_test \
..
ninja install -j $(nproc)
if $run_test; then
ninja test -j $(nproc)
fi
#oneMKL
cd $DPCPP_HOME
(if cd oneMKL; then git pull; else git clone https://github.com/oneapi-src/oneMKL.git; fi)
cd oneMKL
mkdir -p build
cd build
cmake -GNinja \
-DCMAKE_CXX_COMPILER=$DPCPP_HOME/deploy/bin/clang++ \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CXX_STANDARD=17 \
-DTARGET_DOMAINS=blas \
-DENABLE_MKLGPU_BACKEND=OFF \
-DENABLE_CURAND_BACKEND=OFF \
-DENABLE_MKLCPU_BACKEND=OFF \
-DENABLE_CUBLAS_BACKEND=ON \
-DENABLE_NETLIB_BACKEND=ON \
-DREF_BLAS_ROOT=$DPCPP_HOME/lapack/install \
-DNETLIB_ROOT=$DPCPP_HOME/lapack/install \
-DOPENCL_INCLUDE_DIR=$DPCPP_HOME/OpenCL-Headers \
-DCUDA_TOOLKIT_ROOT_DIR=$CUDA_ROOT \
-DSYCL_LIBRARY=$DPCPP_HOME/deploy/lib/libsycl.so \
-DCMAKE_INSTALL_PREFIX=$DPCPP_HOME/deploy/ \
-DBUILD_FUNCTIONAL_TESTS=$cmake_test \
..
ninja install -j $(nproc)
if $run_test; then
ninja test -j $(nproc)
fi
#oneDNN
cd $DPCPP_HOME
(if cd oneDNN; then git pull; else git clone https://github.com/oneapi-src/oneDNN.git; fi)
cd oneDNN
mkdir -p build
cd build
cmake -GNinja \
-DCMAKE_C_COMPILER=$DPCPP_HOME/deploy/bin/clang \
-DCMAKE_CXX_COMPILER=$DPCPP_HOME/deploy/bin/clang++ \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CXX_STANDARD=17 \
-DDNNL_INSTALL_MODE=BUNDLE \
-DDNNL_CPU_RUNTIME=DPCPP \
-DDNNL_GPU_RUNTIME=DPCPP \
-DDNNL_GPU_VENDOR=NVIDIA \
-DNNL_BUILD_EXAMPLES=OFF \
-DTBBROOT=$DPCPP_HOME/deploy \
-DCUDA_SDK_ROOT_DIR=$CUDA_ROOT \
-DOPENCLROOT=$DPCPP_HOME/OpenCL-ICD-Loader/install \
-DOpenCL_INCLUDE_DIR=$DPCPP_HOME/OpenCL-Headers \
-DCUBLAS_LIBRARY=$CUDA_ROOT/lib64/libcublas.so \
-DCUBLAS_INCLUDE_DIR=$CUDA_ROOT/include \
-DCMAKE_INSTALL_PREFIX=$DPCPP_HOME/deploy \
-DDNNL_BUILD_TESTS=$cmake_test \
..
ninja install -j $(nproc)
if $run_test; then
LD_LIBRARY_PATH=$DPCPP_HOME/deploy/lib ninja test -j $(nproc)
fi