-
-
Notifications
You must be signed in to change notification settings - Fork 14.1k
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
cudaPackages: enable cross-compilation #275560
cudaPackages: enable cross-compilation #275560
Conversation
… of data and construction with modules
Are the extra moves, renames, and changes in the manifests (including releases.nix &c) required? |
The part reducing the number of |
The files can stay where they are, but the changes to the I moved them because I felt it made more sense for them to be in the same directory as the thing which is reading and processing them (same reason why
I'm actually not sure it can be without larger changes -- part of the reason I'm able to evaluate it only once is because That's only possible now because That and the fact that without the other changes in the PR, it's still being evaluated by each set of packages (that is, the CUDA redistributables, CuDNN, CuTensor, and TensorRT all evaluate the modules without the changes in this PR). |
I probably like your solution better, but I thought (now I'm unsure) Nix would just cache the
Introducing top-level
That's probably OK to do (I haven't looked in detail), and even to do it now, but I'd ask you to submit it in a separate PR as soon as you think that particular change is ready. It's a refactoring which we here risk conflating with other potentially breaking changes? A bit of reflection on the previous big change follows. Looking at the title, I expect this PR (in its final state) to be about enabling splicing. That sounds relatively contained, and probably shouldn't affect the native builds at all. The current diff clearly contains more. I'd guess this to mean that enabling splicing actually depends on other tasks which involve moving things around and regenerating the manifests. And it's only natural to start by solving all of these tasks in the same branch, because you can't look into the future and see if you're going to encounter more obstacles that'd make you change your mind about the previous decisions. However, as we get closer to merging, we should assign more value to disentangling the individual changes, and the earlier the better. Solving multiple tasks at once, this patch now potentially affects everything. Just like we had to assume for the multiplatform PR (we expected it'd break something, we couldn't predict what). If those tasks and refactors went in separate PRs, there'd be a chance that each individual one would end up "small enough" (the new manifests affect every package, but in a homogeneous way because it's a change of the same "type" everywhere). We also could merge those dependencies earlier, which means that we could "test" them in the unstable channels before you have finished working on the actual cross-compilation feature. To conclude, I'd absolutely hate to block you or interrupt your flow, but I think there are benefits to having split things up by the time of merging, and to reviewing and merging dependencies earlier |
Closing as superseded by #301416. Anything outside the scope of cross-compilation lives on in my out-of-tree copy of |
Description of changes
makeScopeWithSplicing'
to attempt to support cross-compilationgpus.nix
andnvcc-compatibilities.nix
) into the module system, allowing us to define its structurereleases.nix
expressionspkgs/top-level/cuda-packages.nix
config
attribute in each CUDA package setTo-do:
pkgs/top-level/cuda-packages.nix
is very similar to the multiplexed builder -- investigate furtherplatforms
and our use ofbadPlatforms
as a way of getting around not being able to express combinations of target CUDA version and GPU capabilities as distinct platformsreleases.nix
expressions, paths to fixup functions or shims) and what belongs inpkgs/top-level/cuda-packages.nix
(actual package set construction)Things done
nix.conf
? (See Nix manual)sandbox = relaxed
sandbox = true
nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD"
. Note: all changes have to be committed, also see nixpkgs-review usage./result/bin/
)Add a 👍 reaction to pull requests you find important.