| 19 Nov 2025 |
SomeoneSerge (back on matrix) |
Do the systemd NixOS containers provide their own copy of NVIDIA's driver? If not, they wouldn't have libcuda.so available.
They don't (unless forced). Libcuda and its closure are mounted from the host.
| 20:10:33 |
SomeoneSerge (back on matrix) | The issue is maybe growing stale, but I'd say there haven't been any fundamental updates. One bit it doesn't mention is that we rewrote most of the tests in terms of a single primitive, cudaPackages.writeGpuTestPython (can be overridden for e.g. rocm; could be moved outside cuda-modules). It's now also clear that the VM tests can also be done, we'd just have to use a separate marker to signal that a builder exposes an nvidia device with a vfio driver. If we replace the sandboxing mechanism (e.g. with microvms) it'll get trickier... but again, a low-bandwidth baseline with vfio is definitely achievable. And there's still the issue of describing constraints, like listing the architectures or like memory quotas: we need a pluggable mechanism for assessing which builders are compatible with the derivation? | 20:37:12 |
SomeoneSerge (back on matrix) | * The issue is maybe growing stale, but I'd say there haven't been any fundamental updates.
- One bit it doesn't mention is that we rewrote most of the tests in terms of a single primitive,
cudaPackages.writeGpuTestPython (can be overridden for e.g. rocm; could be moved outside cuda-modules).
- It's now also clear that the VM tests can also be done, we'd just have to use a separate marker to signal that a builder exposes an nvidia device with a vfio driver.
- If we replace the sandboxing mechanism (e.g. with microvms) it'll get trickier... but again, a low-bandwidth baseline with vfio is definitely achievable.
- And there's still the issue of describing constraints, like listing the architectures or like memory quotas: we need a pluggable mechanism for assessing which builders are compatible with the derivation? Maybe a proxy instead...
| 20:37:53 |
SomeoneSerge (back on matrix) | Also note that we still mount libcuda from /run/current-system instead of /run/booted-system... | 20:39:08 |
Jeremy Fleischman (jfly) | Ah that sort of sounds like a bug since we'd want to be compatible with the host kernel? | 21:28:58 |
apyh | yeah, current system means that updating nvidia drivers with a rebuild switch breaks all CUDA until a reboot | 21:34:12 |
apyh | (experience this semi-frequently) | 21:34:20 |
| 20 Nov 2025 |
| John joined the room. | 05:54:29 |
ser(ial) | i have a Debian host with nvidia gpu which runs incus and in incus i have nixos containers. how can i utilise cuda programs in such container? | 10:24:20 |
| plan9better joined the room. | 12:41:04 |
SomeoneSerge (back on matrix) | Hi. How do you use cuda in a non-NixOS container with Incus? Does it use CDI? | 13:22:58 |
ser(ial) | with debian container i use built-in incus "nvidia.runtime" which passes the host NVIDIA and CUDA runtime libraries into the instance | 13:30:32 |
ser(ial) | but nixos naturally does not seek for these libraries in that place | 13:31:15 |
ser(ial) | does it mean that i need full libraries in nixos container which are with identical version as on debian host? | 13:32:26 |
connor (burnt/out) (UTC-8) | GaƩtan Lepage: I've got to package ONNX/ONNX Runtime/ONNX TensorRT for C++; if I upstream the PR do you think you'd have the bandwidth to look at it? I'd likely follow what I did here: https://github.com/ConnorBaker/cuda-packages/tree/8a317116a07717b13e0608f47b78bd6d75f8bb99/pkgs/development/libraries That is, the sort of cursed double-build in a single derivation which produces both the C++ binaries and a python wheel, so the python3Packages entry essentially turns into installing a wheel. | 14:04:07 |
teto | are there differences between https://nix-community.cachix.org and https://cache.nixos-cuda.org . My goal is to gain access to cuda-enable packages for unstable | 14:24:20 |
connor (burnt/out) (UTC-8) | community cache is no longer being populated, use the latter | 14:27:28 |
connor (burnt/out) (UTC-8) | * community cache is no longer being populated with CUDA packages, use the latter | 14:27:35 |
connor (burnt/out) (UTC-8) | note to self whenever I find the time (š« ) update cudnn-frontend; looks like the version I made here https://github.com/ConnorBaker/cuda-packages/blob/8a317116a07717b13e0608f47b78bd6d75f8bb99/pkgs/development/cuda-modules/packages/cudnn-frontend.nix is newer than what we have in master and requires fewer patches.
Also should add brokenAssertions since IIRC cudnn-frontend has docs about the versions of cuDNN it supports | 14:30:28 |
SomeoneSerge (back on matrix) | Yeah you can have the CDI hook mount the driver to /run/opengl-driver/lib, or, IIRC, the hook on NixOS even adds the driver to LD_LIBRARY_PATH | 14:31:39 |
GaƩtan Lepage | Yes connor (burnt/out) (UTC-8), I can look at it. But don't we already have onnxruntime and onnx? | 15:33:58 |
connor (burnt/out) (UTC-8) | IIRC only onnxruntime is available as both a C++ and Python library, ONNX is only available as a python package | 15:34:30 |
GaƩtan Lepage | Yes true. | 15:35:04 |
| 21 Nov 2025 |
Jeremy Fleischman (jfly) | i'm trying out programs.nix-required-mounts.presets.nvidia-gpu.enable, and am running into https://github.com/NixOS/nix/issues/9272 with remote builds. is this the best workaround? https://github.com/nix-community/infra/pull/1807#discussion_r2458816021 | 20:03:32 |
connor (burnt/out) (UTC-8) | Yikes I mean I guess that would work? | 20:17:04 |
Jeremy Fleischman (jfly) | i'd love to hear a better one! | 20:17:37 |
Jeremy Fleischman (jfly) | (btw, this programs.nix-required-mounts.presets.nvidia-gpu.enable stuff is super cool. seems to be 99% of the way there) | 20:18:35 |
Jeremy Fleischman (jfly) | also, i'd like to buy a beer for whoever wrote this error message:
nix-daemon[1095980]: ERROR:root:/nix/store/z3x5h5yagw94mcxj73jjkmwddlrms2si-saxdemo.drv doesn't exist. Cf. https://github.com/NixOS/nix/issues/9272 Exiting the hook
| 20:19:44 |
Jeremy Fleischman (jfly) | Ah, SomeoneSerge (back on matrix), looks like I owe you a beer: https://github.com/nixos/nixpkgs/commit/3a0d777486191cbdd2ffc7e31f25156da94c4831 | 20:22:04 |
| 22 Nov 2025 |
connor (burnt/out) (UTC-8) | I'm going to revisit https://github.com/NixOS/nixpkgs/pull/459416 today and do some final fixups; I'd really like if we could merge it soon SomeoneSerge (back on matrix) GaƩtan Lepage given its absence is making my life more difficult | 14:07:58 |