mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-29 10:23:29 +00:00
Merge pull request #198770 from Madouura/pr/aggr
This commit is contained in:
commit
1577208185
@ -14,6 +14,7 @@
|
||||
, numactl
|
||||
, perl
|
||||
, python3
|
||||
, python3Packages
|
||||
, rocclr
|
||||
, rocm-comgr
|
||||
, rocm-device-libs
|
||||
@ -29,13 +30,13 @@
|
||||
let
|
||||
hip = stdenv.mkDerivation rec {
|
||||
pname = "hip";
|
||||
version = "5.3.0";
|
||||
version = "5.3.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ROCm-Developer-Tools";
|
||||
repo = "HIP";
|
||||
rev = "rocm-${version}";
|
||||
hash = "sha256-UAodlVUiTU4n/EyvTIuQekTGh4izmBjKCRXOHXVKY4M=";
|
||||
hash = "sha256-kmRvrwnT0h2dBMI+H9d1vmeW3TmDBD+qW4YYhaMV2dE=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
@ -109,17 +110,17 @@ let
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "hip";
|
||||
version = "5.3.0";
|
||||
version = "5.3.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ROCm-Developer-Tools";
|
||||
repo = "hipamd";
|
||||
rev = "rocm-${version}";
|
||||
hash = "sha256-gZGZiDP/HbdmzLQkG9Jq9lyMP9hoD6UzTMiX9cUmQNA=";
|
||||
hash = "sha256-i7hT/j+V0LT6Va2XcQyyKXF1guoIyhcOHvn842wCRx4=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake python3 makeWrapper perl ];
|
||||
buildInputs = [ libxml2 numactl libglvnd libX11 ];
|
||||
buildInputs = [ libxml2 numactl libglvnd libX11 python3Packages.cppheaderparser ];
|
||||
propagatedBuildInputs = [
|
||||
clang
|
||||
llvm
|
||||
|
@ -1,12 +1,12 @@
|
||||
{ stdenv, lib, buildPackages, fetchFromGitHub, callPackage, wrapCCWith, overrideCC }:
|
||||
|
||||
let
|
||||
version = "5.3.0";
|
||||
version = "5.3.1";
|
||||
src = fetchFromGitHub {
|
||||
owner = "RadeonOpenCompute";
|
||||
repo = "llvm-project";
|
||||
rev = "rocm-${version}";
|
||||
hash = "sha256-MN7W4Gl6+a1nCozdn9gMzIXOiBPquoOP87x26boeSCA=";
|
||||
hash = "sha256-IKo7N8wWvh5PBrZ2mh1Vu5s3uUXhanqYtC4qLV/+JBs=";
|
||||
};
|
||||
in rec {
|
||||
clang = wrapCCWith rec {
|
||||
|
44
pkgs/development/libraries/clang-ocl/default.nix
Normal file
44
pkgs/development/libraries/clang-ocl/default.nix
Normal file
@ -0,0 +1,44 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, cmake
|
||||
, rocm-cmake
|
||||
, rocm-device-libs
|
||||
, clang
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "clang-ocl";
|
||||
rocmVersion = "5.3.1";
|
||||
version = rocmVersion;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "RadeonOpenCompute";
|
||||
repo = "clang-ocl";
|
||||
rev = "rocm-${rocmVersion}";
|
||||
hash = "sha256-uMSvcVJj+me2E+7FsXZ4l4hTcK6uKEegXpkHGcuist0=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
rocm-cmake
|
||||
clang
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
rocm-device-libs
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
"-DCMAKE_C_COMPILER=clang"
|
||||
"-DCMAKE_CXX_COMPILER=clang++"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "OpenCL compilation with clang compiler";
|
||||
homepage = "https://github.com/RadeonOpenCompute/clang-ocl";
|
||||
license = with licenses; [ mit ];
|
||||
maintainers = with maintainers; [ Madouura ];
|
||||
broken = rocmVersion != clang.version;
|
||||
};
|
||||
}
|
91
pkgs/development/libraries/composable_kernel/default.nix
Normal file
91
pkgs/development/libraries/composable_kernel/default.nix
Normal file
@ -0,0 +1,91 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, cmake
|
||||
, rocm-cmake
|
||||
, hip
|
||||
, openmp
|
||||
, gtest ? null
|
||||
, buildTests ? false
|
||||
, buildExamples ? false
|
||||
, gpuTargets ? null # gpuTargets = [ "gfx803" "gfx900" "gfx1030" ... ]
|
||||
}:
|
||||
|
||||
assert buildTests -> gtest != null;
|
||||
|
||||
# Several tests seem to either not compile or have a race condition
|
||||
# Undefined reference to symbol '_ZTIN7testing4TestE'
|
||||
# Try removing this next update
|
||||
assert buildTests == false;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "composable_kernel";
|
||||
version = "unstable-2022-11-02";
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
] ++ lib.optionals buildTests [
|
||||
"test"
|
||||
] ++ lib.optionals buildExamples [
|
||||
"example"
|
||||
];
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ROCmSoftwarePlatform";
|
||||
repo = "composable_kernel";
|
||||
rev = "79aa3fb1793c265c59d392e916baa851a55521c8";
|
||||
hash = "sha256-vIfMdvRYCTqrjMGSb7gQfodzLw2wf3tGoCAa5jtfbvw=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
rocm-cmake
|
||||
hip
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
openmp
|
||||
] ++ lib.optionals buildTests [
|
||||
gtest
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
"-DCMAKE_C_COMPILER=hipcc"
|
||||
"-DCMAKE_CXX_COMPILER=hipcc"
|
||||
] ++ lib.optionals (gpuTargets != null) [
|
||||
"-DGPU_TARGETS=${lib.strings.concatStringsSep ";" gpuTargets}"
|
||||
];
|
||||
|
||||
# No flags to build selectively it seems...
|
||||
postPatch = ''
|
||||
substituteInPlace test/CMakeLists.txt \
|
||||
--replace "include(googletest)" ""
|
||||
|
||||
substituteInPlace CMakeLists.txt \
|
||||
--replace "enable_testing()" ""
|
||||
'' + lib.optionalString (!buildTests) ''
|
||||
substituteInPlace CMakeLists.txt \
|
||||
--replace "add_subdirectory(test)" ""
|
||||
'' + lib.optionalString (!buildExamples) ''
|
||||
substituteInPlace CMakeLists.txt \
|
||||
--replace "add_subdirectory(example)" ""
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
mkdir -p $out/bin
|
||||
mv bin/ckProfiler $out/bin
|
||||
'' + lib.optionalString buildTests ''
|
||||
mkdir -p $test/bin
|
||||
mv bin/test_* $test/bin
|
||||
'' + lib.optionalString buildExamples ''
|
||||
mkdir -p $example/bin
|
||||
mv bin/example_* $example/bin
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Performance portable programming model for machine learning tensor operators";
|
||||
homepage = "https://github.com/ROCmSoftwarePlatform/composable_kernel";
|
||||
license = with licenses; [ mit ];
|
||||
maintainers = with maintainers; [ Madouura ];
|
||||
};
|
||||
}
|
89
pkgs/development/libraries/hipcub/default.nix
Normal file
89
pkgs/development/libraries/hipcub/default.nix
Normal file
@ -0,0 +1,89 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, cmake
|
||||
, rocm-cmake
|
||||
, rocm-runtime
|
||||
, rocm-device-libs
|
||||
, rocm-comgr
|
||||
, rocprim
|
||||
, hip
|
||||
, gtest ? null
|
||||
, gbenchmark ? null
|
||||
, buildTests ? false
|
||||
, buildBenchmarks ? false
|
||||
}:
|
||||
|
||||
assert buildTests -> gtest != null;
|
||||
assert buildBenchmarks -> gbenchmark != null;
|
||||
|
||||
# CUB can also be used as a backend instead of rocPRIM.
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "hipcub";
|
||||
rocmVersion = "5.3.1";
|
||||
version = "2.12.0-${rocmVersion}";
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
] ++ lib.optionals buildTests [
|
||||
"test"
|
||||
] ++ lib.optionals buildBenchmarks [
|
||||
"benchmark"
|
||||
];
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ROCmSoftwarePlatform";
|
||||
repo = "hipCUB";
|
||||
rev = "rocm-${rocmVersion}";
|
||||
hash = "sha256-/GMZKbMD1sZQCM2FulM9jiJQ8ByYZinn0C8d/deFh0g=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
rocm-cmake
|
||||
hip
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
rocm-runtime
|
||||
rocm-device-libs
|
||||
rocm-comgr
|
||||
rocprim
|
||||
] ++ lib.optionals buildTests [
|
||||
gtest
|
||||
] ++ lib.optionals buildBenchmarks [
|
||||
gbenchmark
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
"-DCMAKE_CXX_COMPILER=hipcc"
|
||||
"-DHIP_ROOT_DIR=${hip}"
|
||||
# Manually define CMAKE_INSTALL_<DIR>
|
||||
# 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_BENCHMARK=ON"
|
||||
];
|
||||
|
||||
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 = "Thin wrapper library on top of rocPRIM or CUB";
|
||||
homepage = "https://github.com/ROCmSoftwarePlatform/hipCUB";
|
||||
license = with licenses; [ bsd3 ];
|
||||
maintainers = with maintainers; [ Madouura ];
|
||||
broken = rocmVersion != hip.version;
|
||||
};
|
||||
}
|
132
pkgs/development/libraries/hipsparse/default.nix
Normal file
132
pkgs/development/libraries/hipsparse/default.nix
Normal file
@ -0,0 +1,132 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, cmake
|
||||
, rocm-cmake
|
||||
, rocm-runtime
|
||||
, rocm-device-libs
|
||||
, rocm-comgr
|
||||
, rocsparse
|
||||
, hip
|
||||
, gfortran
|
||||
, git
|
||||
, fetchzip ? null
|
||||
, gtest ? null
|
||||
, buildTests ? false
|
||||
}:
|
||||
|
||||
assert buildTests -> fetchzip != null;
|
||||
assert buildTests -> gtest != null;
|
||||
|
||||
# This can also use cuSPARSE as a backend instead of rocSPARSE
|
||||
let
|
||||
matrices = lib.optionalAttrs buildTests import ./deps.nix {
|
||||
inherit fetchzip;
|
||||
mirror1 = "https://sparse.tamu.edu/MM";
|
||||
mirror2 = "https://www.cise.ufl.edu/research/sparse/MM";
|
||||
};
|
||||
in stdenv.mkDerivation rec {
|
||||
pname = "hipsparse";
|
||||
rocmVersion = "5.3.1";
|
||||
version = "2.3.1-${rocmVersion}";
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
] ++ lib.optionals buildTests [
|
||||
"test"
|
||||
];
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ROCmSoftwarePlatform";
|
||||
repo = "hipSPARSE";
|
||||
rev = "rocm-${rocmVersion}";
|
||||
hash = "sha256-Phcihat774ZSAe1QetE/GSZzGlnCnvS9GwsHBHCaD4c=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
rocm-cmake
|
||||
hip
|
||||
gfortran
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
rocm-runtime
|
||||
rocm-device-libs
|
||||
rocm-comgr
|
||||
rocsparse
|
||||
git
|
||||
] ++ lib.optionals buildTests [
|
||||
gtest
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
"-DCMAKE_CXX_COMPILER=hipcc"
|
||||
# Manually define CMAKE_INSTALL_<DIR>
|
||||
# See: https://github.com/NixOS/nixpkgs/pull/197838
|
||||
"-DCMAKE_INSTALL_BINDIR=bin"
|
||||
"-DCMAKE_INSTALL_LIBDIR=lib"
|
||||
"-DCMAKE_INSTALL_INCLUDEDIR=include"
|
||||
] ++ lib.optionals buildTests [
|
||||
"-DBUILD_CLIENTS_TESTS=ON"
|
||||
];
|
||||
|
||||
# We have to manually generate the matrices
|
||||
# CMAKE_MATRICES_DIR seems to be reset in clients/tests/CMakeLists.txt
|
||||
postPatch = ''
|
||||
substituteInPlace clients/common/utility.cpp \
|
||||
--replace "#ifdef __cpp_lib_filesystem" " #if true"
|
||||
'' + lib.optionalString buildTests ''
|
||||
mkdir -p matrices
|
||||
|
||||
ln -s ${matrices.matrix-01}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-02}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-03}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-04}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-05}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-06}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-07}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-08}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-09}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-10}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-11}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-12}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-13}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-14}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-15}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-16}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-17}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-18}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-19}/*.mtx matrices
|
||||
|
||||
# Not used by the original cmake, causes an error
|
||||
rm matrices/*_b.mtx
|
||||
|
||||
echo "deps/convert.cpp -> deps/mtx2csr"
|
||||
hipcc deps/convert.cpp -O3 -o deps/mtx2csr
|
||||
|
||||
for mat in $(ls -1 matrices | cut -d "." -f 1); do
|
||||
echo "mtx2csr: $mat.mtx -> $mat.bin"
|
||||
deps/mtx2csr matrices/$mat.mtx matrices/$mat.bin
|
||||
unlink matrices/$mat.mtx
|
||||
done
|
||||
|
||||
substituteInPlace clients/tests/CMakeLists.txt \
|
||||
--replace "\''${PROJECT_BINARY_DIR}/matrices" "/build/source/matrices"
|
||||
'';
|
||||
|
||||
postInstall = lib.optionalString buildTests ''
|
||||
mkdir -p $test/bin
|
||||
mv $out/bin/hipsparse-test $test/bin
|
||||
mv /build/source/matrices $test
|
||||
rmdir $out/bin
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "ROCm SPARSE marshalling library";
|
||||
homepage = "https://github.com/ROCmSoftwarePlatform/hipSPARSE";
|
||||
license = with licenses; [ mit ];
|
||||
maintainers = with maintainers; [ Madouura ];
|
||||
broken = rocmVersion != hip.version;
|
||||
};
|
||||
}
|
177
pkgs/development/libraries/hipsparse/deps.nix
generated
Normal file
177
pkgs/development/libraries/hipsparse/deps.nix
generated
Normal file
@ -0,0 +1,177 @@
|
||||
{ fetchzip
|
||||
, mirror1
|
||||
, mirror2
|
||||
}:
|
||||
|
||||
{
|
||||
matrix-01 = fetchzip {
|
||||
sha256 = "sha256-AHur5ZIDZTFRrO2GV0ieXrffq4KUiGWiZ59pv0fUtEQ=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/SNAP/amazon0312.tar.gz"
|
||||
"${mirror2}/SNAP/amazon0312.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-02 = fetchzip {
|
||||
sha256 = "sha256-0rSxaN4lQcdaCLsvlgicG70FXUxXeERPiEmQ4MzbRdE=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/Muite/Chebyshev4.tar.gz"
|
||||
"${mirror2}/Muite/Chebyshev4.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-03 = fetchzip {
|
||||
sha256 = "sha256-hDzDWDUnHEyFedX/tMNq83ZH8uWyM4xtZYUUAD3rizo=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/FEMLAB/sme3Dc.tar.gz"
|
||||
"${mirror2}/FEMLAB/sme3Dc.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-04 = fetchzip {
|
||||
sha256 = "sha256-GmN2yOt/MoX01rKe05aTyB3ypUP4YbQGOITZ0BqPmC0=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/Williams/webbase-1M.tar.gz"
|
||||
"${mirror2}/Williams/webbase-1M.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-05 = fetchzip {
|
||||
sha256 = "sha256-gQNjfVyWzNM9RwImJGhkhahRmZz74LzDs1oijL7mI7k=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/Williams/mac_econ_fwd500.tar.gz"
|
||||
"${mirror2}/Williams/mac_econ_fwd500.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-06 = fetchzip {
|
||||
sha256 = "sha256-87cdZjntNcTuz5BtO59irhcuRbPllWSbhCEX3Td02qc=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/Williams/mc2depi.tar.gz"
|
||||
"${mirror2}/Williams/mc2depi.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-07 = fetchzip {
|
||||
sha256 = "sha256-WRamuJX3D8Tm+k0q67RjUDG3DeNAxhKiaPkk5afY5eU=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/Bova/rma10.tar.gz"
|
||||
"${mirror2}/Bova/rma10.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-08 = fetchzip {
|
||||
sha256 = "sha256-5dhkm293Mc3lzakKxHy5W5XIn4Rw+gihVh7gyrjEHXo=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/JGD_BIBD/bibd_22_8.tar.gz"
|
||||
"${mirror2}/JGD_BIBD/bibd_22_8.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-09 = fetchzip {
|
||||
sha256 = "sha256-czjLWCjXAjZCk5TGYHaEkwSAzQu3TQ3QyB6eNKR4G88=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/Hamm/scircuit.tar.gz"
|
||||
"${mirror2}/Hamm/scircuit.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-10 = fetchzip {
|
||||
sha256 = "sha256-bYuLnJViAIcIejAkh69/bsNAVIDU4wfTLtD+nmHd6FM=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/Sandia/ASIC_320k.tar.gz"
|
||||
"${mirror2}/Sandia/ASIC_320k.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-11 = fetchzip {
|
||||
sha256 = "sha256-aDwn8P1khYjo2Agbq5m9ZBInJUxf/knJNvyptt0fak0=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/GHS_psdef/bmwcra_1.tar.gz"
|
||||
"${mirror2}/GHS_psdef/bmwcra_1.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-12 = fetchzip {
|
||||
sha256 = "sha256-8OJqA/byhlAZd869TPUzZFdsOiwOoRGfKyhM+RMjXoY=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/HB/nos1.tar.gz"
|
||||
"${mirror2}/HB/nos1.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-13 = fetchzip {
|
||||
sha256 = "sha256-FS0rKqmg+uHwsM/yGfQLBdd7LH/rUrdutkNGBD/Mh1I=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/HB/nos2.tar.gz"
|
||||
"${mirror2}/HB/nos2.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-14 = fetchzip {
|
||||
sha256 = "sha256-DANnlrNJikrI7Pst9vRedtbuxepyHmCIu2yhltc4Qcs=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/HB/nos3.tar.gz"
|
||||
"${mirror2}/HB/nos3.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-15 = fetchzip {
|
||||
sha256 = "sha256-21mUgqjWGUfYgiWwSrKh9vH8Vdt3xzcefmqYNYRpxiY=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/HB/nos4.tar.gz"
|
||||
"${mirror2}/HB/nos4.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-16 = fetchzip {
|
||||
sha256 = "sha256-FOuXvGqBBFNkVS6cexmkluret54hCfCOdK+DOZllE4c=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/HB/nos5.tar.gz"
|
||||
"${mirror2}/HB/nos5.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-17 = fetchzip {
|
||||
sha256 = "sha256-+7NI1rA/qQxYPpjXKHvAaCZ+LSaAJ4xuJvMRMBEUYxg=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/HB/nos6.tar.gz"
|
||||
"${mirror2}/HB/nos6.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-18 = fetchzip {
|
||||
sha256 = "sha256-q3NxJjbwGGcFiQ9nhWfUKgZmdVwCfPmgQoqy0AqOsNc=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/HB/nos7.tar.gz"
|
||||
"${mirror2}/HB/nos7.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-19 = fetchzip {
|
||||
sha256 = "sha256-0GAN6qmVfD+tprIigzuUUUwm5KVhkN9X65wMEvFltDY=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/DNVS/shipsec1.tar.gz"
|
||||
"${mirror2}/DNVS/shipsec1.tar.gz"
|
||||
];
|
||||
};
|
||||
}
|
129
pkgs/development/libraries/miopengemm/default.nix
Normal file
129
pkgs/development/libraries/miopengemm/default.nix
Normal file
@ -0,0 +1,129 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, cmake
|
||||
, rocm-cmake
|
||||
, rocm-opencl-runtime
|
||||
, clang
|
||||
, texlive ? null
|
||||
, doxygen ? null
|
||||
, sphinx ? null
|
||||
, python3Packages ? null
|
||||
, openblas ? null
|
||||
, buildDocs ? false
|
||||
, buildTests ? false
|
||||
, buildBenchmarks ? false
|
||||
}:
|
||||
|
||||
assert buildDocs -> texlive != null;
|
||||
assert buildDocs -> doxygen != null;
|
||||
assert buildDocs -> sphinx != null;
|
||||
assert buildDocs -> python3Packages != null;
|
||||
assert buildTests -> openblas != null;
|
||||
|
||||
let
|
||||
latex = lib.optionalAttrs buildDocs (texlive.combine {
|
||||
inherit (texlive) scheme-small
|
||||
latexmk
|
||||
tex-gyre
|
||||
fncychap
|
||||
wrapfig
|
||||
capt-of
|
||||
framed
|
||||
needspace
|
||||
tabulary
|
||||
varwidth
|
||||
titlesec;
|
||||
});
|
||||
in stdenv.mkDerivation rec {
|
||||
pname = "miopengemm";
|
||||
rocmVersion = "5.3.1";
|
||||
version = rocmVersion;
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
] ++ lib.optionals buildDocs [
|
||||
"docs"
|
||||
] ++ lib.optionals buildTests [
|
||||
"test"
|
||||
] ++ lib.optionals buildBenchmarks [
|
||||
"benchmark"
|
||||
];
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ROCmSoftwarePlatform";
|
||||
repo = "MIOpenGEMM";
|
||||
rev = "rocm-${rocmVersion}";
|
||||
hash = "sha256-AiRzOMYRA/0nbQomyq4oOEwNZdkPYWRA2W6QFlctvFc=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
rocm-cmake
|
||||
clang
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
rocm-opencl-runtime
|
||||
] ++ lib.optionals buildDocs [
|
||||
latex
|
||||
doxygen
|
||||
sphinx
|
||||
python3Packages.sphinx_rtd_theme
|
||||
python3Packages.breathe
|
||||
] ++ lib.optionals buildTests [
|
||||
openblas
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
"-DCMAKE_C_COMPILER=clang"
|
||||
"-DCMAKE_CXX_COMPILER=clang++"
|
||||
# Manually define CMAKE_INSTALL_<DIR>
|
||||
# See: https://github.com/NixOS/nixpkgs/pull/197838
|
||||
"-DCMAKE_INSTALL_BINDIR=bin"
|
||||
"-DCMAKE_INSTALL_LIBDIR=lib"
|
||||
"-DCMAKE_INSTALL_INCLUDEDIR=include"
|
||||
] ++ lib.optionals buildTests [
|
||||
"-DOPENBLAS=ON"
|
||||
] ++ lib.optionals buildBenchmarks [
|
||||
"-DAPI_BENCH_MIOGEMM=ON"
|
||||
# Needs https://github.com/CNugteren/CLBlast
|
||||
# "-DAPI_BENCH_CLBLAST=ON"
|
||||
# Needs https://github.com/openai/triton
|
||||
# "-DAPI_BENCH_ISAAC=ON"
|
||||
];
|
||||
|
||||
# Unfortunately, it seems like we have to call make on these manually
|
||||
postBuild = lib.optionalString buildDocs ''
|
||||
export HOME=$(mktemp -d)
|
||||
make doc
|
||||
'' + lib.optionalString buildTests ''
|
||||
make check
|
||||
'' + lib.optionalString buildBenchmarks ''
|
||||
make examples
|
||||
'';
|
||||
|
||||
postInstall = lib.optionalString buildTests ''
|
||||
mkdir -p $test/bin
|
||||
find tests -executable -type f -exec mv {} $test/bin \;
|
||||
patchelf --set-rpath ${lib.makeLibraryPath buildInputs}:$out/lib $test/bin/*
|
||||
'' + lib.optionalString buildBenchmarks ''
|
||||
mkdir -p $benchmark/bin
|
||||
find examples -executable -type f -exec mv {} $benchmark/bin \;
|
||||
patchelf --set-rpath ${lib.makeLibraryPath buildInputs}:$out/lib $benchmark/bin/*
|
||||
'';
|
||||
|
||||
postFixup = lib.optionalString buildDocs ''
|
||||
mkdir -p $docs/share/doc/miopengemm
|
||||
mv ../doc/html $docs/share/doc/miopengemm
|
||||
mv ../doc/pdf/miopengemm.pdf $docs/share/doc/miopengemm
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "OpenCL general matrix multiplication API for ROCm";
|
||||
homepage = "https://github.com/ROCmSoftwarePlatform/MIOpenGEMM";
|
||||
license = with licenses; [ mit ];
|
||||
maintainers = with maintainers; [ Madouura ];
|
||||
broken = rocmVersion != clang.version;
|
||||
};
|
||||
}
|
84
pkgs/development/libraries/rccl/default.nix
Normal file
84
pkgs/development/libraries/rccl/default.nix
Normal file
@ -0,0 +1,84 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, cmake
|
||||
, rocm-cmake
|
||||
, rocm-runtime
|
||||
, rocm-device-libs
|
||||
, rocm-comgr
|
||||
, rocm-smi
|
||||
, hip
|
||||
, gtest
|
||||
, chrpath ? null
|
||||
, buildTests ? false
|
||||
}:
|
||||
|
||||
assert buildTests -> chrpath != null;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "rccl";
|
||||
rocmVersion = "5.3.1";
|
||||
version = "2.12.10-${rocmVersion}";
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
] ++ lib.optionals buildTests [
|
||||
"test"
|
||||
];
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ROCmSoftwarePlatform";
|
||||
repo = "rccl";
|
||||
rev = "rocm-${rocmVersion}";
|
||||
hash = "sha256-whRXGD8oINDYhFs8+hEWKWoGNqacGlyy7xi8peA8Qsk=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
rocm-cmake
|
||||
hip
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
rocm-runtime
|
||||
rocm-device-libs
|
||||
rocm-comgr
|
||||
rocm-smi
|
||||
gtest
|
||||
] ++ lib.optionals buildTests [
|
||||
chrpath
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
"-DCMAKE_C_COMPILER=hipcc"
|
||||
"-DCMAKE_CXX_COMPILER=hipcc"
|
||||
# Manually define CMAKE_INSTALL_<DIR>
|
||||
# See: https://github.com/NixOS/nixpkgs/pull/197838
|
||||
"-DCMAKE_INSTALL_BINDIR=bin"
|
||||
"-DCMAKE_INSTALL_LIBDIR=lib"
|
||||
"-DCMAKE_INSTALL_INCLUDEDIR=include"
|
||||
] ++ lib.optionals buildTests [
|
||||
"-DBUILD_TESTS=ON"
|
||||
];
|
||||
|
||||
# Replace the manually set parallel jobs to NIX_BUILD_CORES
|
||||
postPatch = ''
|
||||
substituteInPlace CMakeLists.txt \
|
||||
--replace "8 P" "$NIX_BUILD_CORES P" \
|
||||
--replace "8)" "$NIX_BUILD_CORES)"
|
||||
'';
|
||||
|
||||
postInstall = lib.optionalString buildTests ''
|
||||
mkdir -p $test/bin
|
||||
mv $out/bin/* $test/bin
|
||||
rmdir $out/bin
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "ROCm communication collectives library";
|
||||
homepage = "https://github.com/ROCmSoftwarePlatform/rccl";
|
||||
license = with licenses; [ bsd2 bsd3 ];
|
||||
maintainers = with maintainers; [ Madouura ];
|
||||
broken = rocmVersion != hip.version;
|
||||
};
|
||||
}
|
136
pkgs/development/libraries/rocblas/default.nix
Normal file
136
pkgs/development/libraries/rocblas/default.nix
Normal file
@ -0,0 +1,136 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, fetchpatch
|
||||
, cmake
|
||||
, rocm-cmake
|
||||
, rocm-runtime
|
||||
, rocm-device-libs
|
||||
, rocm-comgr
|
||||
, hip
|
||||
, python3
|
||||
, tensile ? null
|
||||
, msgpack ? null
|
||||
, libxml2 ? null
|
||||
, llvm ? null
|
||||
, python3Packages ? null
|
||||
, gtest ? null
|
||||
, gfortran ? null
|
||||
, buildTensile ? true
|
||||
, buildTests ? false
|
||||
, buildBenchmarks ? false
|
||||
, tensileLogic ? "asm_full"
|
||||
, tensileCOVersion ? "V3"
|
||||
, tensileSepArch ? true
|
||||
, tensileLazyLib ? true
|
||||
, tensileLibFormat ? "msgpack"
|
||||
, gpuTargets ? [ "all" ]
|
||||
}:
|
||||
|
||||
assert buildTensile -> tensile != null;
|
||||
assert buildTensile -> msgpack != null;
|
||||
assert buildTensile -> libxml2 != null;
|
||||
assert buildTensile -> llvm != null;
|
||||
assert buildTensile -> python3Packages != null;
|
||||
assert buildTests -> gtest != null;
|
||||
assert buildTests -> gfortran != null;
|
||||
|
||||
# Tests and benchmarks are a can of worms that I will tackle in a different PR
|
||||
# It involves completely rewriting the amd-blis derivation
|
||||
assert buildTests == false;
|
||||
assert buildBenchmarks == false;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "rocblas";
|
||||
rocmVersion = "5.3.1";
|
||||
version = "2.45.0-${rocmVersion}";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ROCmSoftwarePlatform";
|
||||
repo = "rocBLAS";
|
||||
rev = "rocm-${rocmVersion}";
|
||||
hash = "sha256-GeeICEI1dNE6D+nUUlBtUncLkPowAa5n+bsy160EtaU=";
|
||||
};
|
||||
|
||||
# We currently need this patch due to faulty toolchain includes
|
||||
# See: https://github.com/ROCmSoftwarePlatform/rocBLAS/issues/1277
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
name = "only-std_norm-from-rocblas_complex.patch";
|
||||
url = "https://github.com/ROCmSoftwarePlatform/rocBLAS/commit/44b99c6df26002139ca9ec68ee1fc8899c7b001f.patch";
|
||||
hash = "sha256-vSZkVYY951fqfOThKFqnYBasWMblS6peEJZ6sFMCk9k=";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
rocm-cmake
|
||||
hip
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
rocm-runtime
|
||||
rocm-device-libs
|
||||
rocm-comgr
|
||||
python3
|
||||
] ++ lib.optionals buildTensile [
|
||||
msgpack
|
||||
libxml2
|
||||
llvm
|
||||
python3Packages.pyyaml
|
||||
python3Packages.msgpack
|
||||
] ++ lib.optionals buildTests [
|
||||
gtest
|
||||
gfortran
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
"-DCMAKE_C_COMPILER=hipcc"
|
||||
"-DCMAKE_CXX_COMPILER=hipcc"
|
||||
"-Dpython=python3"
|
||||
"-DAMDGPU_TARGETS=${lib.strings.concatStringsSep ";" gpuTargets}"
|
||||
"-DBUILD_WITH_TENSILE=${if buildTensile then "ON" else "OFF"}"
|
||||
# Manually define CMAKE_INSTALL_<DIR>
|
||||
# See: https://github.com/NixOS/nixpkgs/pull/197838
|
||||
"-DCMAKE_INSTALL_BINDIR=bin"
|
||||
"-DCMAKE_INSTALL_LIBDIR=lib"
|
||||
"-DCMAKE_INSTALL_INCLUDEDIR=include"
|
||||
] ++ lib.optionals buildTensile [
|
||||
"-DVIRTUALENV_HOME_DIR=/build/source/tensile"
|
||||
"-DTensile_TEST_LOCAL_PATH=/build/source/tensile"
|
||||
"-DTensile_ROOT=/build/source/tensile/lib/python${python3.pythonVersion}/site-packages/Tensile"
|
||||
"-DTensile_LOGIC=${tensileLogic}"
|
||||
"-DTensile_CODE_OBJECT_VERSION=${tensileCOVersion}"
|
||||
"-DTensile_SEPARATE_ARCHITECTURES=${if tensileSepArch then "ON" else "OFF"}"
|
||||
"-DTensile_LAZY_LIBRARY_LOADING=${if tensileLazyLib then "ON" else "OFF"}"
|
||||
"-DTensile_LIBRARY_FORMAT=${tensileLibFormat}"
|
||||
] ++ lib.optionals buildTests [
|
||||
"-DBUILD_CLIENTS_TESTS=ON"
|
||||
] ++ lib.optionals buildBenchmarks [
|
||||
"-DBUILD_CLIENTS_BENCHMARKS=ON"
|
||||
];
|
||||
|
||||
# Tensile REALLY wants to write to the nix directory if we include it normally
|
||||
# We need to manually fixup the path so tensile will generate .co and .dat files
|
||||
postPatch = lib.optionalString buildTensile ''
|
||||
export PATH=${llvm}/bin:$PATH
|
||||
cp -a ${tensile} tensile
|
||||
chmod +w -R tensile
|
||||
|
||||
# Rewrap Tensile
|
||||
substituteInPlace tensile/bin/{.t*,.T*,*} \
|
||||
--replace "${tensile}" "/build/source/tensile"
|
||||
|
||||
substituteInPlace CMakeLists.txt \
|
||||
--replace "include(virtualenv)" "" \
|
||||
--replace "virtualenv_install(\''${Tensile_TEST_LOCAL_PATH})" ""
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "BLAS implementation for ROCm platform";
|
||||
homepage = "https://github.com/ROCmSoftwarePlatform/rocBLAS";
|
||||
license = with licenses; [ mit ];
|
||||
maintainers = with maintainers; [ Madouura ];
|
||||
broken = rocmVersion != hip.version;
|
||||
};
|
||||
}
|
@ -7,13 +7,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "rocclr";
|
||||
version = "5.3.0";
|
||||
version = "5.3.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ROCm-Developer-Tools";
|
||||
repo = "ROCclr";
|
||||
rev = "rocm-${version}";
|
||||
hash = "sha256-l14+l8FkiFmGuRZ9dyD/PEYH9nHVRRg1vMXMnVhg3K4=";
|
||||
hash = "sha256-dmL9krI/gHGQdOZ53+bQ7WjKcmJ+fZZP0lzF8ITLT4E=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
114
pkgs/development/libraries/rocfft/default.nix
Normal file
114
pkgs/development/libraries/rocfft/default.nix
Normal file
@ -0,0 +1,114 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, cmake
|
||||
, rocm-cmake
|
||||
, rocm-runtime
|
||||
, rocm-device-libs
|
||||
, rocm-comgr
|
||||
, hip
|
||||
, sqlite
|
||||
, python3
|
||||
, gtest ? null
|
||||
, boost ? null
|
||||
, fftw ? null
|
||||
, fftwFloat ? null
|
||||
, llvmPackages ? null
|
||||
, buildTests ? false
|
||||
, buildBenchmarks ? false
|
||||
}:
|
||||
|
||||
assert buildTests -> gtest != null;
|
||||
assert buildBenchmarks -> fftw != null;
|
||||
assert buildBenchmarks -> fftwFloat != null;
|
||||
assert (buildTests || buildBenchmarks) -> boost != null;
|
||||
assert (buildTests || buildBenchmarks) -> llvmPackages != null;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "rocfft";
|
||||
rocmVersion = "5.3.1";
|
||||
version = "1.0.18-${rocmVersion}";
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
] ++ lib.optionals buildTests [
|
||||
"test"
|
||||
] ++ lib.optionals buildBenchmarks [
|
||||
"benchmark"
|
||||
];
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ROCmSoftwarePlatform";
|
||||
repo = "rocFFT";
|
||||
rev = "rocm-${rocmVersion}";
|
||||
hash = "sha256-jb2F1fRe+YLloYJ/KtzrptUDhmdBDBtddeW/g55owKM=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
rocm-cmake
|
||||
hip
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
rocm-runtime
|
||||
rocm-device-libs
|
||||
rocm-comgr
|
||||
sqlite
|
||||
python3
|
||||
] ++ lib.optionals buildTests [
|
||||
gtest
|
||||
] ++ lib.optionals (buildTests || buildBenchmarks) [
|
||||
boost
|
||||
fftw
|
||||
fftwFloat
|
||||
llvmPackages.openmp
|
||||
];
|
||||
|
||||
propogatedBuildInputs = lib.optionals buildTests [
|
||||
fftw
|
||||
fftwFloat
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
"-DCMAKE_C_COMPILER=hipcc"
|
||||
"-DCMAKE_CXX_COMPILER=hipcc"
|
||||
"-DUSE_HIP_CLANG=ON"
|
||||
"-DSQLITE_USE_SYSTEM_PACKAGE=ON"
|
||||
# Manually define CMAKE_INSTALL_<DIR>
|
||||
# See: https://github.com/NixOS/nixpkgs/pull/197838
|
||||
"-DCMAKE_INSTALL_BINDIR=bin"
|
||||
"-DCMAKE_INSTALL_LIBDIR=lib"
|
||||
"-DCMAKE_INSTALL_INCLUDEDIR=include"
|
||||
] ++ lib.optionals buildTests [
|
||||
"-DBUILD_CLIENTS_TESTS=ON"
|
||||
] ++ lib.optionals buildBenchmarks [
|
||||
"-DBUILD_CLIENTS_RIDER=ON"
|
||||
"-DBUILD_CLIENTS_SAMPLES=ON"
|
||||
];
|
||||
|
||||
postInstall = lib.optionalString buildTests ''
|
||||
mkdir -p $test/{bin,lib/fftw}
|
||||
cp -a $out/bin/* $test/bin
|
||||
ln -s ${fftw}/lib/libfftw*.so $test/lib/fftw
|
||||
ln -s ${fftwFloat}/lib/libfftw*.so $test/lib/fftw
|
||||
rm -r $out/lib/fftw
|
||||
rm $test/bin/{rocfft_rtc_helper,*-rider} || true
|
||||
'' + lib.optionalString buildBenchmarks ''
|
||||
mkdir -p $benchmark/bin
|
||||
cp -a $out/bin/* $benchmark/bin
|
||||
rm $benchmark/bin/{rocfft_rtc_helper,*-test} || true
|
||||
'' + lib.optionalString (buildTests || buildBenchmarks ) ''
|
||||
mv $out/bin/rocfft_rtc_helper $out
|
||||
rm -r $out/bin/*
|
||||
mv $out/rocfft_rtc_helper $out/bin
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "FFT implementation for ROCm ";
|
||||
homepage = "https://github.com/ROCmSoftwarePlatform/rocFFT";
|
||||
license = with licenses; [ mit ];
|
||||
maintainers = with maintainers; [ Madouura ];
|
||||
broken = rocmVersion != hip.version;
|
||||
};
|
||||
}
|
@ -2,7 +2,7 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "rocm-comgr";
|
||||
version = "5.3.0";
|
||||
version = "5.3.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "RadeonOpenCompute";
|
||||
|
@ -8,7 +8,7 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "rocm-device-libs";
|
||||
version = "5.3.0";
|
||||
version = "5.3.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "RadeonOpenCompute";
|
||||
|
@ -22,7 +22,7 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "rocm-opencl-runtime";
|
||||
version = "5.3.0";
|
||||
version = "5.3.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "RadeonOpenCompute";
|
||||
|
@ -15,7 +15,7 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "rocm-runtime";
|
||||
version = "5.3.0";
|
||||
version = "5.3.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "RadeonOpenCompute";
|
||||
|
@ -9,7 +9,7 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "rocm-thunk";
|
||||
version = "5.3.0";
|
||||
version = "5.3.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "RadeonOpenCompute";
|
||||
|
85
pkgs/development/libraries/rocprim/default.nix
Normal file
85
pkgs/development/libraries/rocprim/default.nix
Normal file
@ -0,0 +1,85 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, cmake
|
||||
, rocm-cmake
|
||||
, rocm-runtime
|
||||
, rocm-device-libs
|
||||
, rocm-comgr
|
||||
, hip
|
||||
, gtest ? null
|
||||
, gbenchmark ? null
|
||||
, buildTests ? false
|
||||
, buildBenchmarks ? false
|
||||
}:
|
||||
|
||||
assert buildTests -> gtest != null;
|
||||
assert buildBenchmarks -> gbenchmark != null;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "rocprim";
|
||||
rocmVersion = "5.3.1";
|
||||
version = "2.11.0-${rocmVersion}";
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
] ++ lib.optionals buildTests [
|
||||
"test"
|
||||
] ++ lib.optionals buildBenchmarks [
|
||||
"benchmark"
|
||||
];
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ROCmSoftwarePlatform";
|
||||
repo = "rocPRIM";
|
||||
rev = "rocm-${rocmVersion}";
|
||||
hash = "sha256-aapvj9bwwlg7VJfnH1PVR8DulMcJh1xR6B4rPPGU6Q4=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
rocm-cmake
|
||||
hip
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
rocm-runtime
|
||||
rocm-device-libs
|
||||
rocm-comgr
|
||||
] ++ lib.optionals buildTests [
|
||||
gtest
|
||||
] ++ lib.optionals buildBenchmarks [
|
||||
gbenchmark
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
"-DCMAKE_CXX_COMPILER=hipcc"
|
||||
# Manually define CMAKE_INSTALL_<DIR>
|
||||
# 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_BENCHMARK=ON"
|
||||
];
|
||||
|
||||
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 primitives";
|
||||
homepage = "https://github.com/ROCmSoftwarePlatform/rocPRIM";
|
||||
license = with licenses; [ mit ];
|
||||
maintainers = with maintainers; [ Madouura ];
|
||||
broken = rocmVersion != hip.version;
|
||||
};
|
||||
}
|
148
pkgs/development/libraries/rocsparse/default.nix
Normal file
148
pkgs/development/libraries/rocsparse/default.nix
Normal file
@ -0,0 +1,148 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, cmake
|
||||
, rocm-cmake
|
||||
, rocm-runtime
|
||||
, rocm-device-libs
|
||||
, rocm-comgr
|
||||
, rocprim
|
||||
, hip
|
||||
, gfortran
|
||||
, git
|
||||
, fetchzip ? null
|
||||
, gtest ? null
|
||||
, boost ? null
|
||||
, python3Packages ? null
|
||||
, buildTests ? false
|
||||
, buildBenchmarks ? false # Seems to depend on tests
|
||||
}:
|
||||
|
||||
assert (buildTests || buildBenchmarks) -> fetchzip != null;
|
||||
assert (buildTests || buildBenchmarks) -> gtest != null;
|
||||
assert (buildTests || buildBenchmarks) -> boost != null;
|
||||
assert (buildTests || buildBenchmarks) -> python3Packages != null;
|
||||
|
||||
let
|
||||
matrices = lib.optionalAttrs (buildTests || buildBenchmarks) import ./deps.nix {
|
||||
inherit fetchzip;
|
||||
mirror1 = "https://sparse.tamu.edu/MM";
|
||||
mirror2 = "https://www.cise.ufl.edu/research/sparse/MM";
|
||||
};
|
||||
in stdenv.mkDerivation rec {
|
||||
pname = "rocsparse";
|
||||
rocmVersion = "5.3.1";
|
||||
version = "2.3.2-${rocmVersion}";
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
] ++ lib.optionals (buildTests || buildBenchmarks) [
|
||||
"test"
|
||||
] ++ lib.optionals buildBenchmarks [
|
||||
"benchmark"
|
||||
];
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ROCmSoftwarePlatform";
|
||||
repo = "rocSPARSE";
|
||||
rev = "rocm-${rocmVersion}";
|
||||
hash = "sha256-1069oBrIpZ4M9CAkzoQ9a5j3WlCXErirTbgTUZuT6b0=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
rocm-cmake
|
||||
hip
|
||||
gfortran
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
rocm-runtime
|
||||
rocm-device-libs
|
||||
rocm-comgr
|
||||
rocprim
|
||||
git
|
||||
] ++ lib.optionals (buildTests || buildBenchmarks) [
|
||||
gtest
|
||||
boost
|
||||
python3Packages.python
|
||||
python3Packages.pyyaml
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
"-DCMAKE_CXX_COMPILER=hipcc"
|
||||
# Manually define CMAKE_INSTALL_<DIR>
|
||||
# See: https://github.com/NixOS/nixpkgs/pull/197838
|
||||
"-DCMAKE_INSTALL_BINDIR=bin"
|
||||
"-DCMAKE_INSTALL_LIBDIR=lib"
|
||||
"-DCMAKE_INSTALL_INCLUDEDIR=include"
|
||||
] ++ lib.optionals (buildTests || buildBenchmarks) [
|
||||
"-DBUILD_CLIENTS_TESTS=ON"
|
||||
"-DCMAKE_MATRICES_DIR=/build/source/matrices"
|
||||
"-Dpython=python3"
|
||||
] ++ lib.optionals buildBenchmarks [
|
||||
"-DBUILD_CLIENTS_BENCHMARKS=ON"
|
||||
];
|
||||
|
||||
# We have to manually generate the matrices
|
||||
postPatch = lib.optionalString (buildTests || buildBenchmarks) ''
|
||||
mkdir -p matrices
|
||||
|
||||
ln -s ${matrices.matrix-01}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-02}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-03}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-04}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-05}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-06}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-07}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-08}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-09}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-10}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-11}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-12}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-13}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-14}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-15}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-16}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-17}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-18}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-19}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-20}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-21}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-22}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-23}/*.mtx matrices
|
||||
ln -s ${matrices.matrix-24}/*.mtx matrices
|
||||
|
||||
# Not used by the original cmake, causes an error
|
||||
rm matrices/*_b.mtx
|
||||
|
||||
echo "deps/convert.cpp -> deps/mtx2csr"
|
||||
hipcc deps/convert.cpp -O3 -o deps/mtx2csr
|
||||
|
||||
for mat in $(ls -1 matrices | cut -d "." -f 1); do
|
||||
echo "mtx2csr: $mat.mtx -> $mat.csr"
|
||||
deps/mtx2csr matrices/$mat.mtx matrices/$mat.csr
|
||||
unlink matrices/$mat.mtx
|
||||
done
|
||||
'';
|
||||
|
||||
postInstall = lib.optionalString buildBenchmarks ''
|
||||
mkdir -p $benchmark/bin
|
||||
cp -a $out/bin/* $benchmark/bin
|
||||
rm $benchmark/bin/rocsparse-test
|
||||
'' + lib.optionalString (buildTests || buildBenchmarks) ''
|
||||
mkdir -p $test/bin
|
||||
mv $out/bin/* $test/bin
|
||||
rm $test/bin/rocsparse-bench || true
|
||||
mv /build/source/matrices $test
|
||||
rmdir $out/bin
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "ROCm SPARSE implementation";
|
||||
homepage = "https://github.com/ROCmSoftwarePlatform/rocSPARSE";
|
||||
license = with licenses; [ mit ];
|
||||
maintainers = with maintainers; [ Madouura ];
|
||||
broken = rocmVersion != hip.version;
|
||||
};
|
||||
}
|
222
pkgs/development/libraries/rocsparse/deps.nix
generated
Normal file
222
pkgs/development/libraries/rocsparse/deps.nix
generated
Normal file
@ -0,0 +1,222 @@
|
||||
{ fetchzip
|
||||
, mirror1
|
||||
, mirror2
|
||||
}:
|
||||
|
||||
{
|
||||
matrix-01 = fetchzip {
|
||||
sha256 = "sha256-AHur5ZIDZTFRrO2GV0ieXrffq4KUiGWiZ59pv0fUtEQ=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/SNAP/amazon0312.tar.gz"
|
||||
"${mirror2}/SNAP/amazon0312.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-02 = fetchzip {
|
||||
sha256 = "sha256-0rSxaN4lQcdaCLsvlgicG70FXUxXeERPiEmQ4MzbRdE=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/Muite/Chebyshev4.tar.gz"
|
||||
"${mirror2}/Muite/Chebyshev4.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-03 = fetchzip {
|
||||
sha256 = "sha256-hDzDWDUnHEyFedX/tMNq83ZH8uWyM4xtZYUUAD3rizo=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/FEMLAB/sme3Dc.tar.gz"
|
||||
"${mirror2}/FEMLAB/sme3Dc.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-04 = fetchzip {
|
||||
sha256 = "sha256-GmN2yOt/MoX01rKe05aTyB3ypUP4YbQGOITZ0BqPmC0=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/Williams/webbase-1M.tar.gz"
|
||||
"${mirror2}/Williams/webbase-1M.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-05 = fetchzip {
|
||||
sha256 = "sha256-gQNjfVyWzNM9RwImJGhkhahRmZz74LzDs1oijL7mI7k=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/Williams/mac_econ_fwd500.tar.gz"
|
||||
"${mirror2}/Williams/mac_econ_fwd500.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-06 = fetchzip {
|
||||
sha256 = "sha256-87cdZjntNcTuz5BtO59irhcuRbPllWSbhCEX3Td02qc=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/Williams/mc2depi.tar.gz"
|
||||
"${mirror2}/Williams/mc2depi.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-07 = fetchzip {
|
||||
sha256 = "sha256-WRamuJX3D8Tm+k0q67RjUDG3DeNAxhKiaPkk5afY5eU=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/Bova/rma10.tar.gz"
|
||||
"${mirror2}/Bova/rma10.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-08 = fetchzip {
|
||||
sha256 = "sha256-5dhkm293Mc3lzakKxHy5W5XIn4Rw+gihVh7gyrjEHXo=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/JGD_BIBD/bibd_22_8.tar.gz"
|
||||
"${mirror2}/JGD_BIBD/bibd_22_8.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-09 = fetchzip {
|
||||
sha256 = "sha256-czjLWCjXAjZCk5TGYHaEkwSAzQu3TQ3QyB6eNKR4G88=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/Hamm/scircuit.tar.gz"
|
||||
"${mirror2}/Hamm/scircuit.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-10 = fetchzip {
|
||||
sha256 = "sha256-bYuLnJViAIcIejAkh69/bsNAVIDU4wfTLtD+nmHd6FM=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/Sandia/ASIC_320k.tar.gz"
|
||||
"${mirror2}/Sandia/ASIC_320k.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-11 = fetchzip {
|
||||
sha256 = "sha256-aDwn8P1khYjo2Agbq5m9ZBInJUxf/knJNvyptt0fak0=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/GHS_psdef/bmwcra_1.tar.gz"
|
||||
"${mirror2}/GHS_psdef/bmwcra_1.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-12 = fetchzip {
|
||||
sha256 = "sha256-8OJqA/byhlAZd869TPUzZFdsOiwOoRGfKyhM+RMjXoY=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/HB/nos1.tar.gz"
|
||||
"${mirror2}/HB/nos1.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-13 = fetchzip {
|
||||
sha256 = "sha256-FS0rKqmg+uHwsM/yGfQLBdd7LH/rUrdutkNGBD/Mh1I=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/HB/nos2.tar.gz"
|
||||
"${mirror2}/HB/nos2.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-14 = fetchzip {
|
||||
sha256 = "sha256-DANnlrNJikrI7Pst9vRedtbuxepyHmCIu2yhltc4Qcs=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/HB/nos3.tar.gz"
|
||||
"${mirror2}/HB/nos3.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-15 = fetchzip {
|
||||
sha256 = "sha256-21mUgqjWGUfYgiWwSrKh9vH8Vdt3xzcefmqYNYRpxiY=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/HB/nos4.tar.gz"
|
||||
"${mirror2}/HB/nos4.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-16 = fetchzip {
|
||||
sha256 = "sha256-FOuXvGqBBFNkVS6cexmkluret54hCfCOdK+DOZllE4c=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/HB/nos5.tar.gz"
|
||||
"${mirror2}/HB/nos5.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-17 = fetchzip {
|
||||
sha256 = "sha256-+7NI1rA/qQxYPpjXKHvAaCZ+LSaAJ4xuJvMRMBEUYxg=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/HB/nos6.tar.gz"
|
||||
"${mirror2}/HB/nos6.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-18 = fetchzip {
|
||||
sha256 = "sha256-q3NxJjbwGGcFiQ9nhWfUKgZmdVwCfPmgQoqy0AqOsNc=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/HB/nos7.tar.gz"
|
||||
"${mirror2}/HB/nos7.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-19 = fetchzip {
|
||||
sha256 = "sha256-0GAN6qmVfD+tprIigzuUUUwm5KVhkN9X65wMEvFltDY=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/DNVS/shipsec1.tar.gz"
|
||||
"${mirror2}/DNVS/shipsec1.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-20 = fetchzip {
|
||||
sha256 = "sha256-f28Du/Urxsiq5NkRmRO10Zz9vvGRjEchquzHzbZpZ7U=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/Cote/mplate.tar.gz"
|
||||
"${mirror2}/Cote/mplate.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-21 = fetchzip {
|
||||
sha256 = "sha256-O+Wy0NfCU1hVUOfNR1dJpvDHLBwwa301IRJDrQJnhak=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/Bai/qc2534.tar.gz"
|
||||
"${mirror2}/Bai/qc2534.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-22 = fetchzip {
|
||||
sha256 = "sha256-oxMnt8U5Cf1ILWcBdU6W9jdSMMm+U6bIVl8nm3n3+OA=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/Chevron/Chevron2.tar.gz"
|
||||
"${mirror2}/Chevron/Chevron2.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-23 = fetchzip {
|
||||
sha256 = "sha256-MFD9BxFI/3IS7yatW121BAI04fbqrXpgYDT5UKjeKcU=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/Chevron/Chevron3.tar.gz"
|
||||
"${mirror2}/Chevron/Chevron3.tar.gz"
|
||||
];
|
||||
};
|
||||
|
||||
matrix-24 = fetchzip {
|
||||
sha256 = "sha256-ikS8O51pe1nt3BNyhvfvqCbVL0+bg/da9bqGqeBDkTg=";
|
||||
|
||||
urls = [
|
||||
"${mirror1}/Chevron/Chevron4.tar.gz"
|
||||
"${mirror2}/Chevron/Chevron4.tar.gz"
|
||||
];
|
||||
};
|
||||
}
|
91
pkgs/development/libraries/rocthrust/default.nix
Normal file
91
pkgs/development/libraries/rocthrust/default.nix
Normal file
@ -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_<DIR>
|
||||
# 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;
|
||||
};
|
||||
}
|
34
pkgs/development/libraries/tensile/default.nix
Normal file
34
pkgs/development/libraries/tensile/default.nix
Normal file
@ -0,0 +1,34 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, buildPythonPackage
|
||||
, pyyaml
|
||||
, msgpack
|
||||
, pandas
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "tensile";
|
||||
rocmVersion = "5.3.1";
|
||||
version = "4.34.0-${rocmVersion}";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ROCmSoftwarePlatform";
|
||||
repo = "Tensile";
|
||||
rev = "rocm-${rocmVersion}";
|
||||
hash = "sha256-QWt/zzBrZKM8h3MTnbLX4vN3p6cCQvo67U1C2yqAQxw=";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
pyyaml
|
||||
msgpack
|
||||
pandas
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "GEMMs and tensor contractions";
|
||||
homepage = "https://github.com/ROCmSoftwarePlatform/Tensile";
|
||||
license = with licenses; [ mit ];
|
||||
maintainers = with maintainers; [ Madouura ];
|
||||
};
|
||||
}
|
@ -2,7 +2,7 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "rocm-cmake";
|
||||
version = "5.3.0";
|
||||
version = "5.3.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "RadeonOpenCompute";
|
||||
|
@ -7,7 +7,7 @@
|
||||
# compilers to determine the desired target.
|
||||
, defaultTargets ? []}:
|
||||
stdenv.mkDerivation rec {
|
||||
version = "5.3.0";
|
||||
version = "5.3.1";
|
||||
pname = "rocminfo";
|
||||
src = fetchFromGitHub {
|
||||
owner = "RadeonOpenCompute";
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "rocm-smi";
|
||||
version = "5.3.0";
|
||||
version = "5.3.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "RadeonOpenCompute";
|
||||
|
@ -14847,6 +14847,14 @@ with pkgs;
|
||||
|
||||
rgbds = callPackage ../development/compilers/rgbds { };
|
||||
|
||||
composable_kernel = callPackage ../development/libraries/composable_kernel {
|
||||
inherit (llvmPackages) openmp;
|
||||
};
|
||||
|
||||
clang-ocl = callPackage ../development/libraries/clang-ocl {
|
||||
inherit (llvmPackages_rocm) clang;
|
||||
};
|
||||
|
||||
rgxg = callPackage ../tools/text/rgxg { };
|
||||
|
||||
rocclr = callPackage ../development/libraries/rocclr { };
|
||||
@ -14855,6 +14863,12 @@ with pkgs;
|
||||
inherit (llvmPackages_rocm) clang llvm;
|
||||
};
|
||||
|
||||
hipcub = callPackage ../development/libraries/hipcub { };
|
||||
|
||||
hipsparse = callPackage ../development/libraries/hipsparse { };
|
||||
|
||||
rccl = callPackage ../development/libraries/rccl { };
|
||||
|
||||
rocm-cmake = callPackage ../development/tools/build-managers/rocm-cmake { };
|
||||
|
||||
rocm-comgr = callPackage ../development/libraries/rocm-comgr {
|
||||
@ -14883,6 +14897,24 @@ with pkgs;
|
||||
|
||||
rocmlir = callPackage ../development/libraries/rocmlir { };
|
||||
|
||||
rocprim = callPackage ../development/libraries/rocprim { };
|
||||
|
||||
rocsparse = callPackage ../development/libraries/rocsparse { };
|
||||
|
||||
rocfft = callPackage ../development/libraries/rocfft { };
|
||||
|
||||
tensile = python3Packages.callPackage ../development/libraries/tensile { };
|
||||
|
||||
rocblas = callPackage ../development/libraries/rocblas {
|
||||
inherit (llvmPackages_rocm) llvm;
|
||||
};
|
||||
|
||||
miopengemm = callPackage ../development/libraries/miopengemm {
|
||||
inherit (llvmPackages_rocm) clang;
|
||||
};
|
||||
|
||||
rocthrust = callPackage ../development/libraries/rocthrust { };
|
||||
|
||||
rtags = callPackage ../development/tools/rtags {
|
||||
inherit (darwin) apple_sdk;
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user