nixpkgs mirror (for testing) github.com/NixOS/nixpkgs
nix

rocm-related: standardize

rocminfo: standardize

rocm-thunk: standardize

rocm-opencl-icd: standardize

rocclr: standardize

rocm-device-libs: standardize

rocm-comgr: standardize

rocm-opencl-runtime: standardize

rocm-runtime: standardize

clang-ocl: standardize

composable_kernel: standardize

hipcub: standardize

hipsparse: standardize

miopengemm: standardize

rccl: standardize

rocfft: standardize

rocprim: standardize

rocsparse: standardize

rocmlir: standardize

rocrand: standardize

tensile: standardize

rocm-cmake: standardize

rocm-smi: standardize

miopen: standardize

Madoura 785ed480 0ee533a8

+258 -224
+2 -11
pkgs/development/libraries/clang-ocl/default.nix
··· 5 5 , cmake 6 6 , rocm-cmake 7 7 , rocm-device-libs 8 - , clang 9 8 }: 10 9 11 10 stdenv.mkDerivation (finalAttrs: { ··· 21 22 nativeBuildInputs = [ 22 23 cmake 23 24 rocm-cmake 24 - clang 25 25 ]; 26 26 27 - buildInputs = [ 28 - rocm-device-libs 29 - ]; 30 - 31 - cmakeFlags = [ 32 - "-DCMAKE_C_COMPILER=clang" 33 - "-DCMAKE_CXX_COMPILER=clang++" 34 - ]; 27 + buildInputs = [ rocm-device-libs ]; 35 28 36 29 passthru.updateScript = rocmUpdateScript { 37 30 name = finalAttrs.pname; ··· 36 45 homepage = "https://github.com/RadeonOpenCompute/clang-ocl"; 37 46 license = with licenses; [ mit ]; 38 47 maintainers = teams.rocm.members; 39 - broken = finalAttrs.version != clang.version; 48 + broken = finalAttrs.version != stdenv.cc.cc.version; 40 49 }; 41 50 })
+4 -2
pkgs/development/libraries/composable_kernel/default.nix
··· 6 6 , rocm-cmake 7 7 , hip 8 8 , openmp 9 + , clang-tools-extra 9 10 , gtest 10 11 , buildTests ? false 11 12 , buildExamples ? false ··· 38 37 cmake 39 38 rocm-cmake 40 39 hip 40 + clang-tools-extra 41 41 ]; 42 42 43 43 buildInputs = [ ··· 87 85 homepage = "https://github.com/ROCmSoftwarePlatform/composable_kernel"; 88 86 license = with licenses; [ mit ]; 89 87 maintainers = teams.rocm.members; 90 - # Several tests seem to either not compile or have a race condition 91 - # Undefined reference to symbol '_ZTIN7testing4TestE' 88 + # Well, at least we're getting something that makes sense now 89 + # undefined symbol: testing::Message::Message() 92 90 # Try removing this next update 93 91 broken = buildTests; 94 92 };
-6
pkgs/development/libraries/hipcub/default.nix
··· 4 4 , rocmUpdateScript 5 5 , cmake 6 6 , rocm-cmake 7 - , rocm-runtime 8 - , rocm-device-libs 9 - , rocm-comgr 10 7 , rocprim 11 8 , hip 12 9 , gtest ··· 39 42 ]; 40 43 41 44 buildInputs = [ 42 - rocm-runtime 43 - rocm-device-libs 44 - rocm-comgr 45 45 rocprim 46 46 ] ++ lib.optionals buildTests [ 47 47 gtest
-6
pkgs/development/libraries/hipsparse/default.nix
··· 4 4 , rocmUpdateScript 5 5 , cmake 6 6 , rocm-cmake 7 - , rocm-runtime 8 - , rocm-device-libs 9 - , rocm-comgr 10 7 , rocsparse 11 8 , hip 12 9 , gfortran ··· 38 41 ]; 39 42 40 43 buildInputs = [ 41 - rocm-runtime 42 - rocm-device-libs 43 - rocm-comgr 44 44 rocsparse 45 45 git 46 46 ] ++ lib.optionals buildTests [
+5 -16
pkgs/development/libraries/miopen/default.nix
··· 6 6 , pkg-config 7 7 , cmake 8 8 , rocm-cmake 9 - , rocm-runtime 10 - , rocm-device-libs 11 - , rocm-comgr 12 - , rocm-opencl-runtime 13 9 , rocblas 14 10 , rocmlir 15 11 , hip 16 - , clang 12 + , clang-tools-extra 17 13 , clang-ocl 18 14 , llvm 19 15 , miopengemm ··· 80 84 cmake 81 85 rocm-cmake 82 86 hip 83 - clang 84 - llvm 87 + clang-tools-extra 85 88 ]; 86 89 87 90 buildInputs = [ 88 - rocm-runtime 89 - rocm-device-libs 90 - rocm-comgr 91 - rocm-opencl-runtime 91 + llvm 92 92 rocblas 93 93 rocmlir 94 94 clang-ocl ··· 118 126 "-DCMAKE_CXX_COMPILER=hipcc" 119 127 "-DMIOPEN_BACKEND=HIP" 120 128 ] ++ lib.optionals useOpenCL [ 121 - "-DCMAKE_C_COMPILER=${clang}/bin/clang" 122 - "-DCMAKE_CXX_COMPILER=${clang}/bin/clang++" 123 129 "-DMIOPEN_BACKEND=OpenCL" 124 130 ] ++ lib.optionals buildTests [ 125 131 "-DBUILD_TESTS=ON" ··· 138 148 --replace "3 REQUIRED PATHS /opt/rocm)" "3 REQUIRED PATHS ${hip})" \ 139 149 --replace "hip REQUIRED PATHS /opt/rocm" "hip REQUIRED PATHS ${hip}" \ 140 150 --replace "rocblas REQUIRED PATHS /opt/rocm" "rocblas REQUIRED PATHS ${rocblas}" \ 141 - --replace "miopengemm PATHS /opt/rocm" "miopengemm PATHS ${miopengemm}" \ 142 - --replace "set(MIOPEN_TIDY_ERRORS ALL)" "" # Fix clang-tidy at some point 151 + --replace "miopengemm PATHS /opt/rocm" "miopengemm PATHS ${miopengemm}" 143 152 '' + lib.optionalString (!buildTests) '' 144 153 substituteInPlace CMakeLists.txt \ 145 154 --replace "add_subdirectory(test)" "" ··· 169 180 '' + lib.optionalString buildTests '' 170 181 mkdir -p $test/bin 171 182 mv bin/test_* $test/bin 172 - patchelf --set-rpath ${lib.makeLibraryPath (finalAttrs.buildInputs ++ [ hip ])}:$out/lib $test/bin/* 183 + patchelf --set-rpath $out/lib:${lib.makeLibraryPath (finalAttrs.buildInputs ++ [ hip ])} $test/bin/* 173 184 ''; 174 185 175 186 passthru.updateScript = rocmUpdateScript {
+1 -5
pkgs/development/libraries/miopengemm/default.nix
··· 5 5 , cmake 6 6 , rocm-cmake 7 7 , rocm-opencl-runtime 8 - , clang 9 8 , texlive 10 9 , doxygen 11 10 , sphinx ··· 53 54 nativeBuildInputs = [ 54 55 cmake 55 56 rocm-cmake 56 - clang 57 57 ]; 58 58 59 59 buildInputs = [ ··· 68 70 ]; 69 71 70 72 cmakeFlags = [ 71 - "-DCMAKE_C_COMPILER=clang" 72 - "-DCMAKE_CXX_COMPILER=clang++" 73 73 # Manually define CMAKE_INSTALL_<DIR> 74 74 # See: https://github.com/NixOS/nixpkgs/pull/197838 75 75 "-DCMAKE_INSTALL_BINDIR=bin" ··· 117 121 homepage = "https://github.com/ROCmSoftwarePlatform/MIOpenGEMM"; 118 122 license = with licenses; [ mit ]; 119 123 maintainers = teams.rocm.members; 120 - broken = finalAttrs.version != clang.version; 124 + broken = finalAttrs.version != stdenv.cc.version; 121 125 }; 122 126 })
-6
pkgs/development/libraries/rccl/default.nix
··· 4 4 , rocmUpdateScript 5 5 , cmake 6 6 , rocm-cmake 7 - , rocm-runtime 8 - , rocm-device-libs 9 - , rocm-comgr 10 7 , rocm-smi 11 8 , hip 12 9 , gtest ··· 35 38 ]; 36 39 37 40 buildInputs = [ 38 - rocm-runtime 39 - rocm-device-libs 40 - rocm-comgr 41 41 rocm-smi 42 42 gtest 43 43 ] ++ lib.optionals buildTests [
+7 -4
pkgs/development/libraries/rocclr/default.nix
··· 1 - { lib, stdenv 1 + { lib 2 + , stdenv 2 3 , fetchFromGitHub 3 4 , fetchpatch 4 5 , rocmUpdateScript ··· 27 26 }) 28 27 ]; 29 28 30 - prePatch = '' 29 + postPatch = '' 31 30 substituteInPlace device/comgrctx.cpp \ 32 31 --replace "libamd_comgr.so" "${rocm-comgr}/lib/libamd_comgr.so" 33 32 ''; 34 33 35 - buildPhase = ""; 34 + dontConfigure = true; 35 + dontBuild = true; 36 36 37 37 installPhase = '' 38 38 runHook preInstall 39 39 40 40 mkdir -p $out 41 - cp -r * $out/ 41 + cp -a * $out/ 42 42 43 43 runHook postInstall 44 44 ''; ··· 59 57 # to be supported yet by the build infrastructure. Recheck in 60 58 # the future. 61 59 platforms = [ "x86_64-linux" ]; 60 + broken = finalAttrs.version != stdenv.cc.version; 62 61 }; 63 62 })
+2 -8
pkgs/development/libraries/rocfft/default.nix
··· 4 4 , rocmUpdateScript 5 5 , cmake 6 6 , rocm-cmake 7 - , rocm-runtime 8 - , rocm-device-libs 9 - , rocm-comgr 10 7 , hip 8 + , openmp 11 9 , sqlite 12 10 , python3 13 11 , gtest 14 12 , boost 15 13 , fftw 16 14 , fftwFloat 17 - , llvmPackages 18 15 , buildTests ? false 19 16 , buildBenchmarks ? false 20 17 }: ··· 42 45 ]; 43 46 44 47 buildInputs = [ 45 - rocm-runtime 46 - rocm-device-libs 47 - rocm-comgr 48 48 sqlite 49 49 python3 50 50 ] ++ lib.optionals buildTests [ ··· 50 56 boost 51 57 fftw 52 58 fftwFloat 53 - llvmPackages.openmp 59 + openmp 54 60 ]; 55 61 56 62 propogatedBuildInputs = lib.optionals buildTests [
+20 -15
pkgs/development/libraries/rocm-comgr/default.nix
··· 3 3 , fetchFromGitHub 4 4 , rocmUpdateScript 5 5 , cmake 6 - , clang 6 + , rocm-cmake 7 7 , rocm-device-libs 8 - , llvm 8 + , libxml2 9 9 }: 10 10 11 - stdenv.mkDerivation (finalAttrs: { 11 + let 12 + llvmNativeTarget = 13 + if stdenv.isx86_64 then "X86" 14 + else if stdenv.isAarch64 then "AArch64" 15 + else throw "Unsupported ROCm LLVM platform"; 16 + in stdenv.mkDerivation (finalAttrs: { 12 17 pname = "rocm-comgr"; 13 18 version = "5.4.0"; 14 19 ··· 24 19 hash = "sha256-qLsrBTeSop7lIQv8gZDwgpvGZJOAq90zsvMi1QpfbAs="; 25 20 }; 26 21 27 - sourceRoot = "source/lib/comgr"; 22 + patches = [ ./cmake.patch ]; 23 + sourceRoot = "${finalAttrs.src.name}/lib/comgr"; 28 24 29 - nativeBuildInputs = [ cmake ]; 30 - 31 - buildInputs = [ clang rocm-device-libs llvm ]; 32 - 33 - cmakeFlags = [ 34 - "-DCMAKE_C_COMPILER=${clang}/bin/clang" 35 - "-DCMAKE_CXX_COMPILER=${clang}/bin/clang++" 36 - "-DCMAKE_PREFIX_PATH=${llvm}/lib/cmake/llvm" 37 - "-DLLD_INCLUDE_DIRS=${llvm}/include" 38 - "-DLLVM_TARGETS_TO_BUILD=\"AMDGPU;X86\"" 25 + nativeBuildInputs = [ 26 + cmake 27 + rocm-cmake 39 28 ]; 40 29 41 - patches = [ ./cmake.patch ]; 30 + buildInputs = [ 31 + rocm-device-libs 32 + libxml2 33 + ]; 34 + 35 + cmakeFlags = [ "-DLLVM_TARGETS_TO_BUILD=AMDGPU;X86" ]; 42 36 43 37 passthru.updateScript = rocmUpdateScript { 44 38 name = finalAttrs.pname; ··· 51 47 license = licenses.ncsa; 52 48 maintainers = with maintainers; [ lovesegfault ] ++ teams.rocm.members; 53 49 platforms = platforms.linux; 50 + broken = finalAttrs.version != stdenv.cc.version; 54 51 }; 55 52 })
+17 -12
pkgs/development/libraries/rocm-device-libs/default.nix
··· 1 - { lib, stdenv 1 + { lib 2 + , stdenv 2 3 , fetchFromGitHub 3 4 , rocmUpdateScript 4 5 , cmake 5 - , clang 6 - , llvm 6 + , rocm-cmake 7 + , libxml2 7 8 }: 8 9 9 - stdenv.mkDerivation (finalAttrs: { 10 + let 11 + llvmNativeTarget = 12 + if stdenv.isx86_64 then "X86" 13 + else if stdenv.isAarch64 then "AArch64" 14 + else throw "Unsupported ROCm LLVM platform"; 15 + in stdenv.mkDerivation (finalAttrs: { 10 16 pname = "rocm-device-libs"; 11 17 version = "5.4.0"; 12 18 ··· 23 17 hash = "sha256-8gxvgy2GlROxM5qKtZVu5Lxa1FmTIVlBTpfp8rxhNhk="; 24 18 }; 25 19 26 - nativeBuildInputs = [ cmake ]; 20 + patches = [ ./cmake.patch ]; 27 21 28 - buildInputs = [ clang llvm ]; 29 - 30 - cmakeFlags = [ 31 - "-DCMAKE_PREFIX_PATH=${llvm}/lib/cmake/llvm;${llvm}/lib/cmake/clang" 32 - "-DLLVM_TARGETS_TO_BUILD='AMDGPU;X86'" 33 - "-DCLANG=${clang}/bin/clang" 22 + nativeBuildInputs = [ 23 + cmake 24 + rocm-cmake 34 25 ]; 35 26 36 - patches = [ ./cmake.patch ]; 27 + buildInputs = [ libxml2 ]; 28 + cmakeFlags = [ "-DLLVM_TARGETS_TO_BUILD=AMDGPU;${llvmNativeTarget}" ]; 37 29 38 30 passthru.updateScript = rocmUpdateScript { 39 31 name = finalAttrs.pname; ··· 45 41 license = licenses.ncsa; 46 42 maintainers = with maintainers; [ lovesegfault ] ++ teams.rocm.members; 47 43 platforms = platforms.linux; 44 + broken = finalAttrs.version != stdenv.cc.version; 48 45 }; 49 46 })
+7 -3
pkgs/development/libraries/rocm-opencl-icd/default.nix
··· 1 - { lib, callPackage, stdenv, rocm-opencl-runtime }: 1 + { lib 2 + , stdenv 3 + , callPackage 4 + , rocm-opencl-runtime 5 + }: 2 6 3 7 stdenv.mkDerivation rec { 4 8 pname = "rocm-opencl-icd"; ··· 15 11 echo "${rocm-opencl-runtime}/lib/libamdocl64.so" > $out/etc/OpenCL/vendors/amdocl64.icd 16 12 ''; 17 13 18 - passthru.impureTests = { rocm-opencl = callPackage ./test.nix {}; }; 14 + passthru.impureTests = { rocm-opencl = callPackage ./test.nix { }; }; 19 15 20 16 meta = with lib; { 21 17 description = "OpenCL ICD definition for AMD GPUs using the ROCm stack"; 22 18 license = licenses.mit; 23 - maintainers = with maintainers; [ lovesegfault ]; 19 + maintainers = with maintainers; [ lovesegfault ] ++ teams.rocm.members; 24 20 platforms = platforms.linux; 25 21 }; 26 22 }
+11 -26
pkgs/development/libraries/rocm-opencl-runtime/default.nix
··· 1 - { stdenv 2 - , lib 1 + { lib 2 + , stdenv 3 3 , fetchFromGitHub 4 4 , rocmUpdateScript 5 5 , addOpenGLRunpath 6 6 , cmake 7 - , rocm-cmake 8 - , clang 9 - , glew 10 - , libglvnd 11 - , libX11 12 - , llvm 13 - , mesa 14 - , numactl 15 - , python3 16 - , rocclr 17 7 , rocm-comgr 18 - , rocm-device-libs 19 8 , rocm-runtime 20 - , rocm-thunk 9 + , rocclr 10 + , glew 11 + , libX11 12 + , numactl 21 13 }: 22 14 23 15 stdenv.mkDerivation (finalAttrs: { ··· 23 31 hash = "sha256-E1+Y/fgp5b+7H1LN+O1fwVi0/XRCgvsiSxTY3u/q+8I="; 24 32 }; 25 33 26 - nativeBuildInputs = [ cmake rocm-cmake ]; 34 + nativeBuildInputs = [ cmake ]; 27 35 28 36 buildInputs = [ 29 - clang 30 - glew 31 - libglvnd 32 - libX11 33 - llvm 34 - mesa 35 - numactl 36 - python3 37 37 rocm-comgr 38 - rocm-device-libs 39 38 rocm-runtime 40 - rocm-thunk 39 + glew 40 + libX11 41 + numactl 41 42 ]; 42 43 43 44 cmakeFlags = [ 44 45 "-DAMD_OPENCL_PATH=${finalAttrs.src}" 45 46 "-DROCCLR_PATH=${rocclr}" 46 - "-DCPACK_PACKAGING_INSTALL_PREFIX=/opt/rocm/opencl" 47 47 ]; 48 48 49 49 dontStrip = true; ··· 64 80 license = with licenses; [ asl20 mit ]; 65 81 maintainers = with maintainers; [ acowley lovesegfault ] ++ teams.rocm.members; 66 82 platforms = platforms.linux; 83 + broken = finalAttrs.version != stdenv.cc.version; 67 84 }; 68 85 })
+27 -15
pkgs/development/libraries/rocm-runtime/default.nix
··· 1 - { stdenv 2 - , lib 1 + { lib 2 + , stdenv 3 3 , fetchFromGitHub 4 4 , rocmUpdateScript 5 - , addOpenGLRunpath 6 - , cmake 7 5 , pkg-config 6 + , cmake 8 7 , xxd 9 - , elfutils 10 - , libdrm 11 - , llvm 12 - , numactl 13 8 , rocm-device-libs 14 - , rocm-thunk }: 9 + , rocm-thunk 10 + , libelf 11 + , libdrm 12 + , numactl 13 + , valgrind 14 + , libxml2 15 + }: 15 16 16 17 stdenv.mkDerivation (finalAttrs: { 17 18 pname = "rocm-runtime"; ··· 25 24 hash = "sha256-M9kv1Oe5ZZfd9H/+KUJUoK9L1EdyS2qRp2mJDK0dnPE="; 26 25 }; 27 26 28 - sourceRoot = "source/src"; 27 + sourceRoot = "${finalAttrs.src.name}/src"; 29 28 30 - nativeBuildInputs = [ cmake pkg-config xxd ]; 29 + nativeBuildInputs = [ 30 + pkg-config 31 + cmake 32 + xxd 33 + ]; 31 34 32 - buildInputs = [ elfutils libdrm llvm numactl ]; 33 - 34 - cmakeFlags = [ "-DCMAKE_PREFIX_PATH=${rocm-thunk}" ]; 35 + buildInputs = [ 36 + rocm-thunk 37 + libelf 38 + libdrm 39 + numactl 40 + valgrind 41 + libxml2 42 + ]; 35 43 36 44 postPatch = '' 37 45 patchShebangs image/blit_src/create_hsaco_ascii_file.sh ··· 55 45 ''; 56 46 57 47 fixupPhase = '' 58 - rm -rf $out/hsa 48 + rm -rf $out/hsa/* 49 + ln -s $out/{include,lib} $out/hsa 59 50 ''; 60 51 61 52 passthru.updateScript = rocmUpdateScript { ··· 70 59 homepage = "https://github.com/RadeonOpenCompute/ROCR-Runtime"; 71 60 license = with licenses; [ ncsa ]; 72 61 maintainers = with maintainers; [ lovesegfault ] ++ teams.rocm.members; 62 + broken = finalAttrs.version != stdenv.cc.version; 73 63 }; 74 64 })
+21 -17
pkgs/development/libraries/rocm-thunk/default.nix
··· 2 2 , stdenv 3 3 , fetchFromGitHub 4 4 , rocmUpdateScript 5 - , cmake 6 5 , pkg-config 6 + , cmake 7 + , rocm-cmake 7 8 , libdrm 8 9 , numactl 10 + , valgrind 9 11 }: 10 12 11 13 stdenv.mkDerivation (finalAttrs: { ··· 21 19 hash = "sha256-EU5toaKzVeZpdm/YhaQ0bXq0eoYwYQ5qGLUJzxgZVjE="; 22 20 }; 23 21 24 - preConfigure = '' 25 - export cmakeFlags="$cmakeFlags " 26 - ''; 22 + nativeBuildInputs = [ 23 + pkg-config 24 + cmake 25 + rocm-cmake 26 + ]; 27 27 28 - nativeBuildInputs = [ cmake pkg-config ]; 28 + buildInputs = [ 29 + libdrm 30 + numactl 31 + valgrind 32 + ]; 29 33 30 - buildInputs = [ libdrm numactl ]; 31 - 32 - # https://github.com/RadeonOpenCompute/ROCT-Thunk-Interface/issues/75 33 - postPatch = '' 34 - substituteInPlace libhsakmt.pc.in \ 35 - --replace '$'{prefix}/@CMAKE_INSTALL_LIBDIR@ @CMAKE_INSTALL_FULL_LIBDIR@ \ 36 - --replace '$'{prefix}/@CMAKE_INSTALL_INCLUDEDIR@ @CMAKE_INSTALL_FULL_INCLUDEDIR@ 37 - ''; 38 - 39 - postInstall = '' 40 - cp -r $src/include $out 41 - ''; 34 + cmakeFlags = [ 35 + # Manually define CMAKE_INSTALL_<DIR> 36 + # See: https://github.com/NixOS/nixpkgs/pull/197838 37 + "-DCMAKE_INSTALL_BINDIR=bin" 38 + "-DCMAKE_INSTALL_LIBDIR=lib" 39 + "-DCMAKE_INSTALL_INCLUDEDIR=include" 40 + ]; 42 41 43 42 passthru.updateScript = rocmUpdateScript { 44 43 name = finalAttrs.pname; ··· 52 49 homepage = "https://github.com/RadeonOpenCompute/ROCT-Thunk-Interface"; 53 50 license = with licenses; [ bsd2 mit ]; 54 51 maintainers = with maintainers; [ lovesegfault ] ++ teams.rocm.members; 52 + broken = finalAttrs.version != stdenv.cc.version; 55 53 }; 56 54 })
+56 -8
pkgs/development/libraries/rocmlir/default.nix
··· 3 3 , fetchFromGitHub 4 4 , rocmUpdateScript 5 5 , cmake 6 - , clang 6 + , ninja 7 + , hip 8 + , rocminfo 7 9 , git 8 10 , libxml2 9 11 , libedit 12 + , zlib 13 + , ncurses 10 14 , python3 15 + , buildRockCompiler ? false 11 16 }: 12 17 13 - stdenv.mkDerivation (finalAttrs: { 18 + # Theoretically, we could have our MLIR have an output 19 + # with the source and built objects so that we can just 20 + # use it as the external LLVM repo for this 21 + let 22 + llvmNativeTarget = 23 + if stdenv.isx86_64 then "X86" 24 + else if stdenv.isAarch64 then "AArch64" 25 + else throw "Unsupported ROCm LLVM platform"; 26 + in stdenv.mkDerivation (finalAttrs: { 14 27 pname = "rocmlir"; 15 28 version = "5.4.0"; 29 + 30 + outputs = [ 31 + "out" 32 + ] ++ lib.optionals (!buildRockCompiler) [ 33 + "external" 34 + ]; 16 35 17 36 src = fetchFromGitHub { 18 37 owner = "ROCmSoftwarePlatform"; ··· 42 23 43 24 nativeBuildInputs = [ 44 25 cmake 45 - clang 26 + ninja 27 + ] ++ lib.optionals (!buildRockCompiler) [ 28 + hip 46 29 ]; 47 30 48 31 buildInputs = [ ··· 54 33 python3 55 34 ]; 56 35 57 - cmakeFlags = [ 58 - "-DCMAKE_C_COMPILER=clang" 59 - "-DCMAKE_CXX_COMPILER=clang++" 60 - "-DBUILD_FAT_LIBROCKCOMPILER=ON" 36 + propagatedBuildInputs = [ 37 + zlib 38 + ncurses 61 39 ]; 40 + 41 + cmakeFlags = [ 42 + "-DLLVM_TARGETS_TO_BUILD=AMDGPU;${llvmNativeTarget}" 43 + "-DLLVM_ENABLE_ZLIB=ON" 44 + "-DLLVM_ENABLE_TERMINFO=ON" 45 + ] ++ lib.optionals buildRockCompiler [ 46 + "-DBUILD_FAT_LIBROCKCOMPILER=ON" 47 + ] ++ lib.optionals (!buildRockCompiler) [ 48 + "-DROCM_PATH=${rocminfo}" 49 + "-DROCM_TEST_CHIPSET=gfx000" 50 + ]; 51 + 52 + dontBuild = true; 53 + doCheck = true; 54 + 55 + # Certain libs aren't being generated, try enabling tests next update 56 + checkTarget = if buildRockCompiler 57 + then "librockCompiler" 58 + else "check-mlir-miopen-build-only"; 59 + 60 + postInstall = let 61 + libPath = lib.makeLibraryPath [ zlib ncurses hip stdenv.cc.cc ]; 62 + in lib.optionals (!buildRockCompiler) '' 63 + mkdir -p $external/lib 64 + cp -a external/llvm-project/llvm/lib/{*.a*,*.so*} $external/lib 65 + patchelf --set-rpath $external/lib:$out/lib:${libPath} $external/lib/*.so* 66 + patchelf --set-rpath $out/lib:$external/lib:${libPath} $out/{bin/*,lib/*.so*} 67 + ''; 62 68 63 69 passthru.updateScript = rocmUpdateScript { 64 70 name = finalAttrs.pname; ··· 100 52 homepage = "https://github.com/ROCmSoftwarePlatform/rocMLIR"; 101 53 license = with licenses; [ asl20 ]; 102 54 maintainers = teams.rocm.members; 103 - broken = finalAttrs.version != clang.version; 55 + broken = finalAttrs.version != stdenv.cc.version; 104 56 }; 105 57 })
+1 -8
pkgs/development/libraries/rocprim/default.nix
··· 4 4 , rocmUpdateScript 5 5 , cmake 6 6 , rocm-cmake 7 - , rocm-runtime 8 - , rocm-device-libs 9 - , rocm-comgr 10 7 , hip 11 8 , gtest 12 9 , gbenchmark ··· 36 39 hip 37 40 ]; 38 41 39 - buildInputs = [ 40 - rocm-runtime 41 - rocm-device-libs 42 - rocm-comgr 43 - ] ++ lib.optionals buildTests [ 42 + buildInputs = lib.optionals buildTests [ 44 43 gtest 45 44 ] ++ lib.optionals buildBenchmarks [ 46 45 gbenchmark
+1 -8
pkgs/development/libraries/rocrand/default.nix
··· 4 4 , rocmUpdateScript 5 5 , cmake 6 6 , rocm-cmake 7 - , rocm-runtime 8 - , rocm-device-libs 9 - , rocm-comgr 10 7 , hip 11 8 , gtest 12 9 , gbenchmark ··· 37 40 hip 38 41 ]; 39 42 40 - buildInputs = [ 41 - rocm-runtime 42 - rocm-device-libs 43 - rocm-comgr 44 - ] ++ lib.optionals buildTests [ 43 + buildInputs = lib.optionals buildTests [ 45 44 gtest 46 45 ] ++ lib.optionals buildBenchmarks [ 47 46 gbenchmark
-6
pkgs/development/libraries/rocsparse/default.nix
··· 5 5 , rocmUpdateScript 6 6 , cmake 7 7 , rocm-cmake 8 - , rocm-runtime 9 - , rocm-device-libs 10 - , rocm-comgr 11 8 , rocprim 12 9 , hip 13 10 , gfortran ··· 43 46 ]; 44 47 45 48 buildInputs = [ 46 - rocm-runtime 47 - rocm-device-libs 48 - rocm-comgr 49 49 rocprim 50 50 git 51 51 ] ++ lib.optionals (buildTests || buildBenchmarks) [
+1
pkgs/development/libraries/tensile/default.nix
··· 36 36 homepage = "https://github.com/ROCmSoftwarePlatform/Tensile"; 37 37 license = with licenses; [ mit ]; 38 38 maintainers = teams.rocm.members; 39 + broken = version != stdenv.cc.version; 39 40 }; 40 41 }
+1
pkgs/development/tools/build-managers/rocm-cmake/default.nix
··· 30 30 license = licenses.mit; 31 31 maintainers = teams.rocm.members; 32 32 platforms = platforms.unix; 33 + broken = finalAttrs.version != stdenv.cc.version; 33 34 }; 34 35 })
+14 -19
pkgs/development/tools/rocminfo/default.nix
··· 1 - { stdenv 2 - , lib 1 + { lib 2 + , stdenv 3 3 , fetchFromGitHub 4 4 , rocmUpdateScript 5 - , fetchpatch 6 5 , cmake 7 - , rocm-runtime 8 - , python3 9 6 , rocm-cmake 7 + , rocm-runtime 10 8 , busybox 9 + , python3 11 10 , gnugrep 12 11 # rocminfo requires that the calling user have a password and be in 13 12 # the video group. If we let rocm_agent_enumerator rely upon ··· 28 29 sha256 = "sha256-4wZTm5AZgG8xEd6uYqxWq4bWZgcSYZ2WYA1z4RAPF8U="; 29 30 }; 30 31 31 - enableParallelBuilding = true; 32 - nativeBuildInputs = [ cmake ]; 33 - buildInputs = [ rocm-cmake rocm-runtime ]; 34 - 35 - cmakeFlags = [ 36 - "-DROCM_DIR=${rocm-runtime}" 37 - "-DROCRTST_BLD_TYPE=Release" 32 + nativeBuildInputs = [ 33 + cmake 34 + rocm-cmake 38 35 ]; 39 36 37 + buildInputs = [ rocm-runtime ]; 38 + propagatedBuildInputs = [ python3 ]; 39 + cmakeFlags = [ "-DROCRTST_BLD_TYPE=Release" ]; 40 + 40 41 prePatch = '' 41 - sed 's,#!/usr/bin/env python3,#!${python3}/bin/python,' -i rocm_agent_enumerator 42 + patchShebangs rocm_agent_enumerator 42 43 sed 's,lsmod | grep ,${busybox}/bin/lsmod | ${gnugrep}/bin/grep ,' -i rocminfo.cc 43 44 ''; 44 45 45 - installPhase = '' 46 - mkdir -p $out/bin 47 - cp rocminfo $out/bin 48 - cp rocm_agent_enumerator $out/bin 49 - '' + lib.optionalString (defaultTargets != []) '' 46 + postInstall = lib.optionalString (defaultTargets != [ ]) '' 50 47 echo '${lib.concatStringsSep "\n" defaultTargets}' > $out/bin/target.lst 51 48 ''; 52 49 ··· 58 63 license = licenses.ncsa; 59 64 maintainers = with maintainers; [ lovesegfault ] ++ teams.rocm.members; 60 65 platforms = platforms.linux; 61 - broken = stdenv.isAarch64; 66 + broken = stdenv.isAarch64 || finalAttrs.version != stdenv.cc.version; 62 67 }; 63 68 })
+1
pkgs/tools/system/rocm-smi/default.nix
··· 37 37 license = with licenses; [ mit ]; 38 38 maintainers = with maintainers; [ lovesegfault ] ++ teams.rocm.members; 39 39 platforms = [ "x86_64-linux" ]; 40 + broken = finalAttrs.version != stdenv.cc.version; 40 41 }; 41 42 })
+59 -23
pkgs/top-level/all-packages.nix
··· 15133 15133 rml = callPackage ../development/compilers/rml { }; 15134 15134 15135 15135 composable_kernel = callPackage ../development/libraries/composable_kernel { 15136 - inherit (llvmPackages) openmp; 15136 + inherit (llvmPackages_rocm) openmp clang-tools-extra; 15137 + stdenv = rocmClangStdenv; 15137 15138 }; 15138 15139 15139 15140 clang-ocl = callPackage ../development/libraries/clang-ocl { 15140 - inherit (llvmPackages_rocm) clang; 15141 + stdenv = rocmClangStdenv; 15141 15142 }; 15142 15143 15143 15144 rgxg = callPackage ../tools/text/rgxg { }; 15144 15145 15145 - rocclr = callPackage ../development/libraries/rocclr { }; 15146 + rocclr = callPackage ../development/libraries/rocclr { 15147 + stdenv = rocmClangStdenv; 15148 + }; 15146 15149 15147 15150 hip = callPackage ../development/compilers/hip { 15148 15151 inherit (llvmPackages_rocm) clang llvm; 15149 15152 }; 15150 15153 15151 - hipcub = callPackage ../development/libraries/hipcub { }; 15154 + hipcub = callPackage ../development/libraries/hipcub { 15155 + stdenv = rocmClangStdenv; 15156 + }; 15152 15157 15153 - hipsparse = callPackage ../development/libraries/hipsparse { }; 15158 + hipsparse = callPackage ../development/libraries/hipsparse { 15159 + stdenv = rocmClangStdenv; 15160 + }; 15154 15161 15155 - rccl = callPackage ../development/libraries/rccl { }; 15162 + rccl = callPackage ../development/libraries/rccl { 15163 + stdenv = rocmClangStdenv; 15164 + }; 15156 15165 15157 - rocm-cmake = callPackage ../development/tools/build-managers/rocm-cmake { }; 15166 + rocm-cmake = callPackage ../development/tools/build-managers/rocm-cmake { 15167 + stdenv = rocmClangStdenv; 15168 + }; 15158 15169 15159 15170 rocm-comgr = callPackage ../development/libraries/rocm-comgr { 15160 - inherit (llvmPackages_rocm) clang llvm; 15171 + stdenv = rocmClangStdenv; 15161 15172 }; 15162 15173 15163 15174 rocm-device-libs = callPackage ../development/libraries/rocm-device-libs { 15164 - inherit (llvmPackages_rocm) clang llvm; 15175 + stdenv = rocmClangStdenv; 15165 15176 }; 15166 15177 15167 - rocm-opencl-icd = callPackage ../development/libraries/rocm-opencl-icd { }; 15178 + rocm-opencl-icd = callPackage ../development/libraries/rocm-opencl-icd { 15179 + stdenv = rocmClangStdenv; 15180 + }; 15168 15181 15169 15182 rocm-opencl-runtime = callPackage ../development/libraries/rocm-opencl-runtime { 15170 - inherit (llvmPackages_rocm) clang llvm; 15183 + stdenv = rocmClangStdenv; 15171 15184 }; 15172 15185 15173 15186 rocm-runtime = callPackage ../development/libraries/rocm-runtime { 15174 - inherit (llvmPackages_rocm) llvm; 15187 + stdenv = rocmClangStdenv; 15175 15188 }; 15176 15189 15177 - rocm-smi = python3Packages.callPackage ../tools/system/rocm-smi { }; 15190 + rocm-smi = python3Packages.callPackage ../tools/system/rocm-smi { 15191 + stdenv = rocmClangStdenv; 15192 + }; 15178 15193 15179 - rocm-thunk = callPackage ../development/libraries/rocm-thunk { }; 15194 + rocm-thunk = callPackage ../development/libraries/rocm-thunk { 15195 + stdenv = rocmClangStdenv; 15196 + }; 15180 15197 15181 - rocminfo = callPackage ../development/tools/rocminfo { }; 15198 + rocminfo = callPackage ../development/tools/rocminfo { 15199 + stdenv = rocmClangStdenv; 15200 + }; 15182 15201 15183 15202 rocmlir = callPackage ../development/libraries/rocmlir { 15184 - inherit (llvmPackages_rocm) clang; 15203 + stdenv = rocmClangStdenv; 15185 15204 }; 15186 15205 15187 - rocprim = callPackage ../development/libraries/rocprim { }; 15206 + rocmlir-rock = rocmlir.override { 15207 + buildRockCompiler = true; 15208 + }; 15188 15209 15189 - rocsparse = callPackage ../development/libraries/rocsparse { }; 15210 + rocprim = callPackage ../development/libraries/rocprim { 15211 + stdenv = rocmClangStdenv; 15212 + }; 15190 15213 15191 - rocfft = callPackage ../development/libraries/rocfft { }; 15214 + rocsparse = callPackage ../development/libraries/rocsparse { 15215 + stdenv = rocmClangStdenv; 15216 + }; 15192 15217 15193 - rocrand = callPackage ../development/libraries/rocrand { }; 15218 + rocfft = callPackage ../development/libraries/rocfft { 15219 + inherit (llvmPackages_rocm) openmp; 15220 + stdenv = rocmClangStdenv; 15221 + }; 15194 15222 15195 - tensile = python3Packages.callPackage ../development/libraries/tensile { }; 15223 + rocrand = callPackage ../development/libraries/rocrand { 15224 + stdenv = rocmClangStdenv; 15225 + }; 15226 + 15227 + tensile = python3Packages.callPackage ../development/libraries/tensile { 15228 + stdenv = rocmClangStdenv; 15229 + }; 15196 15230 15197 15231 rocwmma = callPackage ../development/libraries/rocwmma { 15198 15232 inherit (llvmPackages) openmp; ··· 15237 15203 }; 15238 15204 15239 15205 miopengemm = callPackage ../development/libraries/miopengemm { 15240 - inherit (llvmPackages_rocm) clang; 15206 + stdenv = rocmClangStdenv; 15241 15207 }; 15242 15208 15243 15209 rocthrust = callPackage ../development/libraries/rocthrust { }; 15244 15210 15245 15211 miopen = callPackage ../development/libraries/miopen { 15246 - inherit (llvmPackages_rocm) clang llvm; 15212 + inherit (llvmPackages_rocm) llvm clang-tools-extra; 15213 + stdenv = rocmClangStdenv; 15214 + rocmlir = rocmlir-rock; 15247 15215 boost = boost.override { enableStatic = true; }; 15248 15216 }; 15249 15217