diff --git a/sphinx_docs/source/olcf-compilers.rst b/sphinx_docs/source/olcf-compilers.rst index c6353ed..fe94104 100644 --- a/sphinx_docs/source/olcf-compilers.rst +++ b/sphinx_docs/source/olcf-compilers.rst @@ -16,13 +16,13 @@ Then load CUDA:: You also need to make sure you have the python module loaded:: - module load python/3.5.2 + module load python/3.7.0 Compile with ``COMP = pgi`` and ``USE_CUDA=TRUE``. Ensure your GNUMakefile uses ``USE_OMP=FALSE`` since AMReX's standard OpenMP strategy conflicts with GPUs. An example compilation line is:: - make COMP=pgi INTEGRATOR_DIR=VODE90 USE_CUDA=TRUE -j 4 + make COMP=pgi INTEGRATOR_DIR=VODE USE_CUDA=TRUE -j 4 The version pairs that work for sure currently are: @@ -40,9 +40,6 @@ The version pairs that work for sure currently are: .. note:: - - Use ``INTEGRATOR_DIR=VODE90`` if specifying an integrator at - compile time, since ``VODE`` will not work with GPUs. - - Use ``USE_GPU_PRAGMA=TRUE`` for any code which uses ``#pragma gpu``, this flag is set by default in MAESTROeX and CASTRO's build system when ``USE_CUDA=TRUE``. @@ -50,4 +47,13 @@ The version pairs that work for sure currently are: - OpenMP offloading to the GPU is controlled by ``USE_OMP_OFFLOAD``, which will default to ``FALSE``, AMReX-Astro doesn't use this feature. + + - MAESTROeX requires C++14, so it is necessary to use a + later version of gcc than the version loaded on Summit + when the pgi module is loaded. To do this, add the + following to the ``GNUMakefile``:: + + NVCC_CCBIN=/sw/summit/gcc/7.4.0/bin/g++ + LIBRARY_LOCATIONS += /sw/summit/gcc/7.4.0/lib64/ + LIBRARIES += -Wl,-rpath,/sw/summit/gcc/7.4.0/lib64/