Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The major changes are as follows:
a. Have a more fine-tuned screening of the gaussian pairs over the grid points;
b. Allow basis transformation between contracted and primitive in a block-sparse fashion;
c. A raw kernel in cupy for contraction of Gv with density / potential in Fourier space;
d. Storage of coulG to avoid redundant calculation per Fock build.
These factors contribute to the fast timing of Fock build, with around 2 ~ 3 times of speedup for water clusters.
Some notes:
a. I store the intermediate of local part of pseudopotential in object creation, but should be stored when get_pp is executed which already generates
vpplocG. This part is not negligible in gradient evaluation.b. This branch by itself does not allow full calculation of 512 water molecules for 80 GB of RAM. This is due to a change in overlap integral in master branch, which stores (ncell, ncart, ncart) as an intermediate. Branch
multi-grid/publishin my fork does not contain such change and is able to run 512 water molecules on A100s.