c0682d3b69
There have not been updates avaialble for this package for some time. I'm assuming it makes sense to drop it.
527 lines
12 KiB
Nix
527 lines
12 KiB
Nix
{ gcc12Stdenv # FIXME: Try removing this with a new ROCm release https://github.com/NixOS/nixpkgs/issues/271943
|
|
, callPackage
|
|
, recurseIntoAttrs
|
|
, symlinkJoin
|
|
, fetchFromGitHub
|
|
, cudaPackages
|
|
, python3Packages
|
|
, elfutils
|
|
, boost179
|
|
, opencv
|
|
, ffmpeg_4
|
|
, libjpeg_turbo
|
|
, rapidjson-unstable
|
|
}:
|
|
|
|
let
|
|
rocmUpdateScript = callPackage ./update.nix { };
|
|
in rec {
|
|
## ROCm ##
|
|
llvm = recurseIntoAttrs (callPackage ./llvm/default.nix { inherit rocmUpdateScript rocm-device-libs rocm-runtime rocm-thunk clr; });
|
|
|
|
rocm-core = callPackage ./rocm-core {
|
|
inherit rocmUpdateScript;
|
|
stdenv = llvm.rocmClangStdenv;
|
|
};
|
|
|
|
rocm-cmake = callPackage ./rocm-cmake {
|
|
inherit rocmUpdateScript;
|
|
stdenv = llvm.rocmClangStdenv;
|
|
};
|
|
|
|
rocm-thunk = callPackage ./rocm-thunk {
|
|
inherit rocmUpdateScript;
|
|
stdenv = llvm.rocmClangStdenv;
|
|
};
|
|
|
|
rocm-smi = python3Packages.callPackage ./rocm-smi {
|
|
inherit rocmUpdateScript;
|
|
stdenv = llvm.rocmClangStdenv;
|
|
};
|
|
|
|
# Eventually will be in the LLVM repo
|
|
rocm-device-libs = callPackage ./rocm-device-libs {
|
|
inherit rocmUpdateScript rocm-cmake;
|
|
stdenv = llvm.rocmClangStdenv;
|
|
};
|
|
|
|
rocm-runtime = callPackage ./rocm-runtime {
|
|
inherit rocmUpdateScript rocm-device-libs rocm-thunk;
|
|
stdenv = llvm.rocmClangStdenv;
|
|
};
|
|
|
|
# Eventually will be in the LLVM repo
|
|
rocm-comgr = callPackage ./rocm-comgr {
|
|
inherit rocmUpdateScript rocm-cmake rocm-device-libs;
|
|
stdenv = llvm.rocmClangStdenv;
|
|
};
|
|
|
|
rocminfo = callPackage ./rocminfo {
|
|
inherit rocmUpdateScript rocm-cmake rocm-runtime;
|
|
stdenv = llvm.rocmClangStdenv;
|
|
};
|
|
|
|
clang-ocl = callPackage ./clang-ocl {
|
|
inherit rocmUpdateScript rocm-cmake rocm-device-libs;
|
|
stdenv = llvm.rocmClangStdenv;
|
|
};
|
|
|
|
# Unfree
|
|
hsa-amd-aqlprofile-bin = callPackage ./hsa-amd-aqlprofile-bin {
|
|
stdenv = llvm.rocmClangStdenv;
|
|
};
|
|
|
|
# Broken, too many errors
|
|
rdc = callPackage ./rdc {
|
|
inherit rocmUpdateScript rocm-smi rocm-runtime;
|
|
stdenv = gcc12Stdenv;
|
|
# stdenv = llvm.rocmClangStdenv;
|
|
};
|
|
|
|
rocm-docs-core = python3Packages.callPackage ./rocm-docs-core { stdenv = gcc12Stdenv; };
|
|
|
|
hip-common = callPackage ./hip-common {
|
|
inherit rocmUpdateScript;
|
|
stdenv = llvm.rocmClangStdenv;
|
|
};
|
|
|
|
# Eventually will be in the LLVM repo
|
|
hipcc = callPackage ./hipcc {
|
|
inherit rocmUpdateScript;
|
|
stdenv = llvm.rocmClangStdenv;
|
|
};
|
|
|
|
# Replaces hip, opencl-runtime, and rocclr
|
|
clr = callPackage ./clr {
|
|
inherit rocmUpdateScript hip-common hipcc rocm-device-libs rocm-comgr rocm-runtime roctracer rocminfo rocm-smi;
|
|
inherit (llvm) clang;
|
|
stdenv = llvm.rocmClangStdenv;
|
|
};
|
|
|
|
hipify = callPackage ./hipify {
|
|
inherit rocmUpdateScript;
|
|
inherit (llvm) clang;
|
|
stdenv = llvm.rocmClangStdenv;
|
|
};
|
|
|
|
# Needs GCC
|
|
rocprofiler = callPackage ./rocprofiler {
|
|
inherit rocmUpdateScript clr rocm-core rocm-thunk rocm-device-libs roctracer rocdbgapi rocm-smi hsa-amd-aqlprofile-bin;
|
|
inherit (llvm) clang;
|
|
stdenv = gcc12Stdenv;
|
|
};
|
|
|
|
# Needs GCC
|
|
roctracer = callPackage ./roctracer {
|
|
inherit rocmUpdateScript rocm-device-libs rocm-runtime clr;
|
|
stdenv = gcc12Stdenv;
|
|
};
|
|
|
|
# Needs GCC
|
|
rocgdb = callPackage ./rocgdb {
|
|
inherit rocmUpdateScript;
|
|
elfutils = elfutils.override { enableDebuginfod = true; };
|
|
stdenv = gcc12Stdenv;
|
|
};
|
|
|
|
rocdbgapi = callPackage ./rocdbgapi {
|
|
inherit rocmUpdateScript rocm-cmake rocm-comgr rocm-runtime;
|
|
stdenv = llvm.rocmClangStdenv;
|
|
};
|
|
|
|
rocr-debug-agent = callPackage ./rocr-debug-agent {
|
|
inherit rocmUpdateScript clr rocdbgapi;
|
|
stdenv = llvm.rocmClangStdenv;
|
|
};
|
|
|
|
rocprim = callPackage ./rocprim {
|
|
inherit rocmUpdateScript rocm-cmake clr;
|
|
stdenv = llvm.rocmClangStdenv;
|
|
};
|
|
|
|
rocsparse = callPackage ./rocsparse {
|
|
inherit rocmUpdateScript rocm-cmake rocprim clr;
|
|
stdenv = llvm.rocmClangStdenv;
|
|
};
|
|
|
|
rocthrust = callPackage ./rocthrust {
|
|
inherit rocmUpdateScript rocm-cmake rocprim clr;
|
|
stdenv = llvm.rocmClangStdenv;
|
|
};
|
|
|
|
rocrand = callPackage ./rocrand {
|
|
inherit rocmUpdateScript rocm-cmake clr;
|
|
stdenv = llvm.rocmClangStdenv;
|
|
};
|
|
|
|
hiprand = rocrand; # rocrand includes hiprand
|
|
|
|
rocfft = callPackage ./rocfft {
|
|
inherit rocmUpdateScript rocm-cmake rocrand rocfft clr;
|
|
inherit (llvm) openmp;
|
|
stdenv = llvm.rocmClangStdenv;
|
|
};
|
|
|
|
rccl = callPackage ./rccl {
|
|
inherit rocmUpdateScript rocm-cmake rocm-smi clr hipify;
|
|
stdenv = llvm.rocmClangStdenv;
|
|
};
|
|
|
|
hipcub = callPackage ./hipcub {
|
|
inherit rocmUpdateScript rocm-cmake rocprim clr;
|
|
stdenv = llvm.rocmClangStdenv;
|
|
};
|
|
|
|
hipsparse = callPackage ./hipsparse {
|
|
inherit rocmUpdateScript rocm-cmake rocsparse clr;
|
|
inherit (llvm) openmp;
|
|
stdenv = llvm.rocmClangStdenv;
|
|
};
|
|
|
|
hipfort = callPackage ./hipfort {
|
|
inherit rocmUpdateScript rocm-cmake;
|
|
stdenv = llvm.rocmClangStdenv;
|
|
};
|
|
|
|
hipfft = callPackage ./hipfft {
|
|
inherit rocmUpdateScript rocm-cmake rocfft clr;
|
|
inherit (llvm) openmp;
|
|
stdenv = llvm.rocmClangStdenv;
|
|
};
|
|
|
|
tensile = python3Packages.callPackage ./tensile {
|
|
inherit rocmUpdateScript rocminfo;
|
|
stdenv = llvm.rocmClangStdenv;
|
|
};
|
|
|
|
rocblas = callPackage ./rocblas {
|
|
inherit rocblas rocmUpdateScript rocm-cmake clr tensile;
|
|
inherit (llvm) openmp;
|
|
stdenv = llvm.rocmClangStdenv;
|
|
};
|
|
|
|
rocsolver = callPackage ./rocsolver {
|
|
inherit rocmUpdateScript rocm-cmake rocblas rocsparse clr;
|
|
stdenv = llvm.rocmClangStdenv;
|
|
};
|
|
|
|
rocwmma = callPackage ./rocwmma {
|
|
inherit rocmUpdateScript rocm-cmake rocm-smi rocblas clr;
|
|
inherit (llvm) openmp;
|
|
stdenv = llvm.rocmClangStdenv;
|
|
};
|
|
|
|
rocalution = callPackage ./rocalution {
|
|
inherit rocmUpdateScript rocm-cmake rocprim rocsparse rocrand rocblas clr;
|
|
inherit (llvm) openmp;
|
|
stdenv = llvm.rocmClangStdenv;
|
|
};
|
|
|
|
rocmlir = callPackage ./rocmlir {
|
|
inherit rocmUpdateScript rocm-cmake clr;
|
|
stdenv = llvm.rocmClangStdenv;
|
|
};
|
|
|
|
rocmlir-rock = rocmlir.override {
|
|
buildRockCompiler = true;
|
|
};
|
|
|
|
hipsolver = callPackage ./hipsolver {
|
|
inherit rocmUpdateScript rocm-cmake rocblas rocsolver clr;
|
|
stdenv = llvm.rocmClangStdenv;
|
|
};
|
|
|
|
hipblas = callPackage ./hipblas {
|
|
inherit rocmUpdateScript rocm-cmake rocblas rocsolver clr;
|
|
stdenv = llvm.rocmClangStdenv;
|
|
};
|
|
|
|
# hipBlasLt - Very broken with Tensile at the moment, only supports GFX9
|
|
# hipTensor - Only supports GFX9
|
|
|
|
miopengemm = throw "'miopengemm' has been deprecated"; # Added 2024-2-10;
|
|
|
|
composable_kernel = callPackage ./composable_kernel {
|
|
inherit rocmUpdateScript rocm-cmake clr;
|
|
inherit (llvm) openmp clang-tools-extra;
|
|
stdenv = llvm.rocmClangStdenv;
|
|
};
|
|
|
|
half = callPackage ./half {
|
|
inherit rocmUpdateScript rocm-cmake;
|
|
stdenv = llvm.rocmClangStdenv;
|
|
};
|
|
|
|
miopen = callPackage ./miopen {
|
|
inherit rocmUpdateScript rocm-cmake rocblas clang-ocl composable_kernel rocm-comgr clr rocm-docs-core half;
|
|
inherit (llvm) clang-tools-extra;
|
|
stdenv = llvm.rocmClangStdenv;
|
|
rocmlir = rocmlir-rock;
|
|
boost = boost179.override { enableStatic = true; };
|
|
};
|
|
|
|
miopen-hip = miopen.override {
|
|
useOpenCL = false;
|
|
};
|
|
|
|
miopen-opencl = miopen.override {
|
|
useOpenCL = true;
|
|
};
|
|
|
|
migraphx = callPackage ./migraphx {
|
|
inherit rocmUpdateScript rocm-cmake rocblas composable_kernel miopen clr half rocm-device-libs;
|
|
inherit (llvm) openmp clang-tools-extra;
|
|
stdenv = llvm.rocmClangStdenv;
|
|
rocmlir = rocmlir-rock;
|
|
};
|
|
|
|
rpp = callPackage ./rpp {
|
|
inherit rocmUpdateScript rocm-cmake rocm-docs-core clr half;
|
|
inherit (llvm) openmp;
|
|
stdenv = llvm.rocmClangStdenv;
|
|
};
|
|
|
|
rpp-hip = rpp.override {
|
|
useOpenCL = false;
|
|
useCPU = false;
|
|
};
|
|
|
|
rpp-opencl = rpp.override {
|
|
useOpenCL = true;
|
|
useCPU = false;
|
|
};
|
|
|
|
rpp-cpu = rpp.override {
|
|
useOpenCL = false;
|
|
useCPU = true;
|
|
};
|
|
|
|
mivisionx = callPackage ./mivisionx {
|
|
inherit rocmUpdateScript rocm-cmake rocm-device-libs clr rpp rocblas miopen migraphx half rocm-docs-core;
|
|
inherit (llvm) clang openmp;
|
|
opencv = opencv.override { enablePython = true; };
|
|
ffmpeg = ffmpeg_4;
|
|
rapidjson = rapidjson-unstable;
|
|
stdenv = llvm.rocmClangStdenv;
|
|
|
|
# Unfortunately, rocAL needs a custom libjpeg-turbo until further notice
|
|
# See: https://github.com/ROCm/MIVisionX/issues/1051
|
|
libjpeg_turbo = libjpeg_turbo.overrideAttrs {
|
|
version = "2.0.6.1";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "rrawther";
|
|
repo = "libjpeg-turbo";
|
|
rev = "640d7ee1917fcd3b6a5271aa6cf4576bccc7c5fb";
|
|
sha256 = "sha256-T52whJ7nZi8jerJaZtYInC2YDN0QM+9tUDqiNr6IsNY=";
|
|
};
|
|
};
|
|
};
|
|
|
|
mivisionx-hip = mivisionx.override {
|
|
rpp = rpp-hip;
|
|
useOpenCL = false;
|
|
useCPU = false;
|
|
};
|
|
|
|
mivisionx-opencl = mivisionx.override {
|
|
rpp = rpp-opencl;
|
|
miopen = miopen-opencl;
|
|
useOpenCL = true;
|
|
useCPU = false;
|
|
};
|
|
|
|
mivisionx-cpu = mivisionx.override {
|
|
rpp = rpp-cpu;
|
|
useOpenCL = false;
|
|
useCPU = true;
|
|
};
|
|
|
|
## Meta ##
|
|
# Emulate common ROCm meta layout
|
|
# These are mainly for users. I strongly suggest NOT using these in nixpkgs derivations
|
|
# Don't put these into `propagatedBuildInputs` unless you want PATH/PYTHONPATH issues!
|
|
# See: https://rocm.docs.amd.com/en/docs-5.7.1/_images/image.004.png
|
|
# See: https://rocm.docs.amd.com/en/docs-5.7.1/deploy/linux/os-native/package_manager_integration.html
|
|
meta = rec {
|
|
rocm-developer-tools = symlinkJoin {
|
|
name = "rocm-developer-tools-meta";
|
|
|
|
paths = [
|
|
hsa-amd-aqlprofile-bin
|
|
rocm-core
|
|
rocr-debug-agent
|
|
roctracer
|
|
rocdbgapi
|
|
rocprofiler
|
|
rocgdb
|
|
rocm-language-runtime
|
|
];
|
|
};
|
|
|
|
rocm-ml-sdk = symlinkJoin {
|
|
name = "rocm-ml-sdk-meta";
|
|
|
|
paths = [
|
|
rocm-core
|
|
miopen-hip
|
|
rocm-hip-sdk
|
|
rocm-ml-libraries
|
|
];
|
|
};
|
|
|
|
rocm-ml-libraries = symlinkJoin {
|
|
name = "rocm-ml-libraries-meta";
|
|
|
|
paths = [
|
|
llvm.clang
|
|
llvm.mlir
|
|
llvm.openmp
|
|
rocm-core
|
|
miopen-hip
|
|
rocm-hip-libraries
|
|
];
|
|
};
|
|
|
|
rocm-hip-sdk = symlinkJoin {
|
|
name = "rocm-hip-sdk-meta";
|
|
|
|
paths = [
|
|
rocprim
|
|
rocalution
|
|
hipfft
|
|
rocm-core
|
|
hipcub
|
|
hipblas
|
|
rocrand
|
|
rocfft
|
|
rocsparse
|
|
rccl
|
|
rocthrust
|
|
rocblas
|
|
hipsparse
|
|
hipfort
|
|
rocwmma
|
|
hipsolver
|
|
rocsolver
|
|
rocm-hip-libraries
|
|
rocm-hip-runtime-devel
|
|
];
|
|
};
|
|
|
|
rocm-hip-libraries = symlinkJoin {
|
|
name = "rocm-hip-libraries-meta";
|
|
|
|
paths = [
|
|
rocblas
|
|
hipfort
|
|
rocm-core
|
|
rocsolver
|
|
rocalution
|
|
rocrand
|
|
hipblas
|
|
rocfft
|
|
hipfft
|
|
rccl
|
|
rocsparse
|
|
hipsparse
|
|
hipsolver
|
|
rocm-hip-runtime
|
|
];
|
|
};
|
|
|
|
rocm-openmp-sdk = symlinkJoin {
|
|
name = "rocm-openmp-sdk-meta";
|
|
|
|
paths = [
|
|
rocm-core
|
|
llvm.clang
|
|
llvm.mlir
|
|
llvm.openmp # openmp-extras-devel (https://github.com/ROCm/aomp)
|
|
rocm-language-runtime
|
|
];
|
|
};
|
|
|
|
rocm-opencl-sdk = symlinkJoin {
|
|
name = "rocm-opencl-sdk-meta";
|
|
|
|
paths = [
|
|
rocm-core
|
|
rocm-runtime
|
|
clr
|
|
clr.icd
|
|
rocm-thunk
|
|
rocm-opencl-runtime
|
|
];
|
|
};
|
|
|
|
rocm-opencl-runtime = symlinkJoin {
|
|
name = "rocm-opencl-runtime-meta";
|
|
|
|
paths = [
|
|
rocm-core
|
|
clr
|
|
clr.icd
|
|
rocm-language-runtime
|
|
];
|
|
};
|
|
|
|
rocm-hip-runtime-devel = symlinkJoin {
|
|
name = "rocm-hip-runtime-devel-meta";
|
|
|
|
paths = [
|
|
clr
|
|
rocm-core
|
|
hipify
|
|
rocm-cmake
|
|
llvm.clang
|
|
llvm.mlir
|
|
llvm.openmp
|
|
rocm-thunk
|
|
rocm-runtime
|
|
rocm-hip-runtime
|
|
];
|
|
};
|
|
|
|
rocm-hip-runtime = symlinkJoin {
|
|
name = "rocm-hip-runtime-meta";
|
|
|
|
paths = [
|
|
rocm-core
|
|
rocminfo
|
|
clr
|
|
rocm-language-runtime
|
|
];
|
|
};
|
|
|
|
rocm-language-runtime = symlinkJoin {
|
|
name = "rocm-language-runtime-meta";
|
|
|
|
paths = [
|
|
rocm-runtime
|
|
rocm-core
|
|
rocm-comgr
|
|
llvm.openmp # openmp-extras-runtime (https://github.com/ROCm/aomp)
|
|
];
|
|
};
|
|
|
|
rocm-all = symlinkJoin {
|
|
name = "rocm-all-meta";
|
|
|
|
paths = [
|
|
rocm-developer-tools
|
|
rocm-ml-sdk
|
|
rocm-ml-libraries
|
|
rocm-hip-sdk
|
|
rocm-hip-libraries
|
|
rocm-openmp-sdk
|
|
rocm-opencl-sdk
|
|
rocm-opencl-runtime
|
|
rocm-hip-runtime-devel
|
|
rocm-hip-runtime
|
|
rocm-language-runtime
|
|
];
|
|
};
|
|
};
|
|
}
|