sundials: Fix for ROCm/6+
This commit is contained in:
parent
5d9de68725
commit
195d20d1f2
2 changed files with 37 additions and 0 deletions
|
@ -284,6 +284,10 @@ class Sundials(CMakePackage, CudaPackage, ROCmPackage):
|
|||
# ==========================================================================
|
||||
# Patches
|
||||
# ==========================================================================
|
||||
# https://github.com/LLNL/sundials/pull/434
|
||||
# https://github.com/LLNL/sundials/pull/437
|
||||
patch("sundials-hip-platform.patch", when="@7.0.0 +rocm")
|
||||
|
||||
# https://github.com/spack/spack/issues/29526
|
||||
patch("nvector-pic.patch", when="@6.1.0:6.2.0 +rocm")
|
||||
|
||||
|
|
|
@ -0,0 +1,33 @@
|
|||
diff -ruN spack-src/cmake/SundialsSetupHIP.cmake spack-src-patched/cmake/SundialsSetupHIP.cmake
|
||||
--- spack-src/cmake/SundialsSetupHIP.cmake 2024-02-29 22:47:30.000000000 +0000
|
||||
+++ spack-src-patched/cmake/SundialsSetupHIP.cmake 2024-06-07 15:22:57.920619263 +0000
|
||||
@@ -32,9 +32,9 @@
|
||||
|
||||
if(NOT DEFINED HIP_PLATFORM)
|
||||
if(NOT DEFINED ENV{HIP_PLATFORM})
|
||||
- set(HIP_PLATFORM "hcc" CACHE STRING "HIP platform (hcc, nvcc)")
|
||||
+ set(HIP_PLATFORM "amd" CACHE STRING "HIP platform (amd, nvidia)")
|
||||
else()
|
||||
- set(HIP_PLATFORM "$ENV{HIP_PLATFORM}" CACHE STRING "HIP platform (hcc, nvcc)")
|
||||
+ set(HIP_PLATFORM "$ENV{HIP_PLATFORM}" CACHE STRING "HIP platform (amd, nvidia)")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
diff -ruN spack-src/include/sundials/sundials_hip_policies.hpp spack-src-patched/include/sundials/sundials_hip_policies.hpp
|
||||
--- spack-src/include/sundials/sundials_hip_policies.hpp 2024-02-29 22:47:30.000000000 +0000
|
||||
+++ spack-src-patched/include/sundials/sundials_hip_policies.hpp 2024-06-07 15:23:15.752724851 +0000
|
||||
@@ -27,10 +27,12 @@
|
||||
namespace sundials {
|
||||
namespace hip {
|
||||
|
||||
-#if defined(__HIP_PLATFORM_HCC__)
|
||||
+#if defined(__HIP_PLATFORM_HCC__) || defined(__HIP_PLATFORM_AMD__)
|
||||
constexpr const sunindextype WARP_SIZE = 64;
|
||||
-#elif defined(__HIP_PLATFORM_NVCC__)
|
||||
+#elif defined(__HIP_PLATFORM_NVCC__) || defined(__HIP_PLATFORM_NVDIA__)
|
||||
constexpr const sunindextype WARP_SIZE = 32;
|
||||
+#else
|
||||
+#error "Unknown HIP_PLATFORM, report to github.com/LLNL/sundials/issues"
|
||||
#endif
|
||||
constexpr const sunindextype MAX_BLOCK_SIZE = 1024;
|
||||
constexpr const sunindextype MAX_WARPS = MAX_BLOCK_SIZE / WARP_SIZE;
|
Loading…
Reference in a new issue