!eWOErHSaiddIbsUNsJ:nixos.org

NixOS CUDA

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

Load older messages


SenderMessageTime
23 Oct 2024
@connorbaker:matrix.orgconnor (he/him)God what a nightmare16:36:36
@connorbaker:matrix.orgconnor (he/him)We should also update OpenCV at some point to 4.10 if we haven’t already so it can build with CUDA 12.4+16:38:16
@connorbaker:matrix.orgconnor (he/him) Oh! Unrelated but this was a cute change I made that I quite like: https://github.com/ConnorBaker/cuda-packages/blob/c81a6595f07456c6cc34d8976031c4fa972a741f/cudaPackages-common/backendStdenv.nix#L36
Sets some defaults for the CUDA stdenv and adds a name prefix, similar to what the Python packaging does, for more descriptive store paths
16:40:07
@glepage:matrix.orgGaétan LepageThanks for taking the time to look at it and explain all of this !21:26:24
25 Oct 2024
* @connorbaker:matrix.orgconnor (he/him) makes a sad noise11:51:25
@connorbaker:matrix.orgconnor (he/him)https://gist.github.com/ConnorBaker/6c9c522d46e4244eb33d2aad94c753b011:51:27
26 Oct 2024
@glepage:matrix.orgGaétan Lepage🥲20:34:04
@glepage:matrix.orgGaétan Lepageclipboard.png
Download clipboard.png
20:34:07
27 Oct 2024
@msanft:matrix.orgMoritz Sanft Does anyone of you use clangd as a C LSP, with cudatoolkit coming from a shell? clangd seems not to take notice of CUDA in that case, saying Cannot find CUDA installation; ... 07:54:44
@msanft:matrix.orgMoritz Sanft Also, does cudatoolkit miss a dependency on gcc, or am I mistaken by this error:
✖ nvcc main.cu 
gcc: No such file or directory
07:56:37
@msanft:matrix.orgMoritz Sanft Also, does cudatoolkit miss a dependency on gcc, or am I mistaken by this error:
✖ nvcc main.cu 
gcc: No such file or directory

EDIT: No, it indeed seems to try and find GCC:
[pid 46094] execve("/nix/store/j09h8v4ldx0ix547gjp0p2asj0asssaw-glib-2.80.4-bin/bin/gcc", ["gcc", "-E", "/tmp/tmpxft_0000b40d_00000000-2."...], 0x7ffe40c921b0 /* 97 vars */) = -1 ENOENT (No such file or directory)
[pid 46094] execve("/run/wrappers/bin/gcc", ["gcc", "-E", "/tmp/tmpxft_0000b40d_00000000-2."...], 0x7ffe40c921b0 /* 97 vars */) = -1 ENOENT (No such file or directory)
[pid 46094] execve("/home/msanft/.nix-profile/bin/gcc", ["gcc", "-E", "/tmp/tmpxft_0000b40d_00000000-2."...], 0x7ffe40c921b0 /* 97 vars */) = -1 ENOENT (No such file or directory)
[pid 46094] execve("/nix/profile/bin/gcc", ["gcc", "-E", "/tmp/tmpxft_0000b40d_00000000-2."...], 0x7ffe40c921b0 /* 97 vars */) = -1 ENOENT (No such file or directory)
[pid 46094] execve("/home/msanft/.local/state/nix/profile/bin/gcc", ["gcc", "-E", "/tmp/tmpxft_0000b40d_00000000-2."...], 0x7ffe40c921b0 /* 97 vars */) = -1 ENOENT (No such file or directory)
[pid 46094] execve("/etc/profiles/per-user/msanft/bin/gcc", ["gcc", "-E", "/tmp/tmpxft_0000b40d_00000000-2."...], 0x7ffe40c921b0 /* 97 vars */) = -1 ENOENT (No such file or directory)
[pid 46094] execve("/nix/var/nix/profiles/default/bin/gcc", ["gcc", "-E", "/tmp/tmpxft_0000b40d_00000000-2."...], 0x7ffe40c921b0 /* 97 vars */) = -1 ENOENT (No such file or directory)
[pid 46094] execve("/run/current-system/sw/bin/gcc", ["gcc", "-E", "/tmp/tmpxft_0000b40d_00000000-2."...], 0x7ffe40c921b0 /* 97 vars */) = -1 ENOENT (No such file or directory)
07:57:18
@ss:someonex.netSomeoneSerge (back on matrix)
In reply to @msanft:matrix.org
Also, does cudatoolkit miss a dependency on gcc, or am I mistaken by this error:
✖ nvcc main.cu 
gcc: No such file or directory

EDIT: No, it indeed seems to try and find GCC:
[pid 46094] execve("/nix/store/j09h8v4ldx0ix547gjp0p2asj0asssaw-glib-2.80.4-bin/bin/gcc", ["gcc", "-E", "/tmp/tmpxft_0000b40d_00000000-2."...], 0x7ffe40c921b0 /* 97 vars */) = -1 ENOENT (No such file or directory)
[pid 46094] execve("/run/wrappers/bin/gcc", ["gcc", "-E", "/tmp/tmpxft_0000b40d_00000000-2."...], 0x7ffe40c921b0 /* 97 vars */) = -1 ENOENT (No such file or directory)
[pid 46094] execve("/home/msanft/.nix-profile/bin/gcc", ["gcc", "-E", "/tmp/tmpxft_0000b40d_00000000-2."...], 0x7ffe40c921b0 /* 97 vars */) = -1 ENOENT (No such file or directory)
[pid 46094] execve("/nix/profile/bin/gcc", ["gcc", "-E", "/tmp/tmpxft_0000b40d_00000000-2."...], 0x7ffe40c921b0 /* 97 vars */) = -1 ENOENT (No such file or directory)
[pid 46094] execve("/home/msanft/.local/state/nix/profile/bin/gcc", ["gcc", "-E", "/tmp/tmpxft_0000b40d_00000000-2."...], 0x7ffe40c921b0 /* 97 vars */) = -1 ENOENT (No such file or directory)
[pid 46094] execve("/etc/profiles/per-user/msanft/bin/gcc", ["gcc", "-E", "/tmp/tmpxft_0000b40d_00000000-2."...], 0x7ffe40c921b0 /* 97 vars */) = -1 ENOENT (No such file or directory)
[pid 46094] execve("/nix/var/nix/profiles/default/bin/gcc", ["gcc", "-E", "/tmp/tmpxft_0000b40d_00000000-2."...], 0x7ffe40c921b0 /* 97 vars */) = -1 ENOENT (No such file or directory)
[pid 46094] execve("/run/current-system/sw/bin/gcc", ["gcc", "-E", "/tmp/tmpxft_0000b40d_00000000-2."...], 0x7ffe40c921b0 /* 97 vars */) = -1 ENOENT (No such file or directory)
Yea we don't link gcc directly in nvcc but provide it independently via the overridden stdenv
09:40:39
@ss:someonex.netSomeoneSerge (back on matrix)
In reply to @glepage:matrix.org
The topic is interesting. Imagine being able to have a massive decentralized build farm ! That would be amazing.
Of course this is far from possible today (mostly because of nix limitations).
A horror security-wise though xD
11:08:32
@pta02:matrix.org@pta02:matrix.org left the room.12:20:53
@ss:someonex.netSomeoneSerge (back on matrix) connor (he/him) (UTC-7): hiya, any idea why there's nothing like find_package(protobuf) in onnx/onnx before it tests for TARGET protobuf::libprotobuf[-lite]? Is it supposed to inherit these variables from onnxruntime or something? 15:32:43
28 Oct 2024
@connorbaker:matrix.orgconnor (he/him) I would have thought that, but ONNX is also built directly and not just as a dependency of onnxruntime, so I don’t think it’s because they intend ONNX to be built solely as a subproject and leave configuration up to the parent
I don’t understand how they expect it to be magically detected… but it works for me from what I remember (https://github.com/ConnorBaker/cuda-packages/blob/main/cudaPackages-common/onnx.nix)
Although I’m doing the cursed C++/Python install and had to carefully choose dependencies from the normal package set and from Python packages 🤷‍♂️
06:39:55
29 Oct 2024
@mat:matrix.matmoa.xyz@mat:matrix.matmoa.xyz left the room.19:58:14
30 Oct 2024
@seapat:matrix.org@seapat:matrix.org left the room.07:49:56
@ss:someonex.netSomeoneSerge (back on matrix)
In reply to @connorbaker:matrix.org
Oh! Unrelated but this was a cute change I made that I quite like: https://github.com/ConnorBaker/cuda-packages/blob/c81a6595f07456c6cc34d8976031c4fa972a741f/cudaPackages-common/backendStdenv.nix#L36
Sets some defaults for the CUDA stdenv and adds a name prefix, similar to what the Python packaging does, for more descriptive store paths
Hey wanna publish a review on exposing extendMkDerivationArgs?
15:24:02
@ss:someonex.netSomeoneSerge (back on matrix)Could help with upstreaming the tricks15:24:30
@ss:someonex.netSomeoneSerge (back on matrix) Btw at NixCon Tom brought up moving cudaSupport &el into the system which I think was raised here at least on a few occasions 15:26:05
@ss:someonex.netSomeoneSerge (back on matrix)Maaaybe it's time? :)15:26:11
@ss:someonex.netSomeoneSerge (back on matrix) We could even skip exposing nixpkgsFun in the public api then: could be just pkgsCross.cuda 15:27:51
@ss:someonex.netSomeoneSerge (back on matrix) GPU tests? That's buildPlatform with cuda 15:28:50
@ss:someonex.netSomeoneSerge (back on matrix) * Btw at NixCon Tom brought up moving cudaSupport &al into the system which I think was raised here at least on a few occasions 15:32:10
@connorbaker:matrix.orgconnor (he/him)
In reply to @ss:someonex.net
Btw at NixCon Tom brought up moving cudaSupport &al into the system which I think was raised here at least on a few occasions
I’d really like capabilities to exposed as part of potential pkgsCross because they are effectively a platform target for the purposes of codegen; thoughts?
19:02:51
@ss:someonex.netSomeoneSerge (back on matrix)
In reply to @connorbaker:matrix.org
I’d really like capabilities to exposed as part of potential pkgsCross because they are effectively a platform target for the purposes of codegen; thoughts?
That's exactly the idea
20:19:26
@ss:someonex.netSomeoneSerge (back on matrix)I don't think we should be extending the triples, but it makes in the parsed system i think20:20:19
31 Oct 2024
@frederiksemmel:matrix.orgFrederik Semmel joined the room.15:16:14
@frederiksemmel:matrix.orgFrederik Semmel
In reply to @connorbaker:matrix.org
Absolute biggest pain in my ass right now is packaging onnxruntime (https://github.com/ConnorBaker/cuda-packages/blob/main/cudaPackages-common/onnxruntime/package.nix).
For the ONNX and TensorRT ecosystem, I’m doing a cursed build where the CMake and Python builds are interlaced.
Turns out doing a straight CMake build gives different results compared to doing a Python build. Go figure, the multi-thousand line Python scripts invoked by setup.py change how stuff is configured.

Hi connor (he/him) (UTC-7) , first off, the Nix CUDA team is doing awesome work! I have spent the last week reading everything cuda related in nixpkgs and watching NixCon talks :) I am also trying to run onnxruntime with the tensorrt backend on a jetson device with NixOS. Really looking forward to how you might solve the puzzle there. I am new to Nix, therefore I hoped it would be simpler for me to patch the onnxruntime-gpu binaries provided by jetson zoo. My approach is:

  • use poetry2nix to pull the specific wheel and run patchelf
  • use an poetry2nix overlay to add the cuda packages from jetpack-nixos to the buildInputs of onnxruntime-gpu

Is this doable like this, do you recommend this? I find it amazing that torch from nixpkgs just works thanks to cuda_compat. Can the cuda_compat trick work here too? Thanks a lot for your time!

15:44:26

Show newer messages


Back to Room ListRoom Version: 9