Skip to content
Merged
Show file tree
Hide file tree
Changes from 19 commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
7844b53
Update BLT
smithsg84 Apr 2, 2026
923dbc1
Initial CUDA 13 work. Compiles and runs on RH9 with both CUDA 12 an…
smithsg84 Apr 3, 2026
d1b8a89
Merge remote-tracking branch 'origin/develop' into feature/smith84/cu…
smithsg84 Apr 3, 2026
e4e7db8
Style
smithsg84 Apr 3, 2026
2522afe
CUB location has changed in CUDA 13
smithsg84 Apr 8, 2026
9a7821b
Add CUDA 13 test to matrix suite
smithsg84 Apr 8, 2026
dc6d9f4
update camp
smithsg84 Apr 8, 2026
2cebf15
Adding more retional to questions for discussion
smithsg84 Apr 8, 2026
f02c310
Testing matrix CUDA build with modified spack package
smithsg84 Apr 10, 2026
7490bf4
Fixed directory structure
smithsg84 Apr 10, 2026
7c5465c
Deep sigh, fixing path again
smithsg84 Apr 10, 2026
a1bf791
Use development versions of BLT and Camp
smithsg84 Apr 10, 2026
0396164
Fix package testing paths
smithsg84 Apr 13, 2026
ab46365
Temporary mod to use branch of CAMP
smithsg84 Apr 14, 2026
8ab7ebe
Fixed typo
smithsg84 Apr 14, 2026
fc0bee7
Fix package URL
smithsg84 Apr 14, 2026
647c701
Revert camp version
smithsg84 Apr 14, 2026
87d308a
Increase RAJA job allocation time on matrix
smithsg84 Apr 15, 2026
6cce1f6
Merge branch 'develop' into feature/smith84/cuda-13-support
rhornung67 Apr 15, 2026
6740342
Update BLT and CAMP dependencies
smithsg84 May 7, 2026
e8674eb
Cleanup of temporary Spack package file
smithsg84 May 8, 2026
618c1e2
Merge branch 'develop' into feature/smith84/cuda-13-support
smithsg84 May 8, 2026
52b97b6
Working use-with-cmake test in both contexts and examples working in …
smithsg84 May 13, 2026
65ae965
Merge branch 'develop' into feature/smith84/cuda-13-support
smithsg84 May 21, 2026
e036025
Refix install so hosts-config.cmake is present when test are not built
smithsg84 May 22, 2026
a30c0fa
Reintegrate Cody changes
smithsg84 May 22, 2026
3d99495
Cleanup RAJA spack package
smithsg84 May 22, 2026
43a6fa6
Remove temporary PR spack package files for updating cuda
smithsg84 Jun 24, 2026
2277bb9
Raja spack package was updated to use latest BLT release
smithsg84 Jun 24, 2026
dcd35a3
Merge branch 'develop' into feature/smith84/cuda-13-support
smithsg84 Jun 24, 2026
951e058
Update radius-spack-configs
smithsg84 Jun 24, 2026
bb9b6b8
Trigger CI pipeline
smithsg84 Jun 24, 2026
3f39c6b
Need current spack-packages for CUDA 13 support
smithsg84 Jun 24, 2026
bb6ff01
Remove spack-packages commit hash from uberenv and move to radius-spa…
smithsg84 Jun 25, 2026
e56d07b
Revert temporaroy testing radiuss-spack-configs fork to main repository
smithsg84 Jun 26, 2026
590be37
Merge branch 'develop' into feature/smith84/cuda-13-support
rhornung67 Jun 30, 2026
7e76aaf
Squash compiler warnings for CUDA/HIP builds; routines do not need ho…
rhornung67 Jul 1, 2026
f6f8fa8
Squash more compiler warnings
rhornung67 Jul 1, 2026
5edf7e6
Reove errant double quote
rhornung67 Jul 1, 2026
81cb1b3
Merge branch 'develop' into feature/smith84/cuda-13-support
rhornung67 Jul 1, 2026
abcc770
Merge branch 'develop' into feature/smith84/cuda-13-support
rhornung67 Jul 2, 2026
6d96633
Merge branch 'develop' into feature/smith84/cuda-13-support
rhornung67 Jul 6, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .gitlab/custom-variables.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ variables:
# Matrix (SLURM) allocation settings
MATRIX_SHARED_ALLOC: "OFF"
# Note: we repeat the reservation, helpful when jobs are manually re-triggered.
MATRIX_JOB_ALLOC: "--partition=pci --exclusive=user --time=20 --nodes=1"
MATRIX_JOB_ALLOC: "--partition=pci --exclusive=user --time=30 --nodes=1"
# Project specific variants for matrix
PROJECT_MATRIX_VARIANTS: "~shared +cuda cuda_arch=90 +tests"
# Project specific deps for matrix
Expand Down
5 changes: 5 additions & 0 deletions .gitlab/jobs/matrix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,3 +36,8 @@ clang_18_1_8_cuda_12_6_0:
variables:
SPEC: " ~shared +cuda cuda_arch=90 +tests %llvm@=18.1.8 ^cuda@12.6.0+allow-unsupported-compilers"
extends: .job_on_matrix

clang_18_1_8_cuda_13_1_1:
variables:
SPEC: " ~shared +cuda cuda_arch=90 +tests %llvm@=18.1.8 ^cuda@13.1.1+allow-unsupported-compilers ^blt@develop"
extends: .job_on_matrix
2 changes: 1 addition & 1 deletion .uberenv_config.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,6 @@
"spack_url": "https://github.com/spack/spack.git",
"spack_branch": "v1.1.1",
"spack_configs_path": "scripts/radiuss-spack-configs",
"spack_packages_path": "scripts/radiuss-spack-configs/spack_repo/llnl_radiuss/packages",
"spack_packages_path": ["scripts/pull-request-testing/spack_repo/llnl_raja/packages", "scripts/radiuss-spack-configs/spack_repo/llnl_radiuss/packages"],
"spack_setup_clingo": false
}
2 changes: 1 addition & 1 deletion blt
Submodule blt updated 34 files
+1 −0 .gitignore
+4 −12 .gitlab-ci.yml
+13 −25 .gitlab/build_dane.yml
+0 −71 .gitlab/build_lassen.yml
+54 −0 .gitlab/build_matrix.yml
+5 −19 .gitlab/build_tioga.yml
+1 −1 README.md
+14 −2 RELEASE-NOTES.md
+1 −1 cmake/BLTInstallableMacros.cmake
+19 −6 cmake/BLTMacros.cmake
+6 −9 cmake/SetupCompilerOptions.cmake
+7 −0 cmake/thirdparty/BLTSetupCUDA.cmake
+1 −1 docs/api/code_check.rst
+1 −1 docs/api/documentation.rst
+5 −6 docs/api/git.rst
+27 −27 docs/api/target.rst
+5 −8 docs/tutorial/common_hpc_dependencies.rst
+9 −9 docs/tutorial/host_configs.rst
+0 −67 host-configs/llnl/blueos_3_ppc64le_ib_p9/clang@10.0.1_nvcc_c++14_export_tpls.cmake
+0 −80 host-configs/llnl/blueos_3_ppc64le_ib_p9/clang@10.0.1_nvcc_c++14_xlf.cmake
+0 −64 host-configs/llnl/blueos_3_ppc64le_ib_p9/clang@10.0.1_nvcc_c++17.cmake
+0 −61 host-configs/llnl/blueos_3_ppc64le_ib_p9/clang@10.0.1_nvcc_c++17_no_separable.cmake
+0 −40 host-configs/llnl/blueos_3_ppc64le_ib_p9/clang@14.0.5_with_gcc@8.3.1_nvcc_c++_only.cmake
+2 −0 host-configs/llnl/toss_4_x86_64_ib/gcc@10.3.1_nvcc.cmake
+1 −1 host-configs/llnl/toss_4_x86_64_ib/intel@2022.1.0-c++17.cmake
+52 −0 host-configs/llnl/toss_4_x86_64_ib/intel@2025.2.0-c++20.cmake
+3 −2 tests/smoke/CMakeLists.txt
+10 −3 tests/smoke/blt_cuda_runtime_smoke.cpp
+14 −0 tests/smoke/blt_mpi_smoke.cpp
+7 −2 thirdparty_builtin/googletest-1.16.0/googletest/cmake/internal_utils.cmake
+6 −2 thirdparty_builtin/googletest-1.16.0/googletest/include/gtest/gtest-printers.h
+28 −0 thirdparty_builtin/patches/gtest-2025-12-08-fix-flag-change-intel-llvm.patch
+13 −0 thirdparty_builtin/patches/gtest-2025-12-09-remove-Winline.patch
+22 −0 thirdparty_builtin/patches/gtest-2026-01-20-quiet-implicit-cast-warning.patch
3 changes: 2 additions & 1 deletion cmake/thirdparty/FindCUB.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@ find_path(CUB_INCLUDE_DIRS
HINTS
${CUB_DIR}/
${CUB_DIR}/include
${CUDA_TOOLKIT_ROOT_DIR}/include)
${CUDA_TOOLKIT_ROOT_DIR}/include
${CUDA_TOOLKIT_ROOT_DIR}/include/cccl)

find_package_handle_standard_args(
CUB
Expand Down
16 changes: 16 additions & 0 deletions include/RAJA/policy/cuda/MemUtils_CUDA.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -146,10 +146,26 @@ struct DevicePinnedAllocator
void* ptr;
CAMP_CUDA_API_INVOKE_AND_CHECK(cudaMallocManaged, &ptr, nbytes,
cudaMemAttachGlobal);
#if CUDART_VERSION >= 13000
cudaMemLocation devLoc {};
devLoc.type = cudaMemLocationTypeDevice;
devLoc.id = device;

CAMP_CUDA_API_INVOKE_AND_CHECK(cudaMemAdvise, ptr, nbytes,
cudaMemAdviseSetPreferredLocation, devLoc);

cudaMemLocation cpuLoc {};
cpuLoc.type = cudaMemLocationTypeHost;
cpuLoc.id = 0;
Comment thread
MrBurmark marked this conversation as resolved.

CAMP_CUDA_API_INVOKE_AND_CHECK(cudaMemAdvise, ptr, nbytes,
cudaMemAdviseSetAccessedBy, cpuLoc);
#else
CAMP_CUDA_API_INVOKE_AND_CHECK(cudaMemAdvise, ptr, nbytes,
cudaMemAdviseSetPreferredLocation, device);
CAMP_CUDA_API_INVOKE_AND_CHECK(cudaMemAdvise, ptr, nbytes,
cudaMemAdviseSetAccessedBy, cudaCpuDeviceId);
#endif

return ptr;
}
Expand Down
Empty file.
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
diff -ruN spack-src/include/camp/resource/hip.hpp spack-src-patched/include/camp/resource/hip.hpp
--- spack-src/include/camp/resource/hip.hpp 2021-08-20 23:38:39.000000000 +0000
+++ spack-src-patched/include/camp/resource/hip.hpp 2024-06-06 21:34:25.174477941 +0000
@@ -111,7 +111,11 @@
hipPointerAttribute_t a;
hipError_t status = hipPointerGetAttributes(&a, p);
if (status == hipSuccess) {
+#if (HIP_VERSION_MAJOR >= 6)
+ switch (a.type) {
+#else
switch (a.memoryType) {
+#endif
case hipMemoryTypeHost:
return MemoryAccess::Pinned;
case hipMemoryTypeDevice:
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
diff --git a/include/camp/resource.hpp b/include/camp/resource.hpp
index 58df206..763aa20 100644
--- a/include/camp/resource.hpp
+++ b/include/camp/resource.hpp
@@ -12,6 +12,7 @@ http://github.com/llnl/camp
#define __CAMP_RESOURCE_HPP

#include <cstring>
+#include <stdexcept>
#include <memory>
#include <mutex>
#include <type_traits>
diff --git a/include/camp/resource/host.hpp b/include/camp/resource/host.hpp
index c765175..4428c57 100644
--- a/include/camp/resource/host.hpp
+++ b/include/camp/resource/host.hpp
@@ -13,6 +13,7 @@ http://github.com/llnl/camp

#include "camp/resource/event.hpp"
#include "camp/resource/platform.hpp"
+#include <cstdlib>

namespace camp
{

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for looking in to this, Steve! Should we just directly update Camp and release it, rather than patching it? Same question for BLT.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That camp patch is in the upstream spack-packages repo, it is there to support building older versions of camp (pre camp 2022.10). Local copy was done to get CI build system working until camp can be updated for CUDA.

Original file line number Diff line number Diff line change
@@ -0,0 +1,161 @@
# Copyright Spack Project Developers. See COPYRIGHT file for details.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you plan to have the camp package changes pushed up to the spack package repo?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, once CI tests are working PR for spack-packages / camp / BLT will be done.

#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)

from spack_repo.builtin.build_systems.cached_cmake import cmake_cache_string
from spack_repo.builtin.build_systems.cmake import CMakePackage
from spack_repo.builtin.build_systems.cuda import CudaPackage
from spack_repo.builtin.build_systems.rocm import ROCmPackage

from spack.package import *


class Camp(CMakePackage, CudaPackage, ROCmPackage):
"""
Compiler agnostic metaprogramming library providing concepts,
type operations and tuples for C++ and cuda
"""

homepage = "https://github.com/LLNL/camp"
git = "https://github.com/LLNL/camp.git"
url = "https://github.com/LLNL/camp/archive/v0.1.0.tar.gz"

maintainers("adrienbernede", "kab163", "trws")

license("BSD-3-Clause")

version("main", branch="main", submodules=False)
version(
"2025.12.0",
# SGS Hacking for CUDA 13 testing; redirect CAMP to temporary version with
# CUDA 13 modifications.
branch="feature/smith84/cuda-13-support",
git = "https://github.com/smithsg84/camp.git",
submodules=False,
#tag="v2025.12.0",
#commit="a8caefa9f4c811b1a114b4ed2c9b681d40f12325",
#submodules=False,
)
version(
"2025.09.2",
tag="v2025.09.2",
commit="4070ce93a802849d61037310a87c50cc24c9e498",
submodules=False,
)
version(
"2025.09.0",
tag="v2025.09.0",
commit="b642f29b9d0eee9113bea2791958c29243063e5c",
submodules=False,
)
version(
"2025.03.0",
tag="v2025.03.0",
commit="ee0a3069a7ae72da8bcea63c06260fad34901d43",
submodules=False,
)
version(
"2024.07.0",
tag="v2024.07.0",
commit="0f07de4240c42e0b38a8d872a20440cb4b33d9f5",
submodules=False,
)
version(
"2024.02.1",
tag="v2024.02.1",
commit="79c320fa09db987923b56884afdc9f82f4b70fc4",
submodules=False,
)
version(
"2024.02.0",
tag="v2024.02.0",
commit="03c80a6c6ab4f97e76a52639563daec71435a277",
submodules=False,
)
version(
"2023.06.0",
tag="v2023.06.0",
commit="ac34c25b722a06b138bc045d38bfa5e8fa3ec9c5",
submodules=False,
)
version("2022.10.1", sha256="2d12f1a46f5a6d01880fc075cfbd332e2cf296816a7c1aa12d4ee5644d386f02")
version("2022.10.0", sha256="3561c3ef00bbcb61fe3183c53d49b110e54910f47e7fc689ad9ccce57e55d6b8")
version("2022.03.2", sha256="bc4aaeacfe8f2912e28f7a36fc731ab9e481bee15f2c6daf0cb208eed3f201eb")
version("2022.03.0", sha256="e9090d5ee191ea3a8e36b47a8fe78f3ac95d51804f1d986d931e85b8f8dad721")
version("0.3.0", sha256="129431a049ca5825443038ad5a37a86ba6d09b2618d5fe65d35f83136575afdb")
version("0.2.3", sha256="58a0f3bd5eadb588d7dc83f3d050aff8c8db639fc89e8d6553f9ce34fc2421a7")
version("0.2.2", sha256="194d38b57e50e3494482a7f94940b27f37a2bee8291f2574d64db342b981d819")
version("0.1.0", sha256="fd4f0f2a60b82a12a1d9f943f8893dc6fe770db493f8fae5ef6f7d0c439bebcc")

# TODO: figure out gtest dependency and then set this default True.
variant("tests", default=False, description="Build tests")
variant("openmp", default=False, description="Build with OpenMP support")
variant("omptarget", default=False, description="Build with OpenMP Target support")
variant("sycl", default=False, description="Build with Sycl support")

depends_on("c", type="build")
depends_on("cxx", type="build")

with when("+cuda"):
depends_on("cub", when="^cuda@:10")

depends_on("blt", type="build")
depends_on("blt@0.7.1:", type="build", when="@2025.09.0:")
depends_on("blt@0.7.0:", type="build", when="@2025.03.0:")
depends_on("blt@0.6.2:", type="build", when="@2024.02.1:")
depends_on("blt@0.6.1", type="build", when="@2024.02.0")
depends_on("blt@0.5.0:0.5.3", type="build", when="@2022.03.0:2023.06.0")

patch("libstdc++-13-missing-header.patch", when="@:2022.10")

patch("camp-rocm6.patch", when="@0.2.3 +rocm ^hip@6:")

conflicts("^blt@:0.3.6", when="+rocm")

conflicts("+omptarget +rocm")
conflicts("+sycl +omptarget")
conflicts("+sycl +rocm")
conflicts(
"+sycl",
when="@:2024.02.99",
msg="Support for SYCL was introduced in RAJA after 2024.02 release, "
"please use a newer release.",
)

def cmake_args(self):
spec = self.spec

options = []

options.append("-DBLT_SOURCE_DIR={0}".format(spec["blt"].prefix))

options.append(self.define_from_variant("ENABLE_CUDA", "cuda"))
if spec.satisfies("+cuda"):
options.append("-DCUDA_TOOLKIT_ROOT_DIR={0}".format(spec["cuda"].prefix))

if not spec.satisfies("cuda_arch=none"):
cuda_arch = spec.variants["cuda_arch"].value
options.append("-DCMAKE_CUDA_ARCHITECTURES={0}".format(cuda_arch[0]))
options.append("-DCUDA_ARCH=sm_{0}".format(cuda_arch[0]))
flag = "-arch sm_{0}".format(cuda_arch[0])
options.append("-DCMAKE_CUDA_FLAGS:STRING={0}".format(flag))

options.append(self.define_from_variant("ENABLE_HIP", "rocm"))
if spec.satisfies("+rocm"):
rocm_root = spec["llvm-amdgpu"].prefix
options.append(self.define("ROCM_PATH", rocm_root))

archs = ";".join(self.spec.variants["amdgpu_target"].value)
options.append("-DCMAKE_HIP_ARCHITECTURES={0}".format(archs))
options.append("-DGPU_TARGETS={0}".format(archs))
options.append("-DAMDGPU_TARGETS={0}".format(archs))

if spec.satisfies("+omptarget"):
options.append(cmake_cache_string("RAJA_DATA_ALIGN", 64))

options.append(self.define_from_variant("ENABLE_TESTS", "tests"))
options.append(self.define_from_variant("ENABLE_OPENMP", "openmp"))
options.append(self.define_from_variant("CAMP_ENABLE_TARGET_OPENMP", "omptarget"))
options.append(self.define_from_variant("ENABLE_SYCL", "sycl"))

return options
Loading
Loading