{{ message }}
Build libafcuda with dynamically loaded CUDA numeric binaries#3205
Merged
umar456 merged 2 commits intoarrayfire:masterfrom Mar 22, 2022
Merged
Build libafcuda with dynamically loaded CUDA numeric binaries#3205umar456 merged 2 commits intoarrayfire:masterfrom
umar456 merged 2 commits intoarrayfire:masterfrom
Conversation
Contributor
Member
Author
|
It could be done but would require a good bit of work. We have done this for other libraries but not for things like cublas and cufft. |
Member
ArrayFire's CUDA backend linked against the CUDA numeric libraries staticly before this change. This caused the libafcuda library to be in the 1.1GB range for CUDA 11.5 even if you were targeting one compute capability. This is partially due to the fact that the linker does not remove the compute capabilities of older architectures when linking. One way around this would be to use nvprune to remove the architectures that are not being used by the compute cability when building. This approach is not yet implemented. This commit will revert back to dynamically linking the CUDA numeric libraries by default. You can still select the old behavior by setting the AF_WITH_STATIC_CUDA_NUMERIC_LIBS option in CMake
63db467 to
68d3df8
Compare
syurkevi
approved these changes
Mar 22, 2022
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.

Dynamically link CUDA numeric libraries instead of always staticly linking.
Description
ArrayFire's CUDA backend linked against the CUDA numeric libraries
staticly before this change. This caused the libafcuda library to be
in the 1.1GB range for CUDA 11.5 even if you were targeting one compute
capability. This is partially due to the fact that the linker does not
remove the compute capabilities of older architectures when linking.
One way around this would be to use nvprune to remove the architectures
that are not being used by the compute cability when building. This
approach is not yet implemented.
This commit will revert back to dynamically linking the CUDA numeric
libraries by default. You can still select the old behavior by setting
the AF_WITH_STATIC_CUDA_NUMERIC_LIBS option in CMake
Changes to Users
Then binary sizes are significantly smaller but requires you to have
the cuda libraries in the library paths. This is only an issue when building
installers.
Checklist
[ ] Functions added to unified API[ ] Functions documented