Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
d6ff35d
rocmPackages: move over everything from 5/ folder to make 6/
mschwaig Mar 21, 2024
81fa81f
rocmPackages: re-add ROCm 5.7
mschwaig Mar 21, 2024
988cb8c
Merge branch 'rocm-6.0.2-move' into rocm-6.0.2
mschwaig Mar 21, 2024
9fe4830
rocmPackages: introduce separate package sets for version 5 and 6
mschwaig Feb 10, 2024
e68d1f5
rocmPackages: remove version checks from update scripts
mschwaig Feb 9, 2024
96359fa
rocmPackages: auto-update using nix-update
mschwaig Feb 10, 2024
c0682d3
rocmPackages: deprecate miopengemm
mschwaig Feb 10, 2024
f8239b2
rocmPackages: update source for rocm-docs-core
mschwaig Feb 10, 2024
bc5f473
rocmPackages: stop marking versions larger than 6.0.0 as broken
mschwaig Feb 9, 2024
5fdc694
rocmPackages: manually update a few packages
mschwaig Feb 9, 2024
12806ec
rocmPackages: fix rocm-runtime build
mschwaig Feb 10, 2024
1011991
rocmPackaes: fix hipify build
mschwaig Feb 10, 2024
35c73f2
rocmPackages: fix CLR build
mschwaig Feb 10, 2024
fee0f69
rocmPackages: add git to composable_kernel build
mschwaig Feb 10, 2024
3fe25ab
rocmPackages: fix rocmlir build
mschwaig Feb 11, 2024
561cac4
rocmPackages: fix MIOpen build
mschwaig Feb 11, 2024
3bc7447
rocmPackages: set GPU_TARGETS for migraphx
mschwaig Feb 11, 2024
bc377c1
rocmPackages: fix rccl build by adding version info to clr output
mschwaig Feb 14, 2024
edd570c
rocmPackages: skip building composable_kernel profiler for now
mschwaig Feb 15, 2024
2bddd18
rocmPackages: fix version handling
ScatteredRay Feb 29, 2024
10de03d
rocmPackages: fix rocprofiler build
ScatteredRay Feb 29, 2024
f3b4f4a
rocmPackages: stop adding symlinks to hipify output
ScatteredRay Feb 29, 2024
f29675f
rocmPackages: use wildcard when patching clr shebangs
ScatteredRay Feb 29, 2024
5eac148
rocmPackages: remove unnecessary fixup phase when building rocm-runtime
ScatteredRay Feb 29, 2024
44b03bd
rocmPackages: remove gcc12Stdenv usage, move rocgdb to rocmClangStdenv
ScatteredRay Feb 29, 2024
e908ad7
opensycl: build against ROCm 5.7
mschwaig Mar 2, 2024
68e19d4
magma: build against ROCm 5.7
mschwaig Mar 2, 2024
1c84252
rocmPackages: fix rocmlir build (e2e test generation)
mschwaig Mar 2, 2024
50bf7fb
rocmPackages: remove miopen-opencl since its deprecated
mschwaig Mar 3, 2024
37a4ad0
rocmPackages: update deprecation notice of miopengemm
mschwaig Mar 3, 2024
4b2c4d2
rocmPackages: mark migraphx as broken
mschwaig Mar 17, 2024
fdf9078
rocmPackages: add myself as a maintainer
mschwaig Mar 21, 2024
9a4f48b
rocmPackages: use fetchpatch to get clr patches
mschwaig Mar 22, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions maintainers/team-list.nix
Original file line number Diff line number Diff line change
Expand Up @@ -879,6 +879,7 @@ with lib.maintainers; {
members = [
Madouura
Flakebi
mschwaig
];
githubTeams = [
"rocm-maintainers"
Expand Down
4 changes: 3 additions & 1 deletion pkgs/development/compilers/opensycl/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,13 @@
, libffi
, makeWrapper
, config
, rocmPackages
, rocmPackages_5
, rocmSupport ? config.rocmSupport
}:
let
inherit (llvmPackages_15) stdenv;
# move to newer ROCm version once supported
rocmPackages = rocmPackages_5;
in
stdenv.mkDerivation rec {
pname = "OpenSYCL";
Expand Down
5 changes: 4 additions & 1 deletion pkgs/development/libraries/science/math/magma/generic.nix
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
, fetchurl
, gfortran
, gpuTargets ? [ ] # Non-CUDA targets, that is HIP
, rocmPackages
, rocmPackages_5
, lapack
, lib
, libpthreadstubs
Expand Down Expand Up @@ -44,6 +44,9 @@ let
inherit (effectiveCudaPackages) cudaAtLeast cudaFlags cudaOlder;
inherit (cudaFlags) cudaCapabilities;

# move to newer ROCm version once supported
rocmPackages = rocmPackages_5;

# NOTE: The lists.subtractLists function is perhaps a bit unintuitive. It subtracts the elements
# of the first list *from* the second list. That means:
# lists.subtractLists a b = b - a
Expand Down
42 changes: 42 additions & 0 deletions pkgs/development/rocm-modules/6/clang-ocl/default.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
{ lib
, stdenv
, fetchFromGitHub
, rocmUpdateScript
, cmake
, rocm-cmake
, rocm-device-libs
}:

stdenv.mkDerivation (finalAttrs: {
pname = "clang-ocl";
version = "6.0.2";

src = fetchFromGitHub {
owner = "ROCm";
repo = "clang-ocl";
rev = "rocm-${finalAttrs.version}";
hash = "sha256-uMSvcVJj+me2E+7FsXZ4l4hTcK6uKEegXpkHGcuist0=";
};

nativeBuildInputs = [
cmake
rocm-cmake
];

buildInputs = [ rocm-device-libs ];

passthru.updateScript = rocmUpdateScript {
name = finalAttrs.pname;
owner = finalAttrs.src.owner;
repo = finalAttrs.src.repo;
};

meta = with lib; {
description = "OpenCL compilation with clang compiler";
homepage = "https://github.com/ROCm/clang-ocl";
license = with licenses; [ mit ];
maintainers = teams.rocm.members;
platforms = platforms.linux;
broken = versions.minor finalAttrs.version != versions.minor stdenv.cc.version || versionAtLeast finalAttrs.version "7.0.0";
};
})
189 changes: 189 additions & 0 deletions pkgs/development/rocm-modules/6/clr/default.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,189 @@
{ lib
, stdenv
, callPackage
, fetchFromGitHub
, fetchpatch
, rocmUpdateScript
, makeWrapper
, cmake
, perl
, clang
, hip-common
, hipcc
, rocm-device-libs
, rocm-comgr
, rocm-runtime
, roctracer
, rocminfo
, rocm-smi
, numactl
, libGL
, libxml2
, libX11
, python3Packages
}:

let
wrapperArgs = [
"--prefix PATH : $out/bin"
"--prefix LD_LIBRARY_PATH : ${rocm-runtime}"
"--set HIP_PLATFORM amd"
"--set HIP_PATH $out"
"--set HIP_CLANG_PATH ${clang}/bin"
"--set DEVICE_LIB_PATH ${rocm-device-libs}/amdgcn/bitcode"
"--set HSA_PATH ${rocm-runtime}"
"--set ROCM_PATH $out"
];
in stdenv.mkDerivation (finalAttrs: {
pname = "clr";
version = "6.0.2";

outputs = [
"out"
"icd"
];

src = fetchFromGitHub {
owner = "ROCm";
repo = "clr";
rev = "rocm-${finalAttrs.version}";
hash = "sha256-ZMpA7vCW2CcpGdBLZfPimMHcgjhN1PHuewJiYwZMgGY=";
};

nativeBuildInputs = [
makeWrapper
cmake
perl
python3Packages.python
python3Packages.cppheaderparser
];

buildInputs = [
numactl
libGL
libxml2
libX11
];

propagatedBuildInputs = [
rocm-device-libs
rocm-comgr
rocm-runtime
rocminfo
];

cmakeFlags = [
"-DCMAKE_POLICY_DEFAULT_CMP0072=NEW" # Prefer newer OpenGL libraries
"-DCLR_BUILD_HIP=ON"
"-DCLR_BUILD_OCL=ON"
"-DHIP_COMMON_DIR=${hip-common}"
"-DHIPCC_BIN_DIR=${hipcc}/bin"
"-DHIP_PLATFORM=amd"
"-DPROF_API_HEADER_PATH=${roctracer.src}/inc/ext"
"-DROCM_PATH=${rocminfo}"

# Temporarily set variables to work around upstream CMakeLists issue
# Can be removed once https://github.com/ROCm/rocm-cmake/issues/121 is fixed
"-DCMAKE_INSTALL_BINDIR=bin"
"-DCMAKE_INSTALL_INCLUDEDIR=include"
"-DCMAKE_INSTALL_LIBDIR=lib"
];

patches = [
(fetchpatch {
name = "add-missing-operators.patch";
url = "https://github.com/ROCm/clr/commit/86bd518981b364c138f9901b28a529899d8654f3.patch";
hash = "sha256-lbswri+zKLxif0hPp4aeJDeVfadhWZz4z+m+G2XcCPI=";
})
(fetchpatch {
name = "static-functions.patch";
url = "https://github.com/ROCm/clr/commit/77c581a3ebd47b5e2908973b70adea66891159ee.patch";
hash = "sha256-auBedbd7rghlKav7A9V6l64J7VmtE9GizIdi5gWj+fs=";
})
];

postPatch = ''
patchShebangs hipamd/*.sh
patchShebangs hipamd/src

# We're not on Windows so these are never installed to hipcc...
substituteInPlace hipamd/CMakeLists.txt \
--replace "install(PROGRAMS \''${HIPCC_BIN_DIR}/hipcc.bat DESTINATION bin)" "" \
--replace "install(PROGRAMS \''${HIPCC_BIN_DIR}/hipconfig.bat DESTINATION bin)" ""

substituteInPlace hipamd/src/hip_embed_pch.sh \
--replace "\''$LLVM_DIR/bin/clang" "${clang}/bin/clang"
'';

postInstall = ''
patchShebangs $out/bin

# hipcc.bin and hipconfig.bin is mysteriously never installed
cp -a ${hipcc}/bin/{hipcc.bin,hipconfig.bin} $out/bin

wrapProgram $out/bin/hipcc.bin ${lib.concatStringsSep " " wrapperArgs}
wrapProgram $out/bin/hipconfig.bin ${lib.concatStringsSep " " wrapperArgs}
wrapProgram $out/bin/hipcc.pl ${lib.concatStringsSep " " wrapperArgs}
wrapProgram $out/bin/hipconfig.pl ${lib.concatStringsSep " " wrapperArgs}

# Just link rocminfo, it's easier
ln -s ${rocminfo}/bin/* $out/bin

# Replace rocm-opencl-icd functionality
mkdir -p $icd/etc/OpenCL/vendors
echo "$out/lib/libamdocl64.so" > $icd/etc/OpenCL/vendors/amdocl64.icd

# add version info to output (downstream rocmPackages look for this)
mkdir $out/.info
echo "${finalAttrs.version}" > $out/.info/version
'';

passthru = {
# All known and valid general GPU targets
# We cannot use this for each ROCm library, as each defines their own supported targets
# See: https://github.com/ROCm/ROCm/blob/77cbac4abab13046ee93d8b5bf410684caf91145/README.md#library-target-matrix
gpuTargets = lib.forEach [
"803"
"900"
"906"
"908"
"90a"
"940"
"941"
"942"
"1010"
"1012"
"1030"
"1100"
"1101"
"1102"
] (target: "gfx${target}");

updateScript = rocmUpdateScript {
name = finalAttrs.pname;
owner = finalAttrs.src.owner;
repo = finalAttrs.src.repo;
page = "tags?per_page=1";
filter = ".[0].name | split(\"-\") | .[1]";
};

impureTests = {
rocm-smi = callPackage ./test-rocm-smi.nix {
inherit rocm-smi;
clr = finalAttrs.finalPackage;
};
opencl-example = callPackage ./test-opencl-example.nix {
clr = finalAttrs.finalPackage;
};
};
};

meta = with lib; {
description = "AMD Common Language Runtime for hipamd, opencl, and rocclr";
homepage = "https://github.com/ROCm/clr";
license = with licenses; [ mit ];
maintainers = with maintainers; [ lovesegfault ] ++ teams.rocm.members;
platforms = platforms.linux;
broken = versions.minor finalAttrs.version != versions.minor stdenv.cc.version || versionAtLeast finalAttrs.version "7.0.0";
};
})
75 changes: 75 additions & 0 deletions pkgs/development/rocm-modules/6/clr/test-opencl-example.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
{ lib
, stdenv
, makeImpureTest
, fetchFromGitHub
, clr
, cmake
, pkg-config
, glew
, freeglut
, opencl-headers
, ocl-icd
}:

let

examples = stdenv.mkDerivation {
pname = "amd-app-samples";
version = "2018-06-10";

src = fetchFromGitHub {
owner = "OpenCL";
repo = "AMD_APP_samples";
rev = "54da6ca465634e78fc51fc25edf5840467ee2411";
hash = "sha256-qARQpUiYsamHbko/I1gPZE9pUGJ+3396Vk2n7ERSftA=";
};

nativeBuildInputs = [ cmake pkg-config ];

buildInputs = [ glew freeglut opencl-headers ocl-icd ];

installPhase = ''
runHook preInstall

mkdir -p $out/bin
# Example path is bin/x86_64/Release/cl/Reduction/Reduction
cp -r bin/*/*/*/*/* $out/bin/

runHook postInstall
'';

cmakeFlags = [ "-DBUILD_CPP_CL=OFF" ];

meta = with lib; {
description = "Samples from the AMD APP SDK (with OpenCRun support) ";
homepage = "https://github.com/OpenCL/AMD_APP_samples";
license = licenses.bsd2;
platforms = platforms.linux;
maintainers = lib.teams.rocm.members;
};
};

in
makeImpureTest {
name = "opencl-example";
testedPackage = "rocmPackages_6.clr";

sandboxPaths = [ "/sys" "/dev/dri" "/dev/kfd" ];

nativeBuildInputs = [ examples ];

OCL_ICD_VENDORS = "${clr.icd}/etc/OpenCL/vendors";

testScript = ''
# Examples load resources from current directory
cd ${examples}/bin
echo OCL_ICD_VENDORS=$OCL_ICD_VENDORS
pwd

HelloWorld | grep HelloWorld
'';

meta = with lib; {
maintainers = teams.rocm.members;
};
}
23 changes: 23 additions & 0 deletions pkgs/development/rocm-modules/6/clr/test-rocm-smi.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
{ lib
, makeImpureTest
, clinfo
, clr
, rocm-smi
}:

makeImpureTest {
name = "rocm-smi";
testedPackage = "rocmPackages_6.clr";
nativeBuildInputs = [ clinfo rocm-smi ];
OCL_ICD_VENDORS = "${clr.icd}/etc/OpenCL/vendors";

testScript = ''
# Test fails if the number of platforms is 0
clinfo | grep -E 'Number of platforms * [1-9]'
rocm-smi | grep -A1 GPU
'';

meta = with lib; {
maintainers = teams.rocm.members;
};
}
Loading