nixos/local/pkgs/nvhpc/default.nix

39 lines
1.1 KiB
Nix
Raw Normal View History

2024-02-21 13:43:19 +08:00
{ stdenvNoCC, fetchurl, buildFHSEnv }:
let
versions =
{
"24.1" = "1n0x1x7ywvr3623ylvrjagayn44mbvfas3c3062p7y3asmgjx697";
"23.1" = "1xg933f4n1bw39y1x1vrjrbzpx36sbmjgvi332hfck3dbx0n982m";
};
2024-02-21 13:43:19 +08:00
releaseName = version:
let versions = builtins.splitVersion version;
in "nvhpc_20${builtins.elemAt versions 0}_${builtins.concatStringsSep "" versions}_Linux_x86_64_cuda_multi";
builder = buildFHSEnv
{
name = "builder";
targetPkgs = pkgs: with pkgs; [ gfortran coreutils flock ];
extraBwrapArgs = [ "--bind" "$out" "$out" ];
};
in let buildNvhpc = version: stdenvNoCC.mkDerivation
{
pname = "nvhpc";
inherit version;
src = fetchurl
2024-02-20 18:22:38 +08:00
{
2024-02-21 13:43:19 +08:00
url = "https://developer.download.nvidia.com/hpc-sdk/${version}/${releaseName version}.tar.gz";
sha256 = versions.${version};
2024-02-20 18:22:38 +08:00
};
2024-02-21 13:43:19 +08:00
dontFixup = true;
dontBuild = true;
installPhase =
''
export NVHPC_SILENT=true
export NVHPC_INSTALL_TYPE=single
export NVHPC_INSTALL_DIR=$out/share/nvhpc
# $out should exist before bwrap
mkdir -p $out
${builder}/bin/builder ./install
'';
};
in builtins.mapAttrs (version: _: buildNvhpc version) versions