| 13 May 2024 |
connor (he/him) | In reply to @ss:someonex.net Outside pythonPackages using different versions of cuda is kind of fine because it gets loaded in different processes I'm not too familiar with how symbol resolution works; are you saying it's okay to have different versions of the CUDA libraries in the dependencies because they're loaded into different processes? | 00:20:50 |
SomeoneSerge (matrix works sometimes) | We have means of spawning new consistent package sets with a different default: nixpkgsFun/overlays | 00:21:15 |
SomeoneSerge (matrix works sometimes) | In reply to @connorbaker:matrix.org I'm not too familiar with how symbol resolution works; are you saying it's okay to have different versions of the CUDA libraries in the dependencies because they're loaded into different processes? Yes, sure | 00:22:08 |
SomeoneSerge (matrix works sometimes) | I'm no expert, but it might be even possible to have a single process load one version of, say, cudart, and then its transitive dependency load another, assuming the loading is performed with some sort of isolation - dlmopen | 00:25:50 |
connor (he/him) | I was concerned that the mix-and-match versions of CUDA would raise the same issues we saw with glibc -- but that's not the case? | 00:27:44 |
SomeoneSerge (matrix works sometimes) | I didn't test cuda specifically, but generally having a single process depend on two different versions of the same library will present a problem | 00:29:28 |
SomeoneSerge (matrix works sometimes) | Even if mixing pytorch and tensorflow built against different versions of cuda doesn't always fail, it's accidental (maybe the abi of these cuda libraries happens to be stable enough) | 00:31:33 |
connor (he/him) | I was worried more about their dependencies and the projects, given Tensorflow and PyTorch can't co-exist in the same install because they rely on different versions of (I think they use different versions of GRPC) | 00:32:55 |
SomeoneSerge (matrix works sometimes) | I see. This is still about whether things are being loaded in a single process. I suspect that protobuf in torch and tf is again... special because of python:) | 00:36:02 |
SomeoneSerge (matrix works sometimes) | IIRC tensorflow propagates its protobuf as a python package | 00:36:25 |
SomeoneSerge (matrix works sometimes) | For a pure native project that produces an ELF this wouldn't be a problem: libtorch can link its own protobuf via RUNPATH, and so can the native parts of tensorflow. You can throw them into the same closure and they'd never conflict, unless you actually loaded both from a single executable. But the python package just shows up in sys.path... | 00:38:53 |
connor (he/him) | Ah okay | 00:39:25 |
SomeoneSerge (matrix works sometimes) | All in all, we just need python to discard its import system in favour of something at least as flexible as ld.so | 00:40:42 |
SomeoneSerge (matrix works sometimes) | * All in all, we just need python to discard its import system in favour of something at least as flexible as ld.so. Which is not to say the latter can't be improved | 00:41:14 |
| @pascal.grosmann:scs.ems.host changed their display name from Pascal Grosmann to Pascal Grosmann - Urlaub 🚐 🏝️ 🏄♂️ 18.05. - 15.09.. | 08:13:30 |
Gaétan Lepage | Ok thanks connor (he/him) (UTC-5)! | 09:33:31 |
Gaétan Lepage | Where is the right spot to set cudaSupport = true for a flake based nixos install ? | 13:53:50 |
Gaétan Lepage | (I am using flake-part, if that matters) | 13:54:03 |
trexd | In reply to @glepage:matrix.org Where is the right spot to set cudaSupport = true for a flake based nixos install ? 35 perSystem = {
36 pkgs,
37 system,
38 ...
39 }: {
40 _module.args.pkgs = import nixpkgs {
41 inherit system;
42 config.allowUnfree = true;
43 config.cudaSupport = true;
44 };
Sorry about the line numbers but you just do this.
| 14:08:16 |
trexd | Oh I reread your message. Cant you just do nixpkgs.config.cudaSupport = true; if you want to globally enable cudaSupport? | 14:12:35 |
trexd | * Oh I reread your message. Cant you just do nixpkgs.config.cudaSupport = true; in your configuration.nix if you want to globally enable cudaSupport? | 14:12:53 |
Gaétan Lepage | In reply to @trexd:matrix.org Oh I reread your message. Cant you just do nixpkgs.config.cudaSupport = true; in your configuration.nix if you want to globally enable cudaSupport? Great this seems to work, thanks ! | 14:14:40 |
SomeoneSerge (matrix works sometimes) | (nixpkgs-config as flake input when) | 14:54:12 |
Kevin Mittman (UTC-7) | In reply to @ss:someonex.net Wdym by "single input" and by the "closure with packages for a component"? Received a request to provide a product-level tarball with all of the components for i.e. CUDA. IMHO thats basically a runfile so unclear if that would be helpful or not. | 19:19:20 |
SomeoneSerge (matrix works sometimes) | Yes sounds like a step backwards | 19:20:29 |
SomeoneSerge (matrix works sometimes) | * Yes sounds like a step backwards imo | 19:20:35 |
Kevin Mittman (UTC-7) | Right, so for manifest v4 trying to add build and runtime dependencies to the JSON. Those dlopen()s are still a thorn though | 19:57:47 |
| 14 May 2024 |
| kaya 𖤐 changed their profile picture. | 10:49:13 |
aidalgol | Thread about zluda over on Discourse: https://discourse.nixos.org/t/overlaying-packages-using-cuda-to-use-zluda/45374 They're trying to get cudaPackages to use zluda. | 19:35:24 |
| 15 May 2024 |
ˈt͡sɛːzaɐ̯ | In reply to @aidalgol:matrix.org Thread about zluda over on Discourse: https://discourse.nixos.org/t/overlaying-packages-using-cuda-to-use-zluda/45374 They're trying to get cudaPackages to use zluda. (wonder if localai works without blaslt. because the nix zluda package excludes that for now...) | 00:11:32 |