11# meshFields
22GPU friendly unstructured mesh field storage and interface
33
4- ## build dependencies
4+ ## build dependencies for GPU
55
6- The following commands were tested on a SCOREC workstation running RHEL7 with a
7- Nvidia Turing GPU.
6+ The following commands were tested on a SCOREC workstation running RHEL9 with a
7+ Nvidia Ampere GPU.
88
99` cd ` to a working directory that will contain * all* your source code (including
1010this directory) and build directories. That directory is referred to as ` root `
1111in the following bash scripts.
1212
13- Create a file named ` envRhel7_turing .sh` with the following contents:
13+ Create a file named ` envRhel7_ampere .sh` with the following contents:
1414
1515```
1616export root=$PWD
17- module unuse /opt/scorec/spack/lmod/linux-rhel7-x86_64/Core
18- module use /opt/scorec/spack/v0154_2/lmod/linux-rhel7-x86_64/Core
19- module load gcc/10.1.0 cmake cuda/11.4
17+ module use /opt/scorec/spack/rhel9/v0201_4/lmod/linux-rhel9-x86_64/Core/
18+ module load gcc/12.3.0-iil3lno mpich/4.1.1-xpoyz4t cuda/12.1.1-zxa4msk
2019
2120function getname() {
2221 name=$1
@@ -35,7 +34,7 @@ echo "kokkos install dir: $kk"
3534```
3635
3736
38- Create a file named ` buildAll_turing .sh` with the following contents:
37+ Create a file named ` buildAll_ampere .sh` with the following contents:
3938
4039```
4140#!/bin/bash -e
@@ -48,7 +47,7 @@ mkdir -p $kk
4847cd $_/..
4948cmake ../kokkos \
5049 -DCMAKE_CXX_COMPILER=$root/kokkos/bin/nvcc_wrapper \
51- -DKokkos_ARCH_TURING75 =ON \
50+ -DKokkos_ARCH_AMPERE86 =ON \
5251 -DKokkos_ENABLE_SERIAL=ON \
5352 -DKokkos_ENABLE_OPENMP=off \
5453 -DKokkos_ENABLE_CUDA=on \
@@ -60,7 +59,7 @@ make -j 24 install
6059
6160#omegah
6261cd $root
63- git clone [email protected] :sandialabs /omega_h.git 62+ git clone [email protected] :scorec /omega_h.git 6463[ -d $oh ] && rm -rf ${oh%%install}
6564mkdir -p $oh
6665cd ${oh%%install}
@@ -69,7 +68,7 @@ cmake ../omega_h \
6968 -DBUILD_SHARED_LIBS=OFF \
7069 -DOmega_h_USE_Kokkos=ON \
7170 -DOmega_h_USE_CUDA=on \
72- -DOmega_h_CUDA_ARCH=75 \
71+ -DOmega_h_CUDA_ARCH=86 \
7372 -DOmega_h_USE_MPI=OFF \
7473 -DBUILD_TESTING=on \
7574 -DCMAKE_CXX_COMPILER=g++ \
@@ -98,29 +97,27 @@ make -j 24 install
9897Make the script executable:
9998
10099```
101- chmod +x buildAll_turing .sh
100+ chmod +x buildAll_ampere .sh
102101```
103102
104103
105104Source the environment script from this work directory:
106105
107106```
108- source envRhel7_turing .sh
107+ source envRhel7_ampere .sh
109108```
110109
111110Run the build script:
112111
113112```
114- ./buildAll_turing .sh
113+ ./buildAll_ampere .sh
115114```
116115
117116## build dependencies for CPU
118117
119118This build serves to help debugging, check for memory leaks via valgrind, and
120- run tests for coverage. (GPU code is not registered as having been run by GCOV
121- and subsequently LCOV.) These commands can be run in your root directory but you
122- will need to re-source the enviornment script and re-run the build script for the
123- GPU build when you want to return to it.
119+ run tests for coverage. GPU code is not registered as having been run by GCOV
120+ and subsequently LCOV.
124121
125122` cd ` to a working directory that will contain * all* your source code (including
126123this directory) and build directories. That directory is referred to as ` root `
@@ -130,12 +127,9 @@ Create a file named `envCpu.sh` with the following contents:
130127
131128```
132129export root=$PWD
133- module unuse /opt/scorec/spack/lmod/linux-rhel7-x86_64/Core
134- module use /opt/scorec/spack/v0154_2/lmod/linux-rhel7-x86_64/Core
135- module load lcov/1.16 py-gcovr/4.2
136- module load gcc/10.1.0 cmake
137- module load perl/5.30.3
138- module load perl-io-compress/2.081
130+ module use /opt/scorec/spack/rhel9/v0201_4/lmod/linux-rhel9-x86_64/Core/
131+ module load gcc/12.3.0-iil3lno mpich/4.1.1-xpoyz4t
132+
139133function getname() {
140134 name=$1
141135 machine=`hostname -s`
@@ -173,7 +167,7 @@ cmake ../kokkos \
173167make -j 24 install
174168#omegah
175169cd $root
176- git clone https:// github.com/sandialabs /omega_h.git
170+ git clone git@ github.com:scorec /omega_h.git
177171[ -d $ohCpu ] && rm -rf ${ohCpu%%install}
178172mkdir -p $ohCpu
179173cd ${ohCpu%%install}
@@ -225,14 +219,14 @@ Run the build script:
225219
226220## build meshFields
227221
228- The following assumes that the environment is already setup (see above) and the
222+ The following assumes that the environment is already setup (see above, either CPU or GPU ) and the
229223` root ` directory is the same directory used to build the dependencies.
230224
231225```
232226cd $root
233227git clone [email protected] :SCOREC/meshFields 234- cmake -S meshFields -B build-meshFields-cuda
235- cmake --build build-meshFields-cuda
228+ cmake -S meshFields -B build-meshFields-[CPU|GPU]
229+ cmake --build build-meshFields-[CPU|GPU]
236230```
237231
238232## rebuild meshFields
0 commit comments