Repository navigation
feat(lcao): add optional LibRI GPU contractions through DDLA #8169
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
Draft
Stardust0831
wants to merge
12
commits into
deepmodeling:develop
Choose a base branch
from
Stardust0831:experiment/lcao-hse-gpu
base: develop
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Changes from all commits
Commits
Show all changes
12 commits
Select commit
Hold shift + click to select a range
0d0f29b
experiment(lcao): connect device selection to LibRI DDLA GPU contract…
Stardust0831 b408a31
refactor(lcao): select RI backend once before runner initialization
Stardust0831 d20dde7
test(lcao): record HSE GPU backend parity performance and memory
Stardust0831 784610d
docs(lcao): record successful multi-GPU RI memory scaling
Stardust0831 fa9c853
docs(lcao): verify size-dependent GPU RI memory and strong scaling
Stardust0831 33d400f
build(lcao): encapsulate LibRI GPU dependencies in CMake targets
Stardust0831 8dd6925
build: make MKL adapters usable in dependency probes
Stardust0831 9d40406
test(lcao): record CMake dependency and HSE regressions
Stardust0831 d8d3204
build(libri): minimize GPU integration and follow CMake conventions
Stardust0831 2ca0421
style(libri): align GPU dependency adapter formatting
Stardust0831 f07d8d1
feat(lcao): select LibRI contractions with exx_device
Stardust0831 63ca5ef
test(libri): cover GPU accumulation and clarify runtime limits
Stardust0831 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,29 @@ | ||
| # CUDA adapter for the DDLA interface currently consumed by LibRI. | ||
| # DDLA_ROOT or CMAKE_PREFIX_PATH may name an installation prefix; the explicit | ||
| # DDLA_INCLUDE_DIR and DDLA_LIBRARY overrides remain supported. | ||
|
|
||
| find_path(DDLA_INCLUDE_DIR | ||
| NAMES ddla/ddla_connector.h | ||
| HINTS ${DDLA_ROOT} | ||
| PATH_SUFFIXES include) | ||
| find_library(DDLA_LIBRARY | ||
| NAMES ddla | ||
| HINTS ${DDLA_ROOT} | ||
| PATH_SUFFIXES lib lib64) | ||
|
|
||
| include(FindPackageHandleStandardArgs) | ||
| find_package_handle_standard_args(DDLA | ||
| REQUIRED_VARS DDLA_INCLUDE_DIR DDLA_LIBRARY) | ||
|
|
||
| if(DDLA_FOUND AND NOT TARGET DDLA::DDLA) | ||
| add_library(DDLA::DDLA UNKNOWN IMPORTED) | ||
| set_target_properties(DDLA::DDLA PROPERTIES | ||
| IMPORTED_LOCATION "${DDLA_LIBRARY}" | ||
| INTERFACE_INCLUDE_DIRECTORIES "${DDLA_INCLUDE_DIR}" | ||
| INTERFACE_COMPILE_DEFINITIONS DDLA_USE_CUDA | ||
| INTERFACE_COMPILE_FEATURES cxx_std_17 | ||
| INTERFACE_LINK_LIBRARIES | ||
| "MPI::MPI_CXX;CUDA::cudart;CUDA::cublas;CUDA::curand;CUDA::cusolver") | ||
| endif() | ||
|
|
||
| mark_as_advanced(DDLA_INCLUDE_DIR DDLA_LIBRARY) |
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
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
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
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
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
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
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
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
Oops, something went wrong.
Oops, something went wrong.
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.
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.
[P2] State the GPU visibility requirement for MPI runs
For two ranks on one node, exposing one different GPU per rank through
CUDA_VISIBLE_DEVICESpasses ABACUS device setup but makes the pinned LibRIvalidate_local_gpu_count()throw at the first GPU contraction (local_size=2 > device_count=1). This backend therefore requires each process to see at least as many GPUs as there are node-local ranks, a constraint missing here. Please document it with a compatible launch layout, or extend the compatibility patch to respect the existing per-rank binding.