Merge pull request #167250 from SomeoneSerge/bump-cudatoolkit

cudatoolkit: 10.2 -> 11.5
This commit is contained in:
Frederik Rietdijk 2022-04-07 13:40:43 +02:00 committed by GitHub
commit a7bbda4271
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 52 additions and 37 deletions

View File

@ -138,6 +138,7 @@ stdenv.mkDerivation rec {
'';
homepage = "http://caffe.berkeleyvision.org/";
maintainers = with maintainers; [ ];
broken = pythonSupport && (python.isPy310);
license = licenses.bsd2;
platforms = platforms.linux ++ platforms.darwin;
};

View File

@ -2,6 +2,7 @@
, opencv3, gtest, blas, gomp, llvmPackages, perl
, cudaSupport ? config.cudaSupport or false, cudatoolkit, nvidia_x11
, cudnnSupport ? cudaSupport, cudnn
, cudaCapabilities ? [ "3.7" "5.0" "6.0" "7.0" "7.5" "8.0" "8.6" ]
}:
assert cudnnSupport -> cudaSupport;
@ -44,6 +45,7 @@ stdenv.mkDerivation rec {
"-DUSE_OLDCMAKECUDA=ON" # see https://github.com/apache/incubator-mxnet/issues/10743
"-DCUDA_ARCH_NAME=All"
"-DCUDA_HOST_COMPILER=${cudatoolkit.cc}/bin/cc"
"-DMXNET_CUDA_ARCH=${lib.concatStringsSep ";" cudaCapabilities}"
] else [ "-DUSE_CUDA=OFF" ])
++ lib.optional (!cudnnSupport) "-DUSE_CUDNN=OFF";
@ -60,6 +62,12 @@ stdenv.mkDerivation rec {
rm "$out"/lib/*.a
'';
# used to mark cudaSupport in python310Packages.mxnet as broken;
# other attributes exposed for consistency
passthru = {
inherit cudaSupport cudnnSupport cudatoolkit cudnn;
};
meta = with lib; {
description = "Lightweight, Portable, Flexible Distributed/Mobile Deep Learning with Dynamic, Mutation-aware Dataflow Dep Scheduler";
homepage = "https://mxnet.incubator.apache.org/";

View File

@ -90,5 +90,5 @@ rec {
# latest cudnn, nccl, cutensor, etc! It sometimes happens that CUDA versions
# are released prior to compatibility with the rest of the ecosystem. And
# don't forget to request a review from @NixOS/cuda-maintainers!
cudatoolkit_11 = cudatoolkit_11_5;
cudatoolkit_11 = cudatoolkit_11_5; # update me to 11_6 when cudnn>=8.3.3
}

View File

@ -1,6 +1,10 @@
{ config, lib, stdenv, fetchFromGitHub, cmake, pkg-config, xorg, libGLU
, libGL, glew, ocl-icd, python3
, cudaSupport ? config.cudaSupport or false, cudatoolkit
# For visibility mostly. The whole approach to cuda architectures and capabilities
# will be reworked soon.
, cudaArch ? "compute_37"
, openclSupport ? !cudaSupport
, darwin
}:
@ -24,7 +28,7 @@ stdenv.mkDerivation rec {
glew xorg.libX11 xorg.libXrandr xorg.libXxf86vm xorg.libXcursor
xorg.libXinerama xorg.libXi
]
++ lib.optional (!stdenv.isDarwin) ocl-icd
++ lib.optional (openclSupport && !stdenv.isDarwin) ocl-icd
++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [OpenCL Cocoa CoreVideo IOKit AppKit AGL ])
++ lib.optional cudaSupport cudatoolkit;
@ -37,8 +41,10 @@ stdenv.mkDerivation rec {
"-DGLEW_INCLUDE_DIR=${glew.dev}/include"
"-DGLEW_LIBRARY=${glew.dev}/lib"
] ++ lib.optionals cudaSupport [
"-DOSD_CUDA_NVCC_FLAGS=--gpu-architecture=compute_30"
"-DOSD_CUDA_NVCC_FLAGS=--gpu-architecture=${cudaArch}"
"-DCUDA_HOST_COMPILER=${cudatoolkit.cc}/bin/cc"
] ++ lib.optionals (!openclSupport) [
"-DNO_OPENCL=1"
];
postInstall = "rm $out/lib/*.a";
@ -46,6 +52,7 @@ stdenv.mkDerivation rec {
meta = {
description = "An Open-Source subdivision surface library";
homepage = "http://graphics.pixar.com/opensubdiv";
broken = openclSupport && cudaSupport;
platforms = lib.platforms.unix;
maintainers = [ lib.maintainers.eelco ];
license = lib.licenses.asl20;

View File

@ -1,6 +1,6 @@
{ lib, buildPythonPackage, fetchFromGitHub, isPy3k
{ config, lib, buildPythonPackage, fetchFromGitHub, isPy3k
, filelock, protobuf, numpy, pytestCheckHook, mock, typing-extensions
, cupy, cudaSupport ? false
, cupy, cudaSupport ? config.cudaSupport or false
}:
buildPythonPackage rec {
@ -39,6 +39,8 @@ buildPythonPackage rec {
meta = with lib; {
description = "A flexible framework of neural networks for deep learning";
homepage = "https://chainer.org/";
# Un-break me when updating chainer next time!
broken = cudaSupport && (lib.versionAtLeast cupy.version "8.0.0");
license = licenses.mit;
maintainers = with maintainers; [ hyphon81 ];
};

View File

@ -6,10 +6,11 @@
, graphviz
, python
, isPy3k
, isPy310
}:
buildPythonPackage {
inherit (pkgs.mxnet) pname version src meta;
inherit (pkgs.mxnet) pname version src;
buildInputs = [ pkgs.mxnet ];
propagatedBuildInputs = [ requests numpy graphviz ];
@ -32,4 +33,7 @@ buildPythonPackage {
ln -s ${pkgs.mxnet}/lib/libmxnet.so $out/${python.sitePackages}/mxnet
'';
meta = pkgs.mxnet.meta // {
broken = (pkgs.mxnet.broken or false) || (isPy310 && pkgs.mxnet.cudaSupport);
};
}

View File

@ -1,6 +1,7 @@
{
lib,
stdenv,
fetchpatch,
fetchFromGitHub,
opencl-headers,
cmake,
@ -31,6 +32,21 @@ stdenv.mkDerivation rec {
fetchSubmodules = true;
};
patches = [
# global context library is separated from libethash
./add-global-context.patch
# CUDA 11 no longer support SM30
(fetchpatch {
url = "https://github.com/ethereum-mining/ethminer/commit/dae359dff28f376d4ce7ddfbd651dcd34d6dad8f.patch";
hash = "sha256-CJGKc0rXOcKDX1u5VBzc8gyBi1Me9CNATfQzKViqtAA=";
})
];
postPatch = ''
sed -i 's/_lib_static//' libpoolprotocols/CMakeLists.txt
'';
# NOTE: dbus is broken
cmakeFlags = [
"-DHUNTER_ENABLED=OFF"
@ -64,15 +80,6 @@ stdenv.mkDerivation rec {
cudatoolkit
];
patches = [
# global context library is separated from libethash
./add-global-context.patch
];
preConfigure = ''
sed -i 's/_lib_static//' libpoolprotocols/CMakeLists.txt
'';
postInstall = ''
wrapProgram $out/bin/ethminer --prefix LD_LIBRARY_PATH : /run/opengl-driver/lib
'';

View File

@ -33,6 +33,7 @@ gccStdenv.mkDerivation rec {
meta = with lib; {
description = "TrueCrack is a brute-force password cracker for TrueCrypt volumes. It works on Linux and it is optimized for Nvidia Cuda technology.";
homepage = "https://gitlab.com/kalilinux/packages/truecrack";
broken = cudaSupport;
license = licenses.gpl3Plus;
platforms = platforms.unix;
maintainers = with maintainers; [ ethancedwards8 ];

View File

@ -4625,7 +4625,7 @@ with pkgs;
cudatoolkit_11_5
cudatoolkit_11_6;
cudatoolkit = cudatoolkit_10;
cudatoolkit = cudatoolkit_11;
cudnnPackages = callPackages ../development/libraries/science/math/cudnn { };
inherit (cudnnPackages)
@ -4648,7 +4648,7 @@ with pkgs;
cudnn_8_3_cudatoolkit_11;
# Make sure to keep this in sync with the `cudatoolkit` version!
cudnn = cudnn_8_3_cudatoolkit_10;
cudnn = cudnn_8_3_cudatoolkit_11;
cutensorPackages = callPackages ../development/libraries/science/math/cutensor { };
inherit (cutensorPackages)
@ -4662,7 +4662,7 @@ with pkgs;
cutensor_cudatoolkit_11_3
cutensor_cudatoolkit_11_4;
cutensor = cutensor_cudatoolkit_10;
cutensor = cutensor_cudatoolkit_11;
curie = callPackage ../data/fonts/curie { };
@ -26398,7 +26398,10 @@ with pkgs;
gpsprune = callPackage ../applications/misc/gpsprune { };
gpu-screen-recorder = callPackage ../applications/video/gpu-screen-recorder { };
gpu-screen-recorder = callPackage ../applications/video/gpu-screen-recorder {
# rm me as soon as this package gains the support for cuda 11
cudatoolkit = cudatoolkit_10;
};
gpu-screen-recorder-gtk = callPackage ../applications/video/gpu-screen-recorder/gpu-screen-recorder-gtk.nix { };

View File

@ -8383,24 +8383,6 @@ in {
pytorch = callPackage ../development/python-modules/pytorch {
cudaSupport = pkgs.config.cudaSupport or false;
# TODO: next time pytorch is updated (to 1.11.0, currently in staging as of
# 2022-03-31), make the following changes:
# -> cudatoolk_11
cudatoolkit = pkgs.cudatoolkit_10;
# -> cudnn_8_3_cudatoolkit_11
cudnn = pkgs.cudnn_8_1_cudatoolkit_10;
# -> cutensor_cudatoolkit_11 (cutensor is a new dependency in v1.11.0)
# cutensor = pkgs.cutensor_cudatoolkit_11;
# -> setting a custom magma should be unnecessary with v1.11.0
magma = pkgs.magma.override { cudatoolkit = pkgs.cudatoolkit_10; };
# -> nccl_cudatoolkit_11
nccl = pkgs.nccl.override { cudatoolkit = pkgs.cudatoolkit_10; };
};
pytorch-bin = callPackage ../development/python-modules/pytorch/bin.nix { };