-
-
Notifications
You must be signed in to change notification settings - Fork 8.7k
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
Use CUDA virtual memory for pinned memory allocator. #10850
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
trivialfis
force-pushed
the
virtual-mem
branch
3 times, most recently
from
September 26, 2024 08:15
468b590
to
3fafe8e
Compare
- Add a grow-only virtual memory allocator. - Define a driver API wrapper. Split up the runtime API wrapper.
trivialfis
force-pushed
the
virtual-mem
branch
from
September 26, 2024 14:33
6142fcf
to
dc9b87d
Compare
trivialfis
changed the title
[WIP] Use CUDA virtual memory for pinned memory allocator.
Use CUDA virtual memory for pinned memory allocator.
Sep 26, 2024
At the moment, this is not being tested on the CI as the feature requires CTK12.5+ to be stable. |
cc @hcho3 @rongou @RAMitchell . |
trivialfis
commented
Sep 27, 2024
@@ -118,6 +120,14 @@ std::int32_t OmpGetNumThreads(std::int32_t n_threads) { | |||
return n_threads; | |||
} | |||
|
|||
[[nodiscard]] bool GetCpuNuma(unsigned int* cpu, unsigned int* numa) { |
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.
This is not used, I keep it to check the numa node when debugging.
rongou
approved these changes
Sep 27, 2024
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.
This is to avoid obtaining CUDA memory-related global locks (like those used by
cudaFree
), and to fix #10312 . Only works withcudart>=12.5
. The implementation is based on this blog post, with additional support for host numa allocation.Running MGPU column split tests, haven't been able to observe any hang with the PR. (yet)