Add cuSolverMp RT-TDDFT smoke coverage and version notes#7658
Add cuSolverMp RT-TDDFT smoke coverage and version notes#7658Stardust0831 wants to merge 6 commits into
Conversation
fcedb4a to
44b5034
Compare
|
Great job, thanks for the detailed diagnosis! @Stardust0831 I developed the multi-GPU RT-TDDFT path, and I have also encountered hangs with cuSOLVERMp/cuBLASMp under certain BLACS process grids and library versions. At the time, however, I did not isolate the problem using NVIDIA’s official samples or verify the affected version range in detail, so this investigation is very helpful. It is especially useful that the same failure can be reproduced independently of ABACUS and that upgrading to cuSOLVERMp 0.9.x resolves the 16-rank RT-TDDFT case. This gives us much stronger evidence that the hang is caused by the upstream library rather than the RT-TDDFT implementation itself. What are your planned next steps for this PR? Are you planning to add the cuSOLVERMp version guard and documentation mentioned in the description, and possibly keep the 4-rank smoke test as regular coverage while using a 16-rank 4×4-grid case as a periodic regression test? |
Reminder
Linked Issue
Related issue: deepmodeling/abacus-develop#7657
Unit Tests and/or Case Tests for my changes
Commands run during diagnosis:
Results:
cuSolverMp 0.7.2: official sample and ABACUS case hang; ranks 4--15 emitNCCL WARN CommUserRank : comm argument is NULL.cuSolverMp 0.9.0+cuBLASMp 0.9.1: 3 MD/RT steps complete, exit code 0, no NCCL warnings, final energy-1336.999498209972 eV.Additional SAI self-hosted validation (4 V100 GPUs):
What's changed?
Implemented in the current CI branch
workflow_dispatchSAI self-hosted GPU workflow.ks_solver=cusolvermpsmoke test.Proposed ABACUS follow-up in this PR
This PR proposes a configure-time guard in
cmake/modules/SetupCuSolverMp.cmake:0.7.0 <= version < 0.9.0, because this range includes the known STEDC/Sygvd defects.The exact policy (fatal configure error versus opt-in legacy override) should be confirmed by maintainers because it changes compatibility for users of older NVHPC installations. The proposed default is to fail early for the NCCL backend, avoiding a runtime hang.
The accompanying SAI workflow is
workflow_dispatchonly and exposes anmp_versioninput (projectorsystem) so the cuSolverMp/cuBLASMp runtime is selected by absolute prefix rather than by whichever module happens to be loaded. It also provides a 4-rank RT-TDDFT cuSolverMp smoke case for a future GPU CI job; it does not run automatically for untrusted pull requests.Governance Notes
documentation and CMake diagnostics.
Diag_CusolverMP_gvdand the existing NCCL-backed path.