!eWOErHSaiddIbsUNsJ:nixos.org

NixOS CUDA

288 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 Jun 2024
@ss:someonex.netSomeoneSerge (back on matrix)
In reply to @coruscate:matrix.org
is there any up to date documentation on how to use cuda properly? I find rather conflicting information and stumble accross new information whenever I google.

My Opensycl project seems to require 11.5 or earlier, while 10 would be in the common nixpkgs I thought I'd ask before going with that.
Nixpkgs' unstable is at 12.2 🤔
10:39:19
@ss:someonex.netSomeoneSerge (back on matrix) * I think the section in the official manual is not in an unreasonable state, although messy: https://nixos.org/manual/nixpkgs/unstable/#cuda 10:39:49
@coruscate:matrix.orgcoruscateshould have said later then, i guess? <11.5 weirdly enough10:46:27
@ss:someonex.netSomeoneSerge (back on matrix)Ah so opensycl requires an older release?10:54:07
@ss:someonex.netSomeoneSerge (back on matrix) Just use cudaPackages_11_5. Start ad hoc, building only opensycl against it. If you wish to rebuild the whole package set, use an overlay. 10:55:35
@ss:someonex.netSomeoneSerge (back on matrix) They don't seem to specify any constraints: https://github.com/archibate/OpenSYCL/blob/b919667ea53f99dbc55a9832f297cf0cb689034e/cmake/FindCUDA.cmake#L31 11:02:25
@ss:someonex.netSomeoneSerge (back on matrix) * They don't seem to specify any constraints: https://github.com/archibate/OpenSYCL/blob/b919667ea53f99dbc55a9832f297cf0cb689034e/cmake/FindCUDA.cmake#L31 (oh, this is some fork) 11:02:44
@coruscate:matrix.orgcoruscatemy issue seems to be the packaged clang version in the nixpkg opensycl package, i'll probably simply repackage it.11:16:02
@matthewcroughan:defenestrate.itmatthewcroughan Does anybody get cicc died due to signal 9 (Kill signal) 12:19:18
@matthewcroughan:defenestrate.itmatthewcroughanWhen trying to build onnxruntime with cuda support?12:19:24
@matthewcroughan:defenestrate.itmatthewcroughan
In reply to @connorbaker:matrix.org
I remember enabling ZRAM partly because of that. And I’m pretty sure they were all zero pages too, because they compressed to absolutely nothing lmao
Same.. That sounds very familiar
12:21:21
@matthewcroughan:defenestrate.itmatthewcroughanhttps://github.com/rapidsai/cudf/issues/801812:21:36
@matthewcroughan:defenestrate.itmatthewcroughanseems like the solution to cicc getting killed is to limit parallelism also 12:21:48
@coruscate:matrix.orgcoruscate
In reply to @ss:someonex.net
Just use cudaPackages_11_5. Start ad hoc, building only opensycl against it. If you wish to rebuild the whole package set, use an overlay.

I seem to be too dumb to figure this out.

I use this flake:

{
  description = "Needleman Wunsch Sycl implementation";
  inputs = {
    nixpkgs.url = "github:nixos/nixpkgs";
    systems.url = "github:nix-systems/default";
    flake-utils.url = "github:numtide/flake-utils";
  };

  outputs =
    { self
    , systems
    , nixpkgs
    , flake-utils
    }:
    flake-utils.lib.eachDefaultSystem
      (system:
      let
        pkgs = (import nixpkgs {
          system = system;
          config = {
            cudaPackages = pkgs.cudaPackages_11_5;
            cudaForwardCompat = true;
            cudaCapabilities = [ "7.5" ];
            cudaSupport = true;
            allowUnfree = true; # Enable unfree software
          };
        });
      in
      {
        # overlay = overlay;
        devShells.default = import ./shell.nix { inherit pkgs; };
        packages = {
          default = pkgs.callPackage ./package.nix { inherit pkgs; };
          sycl = pkgs.callPackage ./opensycl.nix { inherit pkgs; };
        };
      });
}

and expect both the shell and the sycl package to use the correct version, this clearly is not the case though. I expect that I can set it the way the documentation leads me to believe for the sycl package, as I use the callPackage function, but how would I do the same for the shell?

{ pkgs ? import <nixpkgs> }:

with pkgs;
mkShell {
  buildInputs = [
    (callPackage ./opensycl.nix { })
    gnumake
    gdb

    lld
    cudaPackages.cudatoolkit
    linuxPackages.nvidia_x11
    opencl-headers
    pkg-config
  ];
...

sorry if this is too incoherent or stupid to begin with

13:17:07
@coruscate:matrix.orgcoruscate
In reply to @ss:someonex.net
Just use cudaPackages_11_5. Start ad hoc, building only opensycl against it. If you wish to rebuild the whole package set, use an overlay.
*

I seem to be too dumb to figure this out.

I use this flake:

{
  description = "Needleman Wunsch Sycl implementation";
  inputs = {
    nixpkgs.url = "github:nixos/nixpkgs";
    systems.url = "github:nix-systems/default";
    flake-utils.url = "github:numtide/flake-utils";
  };

  outputs =
    { self
    , systems
    , nixpkgs
    , flake-utils
    }:
    flake-utils.lib.eachDefaultSystem
      (system:
      let
        pkgs = (import nixpkgs {
          system = system;
          config = {
            cudaPackages = pkgs.cudaPackages_11_5;
            cudaForwardCompat = true;
            cudaCapabilities = [ "7.5" ];
            cudaSupport = true;
            allowUnfree = true; # Enable unfree software
          };
        });
      in
      {
        # overlay = overlay;
        devShells.default = import ./shell.nix { inherit pkgs; };
        packages = {
          default = pkgs.callPackage ./package.nix { inherit pkgs; };
          sycl = pkgs.callPackage ./opensycl.nix { inherit pkgs; };
        };
      });
}

and expect both the shell and the sycl package to use the correct version, this clearly is not the case though. I expect that I can set it the way the documentation leads me to believe for the sycl package, as I use the callPackage function, but how would I do the same for the shell?

{ pkgs ? import <nixpkgs> }:

with pkgs;
mkShell {
  buildInputs = [
    (callPackage ./opensycl.nix { })
    gnumake
    gdb

    lld
    cudaPackages.cudatoolkit
    linuxPackages.nvidia_x11
    opencl-headers
    pkg-config
  ];
...

sorry if this is too incoherent or stupid to begin with

13:17:20
@ss:someonex.netSomeoneSerge (back on matrix) There's no config.cudaPackages option; cudaPackages is an attribute in an evaluated pkgs instance; it can be overridden using overlays 13:41:48
@ss:someonex.netSomeoneSerge (back on matrix) coruscate is there a public repo with the flake and the opensycl.nix? 13:42:37
@ss:someonex.netSomeoneSerge (back on matrix) Looking at how setup-cuda-hook.sh propagates itself and once again I cannot remember where the extra offset of (0, 1) is coming from... 21:28:55
@ss:someonex.netSomeoneSerge (back on matrix) Say someone puts a cuda_cudart in buildInputs (that's (0,1)), it has the hook in propagatedNativeBuildInputs (that's (-1, 0), right?). The expectation (confirmed by a successful build is that we arrive at (-1, 0)=nativeBuildInputs again, but the arithmetics says (0, 0) 21:31:06
@ss:someonex.netSomeoneSerge (back on matrix) * Looking at how setup-cuda-hook.sh propagates itself and once again I cannot remember where the extra offset of (1, 0) is coming from... 21:31:28
@ss:someonex.netSomeoneSerge (back on matrix) Is it added manually? Hmm now come to think of it if a is in buildInputs, and has b in propagatedBuildInputs, which has c in propagatedBuildINputs - c should end up at the same offsets, i.e. in buildInputs 21:32:31
@ss:someonex.netSomeoneSerge (back on matrix) * Is it added manually? Hmm now come to think of it if a is in buildInputs, and has b in propagatedBuildInputs, which has c in propagatedBuildINputs - we want c to end up at the same offsets, i.e. in buildInputs 21:32:46
28 Jun 2024
@ss:someonex.netSomeoneSerge (back on matrix) Should work this time: https://github.com/NixOS/nixpkgs/pull/323056
Can I bump a nixpgks-review? xD
01:43:56
@ss:someonex.netSomeoneSerge (back on matrix) * Should work this time: https://github.com/NixOS/nixpkgs/pull/323056
Can I bum a nixpgks-review? xD
01:44:00
@ss:someonex.netSomeoneSerge (back on matrix)
In reply to @ss:someonex.net
Should work this time: https://github.com/NixOS/nixpkgs/pull/323056
Can I bum a nixpgks-review? xD
Omg, nevermind... I checked that magma still builds after the first commit, then did something in the second and now it doesn't
01:49:25
@howird:matrix.orgHoward Nguyen-Huu joined the room.02:44:51
@search-sense:matrix.orgsearch-sense
In reply to @matthewcroughan:defenestrate.it
they removed the .6 from the release
I know, that it's broken ... actually it would be good if someone upgrade it to the current version TensorRT-10.1.0.27
11:00:16
@ss:someonex.netSomeoneSerge (back on matrix) Shoot, I think propagatedBuildOutputs are broken with __structuredAttrs 11:08:29
@ss:someonex.netSomeoneSerge (back on matrix) The hook loops over $propagatedBuildOutputs but __structuredAttrs make it onti an array, so the first expression resolves into the value of the first element 🤡 11:09:03
@ss:someonex.netSomeoneSerge (back on matrix)
In reply to @search-sense:matrix.org
I know, that it's broken ... actually it would be good if someone upgrade it to the current version TensorRT-10.1.0.27
Would you like to just take over tensorrt in Nixpkgs?
11:28:58

Show newer messages


Back to Room ListRoom Version: 9