6 Jul 2024 |
hexa (UTC+1) | Or maybe just an outlier | 16:57:10 |
SomeoneSerge (utc+3) | Wondering what is the generic way to do that | 17:43:02 |
SomeoneSerge (utc+3) | from nvcc docs | 17:43:06 |
SomeoneSerge (utc+3) | Download clipboard.png | 17:43:13 |
hexa (UTC+1) | https://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/#nvcc-environment-variables | 18:09:41 |
hexa (UTC+1) | can also be passed via an env var | 18:09:50 |
SomeoneSerge (utc+3) | In reply to @hexa:lossy.network https://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/#nvcc-environment-variables Yes, we use that in setupCudaHook | 18:24:20 |
SomeoneSerge (utc+3) | In a limited way... | 18:24:31 |
connor (he/him) (UTC-7) | Oh that reminds me: At least one Python package with CUDA support in Nixpkgs invokes NVCC from within Python scripts as part of its setup, and so our NVCC_PREPEND_FLAGS (or whatever the name is) in our setup hook is ignored
Don’t think that’s relevant but just something irritating I found some number of weeks ago (I believe I patched it in the PR I have to update the CUDA packaging) | 23:36:00 |
7 Jul 2024 |
| ornx joined the room. | 19:45:55 |
ornx | this doesn't work (nvidia-smi says my card is there etc). am i holding it wrong or is it broken?
$ nix develop
[snip]
$ nvcc foo.cu
In file included from /nix/store/fydjj6z3nyi1ywqbzzw7ai12ncjx9kwy-cuda-merged-12.2/include/cuda_runtime.h:82,
from <command-line>:
/nix/store/fydjj6z3nyi1ywqbzzw7ai12ncjx9kwy-cuda-merged-12.2/include/crt/host_config.h:143:2: error: #error -- unsupported GNU version! gcc versions later than 12 are not supported! The nvcc flag '-allow-unsupported-compiler' can be used to override this version check; however, using an unsupported host compiler may cause compilation failure or incorrect run time execution. Use at your own risk.
143 | #error -- unsupported GNU version! gcc versions later than 12 are not supported! The nvcc flag '-allow-unsupported-compiler' can be used to override this version check; however, using an unsupported host compiler may cause compilation failure or incorrect run time execution. Use at your own risk.
| ^~~~~
flake.nix i am using as shell:
{
description = "cuda development environment";
inputs = {
nixpkgs = {
url = "github:NixOS/nixpkgs/4284c2b73c8bce4b46a6adf23e16d9e2ec8da4bb";
};
};
outputs = { self, nixpkgs }:
let
system = "x86_64-linux";
pkgs = import nixpkgs {
inherit system;
config.allowUnfree = true;
config.cudaSupport = true;
};
in {
devShells.${system}.default = pkgs.mkShell {
buildInputs = with pkgs; [
cudatoolkit linuxPackages.nvidia_x11
cudaPackages.cudnn
libGLU libGL
xorg.libXi xorg.libXmu freeglut
xorg.libXext xorg.libX11 xorg.libXv xorg.libXrandr zlib
ncurses5 stdenv.cc binutils
];
shellHook = ''
export LD_LIBRARY_PATH="${pkgs.linuxPackages.nvidia_x11}/lib"
'';
};
};
}
| 19:47:46 |
aidalgol | Maybe leave out stdenv.cc from the mkShell inputs? | 19:50:57 |
ornx | no such luck, same error | 19:53:36 |
ornx | even NIXPKGS_ALLOW_UNFREE=1 nix-shell -p cudaPackages_12.cudatoolkit gives me that error | 19:54:13 |
ornx | although i'm not sure what commit that's on | 19:54:29 |
ornx | $ nix-shell -p gcc12 --run 'gcc --version'
gcc (GCC) 13.3.0
Copyright (C) 2023 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
| 19:55:37 |
ornx | i'm not sure what is going on here exactly, is it supposed to do that? | 19:55:54 |
aidalgol | That seems wrong. I get that, too. Also,
❯ nix-shell -p gcc12 --run 'which gcc'
/nix/store/mpm3i0sbqc9svfch6a17179fs64dz2kv-gcc-wrapper-13.3.0/bin/gcc
| 19:58:57 |
ornx | very odd... | 20:02:48 |
SomeoneSerge (utc+3) | `*mkShell.override { stdenv = cudaPackages.backendStdenv; } | 20:53:38 |
SomeoneSerge (utc+3) | * mkShell.override { stdenv = cudaPackages.backendStdenv; } | 20:53:46 |
SomeoneSerge (utc+3) | * mkShell.override { stdenv = cudaPackages.backendStdenv; } { packages = [ cmake etc etc ]; } | 20:54:01 |
SomeoneSerge (utc+3) | nix-shell -p implicitly uses mkShell , which is where gcc13 comes from in your which gcc | 20:54:28 |
SomeoneSerge (utc+3) | ❯ nix-shell -p gcc12 --run 'echo $PATH' | rg gcc
...:/nix/store/mpm3i0sbqc9svfch6a17179fs64dz2kv-gcc-wrapper-13.3.0/bin:...:/nix/store/7hqg1pzya6xjp6vri2fsfjnf4w622p7w-gcc-wrapper-12.3.0/bin:...
| 20:55:31 |
SomeoneSerge (utc+3) | Compare this to nix3-shell:
❯ nix shell nixpkgs#gcc12 --command which gcc
/nix/store/7hqg1pzya6xjp6vri2fsfjnf4w622p7w-gcc-wrapper-12.3.0/bin/gcc
| 20:56:16 |
SomeoneSerge (utc+3) | And the usual reminder that LD_LIBRARY_PATH="${pkgs.linuxPackages.nvidia_x11}/lib" is wrong and breaks things | 20:56:49 |
SomeoneSerge (utc+3) | * And here's the usual reminder that LD_LIBRARY_PATH="${pkgs.linuxPackages.nvidia_x11}/lib" is wrong and breaks things | 20:56:56 |
SomeoneSerge (utc+3) | CC ornx | 20:57:24 |
ornx | Ah, so I *was* holding it wrong... | 21:28:01 |
8 Jul 2024 |
| kaya changed their profile picture. | 00:51:09 |