Something went wrong. Try again.
lol
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341{ lib, config, callPackage, newScope, boost179, opencv, python3Packages, openmpi, stdenv, pkgs,}:
let outer = lib.makeScope newScope ( self: let inherit (self) llvm; origStdenv = stdenv; pyPackages = python3Packages; openmpi-orig = openmpi; rocmClangStdenv = llvm.rocmClangStdenv; in { inherit rocmClangStdenv; stdenv = rocmClangStdenv;
rocmUpdateScript = self.callPackage ./update.nix { };
## ROCm ## llvm = lib.recurseIntoAttrs ( callPackage ./llvm/default.nix { # rocm-device-libs is used for .src only # otherwise would cause infinite recursion inherit (self) rocm-device-libs; } ); inherit (self.llvm) rocm-toolchain clang openmp;
rocm-core = self.callPackage ./rocm-core { stdenv = origStdenv; };
rocm-cmake = self.callPackage ./rocm-cmake { stdenv = origStdenv; };
rocm-device-libs = self.callPackage ./rocm-device-libs { };
rocm-runtime = self.callPackage ./rocm-runtime { stdenv = origStdenv; };
rocm-comgr = self.callPackage ./rocm-comgr { };
rocminfo = self.callPackage ./rocminfo { stdenv = origStdenv; };
amdsmi = pyPackages.callPackage ./amdsmi { inherit (self) rocmUpdateScript; };
rocm-smi = pyPackages.callPackage ./rocm-smi { inherit (self) rocmUpdateScript; };
aqlprofile = self.callPackage ./aqlprofile { };
rdc = self.callPackage ./rdc { };
rocm-docs-core = python3Packages.callPackage ./rocm-docs-core { };
hip-common = self.callPackage ./hip-common { };
hipcc = self.callPackage ./hipcc { stdenv = origStdenv; };
# Replaces hip, opencl-runtime, and rocclr clr = self.callPackage ./clr { };
aotriton = self.callPackage ./aotriton { stdenv = origStdenv; };
hipify = self.callPackage ./hipify { stdenv = origStdenv; };
# hsakmt was merged into rocm-runtime hsakmt = self.rocm-runtime;
rocprofiler = self.callPackage ./rocprofiler { inherit (llvm) clang; }; rocprofiler-register = self.callPackage ./rocprofiler-register { inherit (llvm) clang; }; rocprofiler-sdk = self.callPackage ./rocprofiler-sdk { };
rocprof-compute-viewer = self.callPackage ./rocprof-compute-viewer { };
rocprof-trace-decoder = self.callPackage ./rocprof-trace-decoder { };
roctracer = self.callPackage ./roctracer { };
rocgdb = self.callPackage ./rocgdb { };
rocdbgapi = self.callPackage ./rocdbgapi { };
rocr-debug-agent = self.callPackage ./rocr-debug-agent { };
rocprim = self.callPackage ./rocprim { };
rocsparse = self.callPackage ./rocsparse { };
rocthrust = self.callPackage ./rocthrust { };
rocrand = self.callPackage ./rocrand { };
hiprand = self.callPackage ./hiprand { };
rocfft = self.callPackage ./rocfft { };
mscclpp = self.callPackage ./mscclpp { };
rccl = self.callPackage ./rccl { };
hipcub = self.callPackage ./hipcub { };
hipsparse = self.callPackage ./hipsparse { };
hipfort = self.callPackage ./hipfort { };
hipfft = self.callPackage ./hipfft { };
hiprt = self.callPackage ./hiprt { };
tensile = pyPackages.callPackage ./tensile { inherit (self) rocmUpdateScript clr ; };
rocblas = self.callPackage ./rocblas { };
rocsolver = self.callPackage ./rocsolver { };
rocwmma = self.callPackage ./rocwmma { };
rocalution = self.callPackage ./rocalution { };
rocmlir-rock = self.callPackage ./rocmlir { buildRockCompiler = true; }; rocmlir = self.rocmlir-rock;
hipsolver = self.callPackage ./hipsolver { };
hipblas-common = self.callPackage ./hipblas-common { };
hipblas = self.callPackage ./hipblas { };
hipblaslt = self.callPackage ./hipblaslt { };
# hipTensor - Only supports GFX9
composable_kernel_base = self.callPackage ./composable_kernel/base.nix { }; composable_kernel = self.callPackage ./composable_kernel { };
ck4inductor = pyPackages.callPackage ./composable_kernel/ck4inductor.nix { inherit (self) composable_kernel rocm-toolchain; };
half = self.callPackage ./half { };
miopen = self.callPackage ./miopen { boost = boost179.override { enableStatic = true; }; };
miopen-hip = self.miopen;
migraphx = self.callPackage ./migraphx { stdenv = origStdenv; };
rpp = self.callPackage ./rpp { };
rpp-hip = self.rpp.override { useCPU = false; };
rpp-cpu = self.rpp.override { useCPU = true; };
mivisionx = self.callPackage ./mivisionx { stdenv = origStdenv; opencv = opencv.override { enablePython = true; }; };
mivisionx-hip = self.mivisionx.override { rpp = self.rpp-hip; useOpenCL = false; useCPU = false; };
mivisionx-cpu = self.mivisionx.override { rpp = self.rpp-cpu; useOpenCL = false; useCPU = true; };
# Even if config.rocmSupport is false we need rocmSupport true # version of ucc/ucx in openmpi in this package set openmpi = openmpi-orig.override ( prev: let ucx = prev.ucx.override { enableCuda = false; enableRocm = true; rocmPackages = self; }; in { inherit ucx; ucc = prev.ucc.override { enableCuda = false; inherit ucx; }; } ); mpi = self.openmpi;
meta = { # eval all pkgsRocm release attrs with # nix-eval-jobs --force-recurse pkgs/top-level/release.nix -I . --select "p: p.pkgsRocm" --no-instantiate release-packagePlatforms = let platforms = [ "x86_64-linux" ]; attrPaths = (builtins.fromJSON (builtins.readFile ./release-attrPaths.json)).attrPaths; in lib.foldl' ( acc: path: if lib.hasAttrByPath (lib.splitString "." path) pkgs then lib.recursiveUpdate acc (lib.setAttrByPath (lib.splitString "." path) platforms) else acc ) { } attrPaths; };
rocm-bandwidth-test = self.callPackage ./rocm-bandwidth-test { rocmPackages = self; };
rocm-tests = self.callPackage ./rocm-tests { rocmPackages = self; }; } // lib.optionalAttrs config.allowAliases { rpp-opencl = throw '' 'rpp-opencl' has been removed as it has been broken for a year and has no consuming packages. Use 'rpp' or 'rpp-cpu' instead. ''; # Added 2026-03-08
rocmPath = throw '' 'rocm-path' has been removed. If a ROCM_PATH value is required in nixpkgs please construct one with the minimal set of required deps. For convenience use outside of nixpkgs consider one of the entries in 'rocmPackages.meta'. ''; # Added 2025-09-30
rocm-merged-llvm = throw '' 'rocm-merged-llvm' has been removed. For 'libllvm' or 'libclang' use 'rocmPackages.llvm.libllvm/clang'. For a ROCm compiler toolchain use 'rocmPackages.rocm-toolchain'. If a package uses '$<TARGET_FILE:clang>' in CMake from 'libclang' it may be necessary to convince it to use 'rocm-toolchain' instead. 'rocm-merged-llvm' avoided this at the cost of significantly bloating closure size. ''; # Added 2025-09-30
hsa-amd-aqlprofile-bin = lib.warn '' 'hsa-amd-aqlprofile-bin' has been replaced by 'aqlprofile'. '' self.aqlprofile; # Added 2025-08-27
triton = throw '' 'rocmPackages.triton' has been removed. Please use python3Packages.triton ''; # Added 2025-08-24
rocm-thunk = throw '' 'rocm-thunk' has been removed. It's now part of the ROCm runtime. ''; # Added 2025-3-16
clang-ocl = throw '' 'clang-ocl' has been deprecated upstream. Use ROCm's clang directly. ''; # Added 2025-3-16
miopengemm = throw '' 'miopengemm' has been deprecated. ''; # Added 2024-3-3
miopen-opencl = throw '' 'miopen-opencl' has been deprecated. ''; # Added 2024-3-3
mivisionx-opencl = throw '' 'mivisionx-opencl' has been deprecated. Other versions of mivisionx are still available. ''; # Added 2024-3-24 } ); scopeForArches = arches: outer.overrideScope ( _final: prev: { clr = prev.clr.override { localGpuTargets = arches; }; } );inouter// builtins.listToAttrs ( map (arch: { name = arch; value = scopeForArches [ arch ]; }) outer.clr.gpuTargets)// { gfx9 = scopeForArches [ "gfx906" "gfx908" "gfx90a" "gfx942" ]; gfx10 = scopeForArches [ "gfx1010" "gfx1030" ]; gfx11 = scopeForArches [ "gfx1100" "gfx1101" "gfx1102" "gfx1150" "gfx1151" ]; gfx12 = scopeForArches [ "gfx1200" "gfx1201" ];}