!eWOErHSaiddIbsUNsJ:nixos.org

NixOS CUDA

276 Members
CUDA packages maintenance and support in nixpkgs | https://github.com/orgs/NixOS/projects/27/ | https://nixos.org/manual/nixpkgs/unstable/#cuda57 Servers

Load older messages


SenderMessageTime
1 Nov 2025
@ss:someonex.netSomeoneSerge (back on matrix)That should not be happening01:51:02
@ss:someonex.netSomeoneSerge (back on matrix)Ah. We didn't used to have that, cc in propagated inputs Since when do we? We did used to propagate a hook though, I forget under what conditions if any01:53:05
@ss:someonex.netSomeoneSerge (back on matrix)
commit c03326445b067dca37ea323d998ffa3d520adb6d
Author: Eelco Dolstra <edolstra@gmail.com>
Date:   Tue Sep 26 22:37:38 2017 +0200

    firefox: Remove about:buildconfig

    Storing the build configuration caused Firefox to retain a dependency
    on gcc, glibc.dev and icu4c.dev.

    This reduces the size of the firefox closure from 587 to 415 MiB.

Wow that's old now

02:01:52
@hexa:lossy.networkhexa (UTC+1)And we still remove that, because it pulls in all kinds of shit and bloats the closure02:02:13
@hexa:lossy.networkhexa (UTC+1)I think you should have a very good reason to propagate a build time dependency02:03:41
@connorbaker:matrix.orgconnor (burnt/out) (UTC-8)

We propagate CC so that NVCC can use it:

  • https://github.com/NixOS/nixpkgs/blob/a4c85a90eb7864e01fe46ffc6dbeb23a970c8fc3/pkgs/development/cuda-modules/packages/cuda_nvcc.nix#L24-L25
  • https://github.com/NixOS/nixpkgs/blob/a4c85a90eb7864e01fe46ffc6dbeb23a970c8fc3/pkgs/development/cuda-modules/packages/cuda_nvcc.nix#L150-L151

And we have a setup hook which sets relevant environment variables for CMake and enables discovery of CUDA packages:

  • https://github.com/NixOS/nixpkgs/blob/a4c85a90eb7864e01fe46ffc6dbeb23a970c8fc3/pkgs/development/cuda-modules/buildRedist/default.nix#L282
  • https://github.com/NixOS/nixpkgs/blob/a4c85a90eb7864e01fe46ffc6dbeb23a970c8fc3/pkgs/development/cuda-modules/packages/setupCudaHook/setup-cuda-hook.sh#L82-L95
02:09:46
@hexa:lossy.networkhexa (UTC+1)shouldn't that be propagatedNativeBuildInputs?02:10:31
@connorbaker:matrix.orgconnor (burnt/out) (UTC-8) For backendStdenv.cc in cuda_nvcc.nix or for setupCudaHook in buildRedist/default.nix? 02:11:19
@hexa:lossy.networkhexa (UTC+1)cuda_nvcc.nix02:12:14
@ss:someonex.netSomeoneSerge (back on matrix)Here's the old logic: https://github.com/NixOS/nixpkgs/blob/99fe7bea35ed3ca8de66188d2337cb3e7c6e83e7/pkgs/development/cuda-modules/_cuda/fixups/cuda_nvcc.nix#L5002:12:30
@hexa:lossy.networkhexa (UTC+1)it's too late here, going to sleep02:13:19
@connorbaker:matrix.orgconnor (burnt/out) (UTC-8) backendStdenv.cc needs to be in propagatedBuildInputs; makeSetupHook does the same thing 02:13:21
@ss:someonex.netSomeoneSerge (back on matrix)We do reference the host compiler from nvcc and from the hook, but we do not propagate02:13:46
@ss:someonex.netSomeoneSerge (back on matrix)Tbh the hook referencing the compiler looks sus too, but my memory's all gone02:16:08
@ss:someonex.netSomeoneSerge (back on matrix) Ah! I see now why the hook was "ok": it would only propagate stuff if cudaPropagateToOutput is explicitly set by the downstream derivation 02:21:42
@ss:someonex.netSomeoneSerge (back on matrix)Ok but the onnxruntime part I didn't look at/don't know don't understand02:23:57
@ss:someonex.netSomeoneSerge (back on matrix) My best guess is it's because an extraneous propagatedBuildInputs = [ setupCudaHook ] also slipped in into buildRedist.nix, but tbh I'm still struggling to explain how this leads to the extra reference 02:51:56
@ss:someonex.netSomeoneSerge (back on matrix)Another person on gh saying they found a legit nvcc reference in libonnxruntime_providers_cuda, so I think this can't be explained by hooks alone02:56:09
@connorbaker:matrix.orgconnor (burnt/out) (UTC-8)Is it possible onnxruntime does JIT compilation02:57:40
@ss:someonex.netSomeoneSerge (back on matrix)Yeah that what I'm wondering03:10:52
@ss:someonex.netSomeoneSerge (back on matrix)Nope03:12:13
@ss:someonex.netSomeoneSerge (back on matrix)More mysteries! https://github.com/NixOS/nixpkgs/pull/457424#issuecomment-347553717403:15:11
@ss:someonex.netSomeoneSerge (back on matrix) connor (burnt/out) (UTC-7): when you started propagating crt/host_config.h from cudart, did you also drop the manual nvcc from any leaf packages? Figure you might be quicker to answer than me reading or running tests 03:58:51
@connorbaker:matrix.orgconnor (burnt/out) (UTC-8)Manual NVCC?04:00:59
@ss:someonex.netSomeoneSerge (back on matrix)Like we had buildInputs = [ nvcc ] in a bunch of places because of the host_config.h dependency04:03:40
@ss:someonex.netSomeoneSerge (back on matrix)Which will not have been needed if cudart propagates it04:03:57
@connorbaker:matrix.orgconnor (burnt/out) (UTC-8)I don’t remember honestly I think I also had it propagate because headers need to be in buildInputs to be discovered04:05:08
@connorbaker:matrix.orgconnor (burnt/out) (UTC-8) I just looked through the commits for the CUDA 13 PR; I didn't see removal of nvcc from buildInputs anywhere 04:13:19
@ss:someonex.netSomeoneSerge (back on matrix)Aight this may well be my favourite Halloween story so far, and still open-ended: https://github.com/NixOS/nixpkgs/pull/457424#issuecomment-347574251004:17:14
@ss:someonex.netSomeoneSerge (back on matrix)I can't explain this04:19:45

Show newer messages


Back to Room ListRoom Version: 9