Skip to content

Commit a6e1d70

Browse files
authored
cmake: require cuSolverMp 0.9.0 (#7658)
1 parent f67e344 commit a6e1d70

2 files changed

Lines changed: 19 additions & 4 deletions

File tree

cmake/modules/SetupCuSolverMp.cmake

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,12 +44,19 @@ function(abacus_setup_cusolvermp)
4444
endif()
4545
endif()
4646

47-
# Check minimum version requirement (>= 0.4.0)
48-
if(CUSOLVERMP_VERSION_STR AND CUSOLVERMP_VERSION_STR VERSION_LESS "0.4.0")
47+
# Check minimum version requirement (>= 0.9.0)
48+
if(NOT CUSOLVERMP_VERSION_STR)
49+
message(FATAL_ERROR
50+
"Unable to detect the cuSOLVERMp version from ${CUSOLVERMP_VERSION_HEADER}. "
51+
"ABACUS requires cuSOLVERMp >= 0.9.0."
52+
)
53+
elseif(CUSOLVERMP_VERSION_STR VERSION_LESS "0.9.0")
4954
message(FATAL_ERROR
5055
"cuSOLVERMp version ${CUSOLVERMP_VERSION_STR} is too old. "
51-
"ABACUS requires cuSOLVERMp >= 0.4.0 (NVIDIA HPC SDK >= 23.5). "
52-
"Please upgrade your NVIDIA HPC SDK installation."
56+
"NVIDIA documents an STEDC defect in cuSOLVERMp 0.4.2 through 0.8.0 that affects "
57+
"non-power-of-two block sizes and certain 2D process grids; Syevd and "
58+
"Sygvd use STEDC internally. "
59+
"ABACUS requires cuSOLVERMp >= 0.9.0. Please upgrade cuSOLVERMp."
5360
)
5461
endif()
5562

docs/advanced/acceleration/cuda.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,14 @@ To compile and use ABACUS in CUDA mode, you currently need to have an NVIDIA GPU
2424

2525
- Install a driver and toolkit appropriate for your system (SDK is not necessary)
2626

27+
NVIDIA reports that cuSOLVERMp 0.4.2 through 0.8.0 contain an STEDC defect
28+
affecting non-power-of-two block sizes and certain 2D process grids. Because
29+
`Syevd` and `Sygvd` use STEDC internally, affected versions may fail or hang
30+
during distributed diagonalization. ABACUS therefore requires cuSOLVERMp 0.9.0
31+
or newer when `ENABLE_CUSOLVERMP=ON`. The recommended stack is cuSOLVERMp 0.9.0
32+
with cuBLASMp 0.9.1. See the
33+
[cuSOLVERMp 0.9.0 release notes](https://docs.nvidia.com/cuda/cusolvermp/release_notes/index.html#cusolvermp-v0-9-0)
34+
for the upstream fix details.
2735

2836
## Building ABACUS with the GPU support:
2937

0 commit comments

Comments
 (0)