!eWOErHSaiddIbsUNsJ:nixos.org

NixOS CUDA

293 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
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.orgPedro Alves 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
@didiercrunch:matrix.orgdidiercrunch joined the room.15:57:40
@connorbaker:matrix.orgconnor (he/him) I have no idea if it’ll work, but please do try and let me know! I’m not familiar with the Jetson zoo, or how the binary wheels are packaged.
It sounds reasonable — the wheel should have libraries built to target Jetson devices which link against CUDA libraries, and using autoPatchelfHook and including CUDA libraries in buildInputs should patch the libraries so they resolve to the ones provided by Nixpkgs…
I don’t fully understand what cuda_compat does, but my understanding is that it serves as a shim between newer CUDA libraries and an older CUDA driver on the Jetson?
At any rate, try it out and let me know!
16:16:51
@frederiksemmel:matrix.orgFrederik SemmelOk awesome, thanks for the quick reply! At least there is not something completely wrong with the approach. I will let you know if I can make it work 👌 Did anyone else get onnxruntime working with the tensorrt execution provider on a jetson?16:24:25
@connorbaker:matrix.orgconnor (he/him)I can’t remember if I managed to get it building on Jetson, I got distracted and started doing work on the nix interpreter16:26:15
@connorbaker:matrix.orgconnor (he/him)Also, which Jetson generation are you using? Please let it be at least Xavier :(16:27:48
@frederiksemmel:matrix.orgFrederik Semmel Its the Orin NX luckily :) I am free to choose a different platform, I am still evaluating what is best for our AI on the edge usecase. From what you say it seems like its not going to be impossible, so I will work my way through it. I hope I can find a a good solution, if I do I will try to contribute it to nixpkgs or jetpack-nixos 16:31:01
@search-sense:matrix.orgsearch-senseI am sorry ``nix run github:SomeoneSerge/pkgs#pkgsCuda.some-pkgs-py.stable-diffusion-webui``` doesn't work anymore 17:06:45
@search-sense:matrix.orgsearch-sense * I am sorry nix run github:SomeoneSerge/pkgs#pkgsCuda.some-pkgs-py.stable-diffusion-webui doesn't work anymore 17:07:06

Show newer messages


Back to Room ListRoom Version: 9