diff --git a/pkgs/applications/science/math/caffe/default.nix b/pkgs/applications/science/math/caffe/default.nix index 74b89ed98c55..db2e74f24523 100644 --- a/pkgs/applications/science/math/caffe/default.nix +++ b/pkgs/applications/science/math/caffe/default.nix @@ -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; }; diff --git a/pkgs/applications/science/math/mxnet/default.nix b/pkgs/applications/science/math/mxnet/default.nix index c9ffb8ed5cb3..8e5e1ebd7e80 100644 --- a/pkgs/applications/science/math/mxnet/default.nix +++ b/pkgs/applications/science/math/mxnet/default.nix @@ -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/"; diff --git a/pkgs/development/compilers/cudatoolkit/default.nix b/pkgs/development/compilers/cudatoolkit/default.nix index 4fa99f80c8e3..d7fa6ee59f0a 100644 --- a/pkgs/development/compilers/cudatoolkit/default.nix +++ b/pkgs/development/compilers/cudatoolkit/default.nix @@ -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 } diff --git a/pkgs/development/libraries/opensubdiv/default.nix b/pkgs/development/libraries/opensubdiv/default.nix index 83eb77b603c5..026465c97ae8 100644 --- a/pkgs/development/libraries/opensubdiv/default.nix +++ b/pkgs/development/libraries/opensubdiv/default.nix @@ -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; diff --git a/pkgs/development/python-modules/chainer/default.nix b/pkgs/development/python-modules/chainer/default.nix index b7dbfca70e8a..1b40d506abc1 100644 --- a/pkgs/development/python-modules/chainer/default.nix +++ b/pkgs/development/python-modules/chainer/default.nix @@ -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 ]; }; diff --git a/pkgs/development/python-modules/mxnet/default.nix b/pkgs/development/python-modules/mxnet/default.nix index 47f4d80ad927..a9e778bdd8c6 100644 --- a/pkgs/development/python-modules/mxnet/default.nix +++ b/pkgs/development/python-modules/mxnet/default.nix @@ -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); + }; } diff --git a/pkgs/tools/misc/ethminer/default.nix b/pkgs/tools/misc/ethminer/default.nix index ce68e9f82098..32d1c5500b80 100644 --- a/pkgs/tools/misc/ethminer/default.nix +++ b/pkgs/tools/misc/ethminer/default.nix @@ -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 ''; diff --git a/pkgs/tools/security/truecrack/default.nix b/pkgs/tools/security/truecrack/default.nix index cf64b234c66f..40d0ba213fb9 100644 --- a/pkgs/tools/security/truecrack/default.nix +++ b/pkgs/tools/security/truecrack/default.nix @@ -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 ]; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 93670a15f35a..5677de306b10 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -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 { }; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index c4e8713119fd..9730bfe34544 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -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 { };