Skip to content

Commit 7140964

Browse files
committed
Add build scripts
1 parent cfefd32 commit 7140964

File tree

3 files changed

+309
-0
lines changed

3 files changed

+309
-0
lines changed
Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
#!/bin/sh
2+
3+
# Copyright 2021, Oak Ridge National Laboratory.
4+
# MGARD-X: MultiGrid Adaptive Reduction of Data Portable across GPUs and CPUs
5+
# Author: Jieyang Chen (chenj3@ornl.gov)
6+
# Date: April 2, 2021
7+
# Script for building MGARD-X
8+
9+
set -e
10+
set -x
11+
12+
module load cuda/11.4
13+
module load gcc/9
14+
module load cmake
15+
16+
######## User Configurations ########
17+
# Source directory
18+
mgard_x_src_dir=.
19+
# Build directory
20+
build_dir=./build-cuda-summit
21+
# Number of processors used for building
22+
num_build_procs=$1
23+
# Installtaion directory
24+
install_dir=./install-cuda-summit
25+
26+
27+
#build NVCOMP
28+
nvcomp_dir=${build_dir}/nvcomp
29+
nvcomp_src_dir=${nvcomp_dir}/src
30+
nvcomp_build_dir=${nvcomp_dir}/build
31+
nvcomp_install_dir=${install_dir}
32+
if [ ! -d "${nvcomp_src_dir}" ]; then
33+
git clone -b v2.2.0 https://github.com/NVIDIA/nvcomp.git ${nvcomp_src_dir}
34+
fi
35+
mkdir -p ${nvcomp_build_dir}
36+
cmake -S ${nvcomp_src_dir} -B ${nvcomp_build_dir}\
37+
-DCMAKE_INSTALL_PREFIX=${nvcomp_install_dir}
38+
cmake --build ${nvcomp_build_dir} -j ${num_build_procs}
39+
cmake --install ${nvcomp_build_dir}
40+
41+
#build ZSTD
42+
zstd_dir=${build_dir}/zstd
43+
zstd_src_dir=${zstd_dir}/src
44+
zstd_build_dir=${zstd_dir}/build
45+
zstd_install_dir=${install_dir}
46+
if [ ! -d "${zstd_src_dir}" ]; then
47+
git clone -b v1.5.0 https://github.com/facebook/zstd.git ${zstd_src_dir}
48+
fi
49+
mkdir -p ${zstd_build_dir}
50+
cmake -S ${zstd_src_dir}/build/cmake -B ${zstd_build_dir}\
51+
-DZSTD_MULTITHREAD_SUPPORT=ON\
52+
-DCMAKE_INSTALL_LIBDIR=lib\
53+
-DCMAKE_INSTALL_PREFIX=${zstd_install_dir}
54+
cmake --build ${zstd_build_dir} -j ${num_build_procs}
55+
cmake --install ${zstd_build_dir}
56+
57+
#build Protobuf
58+
protobuf_dir=${build_dir}/protobuf
59+
protobuf_src_dir=${protobuf_dir}/src
60+
protobuf_build_dir=${protobuf_dir}/build
61+
protobuf_install_dir=${install_dir}
62+
if [ ! -d "${protobuf_src_dir}" ]; then
63+
git clone -b v3.19.4 --recurse-submodules https://github.com/protocolbuffers/protobuf.git ${protobuf_src_dir}
64+
fi
65+
mkdir -p ${protobuf_build_dir}
66+
cmake -S ${protobuf_src_dir}/cmake -B ${protobuf_build_dir}\
67+
-Dprotobuf_BUILD_SHARED_LIBS=ON\
68+
-DCMAKE_INSTALL_PREFIX=${protobuf_install_dir}
69+
cmake --build ${protobuf_build_dir} -j ${num_build_procs}
70+
cmake --install ${protobuf_build_dir}
71+
72+
#build MGARD
73+
mgard_x_build_dir=${build_dir}/mgard
74+
mgard_x_install_dir=${install_dir}
75+
mkdir -p ${mgard_x_build_dir}
76+
cmake -S ${mgard_x_src_dir} -B ${mgard_x_build_dir} \
77+
-DCMAKE_PREFIX_PATH="${nvcomp_install_dir};${zstd_install_dir}/lib/cmake/zstd;${protobuf_install_dir}"\
78+
-DMGARD_ENABLE_SERIAL=ON\
79+
-DMGARD_ENABLE_CUDA=ON\
80+
-DCMAKE_CUDA_ARCHITECTURES="70"\
81+
-DMGARD_ENABLE_DOCS=OFF\
82+
-DCMAKE_BUILD_TYPE=Release\
83+
-DCMAKE_INSTALL_PREFIX=${mgard_x_install_dir}
84+
cmake --build ${mgard_x_build_dir} -j ${num_build_procs}
85+
cmake --install ${mgard_x_build_dir}
86+
87+
#build ADIOS2
88+
adios2_dir=${build_dir}/adios2
89+
adios2_src_dir=${adios2_dir}/src
90+
adios2_build_dir=${adios2_dir}/build
91+
adios2_install_dir=${install_dir}
92+
if [ ! -d "${adios2_src_dir}" ]; then
93+
git clone -https://github.com/ornladios/ADIOS2.git ${adios2_src_dir}
94+
fi
95+
mkdir -p ${adios2_build_dir}
96+
cmake -S ${adios2_src_dir} -B ${adios2_build_dir}\
97+
-DADIOS2_USE_CUDA=ON \
98+
-DADIOS2_USE_MGARD=ON \
99+
-DCMAKE_CUDA_ARCHITECTURES=70 \
100+
-DMGARD_ROOT=${mgard_x_install_dir} \
101+
-DCMAKE_BUILD_TYPE=Release \
102+
-DBUILD_TESTING=ON \
103+
-DADIOS2_USE_MPI=ON \
104+
-DCMAKE_INSTALL_PREFIX=${adios2_install_dir}
105+
cmake --build ${adios2_build_dir} -j ${num_build_procs}
106+
cmake --install ${adios2_build_dir}
Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,116 @@
1+
#!/bin/sh
2+
3+
# Copyright 2021, Oak Ridge National Laboratory.
4+
# MGARD-X: MultiGrid Adaptive Reduction of Data Portable across GPUs and CPUs
5+
# Author: Jieyang Chen (chenj3@ornl.gov)
6+
# Date: April 2, 2021
7+
# Script for building MGARD-X
8+
9+
set -e
10+
set -x
11+
12+
module load rocm/5.1.0
13+
module load cmake
14+
15+
######## User Configurations ########
16+
# Source directory
17+
mgard_x_src_dir=.
18+
# Build directory
19+
build_dir=./build-hip-crusher
20+
# Number of processors used for building
21+
num_build_procs=$1
22+
# Installtaion directory
23+
install_dir=./install-hip-crusher
24+
25+
#build ZSTD
26+
zstd_dir=${build_dir}/zstd
27+
zstd_src_dir=${zstd_dir}/src
28+
zstd_build_dir=${zstd_dir}/build
29+
zstd_install_dir=${install_dir}
30+
if [ ! -d "${zstd_src_dir}" ]; then
31+
git clone -b v1.5.0 https://github.com/facebook/zstd.git ${zstd_src_dir}
32+
fi
33+
mkdir -p ${zstd_build_dir}
34+
cmake -S ${zstd_src_dir}/build/cmake -B ${zstd_build_dir}\
35+
-DZSTD_MULTITHREAD_SUPPORT=ON\
36+
-DCMAKE_C_COMPILER=amdclang\
37+
-DCMAKE_CXX_COMPILER=amdclang++\
38+
-DCMAKE_INSTALL_LIBDIR=lib\
39+
-DCMAKE_INSTALL_PREFIX=${zstd_install_dir}
40+
cmake --build ${zstd_build_dir} -j ${num_build_procs}
41+
cmake --install ${zstd_build_dir}
42+
43+
44+
#build Protobuf
45+
protobuf_dir=${build_dir}/protobuf
46+
protobuf_src_dir=${protobuf_dir}/src
47+
protobuf_build_dir=${protobuf_dir}/build
48+
protobuf_install_dir=${install_dir}
49+
if [ ! -d "${protobuf_src_dir}" ]; then
50+
git clone -b v3.19.4 --recurse-submodules https://github.com/protocolbuffers/protobuf.git ${protobuf_src_dir}
51+
fi
52+
mkdir -p ${protobuf_build_dir}
53+
cmake -S ${protobuf_src_dir}/cmake -B ${protobuf_build_dir}\
54+
-DCMAKE_C_COMPILER=amdclang\
55+
-DCMAKE_CXX_COMPILER=amdclang++\
56+
-Dprotobuf_BUILD_SHARED_LIBS=ON\
57+
-DCMAKE_INSTALL_PREFIX=${protobuf_install_dir}
58+
cmake --build ${protobuf_build_dir} -j ${num_build_procs}
59+
cmake --install ${protobuf_build_dir}
60+
61+
62+
#build MGARD
63+
mgard_x_build_dir=${build_dir}/mgard
64+
mgard_x_install_dir=${install_dir}
65+
mkdir -p ${mgard_x_build_dir}
66+
cmake -S ${mgard_x_src_dir} -B ${mgard_x_build_dir} \
67+
-DCMAKE_PREFIX_PATH="${zstd_install_dir}/lib/cmake/zstd;${protobuf_install_dir}"\
68+
-DMGARD_ENABLE_SERIAL=ON\
69+
-DMGARD_ENABLE_HIP=ON\
70+
-DCMAKE_CXX_COMPILER=amdclang++\
71+
-DCMAKE_HIP_ARCHITECTURES="gfx90a"\
72+
-DCMAKE_BUILD_TYPE=Release\
73+
-DCMAKE_INSTALL_PREFIX=${mgard_x_install_dir}
74+
cmake --build ${mgard_x_build_dir} -j ${num_build_procs}
75+
cmake --install ${mgard_x_build_dir}
76+
77+
78+
#build ADIOS2
79+
adios2_dir=${build_dir}/adios2
80+
adios2_src_dir=${adios2_dir}/src
81+
adios2_build_dir=${adios2_dir}/build
82+
adios2_install_dir=${install_dir}
83+
if [ ! -d "${adios2_src_dir}" ]; then
84+
git clone -https://github.com/ornladios/ADIOS2.git ${adios2_src_dir}
85+
fi
86+
mkdir -p ${adios2_build_dir}
87+
cmake -S ${adios2_src_dir} -B ${adios2_build_dir}\
88+
-DADIOS2_USE_CUDA=OFF \
89+
-DADIOS2_USE_MGARD=ON \
90+
-DMGARD_ROOT=${mgard_x_install_dir} \
91+
-DCMAKE_BUILD_TYPE=Release \
92+
-DBUILD_TESTING=ON \
93+
-DADIOS2_USE_MPI=ON \
94+
-DCMAKE_INSTALL_PREFIX=${adios2_install_dir}
95+
cmake --build ${adios2_build_dir} -j ${num_build_procs}
96+
cmake --install ${adios2_build_dir}
97+
98+
#build ADIOS2
99+
adios2_dir=${build_dir}/adios2
100+
adios2_src_dir=${adios2_dir}/src
101+
adios2_build_dir=${adios2_dir}/build
102+
adios2_install_dir=${install_dir}
103+
if [ ! -d "${adios2_src_dir}" ]; then
104+
git clone -https://github.com/ornladios/ADIOS2.git ${adios2_src_dir}
105+
fi
106+
mkdir -p ${adios2_build_dir}
107+
cmake -S ${adios2_src_dir} -B ${adios2_build_dir}\
108+
-DADIOS2_USE_CUDA=OFF \
109+
-DADIOS2_USE_MGARD=ON \
110+
-DMGARD_ROOT=${mgard_x_install_dir} \
111+
-DCMAKE_BUILD_TYPE=Release \
112+
-DBUILD_TESTING=ON \
113+
-DADIOS2_USE_MPI=ON \
114+
-DCMAKE_INSTALL_PREFIX=${adios2_install_dir}
115+
cmake --build ${adios2_build_dir} -j ${num_build_procs}
116+
cmake --install ${adios2_build_dir}
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
#!/bin/sh
2+
3+
# Copyright 2021, Oak Ridge National Laboratory.
4+
# MGARD-X: MultiGrid Adaptive Reduction of Data Portable across GPUs and CPUs
5+
# Author: Jieyang Chen (chenj3@ornl.gov)
6+
# Date: April 2, 2021
7+
# Script for building MGARD-X
8+
9+
set -e
10+
set -x
11+
12+
######## User Configurations ########
13+
# Source directory
14+
mgard_x_src_dir=.
15+
# Build directory
16+
build_dir=./build-cuda-ampere
17+
# Number of processors used for building
18+
num_build_procs=$1
19+
# Installtaion directory
20+
install_dir=./install-cuda-ampere
21+
22+
23+
#build NVCOMP
24+
nvcomp_dir=${build_dir}/nvcomp
25+
nvcomp_src_dir=${nvcomp_dir}/src
26+
nvcomp_build_dir=${nvcomp_dir}/build
27+
nvcomp_install_dir=${install_dir}
28+
if [ ! -d "${nvcomp_src_dir}" ]; then
29+
git clone -b v2.2.0 https://github.com/NVIDIA/nvcomp.git ${nvcomp_src_dir}
30+
fi
31+
mkdir -p ${nvcomp_build_dir}
32+
cmake -S ${nvcomp_src_dir} -B ${nvcomp_build_dir}\
33+
-DCMAKE_INSTALL_PREFIX=${nvcomp_install_dir}
34+
cmake --build ${nvcomp_build_dir} -j ${num_build_procs}
35+
cmake --install ${nvcomp_build_dir} #> /dev/null
36+
37+
#build ZSTD
38+
zstd_dir=${build_dir}/zstd
39+
zstd_src_dir=${zstd_dir}/src
40+
zstd_build_dir=${zstd_dir}/build
41+
zstd_install_dir=${install_dir}
42+
if [ ! -d "${zstd_src_dir}" ]; then
43+
git clone -b v1.5.0 https://github.com/facebook/zstd.git ${zstd_src_dir}
44+
fi
45+
mkdir -p ${zstd_build_dir}
46+
cmake -S ${zstd_src_dir}/build/cmake -B ${zstd_build_dir}\
47+
-DZSTD_MULTITHREAD_SUPPORT=ON\
48+
-DCMAKE_INSTALL_LIBDIR=lib\
49+
-DCMAKE_INSTALL_PREFIX=${zstd_install_dir}
50+
cmake --build ${zstd_build_dir} -j ${num_build_procs}
51+
cmake --install ${zstd_build_dir} > /dev/null
52+
53+
#build Protobuf
54+
protobuf_dir=${build_dir}/protobuf
55+
protobuf_src_dir=${protobuf_dir}/src
56+
protobuf_build_dir=${protobuf_dir}/build
57+
protobuf_install_dir=${install_dir}
58+
if [ ! -d "${protobuf_src_dir}" ]; then
59+
git clone -b v3.19.4 --recurse-submodules https://github.com/protocolbuffers/protobuf.git ${protobuf_src_dir}
60+
fi
61+
mkdir -p ${protobuf_build_dir}
62+
cmake -S ${protobuf_src_dir}/cmake -B ${protobuf_build_dir}\
63+
-Dprotobuf_BUILD_SHARED_LIBS=ON\
64+
-DCMAKE_INSTALL_PREFIX=${protobuf_install_dir}
65+
cmake --build ${protobuf_build_dir} -j ${num_build_procs}
66+
cmake --install ${protobuf_build_dir} > /dev/null
67+
68+
69+
#build MGARD
70+
mgard_x_build_dir=${build_dir}/mgard
71+
mgard_x_install_dir=${install_dir}
72+
mkdir -p ${mgard_x_build_dir}
73+
cmake -S ${mgard_x_src_dir} -B ${mgard_x_build_dir} \
74+
-DCMAKE_PREFIX_PATH="${nvcomp_install_dir};${zstd_install_dir}/lib/cmake/zstd;${protobuf_install_dir}"\
75+
-DMGARD_ENABLE_SERIAL=OFF\
76+
-DMGARD_ENABLE_OPENMP=OFF\
77+
-DMGARD_ENABLE_CUDA=ON\
78+
-DMGARD_ENABLE_AUTO_TUNING=OFF\
79+
-DMGARD_ENABLE_MULTI_DEVICE=OFF\
80+
-DCMAKE_CUDA_ARCHITECTURES="86"\
81+
-DMGARD_ENABLE_OPENMP=OFF\
82+
-DMGARD_ENABLE_MDR=ON\
83+
-DMGARD_ENABLE_DOCS=OFF\
84+
-DCMAKE_BUILD_TYPE=Release\
85+
-DCMAKE_INSTALL_PREFIX=${mgard_x_install_dir}
86+
time cmake --build ${mgard_x_build_dir} -j ${num_build_procs}
87+
cmake --install ${mgard_x_build_dir} > /dev/null

0 commit comments

Comments
 (0)