Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

gpudev update #92

Merged
merged 141 commits into from
May 14, 2024
Merged

gpudev update #92

merged 141 commits into from
May 14, 2024

Conversation

cjknight
Copy link
Contributor

  • Merged with latest dev
  • Some "light" tuning of get_jk() CUDA kernels (light because need straightforward port to portable programming model)
  • Added mini-app for evaluating tall-skinny matrix transposes
  • Updated Makefile and arch files to support mini-app builds
  • Enabled "not with_k" branch in get_jk()
  • Added exploratory code to bypass dfobj.loop() copy ; not needed at moment
  • Added support for per-device streams and handles
  • Added multi-gpu support for get_jk()
  • Temporarily disabled gpu-offload of hessop_get_veff because of issue with multi-gpu support
  • Added OpenMP thread affinity info to output
  • Updated arch and builds after Polaris@ALCF software upgrade

MatthewRHermes and others added 30 commits March 20, 2024 13:58
Hack H1EZip to not "unroll" the Hilbert-space layer and the single
state layer together, so that averaging over the latter can be
abstracted into the fcibox.fcisolvers individual RDM generators.
LASSIS unittest fails because lroots now needs to be passed from
one level of LASSIS prepare_states to another, along with charges,
spins, smults, and wfnsyms.
This now breaks lasscf_rdm instead, because the guess items are
not CI vectors but RDM arrays.
lasscf_rdm transparently works for now
Include unambiguous statement that they average over local states,
resolving issue MatthewRHermes#34.
The casdm1rs and casdm2r go into the slot for "rootspace 0" and
"rootspace 1", respectively, that the usual algorithm would make.
Also use setUpModule in test_lasscf_rdm.py
Use n(elec,hole)(u,d) instead of n(elec,hole)(a,b) to compute
number of charge-separated single excitations. Changes total
energies in test_c2h4n4, but all delta-E tests in
test_lassis_targets_slow still pass.
A much simpler, but less flexible/more costly choice.
Ignore both the s-change of each fragment and the putative m value
of the hopping electron, and assume that electrons can always come
out of both doubly- and singly-occupied orbitals and can always go
into both singly-occupied and unoccupied orbitals.
Test on H2 for lasscf geometry optimization
MatthewRHermes and others added 29 commits April 23, 2024 20:04
must implement smart lindep handling for the branch to be viable
since spin-shuffle spoils bitwise agreement
Still need to fix signs, but in a way which doesn't break the op_o1
op_o1 agreement check
LASSI op_o1 now aggressively identifies linearly-equivalent
rootspaces and caches the relevant unitary transformation matrices,
in order to reduce the number of interactions computed explicitly,
except for in the ContractHamCI class, where I still don't know how
exactly to implement this.
Profile the timing of lassi op_o1 more thoroughly. Move two fns
from sitools to citools (the latter being safer to import). Tighten
exact-equivalence tolerance in lassi op_o1 screening.
For op_o1 profiling, use more descriptive names in the output and
add it around the HamS2Ovlp full overlap matrix steps.
"unique" messages demoted to DEBUG
Adding keyword to plot only active space orbitals
@MatthewRHermes MatthewRHermes merged commit 3ccde0d into MatthewRHermes:gpu May 14, 2024
3 checks passed
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.

4 participants