diff options
author | Someone Serge <sergei.kozlukov@aalto.fi> | 2023-11-20 15:59:47 +0000 |
---|---|---|
committer | Someone Serge <sergei.kozlukov@aalto.fi> | 2023-11-21 13:35:05 +0000 |
commit | 395b7cc35b0f43d03a64190423b13f623304df81 (patch) | |
tree | d06c704ca0e44de672181f1550c7dea6ff618ab2 /pkgs/development/libraries/science/math/magma | |
parent | 98405dd2bd8c647c1ee43c1350352609b924359b (diff) |
python311Packages.torch: choose magma at the expression level
...instead of at the callPackage site. Addresses https://github.com/NixOS/nixpkgs/issues/268736
Diffstat (limited to 'pkgs/development/libraries/science/math/magma')
-rw-r--r-- | pkgs/development/libraries/science/math/magma/generic.nix | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/pkgs/development/libraries/science/math/magma/generic.nix b/pkgs/development/libraries/science/math/magma/generic.nix index 6b8588207dc33..7052b684da936 100644 --- a/pkgs/development/libraries/science/math/magma/generic.nix +++ b/pkgs/development/libraries/science/math/magma/generic.nix @@ -8,12 +8,7 @@ { blas , cmake , cudaPackages - # FIXME: cuda being unfree means ofborg won't eval "magma". - # respecting config.cudaSupport -> false by default - # -> ofborg eval -> throws "no GPU targets specified". - # Probably should delete everything but "magma-cuda" and "magma-hip" - # from all-packages.nix -, cudaSupport ? true +, cudaSupport ? config.cudaSupport , fetchurl , gfortran , cudaCapabilities ? cudaPackages.cudaFlags.cudaCapabilities @@ -25,7 +20,9 @@ , magmaRelease , ninja , config -, rocmSupport ? config.rocmSupport + # At least one back-end has to be enabled, + # and we can't default to CUDA since it's unfree +, rocmSupport ? !cudaSupport , static ? false , stdenv , symlinkJoin @@ -133,6 +130,8 @@ stdenv.mkDerivation { cmakeFlags = [ "-DGPU_TARGET=${gpuTargetString}" + (lib.cmakeBool "MAGMA_ENABLE_CUDA" cudaSupport) + (lib.cmakeBool "MAGMA_ENABLE_HIP" rocmSupport) ] ++ lists.optionals static [ "-DBUILD_SHARED_LIBS=OFF" ] ++ lists.optionals cudaSupport [ @@ -140,11 +139,9 @@ stdenv.mkDerivation { "-DMIN_ARCH=${minArch}" # Disarms magma's asserts "-DCMAKE_C_COMPILER=${backendStdenv.cc}/bin/cc" "-DCMAKE_CXX_COMPILER=${backendStdenv.cc}/bin/c++" - "-DMAGMA_ENABLE_CUDA=ON" ] ++ lists.optionals rocmSupport [ "-DCMAKE_C_COMPILER=${rocmPackages.clr}/bin/hipcc" "-DCMAKE_CXX_COMPILER=${rocmPackages.clr}/bin/hipcc" - "-DMAGMA_ENABLE_HIP=ON" ]; buildFlags = [ @@ -155,7 +152,7 @@ stdenv.mkDerivation { doCheck = false; passthru = { - inherit cudaPackages cudaSupport; + inherit cudaPackages cudaSupport rocmSupport gpuTargets; }; meta = with lib; { @@ -164,7 +161,11 @@ stdenv.mkDerivation { homepage = "http://icl.cs.utk.edu/magma/index.html"; platforms = platforms.unix; maintainers = with maintainers; [ connorbaker ]; - # CUDA and ROCm are mutually exclusive - broken = cudaSupport && rocmSupport || cudaSupport && strings.versionOlder cudaVersion "9"; + + # Cf. https://bitbucket.org/icl/magma/src/fcfe5aa61c1a4c664b36a73ebabbdbab82765e9f/CMakeLists.txt#lines-20 + broken = + !(cudaSupport || rocmSupport) # At least one back-end enabled + || (cudaSupport && rocmSupport) # Mutually exclusive + || (cudaSupport && strings.versionOlder cudaVersion "9"); }; } |