summaryrefslogtreecommitdiff
path: root/Omni/Bild/Deps/bitsandbytes.nix
diff options
context:
space:
mode:
Diffstat (limited to 'Omni/Bild/Deps/bitsandbytes.nix')
-rw-r--r--Omni/Bild/Deps/bitsandbytes.nix131
1 files changed, 73 insertions, 58 deletions
diff --git a/Omni/Bild/Deps/bitsandbytes.nix b/Omni/Bild/Deps/bitsandbytes.nix
index eb32aac..c336559 100644
--- a/Omni/Bild/Deps/bitsandbytes.nix
+++ b/Omni/Bild/Deps/bitsandbytes.nix
@@ -1,7 +1,17 @@
-{ lib, buildPythonPackage, fetchFromGitHub, python, pythonOlder, pytestCheckHook
-, setuptools, torch, einops, lion-pytorch, scipy, symlinkJoin }:
-
-let
+{
+ lib,
+ buildPythonPackage,
+ fetchFromGitHub,
+ python,
+ pythonOlder,
+ pytestCheckHook,
+ setuptools,
+ torch,
+ einops,
+ lion-pytorch,
+ scipy,
+ symlinkJoin,
+}: let
pname = "bitsandbytes";
version = "0.38.0";
@@ -24,63 +34,68 @@ let
[
cuda_cudart # cuda_runtime.h cuda_runtime_api.h
cuda_nvcc
- ] ++ cuda-common-redist;
+ ]
+ ++ cuda-common-redist;
};
cuda-redist = symlinkJoin {
name = "cuda-redist-${cudaVersion}";
paths = cuda-common-redist;
};
-
-in buildPythonPackage {
- inherit pname version;
- format = "pyproject";
-
- disabled = pythonOlder "3.7";
-
- src = fetchFromGitHub {
- owner = "TimDettmers";
- repo = pname;
- rev = "refs/tags/${version}";
- hash = "sha256-gGlbzTDvZNo4MhcYzLvWuB2ec7q+Qt5/LtTbJ0Rc+Kk=";
- };
-
- postPatch = ''
- substituteInPlace Makefile --replace "/usr/bin/g++" "g++" --replace "lib64" "lib"
- substituteInPlace bitsandbytes/cuda_setup/main.py \
- --replace "binary_path = package_dir / binary_name" \
- "binary_path = Path('$out/${python.sitePackages}/${pname}')/binary_name"
- '' + lib.optionalString torch.cudaSupport ''
- substituteInPlace bitsandbytes/cuda_setup/main.py \
- --replace "/usr/local/cuda/lib64" "${cuda-native-redist}/lib"
- '';
-
- CUDA_HOME = "${cuda-native-redist}";
-
- preBuild = if torch.cudaSupport then
- with torch.cudaPackages;
- let
- cudaVersion = lib.concatStrings
- (lib.splitVersion torch.cudaPackages.cudaMajorMinorVersion);
- in "make CUDA_VERSION=${cudaVersion} cuda${cudaMajorVersion}x"
- else
- "make CUDA_VERSION=CPU cpuonly";
-
- nativeBuildInputs = [ setuptools ]
- ++ lib.optionals torch.cudaSupport [ cuda-native-redist ];
- buildInputs = lib.optionals torch.cudaSupport [ cuda-redist ];
-
- propagatedBuildInputs = [ torch ];
-
- doCheck = false; # tests require CUDA and also GPU access
- nativeCheckInputs = [ pytestCheckHook einops lion-pytorch scipy ];
-
- pythonImportsCheck = [ "bitsandbytes" ];
-
- meta = with lib; {
- homepage = "https://github.com/TimDettmers/bitsandbytes";
- description = "8-bit CUDA functions for PyTorch";
- license = licenses.mit;
- maintainers = with maintainers; [ bcdarwin ];
- };
-}
+in
+ buildPythonPackage {
+ inherit pname version;
+ format = "pyproject";
+
+ disabled = pythonOlder "3.7";
+
+ src = fetchFromGitHub {
+ owner = "TimDettmers";
+ repo = pname;
+ rev = "refs/tags/${version}";
+ hash = "sha256-gGlbzTDvZNo4MhcYzLvWuB2ec7q+Qt5/LtTbJ0Rc+Kk=";
+ };
+
+ postPatch =
+ ''
+ substituteInPlace Makefile --replace "/usr/bin/g++" "g++" --replace "lib64" "lib"
+ substituteInPlace bitsandbytes/cuda_setup/main.py \
+ --replace "binary_path = package_dir / binary_name" \
+ "binary_path = Path('$out/${python.sitePackages}/${pname}')/binary_name"
+ ''
+ + lib.optionalString torch.cudaSupport ''
+ substituteInPlace bitsandbytes/cuda_setup/main.py \
+ --replace "/usr/local/cuda/lib64" "${cuda-native-redist}/lib"
+ '';
+
+ CUDA_HOME = "${cuda-native-redist}";
+
+ preBuild =
+ if torch.cudaSupport
+ then
+ with torch.cudaPackages; let
+ cudaVersion =
+ lib.concatStrings
+ (lib.splitVersion torch.cudaPackages.cudaMajorMinorVersion);
+ in "make CUDA_VERSION=${cudaVersion} cuda${cudaMajorVersion}x"
+ else "make CUDA_VERSION=CPU cpuonly";
+
+ nativeBuildInputs =
+ [setuptools]
+ ++ lib.optionals torch.cudaSupport [cuda-native-redist];
+ buildInputs = lib.optionals torch.cudaSupport [cuda-redist];
+
+ propagatedBuildInputs = [torch];
+
+ doCheck = false; # tests require CUDA and also GPU access
+ nativeCheckInputs = [pytestCheckHook einops lion-pytorch scipy];
+
+ pythonImportsCheck = ["bitsandbytes"];
+
+ meta = with lib; {
+ homepage = "https://github.com/TimDettmers/bitsandbytes";
+ description = "8-bit CUDA functions for PyTorch";
+ license = licenses.mit;
+ maintainers = with maintainers; [bcdarwin];
+ };
+ }