From 3bd51e8c588c74dab6257902cb9dab188d00e34b Mon Sep 17 00:00:00 2001 From: Madoura Date: Tue, 25 Oct 2022 05:01:11 -0500 Subject: [PATCH] rocthrust: init at 2.16.0-5.3.1 --- .../libraries/rocthrust/default.nix | 91 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 2 files changed, 93 insertions(+) create mode 100644 pkgs/development/libraries/rocthrust/default.nix diff --git a/pkgs/development/libraries/rocthrust/default.nix b/pkgs/development/libraries/rocthrust/default.nix new file mode 100644 index 0000000000000..99e5827917693 --- /dev/null +++ b/pkgs/development/libraries/rocthrust/default.nix @@ -0,0 +1,91 @@ +{ lib +, stdenv +, fetchFromGitHub +, cmake +, rocm-cmake +, rocm-runtime +, rocm-device-libs +, rocm-comgr +, rocprim +, hip +, gtest ? null +, buildTests ? false +, buildBenchmarks ? false +}: + +assert buildTests -> gtest != null; + +# Doesn't seem to work, thousands of errors compiling with no clear fix +# Is this an upstream issue? We don't seem to be missing dependencies +assert buildTests == false; +assert buildBenchmarks == false; + +stdenv.mkDerivation rec { + pname = "rocthrust"; + rocmVersion = "5.3.1"; + version = "2.16.0-${rocmVersion}"; + + # Comment out these outputs until tests/benchmarks are fixed (upstream?) + # outputs = [ + # "out" + # ] ++ lib.optionals buildTests [ + # "test" + # ] ++ lib.optionals buildBenchmarks [ + # "benchmark" + # ]; + + src = fetchFromGitHub { + owner = "ROCmSoftwarePlatform"; + repo = "rocThrust"; + rev = "rocm-${rocmVersion}"; + hash = "sha256-cT0VyEVz86xR6qubAY2ncTxtCRTwXrNTWcFyf3mV+y0="; + }; + + nativeBuildInputs = [ + cmake + rocm-cmake + rocprim + hip + ]; + + buildInputs = [ + rocm-runtime + rocm-device-libs + rocm-comgr + ] ++ lib.optionals buildTests [ + gtest + ]; + + cmakeFlags = [ + "-DCMAKE_CXX_COMPILER=hipcc" + "-DHIP_ROOT_DIR=${hip}" + # Manually define CMAKE_INSTALL_ + # See: https://github.com/NixOS/nixpkgs/pull/197838 + "-DCMAKE_INSTALL_BINDIR=bin" + "-DCMAKE_INSTALL_LIBDIR=lib" + "-DCMAKE_INSTALL_INCLUDEDIR=include" + ] ++ lib.optionals buildTests [ + "-DBUILD_TEST=ON" + ] ++ lib.optionals buildBenchmarks [ + "-DBUILD_BENCHMARKS=ON" + ]; + + # Comment out these outputs until tests/benchmarks are fixed (upstream?) + # postInstall = lib.optionalString buildTests '' + # mkdir -p $test/bin + # mv $out/bin/test_* $test/bin + # '' + lib.optionalString buildBenchmarks '' + # mkdir -p $benchmark/bin + # mv $out/bin/benchmark_* $benchmark/bin + # '' + lib.optionalString (buildTests || buildBenchmarks) '' + # rmdir $out/bin + # ''; + + meta = with lib; { + description = "ROCm parallel algorithm library"; + homepage = "https://github.com/ROCmSoftwarePlatform/rocThrust"; + license = with licenses; [ asl20 ]; + maintainers = with maintainers; [ Madouura ]; + broken = rocmVersion != hip.version; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 7e5ed41963f27..5d1f69e757eb6 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -14859,6 +14859,8 @@ with pkgs; rocminfo = callPackage ../development/tools/rocminfo { }; + rocthrust = callPackage ../development/libraries/rocthrust { }; + rtags = callPackage ../development/tools/rtags { inherit (darwin) apple_sdk; };