Skip to content

Commit

Permalink
Merge branch 'develop' into artv3/raja-view-slowdown
Browse files Browse the repository at this point in the history
  • Loading branch information
artv3 authored Sep 16, 2024
2 parents f5bb9b8 + 3ec77a7 commit 17a2b04
Show file tree
Hide file tree
Showing 20 changed files with 405 additions and 217 deletions.
10 changes: 5 additions & 5 deletions .gitlab/custom-jobs-and-variables.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ variables:
# Project specific variants for ruby
PROJECT_RUBY_VARIANTS: "~shared +openmp +vectorization +tests"
# Project specific deps for ruby
PROJECT_RUBY_DEPS: "^blt@develop "
PROJECT_RUBY_DEPS:

# Poodle
# Arguments for top level allocation
Expand All @@ -31,7 +31,7 @@ variables:
# Project specific variants for poodle
PROJECT_POODLE_VARIANTS: "~shared +openmp +vectorization +tests"
# Project specific deps for poodle
PROJECT_POODLE_DEPS: "^blt@develop "
PROJECT_POODLE_DEPS:

# Corona
# Arguments for top level allocation
Expand All @@ -41,7 +41,7 @@ variables:
# Project specific variants for corona
PROJECT_CORONA_VARIANTS: "~shared ~openmp +vectorization +tests"
# Project specific deps for corona
PROJECT_CORONA_DEPS: "^blt@develop "
PROJECT_CORONA_DEPS:

# Tioga
# Arguments for top level allocation
Expand All @@ -51,7 +51,7 @@ variables:
# Project specific variants for corona
PROJECT_TIOGA_VARIANTS: "~shared +openmp +vectorization +tests"
# Project specific deps for corona
PROJECT_TIOGA_DEPS: "^blt@develop "
PROJECT_TIOGA_DEPS:

# Lassen and Butte use a different job scheduler (spectrum lsf) that does not
# allow pre-allocation the same way slurm does.
Expand All @@ -60,7 +60,7 @@ variables:
# Project specific variants for lassen
PROJECT_LASSEN_VARIANTS: "~shared +openmp +vectorization +tests cuda_arch=70"
# Project specific deps for lassen
PROJECT_LASSEN_DEPS: "^blt@develop "
PROJECT_LASSEN_DEPS:

# Configuration shared by build and test jobs specific to this project.
# Not all configuration can be shared. Here projects can fine tune the
Expand Down
6 changes: 3 additions & 3 deletions .gitlab/jobs/corona.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,14 +26,14 @@
# ${PROJECT_<MACHINE>_DEPS} in the extra jobs. There is no reason not to fully
# describe the spec here.

rocmcc_5_7_0_hip_desul_atomics:
rocmcc_5_7_1_hip_desul_atomics:
variables:
SPEC: " ~shared +rocm ~openmp +tests +desul amdgpu_target=gfx906 %rocmcc@=5.7.0 ^[email protected].0 ^blt@develop"
SPEC: " ~shared +rocm ~openmp +tests +desul amdgpu_target=gfx906 %rocmcc@=5.7.1 ^[email protected].1"
extends: .job_on_corona

clang_19_0_0_sycl_gcc_10_3_1_rocmcc_5_7_1_hip:
variables:
SPEC: " ~shared +sycl ~openmp +tests %clang@=19.0.0 cxxflags==\"-w -fsycl -fsycl-unnamed-lambda -fsycl-targets=amdgcn-amd-amdhsa -Xsycl-target-backend --offload-arch=gfx906\" ^blt@develop"
SPEC: " ~shared +sycl ~openmp +tests %clang@=19.0.0 cxxflags==\"-w -fsycl -fsycl-unnamed-lambda -fsycl-targets=amdgcn-amd-amdhsa -Xsycl-target-backend --offload-arch=gfx906\""
MODULE_LIST: "rocm/5.7.1"
extends: .job_on_corona

27 changes: 10 additions & 17 deletions .gitlab/jobs/lassen.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,15 +17,7 @@
# project. We keep ${PROJECT_<MACHINE>_VARIANTS} and ${PROJECT_<MACHINE>_DEPS}
# So that the comparison with the original job is easier.

# Overriding shared spec: Longer allocation + extra flags
# Warning: allowed to fail because of a bug in Spack > 0.20.3
xl_2022_08_19_gcc_8_3_1_cuda_11_2_0:
variables:
SPEC: "${PROJECT_LASSEN_VARIANTS} +cuda cxxflags==\"-qthreaded -std=c++14 -O3 -qstrict -qxlcompatmacros -qlanglvl=extended0x -qalias=noansi -qhot -qpic -qsmp=omp -qsuppress=1500-029 -qsuppress=1500-036\" %xl@=16.1.1.12.gcc.8.3.1 ^[email protected]+allow-unsupported-compilers ${PROJECT_LASSEN_DEPS} ^blt@develop"
MODULE_LIST: "cuda/11.2.0"
LASSEN_JOB_ALLOC: "1 -W 60 -q pci"
extends: .job_on_lassen
allow_failure: true
# No overridden jobs so far.

############
# Extra jobs
Expand All @@ -36,14 +28,14 @@ xl_2022_08_19_gcc_8_3_1_cuda_11_2_0:

gcc_8_3_1_omptask:
variables:
SPEC: " ~shared +openmp +omptask +tests %gcc@=8.3.1 ^blt@develop"
SPEC: " ~shared +openmp +omptask +tests %gcc@=8.3.1 ${PROJECT_LASSEN_DEPS}"
extends: .job_on_lassen

gcc_8_3_1_cuda_11_5_0_ats_disabled:
gcc_8_3_1_cuda_11_7_0_ats_disabled:
extends: .job_on_lassen
variables:
SPEC: " ~shared +openmp +tests +cuda %gcc@=8.3.1 cuda_arch=70 ^cuda@11.5.0+allow-unsupported-compilers ^blt@develop"
MODULE_LIST: "cuda/11.5.0"
SPEC: " ~shared +openmp +tests +cuda %gcc@=8.3.1 cuda_arch=70 ^cuda@11.7.0+allow-unsupported-compilers ${PROJECT_LASSEN_DEPS}"
MODULE_LIST: "cuda/11.7.0"
LASSEN_JOB_ALLOC: "1 --atsdisable -W 30 -q pci"

##########
Expand All @@ -52,7 +44,7 @@ gcc_8_3_1_cuda_11_5_0_ats_disabled:

clang_13_0_1_libcpp:
variables:
SPEC: " ~shared +openmp +tests %clang@=13.0.1 cflags==\"-DGTEST_HAS_CXXABI_H_=0\" cxxflags==\"-stdlib=libc++ -DGTEST_HAS_CXXABI_H_=0\" ^blt@develop"
SPEC: " ~shared +openmp +tests %clang@=13.0.1 cflags==\"-DGTEST_HAS_CXXABI_H_=0\" cxxflags==\"-stdlib=libc++ -DGTEST_HAS_CXXABI_H_=0\""
extends: .job_on_lassen

#clang_14_0_5_asan:
Expand All @@ -62,16 +54,17 @@ clang_13_0_1_libcpp:
# LSAN_OPTIONS: "suppressions=${CI_PROJECT_DIR}/suppressions.asan"
# extends: .job_on_lassen

gcc_8_3_1_cuda_10_1_243_desul_atomics:
gcc_8_3_1_cuda_11_7_desul_atomics:
variables:
SPEC: " ~shared +openmp +tests +cuda +desul %gcc@=8.3.1 cuda_arch=70 ^[email protected]+allow-unsupported-compilers ^blt@develop"
SPEC: " ~shared +openmp +tests +cuda +desul %gcc@=8.3.1 cuda_arch=70 ^[email protected]+allow-unsupported-compilers"
MODULE_LIST: "cuda/11.7.0"
extends: .job_on_lassen

# Warning: Allowed to fail temporarily
# Deactivated due to issues with OpenMP Target and various tests and compilers.
clang_16_0_6_ibm_omptarget:
variables:
SPEC: " ~shared +openmp +omptarget +tests %clang@=16.0.6.ibm.gcc.8.3.1 ^blt@develop"
SPEC: " ~shared +openmp +omptarget +tests %clang@=16.0.6.ibm.gcc.8.3.1"
ON_LASSEN: "OFF"
extends: .job_on_lassen
allow_failure: true
Expand Down
29 changes: 11 additions & 18 deletions .gitlab/jobs/poodle.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,14 @@
# project. We keep ${PROJECT_<MACHINE>_VARIANTS} and ${PROJECT_<MACHINE>_DEPS}
# when possible so that the comparison with the original job is easier.

# Known issue currently under investigation
# https://github.com/LLNL/RAJA/pull/1712#issuecomment-2292006843
intel_2023_2_1:
variables:
SPEC: "${PROJECT_POODLE_VARIANTS} %intel@=2023.2.1 ${PROJECT_POODLE_DEPS}"
extends: .job_on_poodle
allow_failure: true

# Identical to shared job, but use OpenMP tasks and no vectorization
clang_14_0_6:
variables:
Expand All @@ -29,21 +37,6 @@ gcc_10_3_1:
SPEC: " ~shared +openmp +omptask +tests %gcc@=10.3.1 ${PROJECT_POODLE_DEPS}"
extends: .job_on_poodle

# Identical to shared job, but use OpenMP tasks and no vectorization
# Deactivated (too long on poodle)
intel_19_1_2_gcc_10_3_1:
variables:
ON_POODLE: "OFF"
SPEC: " ~shared +openmp +omptask +tests %intel@=19.1.2.gcc.10.3.1 ${PROJECT_POODLE_DEPS}"
extends: .job_on_poodle

# Allowed to fail
intel_2022_1_0:
variables:
SPEC: "${PROJECT_POODLE_VARIANTS} %intel@=2022.1.0 ${PROJECT_POODLE_DEPS}"
allow_failure: true
extends: .job_on_poodle

############
# Extra jobs
############
Expand All @@ -53,16 +46,16 @@ intel_2022_1_0:

clang_14_0_6_openmp_off:
variables:
SPEC: " ~shared ~openmp +tests %clang@=14.0.6 ^blt@develop"
SPEC: " ~shared ~openmp +tests %clang@=14.0.6"
extends: .job_on_poodle

gcc_10_3_1_openmp_default:
variables:
SPEC: " ~shared +tests %gcc@=10.3.1 ^blt@develop"
SPEC: " ~shared +tests %gcc@=10.3.1"
extends: .job_on_poodle

# OTHERS
clang_14_0_6_gcc_10_3_1_desul_atomics:
variables:
SPEC: " ~shared +openmp +tests +desul %clang@=14.0.6.gcc.10.3.1 ^blt@develop"
SPEC: " ~shared +openmp +tests +desul %clang@=14.0.6.gcc.10.3.1"
extends: .job_on_poodle
19 changes: 7 additions & 12 deletions .gitlab/jobs/ruby.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,18 +29,13 @@ gcc_10_3_1:
SPEC: " ~shared +openmp +omptask +tests %gcc@=10.3.1 ${PROJECT_RUBY_DEPS}"
extends: .job_on_ruby

# Identical to shared job, but use OpenMP tasks and no vectorization
intel_19_1_2_gcc_10_3_1:
# Known issue currently under investigation
# https://github.com/LLNL/RAJA/pull/1712#issuecomment-2292006843
intel_2023_2_1:
variables:
SPEC: " ~shared +openmp +omptask +tests %intel@=19.1.2.gcc.10.3.1 ${PROJECT_RUBY_DEPS}"
SPEC: "${PROJECT_RUBY_VARIANTS} %intel@=2023.2.1 ${PROJECT_RUBY_DEPS}"
extends: .job_on_ruby

# Allowed to fail
intel_2022_1_0:
variables:
SPEC: "${PROJECT_RUBY_VARIANTS} %intel@=2022.1.0 ${PROJECT_RUBY_DEPS}"
allow_failure: true
extends: .job_on_ruby

############
# Extra jobs
Expand All @@ -51,16 +46,16 @@ intel_2022_1_0:

clang_14_0_6_openmp_off:
variables:
SPEC: " ~shared ~openmp +tests %clang@=14.0.6 ^blt@develop"
SPEC: " ~shared ~openmp +tests %clang@=14.0.6"
extends: .job_on_ruby

gcc_10_3_1_openmp_default:
variables:
SPEC: " ~shared +tests %gcc@=10.3.1 ^blt@develop"
SPEC: " ~shared +tests %gcc@=10.3.1"
extends: .job_on_ruby

# OTHERS
clang_14_0_6_gcc_10_3_1_desul_atomics:
variables:
SPEC: " ~shared +openmp +tests +desul %clang@=14.0.6.gcc.10.3.1 ^blt@develop"
SPEC: " ~shared +openmp +tests +desul %clang@=14.0.6.gcc.10.3.1"
extends: .job_on_ruby
21 changes: 16 additions & 5 deletions .gitlab/jobs/tioga.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,13 @@
# project. We keep ${PROJECT_<MACHINE>_VARIANTS} and ${PROJECT_<MACHINE>_DEPS}
# So that the comparison with the original job is easier.

# No overridden jobs so far.
# Compiler error preventing a test to succeed.
# https://github.com/LLNL/RAJA/pull/1712#issuecomment-2316335119
cce_18_0_0:
variables:
SPEC: "${PROJECT_TIOGA_VARIANTS} %cce@=18.0.0 ${PROJECT_TIOGA_DEPS}"
extends: .job_on_tioga
allow_failure: true

############
# Extra jobs
Expand All @@ -26,12 +32,17 @@
# ${PROJECT_<MACHINE>_DEPS} in the extra jobs. There is no reason not to fully
# describe the spec here.

rocmcc_6_1_1_hip_desul_atomics:
cce_17_0_1:
variables:
SPEC: "${PROJECT_TIOGA_VARIANTS} %cce@=17.0.1 ${PROJECT_TIOGA_DEPS}"
extends: .job_on_tioga

rocmcc_6_2_0_hip_desul_atomics:
variables:
SPEC: "~shared +rocm ~openmp +desul +tests amdgpu_target=gfx90a %rocmcc@=6.1.1 ^hip@6.1.1 ^blt@develop"
SPEC: "~shared +rocm ~openmp +desul +tests amdgpu_target=gfx90a %rocmcc@=6.2.0 ^hip@6.2.0"
extends: .job_on_tioga

rocmcc_6_1_1_hip_openmp:
rocmcc_6_2_0_hip_openmp:
variables:
SPEC: "~shared +rocm +openmp +omptask +tests amdgpu_target=gfx90a %rocmcc@=6.1.1 ^hip@6.1.1 ^blt@develop"
SPEC: "~shared +rocm +openmp +omptask +tests amdgpu_target=gfx90a %rocmcc@=6.2.0 ^hip@6.2.0"
extends: .job_on_tioga
38 changes: 16 additions & 22 deletions docs/sphinx/dev_guide/build_configurations.rst
Original file line number Diff line number Diff line change
Expand Up @@ -154,9 +154,9 @@ Generating a host-config file
To generate a host-config file for a desired configuration, run the
``uberenv.py`` python script from the top-level RAJA directory.

.. important:: **Do not** run the ``uberenv.py`` script, which invokes Spack
in your LC home directory. Running Spack in your home directory
may cause you to exceed your LC disk space quota.
.. important:: **DO NOT** run the ``uberenv.py`` script, which invokes Spack,
in your LC home directory. **Running Spack in your home
directory may cause you to exceed your LC disk space quota.**

For example,

Expand Down Expand Up @@ -241,39 +241,33 @@ Reproducing Docker Builds Locally
==================================

RAJA uses Docker container images that it shares with other LLNL GitHub projects
for Azure CI testing (see :ref:`azure_ci-label` for more information).
We use Azure Pipelines for Linux, Windows, and MacOS builds. Typically, we
do RAJA testing for Linux on Azure with compilers, or compiler versions, that
for Azure and GitHub Actions CI testing (see :ref:`azure_ci-label` for more
information). We use Azure Pipelines and GitHub Actions for Linux, Windows,
and MacOS builds for build environments and compiler versions that
are not available on LLNL LC machines.

You can reproduce Azure builds locally for testing with the following steps if
you have Docker installed.
You can reproduce Azure and GitHub Actions builds locally for testing using
the following steps if you have access to Docker.

#. Run the command to build a local Docker image:

.. code-block:: bash
#. Run the command to build a local Docker image::

$ DOCKER_BUILDKIT=1 docker build --target <compiler> --no-cache

Here, ``<compiler>`` is one of the names following ``AS`` in the
`RAJA Dockerfile <https://github.com/LLNL/RAJA/blob/develop/Dockerfile>`_.


#. To get dropped into a terminal in the Docker image, run the following:

.. code-block:: bash
#. To get dropped into a terminal in the Docker image, run the following::
$ docker run -it ghcr.io/rse-ops/<os image>:<compiler> /bin/bash
$ docker run -it ghcr.io/llnl/radiuss:<os-image-compiler> /bin/bash

Here, ``<os image>:<compiler>`` is the OS image and compiler image you
want (see the aforementioned Dockerfile).
Here, ``<os-image-compiler>`` is the OS image and compiler image you
want (see the aforementioned Dockerfile description).
Then, you can build, run tests, edit files, etc. in the Docker image. Note that
the docker command has a ``-v`` argument that you can use to mount a local
directory in the image. For example

.. code-block:: bash
the Docker command has a ``-v`` argument that you can use to mount a local
directory in the image. For example::

& docker -v pwd:/opt/RAJA
docker -v pwd:/opt/RAJA

will mount your current local directory as ``/opt/RAJA`` in the image.
Loading

0 comments on commit 17a2b04

Please sign in to comment.