!eWOErHSaiddIbsUNsJ:nixos.org

NixOS CUDA

290 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
23 Oct 2024
@connorbaker:matrix.orgconnor (burnt/out) (UTC-8) Yeah part of the reason I’m iterating in a separate repo for this stuff is because I can just say “SCREW THE OTHER PLATFORMS MUAHAHAHHAAH” (and also because I don’t have to re-evaluate nixpkgs on every change).
I’ll try to take a look… but no promises :)
16:31:23
@connorbaker:matrix.orgconnor (burnt/out) (UTC-8) Okay I looked at it and have no idea 🤷‍♂️ 16:32:07
@connorbaker:matrix.orgconnor (burnt/out) (UTC-8)The whole ONNX ecosystem is difficult to package for Nix because they all use both git submodules AND CMake’s fetchcontent functionality, making it super difficult to package with stuff we already provide. For some packages, they build with flags we don’t, or have patches they apply before building, so it’s painful.16:34:04
@connorbaker:matrix.orgconnor (burnt/out) (UTC-8)That’s partly why my packaging of Onnxruntime involves rewriting some of their CMake files16:34:35
@connorbaker:matrix.orgconnor (burnt/out) (UTC-8)I also love that onnx by default builds with ONNX_ML=0 (disabling old APIs in favor of new ones), but various projects depend on it being set to one value or the other, so you could very easily end up with two copies of onnx, each configured with a different value for ONNX_ML.16:36:22
@connorbaker:matrix.orgconnor (burnt/out) (UTC-8)God what a nightmare16:36:36
@connorbaker:matrix.orgconnor (burnt/out) (UTC-8)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 (burnt/out) (UTC-8) 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 (burnt/out) (UTC-8) makes a sad noise11:51:25
@connorbaker:matrix.orgconnor (burnt/out) (UTC-8)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 (burnt/out) (UTC-8) 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

Show newer messages


Back to Room ListRoom Version: 9