Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
15 changes: 11 additions & 4 deletions cmake/modules/SetupCuSolverMp.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -44,12 +44,19 @@ function(abacus_setup_cusolvermp)
endif()
endif()

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

Expand Down
8 changes: 8 additions & 0 deletions docs/advanced/acceleration/cuda.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,14 @@ To compile and use ABACUS in CUDA mode, you currently need to have an NVIDIA GPU

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

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

## Building ABACUS with the GPU support:

Expand Down
Loading