Skip to content

feat: implement GPU UCCSD(T) - #3

Open
dajiaohuang wants to merge 1 commit into
bytedance:mainfrom
dajiaohuang:feat/1-uccsdt
Open

feat: implement GPU UCCSD(T)#3
dajiaohuang wants to merge 1 commit into
bytedance:mainfrom
dajiaohuang:feat/1-uccsdt

Conversation

@dajiaohuang

Copy link
Copy Markdown

Summary

  • route PySCF UHF references through a new GPU UCCSD solver
  • evaluate unrestricted CCSD amplitudes and energy in an antisymmetrized spin-orbital representation, then return PySCF-compatible (t1a, t1b) / (t2aa, t2ab, t2bb) blocks
  • add the generalized spin-orbital (T) correction on the GPU
  • enforce the existing gpulim / mem_ratio contract before uploading in-core transformed integrals
  • make the still-unsupported GHF path fail explicitly instead of silently returning None

Implementation notes

The AO-to-MO transformation remains in PySCF on the host, matching the existing conventional CCSD path. Transformed spin-orbital blocks, iterative CCSD contractions, DIIS amplitudes, and (T) contractions run through CuPy. This first unrestricted implementation is deliberately in-core; it reports the required and configured GPU integral footprints before upload when the calculation is too large.

Validation

  • cucc/test/test_uccsd.py: 2 tests passed on an NVIDIA RTX 5070 Ti with PySCF 2.5.0 and CuPy 14.2.0, using ByteQC's actual BufferPool
  • LiH+ / STO-3G doublet: CCSD correlation energy and (T) agree with PySCF within 1.1e-18 and 3.2e-22; all five unrestricted amplitude blocks agree within 1.7e-17
  • triplet H2O / 3-21G: CCSD and (T) agree within 3.5e-10 and 3.1e-11; frozen-core validation agrees within 2.8e-10 and 2.5e-11
  • python -m py_compile cucc/__init__.py cucc/uccsd.py cucc/test/test_uccsd.py
  • ruff check --ignore N999 cucc/__init__.py cucc/uccsd.py cucc/test/test_uccsd.py
  • git diff --check

Closes #1

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.

Implement of UCCSD(T)

1 participant