!fXpAvneDgyJuYMZSwO:nixos.org

Nix Data Science

275 Members
57 Servers

Load older messages


SenderMessageTime
18 Apr 2022
@yuu:matrix.orgYuu Yin

Someone S: hi there ^-^ i just wanted a minimal flake.nix with pytorch and cuda enabled. i did it with that flake

{
  description = "Pytorch and stuff";

  # Specifies other flakes that this flake depends on.
  inputs = {
    devshell.url = "github:numtide/devshell";
    utils.url = "github:numtide/flake-utils";
    nixpkgs.url = "github:nixos/nixpkgs/nixos-21.11";
  };

  # Function that produces an attribute set.
  # Its function arguments are the flakes specified in inputs.
  # The self argument denotes this flake.
  outputs = inputs@{ self, nixpkgs, utils, ... }:
    (utils.lib.eachSystem [ "x86_64-linux" ] (system:
      let
        pkgs = (import nixpkgs {
          inherit system;
          config = {
            # For CUDA.
            allowUnfree = true;
            # Enables CUDA support in packages that support it.
            cudaSupport = true;
          };
        });
      in rec {
        # Executed by `nix build .#<name>`
        # Ignore this, it was just for testing.
        packages = utils.lib.flattenTree {
          hello = pkgs.hello;
        };

        # Executed by `nix build .`
        defaultPackage = packages.hello;
        # defaultPackage = pkgs.callPackage ./default.nix { };

        # Executed by `nix develop`
        devShell = with pkgs; mkShell {
          buildInputs = [
            python39 # numba-0.54.1 not supported for interpreter python3.10
          ] ++ (with python39.pkgs; [
            inflect
            librosa
            pip
            pytorch-bin
            unidecode
          ]) ++ (with cudaPackages; [
            cudatoolkit
          ]);

          shellHook = ''
            export CUDA_PATH=${pkgs.cudatoolkit}
          '';
        };
      }
    ));
}

and direnv + nix-direnv .envrc

use flake

18:52:01
@ss:someonex.netSomeoneSerge (UTC+U[-12,12])

👍️

I'll try to send some of the shells that I use a little later.
But meanwhile a few links you might find useful, if you haven't seen them yet:

  • zimbatm's nixpkgs-unfree: https://discourse.nixos.org/t/announcing-nixpkgs-unfree/17505
    The idea is to use inputs.nixpkgs.url = github:numtide/nixpkgs-unfree/$branch as input, which exposes nixpkgs with the unfree already enabled and tracks NixOS/nixpkgs automatically. I'm using smth like this for the flake registry in my configuration.nix, so that nixpkgs#python3Packages.pytorch resolves into the pre-cached unfree and cuda-enabled pytorch for me, instead of throwing an error about NIXPKGS_ALLOW_UNFREE=1
  • It's somewhat experimental, but there's now cachix with prebuilt cuda-enabled sci-comp packages, you can find more at https://nixos.wiki/wiki/CUDA. The cache is populated automatically for the last release, unstable, and master, much like nixpkgs-unfree does it. There's a slight delay between a branch update and the cache, but probably not more than a day
  • I prefer using source-based pytorch instead of the wheel-based pytorch-bin. The way I use cuda-enabled packages is essentially just importing nixpkgs with { config = { allowUnfree = true; cudaSupport = true; }; } and using directly pytorch, jax, blender, etc. And I'd rather consume nixpkgs-unfree as a flake input, than import it myself in a project.
19:13:04
@yuu:matrix.orgYuu Yin Someone S: that's definitively useful info! I'm going to implement your tips. thank you so much! by "And I'd rather consume nixpkgs-unfree as a flake input, than import it myself in a project.", you mean nixpkgs-unfree as an input to the project's repotory's flake.nix, right? 21:19:16
@ss:someonex.netSomeoneSerge (UTC+U[-12,12])Yes so!21:37:36
20 Apr 2022
@ahsmha:matrix.orgahmed joined the room.23:33:06
21 Apr 2022
@wybpip:matrix.orgAn exploring bot joined the room.00:49:27
@wybpip:matrix.orgAn exploring bot left the room.00:49:28
24 Apr 2022
@ebeem:matrix.orgebeem-sama joined the room.19:50:58
26 Apr 2022
@johnwanyekz:matrix.orgKi joined the room.10:35:08
29 Apr 2022
@hedgemage:freehold.earthHedgeMage joined the room.17:17:27
4 May 2022
@wybpip:matrix.orgAn exploring bot joined the room.15:02:17
@wybpip:matrix.orgAn exploring bot left the room.15:02:18
8 May 2022
@kraftnix:matrix.orgkraftnix set a profile picture.17:46:13
9 May 2022
@box1:matrix.orgSuwon Park joined the room.13:22:54
20 May 2022
@gullf:matrix.orggullf joined the room.22:43:49
@gullf:matrix.orggullf left the room.22:45:26
25 May 2022
@dev.hell:matrix.orgdevhell joined the room.09:39:17
@dev.hell:matrix.orgdevhellHello :) Has anyone here tried to run 'namd' on NixOS?09:39:50
@dev.hell:matrix.orgdevhellI can set up a VM and pass the tesla through to the VM (which runs Arch), but I would prefer it if I could run namd bare-metal on the NixOS host09:40:35
1 Jun 2022
@tinybronca:sibnsk.netunderpantsgnome joined the room.09:06:32
9 Jun 2022
@dev.hell:matrix.orgdevhellI suppose singularity containers is the way to go08:12:13
10 Jun 2022
@johnwanyekz:matrix.orgKi left the room.06:14:29
18 Jun 2022
@atharvaamritkar:matrix.orgwiredhikari joined the room.10:04:30
30 Jun 2022
@necrophcodr:matrix.orgnecrophcodr joined the room.07:31:27
@necrophcodr:matrix.orgnecrophcodrDo we yet have anything like https://gitlab.inria.fr/guix-hpc/guix-kernel/ in Nix land?07:32:17
@schnecfk:ruhr-uni-bochum.deCRTified (old handle)There is a nix kernel in https://github.com/tweag/jupyterWith07:41:57
@jb:vk3.wtfjbedohttps://github.com/tweag/jupyterWith is similar07:41:58
@jb:vk3.wtfjbedoxd07:42:18
@necrophcodr:matrix.orgnecrophcodrWell, it spins up an instance with those kernels available, but what the guix-kernel does is allow you to use Guix directly in a notebook, allowing you not only a kernel per cell, but a kernel environment per cell.08:14:43
@necrophcodr:matrix.orgnecrophcodrI'd prefer to use Nix for that though, if something like it exists. jupyterWith is not close to that behaviour, and wouldn't work on a self-hosted jupyter platform as far as I can tell, especially for the users of the platform (which is my core focus as a data scientist)08:15:59

Show newer messages


Back to Room ListRoom Version: 6