Conversation
… mult.h, save memory in GenerateExcitation() helper.h
…ic/out_of_place_func/davidson.h and framework/mpi_utility.h
… integer overflow
…bin work assignment in mult.h
Implements Hamiltonian-vector multiplication on GPU using OpenMP target offload with determinant precomputation cache. Includes comprehensive test suite. Key features: - OpenMP target offload for GPU acceleration - Determinant cache to eliminate redundant computation - Batched Hij computation on device - MPI parallelization support - Vendor-neutral build system (ROCM_PATH) - Complete functionality test suite Co-Authored-By: Claude <noreply@anthropic.com>
Prevents undefined behavior if FCIDUMP header is corrupt and NORB field is missing. L=0 is safe as it results in empty determinant vectors.
This commit refines the changes from PR #1 (commits 8eada1a and adceb9d) to improve build system flexibility and fix several bugs: Makefile improvements: - Add CXXFLAGS/LDFLAGS command-line override support while preserving required flags (-fopenmp, -std=c++17, -funroll-loops, etc.) - User can now override flags: make GPU=1 CXXFLAGS="-I/custom/path" - Required flags are always prepended to user-provided flags - Fix GPU variable pass-through from parent Makefile to src/Makefile - Add GPU ?= 1 default in parent Makefile Bug fixes: - Remove 'clean' from target prerequisites (was incorrectly linking it) - Use $(TARGET) and $(OBJECTS) in clean rule instead of hardcoded names - Move final CXXFLAGS/LDFLAGS override after all conditional modifications so GPU=1/GPU=0 actually take effect - Add CXXFLAGS and LDFLAGS to verbose build output Code cleanup: - Remove "from Phase 1" development comment in hij_omp_offload.h - Add clang-format guards around ASCII art in helper.h - Add clarifying comment about GPU device selection in main.cc Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Add missing #include <vector> in mpi_utility.h - Fix helper.h: typo in SinglesFromAlphaOffset[i], correct CrAn flat array sizing (2x for singles, 4x for doubles) and flattening loops - Fix mult.h: correct for-loop init, use Wb_ptr/T_ptr raw pointers instead of std::vector in target regions, add missing map clauses for CrAn arrays and det_cache_ptr, fix TwoExcite_device call signature (7 args), fix #ifdef typo, use int for CrAn variables - Fix sbdiag.h: add missing #endif for SBD_THRUST block, unify USE_HIJ_OMP_OFFLOAD -> USE_OMP_OFFLOAD for integral GPU mapping - Fix main.cc: match 13-arg diag() signature with co_adet/co_bdet - Remove obsolete hij_omp_offload.h (replaced by omp_offload.h) - Update test and Makefile flags to use USE_OMP_OFFLOAD consistently Co-Authored-By: Claude <noreply@anthropic.com> Made-with: Cursor
suggested code changes including elimination of the determinant cache
added GPU offload for reduced density matrix computation
Fix communicator leak by freeing MPI_Comm_split communicator
use GPU send/recv buffers for Mpi2dSlide() in mult.h and correlation.h
[AMD-IBM upstream] Add OpenMP target offload GPU support
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.
No description provided.