Skip to content

test: add validated NAO cases to CUDA CI - #7856

Open
GenZeal-Lin wants to merge 1 commit into
deepmodeling:developfrom
GenZeal-Lin:test/add-nao-gpu-ci
Open

test: add validated NAO cases to CUDA CI#7856
GenZeal-Lin wants to merge 1 commit into
deepmodeling:developfrom
GenZeal-Lin:test/add-nao-gpu-ci

Conversation

@GenZeal-Lin

Copy link
Copy Markdown

Summary

This PR adds validated GPU integration tests from 02_NAO_Gamma and
03_NAO_multik to the existing CUDA CI workflow.

The scope of this PR is intentionally limited to integrating cases that
currently pass on GPU. Cases that are known to fail or require unavailable
build features are excluded from CASES_GPU.txt and will be handled
separately in follow-up issues / bug-fix PRs.

Changes

  • Add tests/02_NAO_Gamma/CASES_GPU.txt
    • 30 validated GPU cases
  • Add tests/03_NAO_multik/CASES_GPU.txt
    • 58 validated GPU cases
  • Extend .github/workflows/cuda.yml to run both case lists on GPU
  • Set device gpu at CI runtime only for cases included in the corresponding
    CASES_GPU.txt
  • Add an explicit fail-fast check when a listed case does not contain an
    INPUT file

No ABACUS source code, reference data, CPU test configuration, or failing
test cases are modified in this PR.

GPU validation

Local GPU validation was performed on an NVIDIA GeForce RTX 4090 using a
candidate patch based on commit:

0dca9dd7820bea3075e8e670f822269fb6732f18

(Fix: calculate net force after symmetrization (#7846))

For the local GPU validation, device gpu was injected into the selected
cases' INPUT files at runtime. The GPU build was executed through the local
abacus_gpu_timeout.sh wrapper.

02_NAO_Gamma

  • Candidate scope: 32 cases
  • Included in CUDA CI: 30 cases
  • Excluded: 2 cases
  • Directory-level GPU runs: 30
  • Duplicate runs: 0
  • Failed runs: 0
  • Autotest result: PASS
  • Autotest property checks: 222 passed

The final CASES_GPU.txt case set exactly matches the set of directory-level
cases successfully exercised in the GPU validation run.

03_NAO_multik

  • Candidate scope: 65 cases
  • Included in CUDA CI: 58 cases
  • Excluded: 7 cases
  • Directory-level GPU runs: 58
  • Duplicate runs: 0
  • Failed runs: 0
  • Autotest result: PASS
  • Autotest property checks: 646 passed

The final CASES_GPU.txt case set exactly matches the set of directory-level
cases successfully exercised in the GPU validation run.

In total, this PR adds 88 validated NAO cases to the CUDA CI path.

The missing-INPUT fail-fast guard was added after the GPU validation. It
does not change the execution path of the validated 88 cases because every
listed case currently contains an INPUT file.

Cases intentionally excluded

02_NAO_Gamma

  • scf_FeBiTe
    • ks_solver = genelpa is not supported for GPU acceleration.
  • scf_metagga
    • SCAN is unavailable in the tested build configuration
      (ENABLE_LIBXC=OFF).

03_NAO_multik

  • scf_u_ramp
    • ks_solver = genelpa is not supported for GPU acceleration.
  • scf_symm_prec
    • ks_solver = genelpa is not supported for GPU acceleration.
  • scf_out_chg_tau
    • SCAN is unavailable in the tested build configuration
      (ENABLE_LIBXC=OFF).
  • relax_cell_vdw4_d4
    • DFT-D4 support is disabled in the tested build configuration
      (ENABLE_DFTD4=OFF).
  • relax_cell_vdw4_d4s
    • DFT-D4 support is disabled in the tested build configuration
      (ENABLE_DFTD4=OFF).
  • scf_out_hsr_spin4
    • The GPU run produces a different H(R)/S(R) CSR sparsity structure from
      the CPU/reference result.
  • nscf_out_hsr_tr_rr
    • The GPU run produces a different H(R)/S(R) CSR sparsity structure from
      the CPU/reference result.

For the last two cases, CPU control runs complete successfully and reproduce
the repository references, while GPU runs retain additional near-zero entries
and therefore modify the CSR sparsity structure. The exact source-level cause
is intentionally not addressed in this PR.

Scope

This PR only establishes CUDA CI coverage for currently validated
02_NAO_Gamma and 03_NAO_multik cases.

It intentionally does not:

  • fix GPU numerical or CSR issues;
  • modify ks_solver behavior;
  • enable LibXC or DFT-D4;
  • update reference results;
  • modify ABACUS computational source code;
  • change CPU integration test behavior;
  • expand the task to other GPU test suites.

Those issues will be handled separately so that each PR has one focused
objective.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant