-
Notifications
You must be signed in to change notification settings - Fork 2.3k
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
Check for support of CUDA Memory Pools at runtime (#4679) #6440
Check for support of CUDA Memory Pools at runtime (#4679) #6440
Conversation
Thanks for submitting this pull request! The maintainers of this repository would appreciate if you could update the CHANGELOG.md based on your changes. |
aa1fb43
to
3967155
Compare
3967155
to
1ef0a48
Compare
Thank you for this contribution! Please have a look at the checks. There are some problems with unknown identifiers |
4915a8a
to
95447f4
Compare
I pushed an update with a compilation fix and I was able to build and run locally. |
95447f4
to
25c31f0
Compare
OK, in the latest version I kept the compile time check as well to be able to build with CUDA versions older than 11.2, apparently some CI jobs are using 11.0.3 Open3D/.github/workflows/windows.yml Line 48 in 881ae76
|
Some CUDA GPUs, like the Quadro M3000M don't support Memory Pools operations like cudaMallocAsync/cudaFreeAsync even on driver versions newer than 11.2, and this can result in errors like: CUDA runtime error: operation not supported So check for support at runtime instead of compile time. Still keep the compile time check to support building with CUDA versions older than 11.2.
25c31f0
to
51a6195
Compare
Pushed another update to also guard Hopefully this fixes the CI windows build issues with older cuda versions. I have no clue about the failure in the Thanks, Antonio |
Thanks! The |
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.
Reviewable status: 0 of 4 files reviewed, all discussions resolved
Type
Motivation and Context
Some CUDA GPUs, like the Quadro M3000M don't support Memory Pools operations like
cudaMallocAsync
/cudaFreeAsync
even on driver versions newer than 11020, and this can result in errors like:So check for support at runtime instead of compile time.
Checklist:
python util/check_style.py --apply
to apply Open3D code styleto my code.
updated accordingly.
results (e.g. screenshots or numbers) here.
Description
A new
core::cuda::SupportsMemoryPools()
helper function is added, and it is used to decide whether to usecudaMallocAsync
/cudaMallocFree
or not.Initially I though about adding this to the Device class (e.g.
Device::IsCUDAMemoryPoolsSupported()
), but this is quite CUDA specific so I decided not to.Please note that currently I cannot test the code on non-Quadro GPUs so I would like someone else to verify that it does not break already working cases.
Thanks,
Antonio
This change is