Skip to content

Commit cccea3e

Browse files
dzzz2001claude
andauthored
Docs: update cuSolverMP documentation for HPC SDK version differences (#6955)
- Add version-specific module loading instructions (HPC-X for SDK < 25.9, NCCL for SDK >= 25.9) - Add minimum version check (>= 0.4.0) in CMake configuration - Simplify documentation by removing manual installation option Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 06fb968 commit cccea3e

2 files changed

Lines changed: 21 additions & 18 deletions

File tree

cmake/SetupCuSolverMp.cmake

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,15 @@ function(abacus_setup_cusolvermp target_name)
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")
49+
message(FATAL_ERROR
50+
"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."
53+
)
54+
endif()
55+
4756
# Auto-select communicator backend by cuSolverMp version.
4857
# cuSolverMp < 0.7.0 -> CAL, otherwise -> NCCL.
4958
set(_use_cal OFF)

toolchain/README.md

Lines changed: 12 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -292,33 +292,27 @@ cmake -B $BUILD_DIR \
292292

293293
#### Multi-GPU with cuSolverMP
294294

295-
**Option 1: Using NVIDIA HPC SDK (Recommended)**
295+
cuSolverMP requires NVIDIA HPC SDK. Follow these steps to build with cuSolverMP:
296296

297297
1. Load the NVHPC module:
298-
```bash
299-
module load nvhpc
300-
```
301-
302-
2. Build with cuSolverMP enabled:
303-
```bash
304-
cmake -B $BUILD_DIR \
305-
-DUSE_CUDA=ON \
306-
-DENABLE_CUSOLVERMP=ON \
307-
# ... other options
308-
```
309-
310-
The module file will set `NVHPC_ROOT` automatically, and CMake will find cuSolverMP and NCCL(or CAL) from it.
311298

312-
**Option 2: Manual Installation**
299+
- **For NVIDIA HPC SDK version < 25.9**: cuSolverMP relies on HPC-X for communication, so you need to load the `nvhpc-hpcx-cudaxx/xx.x` module. For example, with HPC SDK 25.3:
300+
```bash
301+
module use /opt/nvidia/hpc_sdk/modulefiles
302+
module load nvhpc-hpcx-cuda12/25.3
303+
```
313304

314-
If you installed cuSolverMP and NCCL separately and not in system default paths, specify the paths explicitly:
305+
- **For NVIDIA HPC SDK version >= 25.9**: cuSolverMP uses NCCL for communication instead of HPC-X, so only the base `nvhpc/xx.x` module is needed. For example, with HPC SDK 26.1:
306+
```bash
307+
module use /opt/nvidia/hpc_sdk/modulefiles
308+
module load nvhpc/26.1
309+
```
315310

311+
2. Build with cuSolverMP enabled:
316312
```bash
317313
cmake -B $BUILD_DIR \
318314
-DUSE_CUDA=ON \
319315
-DENABLE_CUSOLVERMP=ON \
320-
-DCUSOLVERMP_PATH=/path/to/cusolvermp/ \
321-
-DNCCL_PATH=/path/to/nccl/ \
322316
# ... other options
323317
```
324318

0 commit comments

Comments
 (0)