/ flake.nix
flake.nix
1 { 2 description = "dev shell with uv and cuda out of the box"; 3 4 inputs = { 5 nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.11"; 6 nix-gl-host.url = "github:numtide/nix-gl-host"; 7 }; 8 9 outputs = 10 { 11 self, 12 nixpkgs, 13 nix-gl-host, 14 }: 15 let 16 pkgs = import nixpkgs { 17 system = "x86_64-linux"; 18 config.allowUnfree = true; 19 config.cudaSupport = true; 20 }; 21 in 22 { 23 devShells.x86_64-linux.default = 24 with pkgs; 25 mkShell rec { 26 packages = [ 27 cmake 28 ninja 29 cudaPackages.cudatoolkit 30 cudaPackages.cuda_cudart 31 cudaPackages.cuda_cupti 32 cudaPackages.cuda_nvrtc 33 cudaPackages.cuda_nvtx 34 cudaPackages.cudnn 35 cudaPackages.libcublas 36 cudaPackages.libcufft 37 cudaPackages.libcurand 38 cudaPackages.libcusolver 39 cudaPackages.libcusparse 40 cudaPackages.libnvjitlink 41 cudaPackages.nccl 42 nix-gl-host.defaultPackage.x86_64-linux 43 uv 44 zlib 45 libGL 46 glib 47 (python3.withPackages (p: [ 48 # p.opencv-python 49 ])) 50 ]; 51 52 shellHook = '' 53 # if [ ! -f pyproject.toml ]; then 54 # uv sync 55 # . .venv/bin/activate.fish 56 # fi 57 export LD_LIBRARY_PATH=$(nixglhost -p):$LD_LIBRARY_PATH 58 export LD_LIBRARY_PATH="${lib.makeLibraryPath packages}:$LD_LIBRARY_PATH" 59 export LD_LIBRARY_PATH="${stdenv.cc.cc.lib}/lib:$LD_LIBRARY_PATH" 60 ''; 61 }; 62 }; 63 }