Skip to content
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

WIP: cudaPackages.cudatoolkit: split outputs #178439

Closed
wants to merge 3 commits into from

Conversation

SomeoneSerge
Copy link
Contributor

Description of changes

Split outputs of cudaPackages.cudatoolkit so that the actual toolkit does not bring in dependencies of graphical/interactive apps (e.g. the debugging tools such as nsight) into the closure.

Note this is a work in progress

...to ensure correctness (in the sense that all DT_NEEDED libraries are
verified to be discoverable through the runpaths)
...the same logic is handled by autoPatchelf
@SomeoneSerge
Copy link
Contributor Author

SomeoneSerge commented Jun 21, 2022

Here's the plan: I could create an intermediate derivation, say let cudatoolkit-src = ...; in, which would would only have the unpackPhase (same as one in current expression) and an installPhase that moves stuff to $out verbatim, without any patchelf. Then I'd rewrite cudatoolkit to take src = cudatoolkit-src, to extract the actual toolchain without nsight, and to apply autoPatchelf. Similarly, I can have a separate expression for nsight with src = cudatoolkit-src.
This way the outPath of cudatoolkit-src never really changes, and cudatoolkit does not depend on python2 or gtk3

@samuela, thoughts? An overkill? I just want a quick solution to reduce the closure sizes right away, then I'll forget this and get back to redist packages

@samuela
Copy link
Member

samuela commented Aug 2, 2022

I'm not against this, but I imagine that it will eventually be made obsolete by the redist packages anyhow... So I guess it all comes down to how you'd prefer to spend your refactoring time :P

@SomeoneSerge
Copy link
Contributor Author

I'm not against this, but I imagine that it will eventually be made obsolete by the redist packages anyhow... So I guess it all comes down to how you'd prefer to spend your refactoring time :P

I just thought I'd pull this one off in no time, but in the end I can only afford occasional small contributions =
I'm closing this and will prioritize migrating pytorch/tf/jaxlib to redist instead

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants