From ed143046b16a241a57575f6879d89771998883fb Mon Sep 17 00:00:00 2001 From: Madoura Date: Mon, 19 Dec 2022 11:46:09 -0600 Subject: [PATCH] hipfort: init at 5.4.1 --- .../development/libraries/hipfort/default.nix | 65 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 4 ++ 2 files changed, 69 insertions(+) create mode 100644 pkgs/development/libraries/hipfort/default.nix diff --git a/pkgs/development/libraries/hipfort/default.nix b/pkgs/development/libraries/hipfort/default.nix new file mode 100644 index 000000000000..7f32e001ccf4 --- /dev/null +++ b/pkgs/development/libraries/hipfort/default.nix @@ -0,0 +1,65 @@ +{ lib +, stdenv +, fetchFromGitHub +, rocmUpdateScript +, cmake +, rocm-cmake +, gfortran +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "hipfort"; + version = "5.4.1"; + + src = fetchFromGitHub { + owner = "ROCmSoftwarePlatform"; + repo = "hipfort"; + rev = "rocm-${finalAttrs.version}"; + hash = "sha256-cXzNOvWIU388AU5hzLwmIGaX5DvzIJJCvgkP2BA4jao="; + }; + + nativeBuildInputs = [ + cmake + rocm-cmake + gfortran + ]; + + cmakeFlags = [ + "-DHIPFORT_COMPILER=${gfortran}/bin/gfortran" + "-DHIPFORT_AR=${gfortran.cc}/bin/gcc-ar" + "-DHIPFORT_RANLIB=${gfortran.cc}/bin/gcc-ranlib" + # Manually define CMAKE_INSTALL_ + # See: https://github.com/NixOS/nixpkgs/pull/197838 + "-DCMAKE_INSTALL_BINDIR=bin" + "-DCMAKE_INSTALL_LIBDIR=lib" + "-DCMAKE_INSTALL_INCLUDEDIR=include" + ]; + + postPatch = '' + patchShebangs bin + + substituteInPlace bin/hipfc bin/mymcpu \ + --replace "/bin/cat" "cat" + + substituteInPlace bin/CMakeLists.txt \ + --replace "/bin/mkdir" "mkdir" \ + --replace "/bin/cp" "cp" \ + --replace "/bin/sed" "sed" \ + --replace "/bin/chmod" "chmod" \ + --replace "/bin/ln" "ln" + ''; + + passthru.updateScript = rocmUpdateScript { + name = finalAttrs.pname; + owner = finalAttrs.src.owner; + repo = finalAttrs.src.repo; + }; + + meta = with lib; { + description = "Fortran interfaces for ROCm libraries"; + homepage = "https://github.com/ROCmSoftwarePlatform/hipfort"; + license = with licenses; [ mit ]; # mitx11 + maintainers = teams.rocm.members; + broken = finalAttrs.version != stdenv.cc.version; + }; +}) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index ef98acff7d7a..bdba30f5132c 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -15323,6 +15323,10 @@ with pkgs; stdenv = rocmClangStdenv; }; + hipfort = callPackage ../development/libraries/hipfort { + stdenv = rocmClangStdenv; + }; + rccl = callPackage ../development/libraries/rccl { stdenv = rocmClangStdenv; };