-
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
Adapted find_dependencies.cmake to build with CUDA >= 12.0 with dynamic libraries as well #6815
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. |
Hi @davconde, thanks for submitting this PR. Building with cuda shared libraries is definitely useful. Some comments:
|
The option was added as
The way CUDA libraries were currently imported for cuBLAS and since last change in #5833 is not using
As requested, I've built the 4 possible combinations of toggling
[----------] Global test environment tear-down
[==========] 1714 tests from 109 test suites ran. (265153 ms total)
[ PASSED ] 1712 tests.
[ SKIPPED ] 2 tests, listed below:
[ SKIPPED ] RGBDImage.CreateFromNYUFormat
[ SKIPPED ] Tensor/TensorPermuteDevices.TakeOwnership/1
[----------] Global test environment tear-down
[==========] 1714 tests from 109 test suites ran. (117355 ms total)
[ PASSED ] 1712 tests.
[ SKIPPED ] 2 tests, listed below:
[ SKIPPED ] RGBDImage.CreateFromNYUFormat
[ SKIPPED ] Tensor/TensorPermuteDevices.TakeOwnership/1
[----------] Global test environment tear-down
[==========] 1714 tests from 109 test suites ran. (120258 ms total)
[ PASSED ] 1712 tests.
[ SKIPPED ] 2 tests, listed below:
[ SKIPPED ] RGBDImage.CreateFromNYUFormat
[ SKIPPED ] Tensor/TensorPermuteDevices.TakeOwnership/1
[----------] Global test environment tear-down
[==========] 1714 tests from 109 test suites ran. (119631 ms total)
[ PASSED ] 1712 tests.
[ SKIPPED ] 2 tests, listed below:
[ SKIPPED ] RGBDImage.CreateFromNYUFormat
[ SKIPPED ] Tensor/TensorPermuteDevices.TakeOwnership/1
As specified in the linked documentation, I've tried building sample apps by assigning each generated install directory to 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.
Thanks @davconde Looks good!
Type
Motivation and Context
Currently, CUDA support when building searches explicitly for static dependencies. However, in absence of static lib binaries, Open3D fails to build. I think this is important since some CUDA installations may lack the required static dependencies.
For instance, the official NVIDIA DeepStream 7.0 Docker images don't include the static libraries, while the framework include multiple new features oriented toward LiDAR data processing, camera calibration and 3D tracking, so being able to develop custom GStreamer plugins taking advantage of Open3D would be very helpful.
Checklist:
python util/check_style.py --apply
to apply Open3D code styleto my code.
updated accordingly.
results (e.g. screenshots or numbers) here.
Description
When importing CUDA dependencies for cuBLAS if version is >= 12.0 it now checks first if dynamic libraries are available to build as usual. Otherwise, it will look for static libraries. This change has been tested in these both NVIDIA Docker images, being the DeepStream image the one without static libraries:
nvcr.io/nvidia/cuda:12.2.0-devel-ubuntu22.04
nvcr.io/nvidia/deepstream:7.0-gc-triton-devel
After basic containers setups, building was performed by running :
And tested with the following snippet:
Which yielded coherent results in both cases.