!eWOErHSaiddIbsUNsJ:nixos.org

NixOS CUDA

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

Load older messages


SenderMessageTime
8 Apr 2025
@indoor_squirrel:matrix.orgindoor_squirrel
In reply to @connorbaker:matrix.org
Hey all, some notes from a call I had with Serge about some priorities we're tracking: https://pad.lassul.us/s/GBcXdgeFz
It looks like there are hosted on Lassulus' personal site. Is that right? Any chance of (or any need to) getting these as files in some repo or something a bit more distributed?
16:18:39
@connorbaker:matrix.orgconnor (he/him)It's markdown, so we could definitely take them elsewhere, or even publish them on GitHub pages, but no immediate plans to do that due to lack of time16:20:03
@indoor_squirrel:matrix.orgindoor_squirrelDoes nixpkgs use gh-pages?16:20:29
@indoor_squirrel:matrix.orgindoor_squirrelSeems like a great place for "project" notes.16:20:37
@ss:someonex.netSomeoneSerge (back on matrix)I was wondering if it might be ok to abuse the nixos wiki for this?18:20:41
@ss:someonex.netSomeoneSerge (back on matrix)

From wiki matrix channel:

we could probably standardise this using Meetings/teamname/date as the template

18:45:12
9 Apr 2025
@apache8080:matrix.orgapache8080 joined the room.01:21:59
@justbrowsing:matrix.orgKevin Mittman (EOY sleep)
In reply to @ss:someonex.net
Kevin Mittman: are you aware of https://github.com/systemd/systemd/pull/32234/? It woudl be great to have this for CUDAToolkit and other components
I am not aware of that proposal getting adopted in any of the package ecosystems. It could be a good starting point
04:12:05
@ss:someonex.netSomeoneSerge (back on matrix)Does NixOS count? 🙃 https://github.com/NixOS/nixpkgs/pull/307068/commits/2328731ad041735a2260698574ce6599591f33ad10:02:32
@athyfr:matrix.org@athyfr:matrix.org changed their profile picture.20:51:58
10 Apr 2025
@connorbaker:matrix.orgconnor (he/him)As an update, I’ve been added to the nix-community org but haven’t had a chance to push a copy of the to-be-removed CUDA components and GCC expressions16:26:37
@connorbaker:matrix.orgconnor (he/him)Complication there is mostly figuring out important paths in the tree so I know what to keep when doing a filter (to retain commit history)16:27:19
@connorbaker:matrix.orgconnor (he/him) SomeoneSerge (UTC+U[-12,12]): as a quick fix for nix-gl-host for Jetson devices for the problem I was seeing where cuda_compat wouldn’t be set in the LD_LIBRARY_PATH and the drivers would take priority, would it be enough to scan the run path of the binary passed to nixglhost to look for cuda_compat and conditionally prepend it to LD_LIBRARY_PATH if it is present?
Kind of gross, but given usage of cuda_compat is per-application and not a single vendor supplied directory on the host, not sure how else to handle it.
Ugh I imagine one should also check the version of the host driver to see if using cuda_compat when it is present in the run path would actually break things (i.e., the driver is newer than what cuda_compat provides for, so we need to use the driver’s backward compatibility instead of cuda_compat’s forward compatibility).
16:32:12
@ss:someonex.netSomeoneSerge (back on matrix)Hmmm why'd you need the scanning?16:32:51
@ss:someonex.netSomeoneSerge (back on matrix)

the driver is newer than what cuda_compat provides for

H'm, interesting

16:33:24
@connorbaker:matrix.orgconnor (he/him) The cuda_compat used in the runpath of the binary provided to nix-gl-host depends on the version of CUDA used
OH
Maybe I’m thinking about this wrong
16:35:10
@connorbaker:matrix.orgconnor (he/him) X86 has a cuda_compat library too from what I remember, it’s just not available as a redist
So maybe we shouldn’t package the one for Jetsons
And instead, nixglhost should use the one on the host system if it is available
16:36:17
@connorbaker:matrix.orgconnor (he/him)Although that won’t us on NixOS systems — cuda_compat is usually provided as a Debian with newer releases of CUDA, so it would just fail to run on NixOS systems if the driver isn’t new enough16:37:40
@connorbaker:matrix.orgconnor (he/him)* Although that won’t help us on NixOS systems — cuda_compat is usually provided as a Debian with newer releases of CUDA, so it would just fail to run on NixOS systems if the driver isn’t new enough16:37:48
@ss:someonex.netSomeoneSerge (back on matrix)

So maybe we shouldn’t package the one for Jetsons

No, I think whenever it's available we'd rather do the pure linking, because that's what we do to other libraries. This is in general a tradeoff, and it would have been great if we had tools for quickly relinking stuff/tools for building stuff against reproducible content-addressed stubs with a separate linking phase, but that's not where we are

16:39:50
@connorbaker:matrix.orgconnor (he/him) Ugh
So on all platforms, we should only use cuda_compat if the host driver is old and we need forward compat
I guess the question is where cuda_compat should come from, if the decision to use it or not requires knowing what version the host driver is
16:40:10
@ss:someonex.netSomeoneSerge (back on matrix)This is not different from the GL/vulkan situation16:41:29
@connorbaker:matrix.orgconnor (he/him)(Where it should come from meaning Nixpkgs and the runpath or from the host OS, which is a non-starter on NixOs systems since we don’t package it, although we could, but then for people to add it to their environment they’d need to rebuild ugh)16:41:35
@connorbaker:matrix.orgconnor (he/him)Oh? What’s that situation?16:42:43
@ss:someonex.netSomeoneSerge (back on matrix)The situation is we'd like to develop and link a dynamic shim (libglvnd-like) that can select the right thing at runtime (per the logic you wrote down)16:44:07
@ss:someonex.netSomeoneSerge (back on matrix)Nixpkgs breaks GL/Vulkan on NixOS when mixing revisions because we don't have this shim logic16:45:01
@ss:someonex.netSomeoneSerge (back on matrix)* Nixpkgs breaks GL/Vulkan on NixOS when mixing revisions because we don't have this shim16:45:23
@ss:someonex.netSomeoneSerge (back on matrix)Or, maybe, instead of the selection logic we need better isolation. I.e. libcapsule16:49:41
@ss:someonex.netSomeoneSerge (back on matrix)In either case we need to learn to mimic another library's interface. This exists for GL and afaict we (nixos) still don't know whether this actually works. I've no idea if we can do this to libcuda or libcudart, or whether that would be even legal16:51:01
11 Apr 2025
@saeedc:matrix.orgsaeedc joined the room.20:55:59

Show newer messages


Back to Room ListRoom Version: 9