-
Notifications
You must be signed in to change notification settings - Fork 44
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
Support for F functions #299
Merged
Merged
Conversation
This file contains 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
…ore than 10 primitive functions. If the molecule has certain atoms (eg. V, Mn, etc.), calculation will fail with a seg fault even before the SCF begins.
…e total angular momentum is less than or equal to 8
…ore than 10 primitive functions. If the molecule has certain atoms (eg. V, Mn, etc.), calculation will fail with a seg fault even before the SCF begins.
…e total angular momentum is less than or equal to 8
…ve integrals in d and f grad kernels
…thout compiling the code with support.
agoetz
approved these changes
Feb 25, 2024
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice work. I have looked it over and tested the code.
CPU only (with and without F functions)
- GNU 10.2, OpenMPI 4.0.5
- GNU 10.2, OpenMPI 4.0.5, MKL 2024.0
- GNU 11.4, OpenMPI 4.0.5
CPU and GPU (A100, Expanse)
- GNU 10.2.0, OpenMPI 4.1.3, CUDA 11.7, MKL 2020.4
All tests pass.
Open shell (CPU only MPI tested, not serial)
- Energy looks good on CPU and GPU
- Gradient looks good on CPU
Following needs to be done (will do separate PRs)
- Add trap for G functions
- Add trap for open shell + F functions + gradient + CUDA
- Add test with 4 centers with f functions (e.g. def2-TZVP basis)
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.
In this PR, I have enabled support for f functions in the ERI and ERI gradient calculations. Specifically, the following tasks were performed.
The accuracy of the implementations (energy and gradients) was tested against a reference software. The results were in excellent agreement. Please check the PR and test exhaustively.
The code can be configured using the CMake build system for Volta architecture with F function support and GNU compiler toolchain as follows (assuming the build directory is located inside QUICK home directory).
cmake .. -DMPI=TRUE -DCUDA=TRUE -DCMAKE_INSTALL_PREFIX=$(pwd)/../install -DCOMPILER=GNU -DQUICK_USER_ARCH=volta -DENABLEF=TRUE
Here is an accuracy and performance comparison of PSB3 gradient calculation at the B3LYP/cc-pVTZ level of theory. CUDA tests were run on NVIDIA A100 cards.
The input and output files of these runs can be found inside the example.tar.gz attached below.
Finally, it is worth noticing the limitations of the current CUDA/CUDAMPI F implementations.
example.tar.gz