diff --git a/pkgs/development/rocm-modules/5/clr/default.nix b/pkgs/development/rocm-modules/5/clr/default.nix index d3f811dcc422..c0d4de8cbb7c 100644 --- a/pkgs/development/rocm-modules/5/clr/default.nix +++ b/pkgs/development/rocm-modules/5/clr/default.nix @@ -1,5 +1,6 @@ { lib , stdenv +, callPackage , fetchFromGitHub , rocmUpdateScript , makeWrapper @@ -13,6 +14,7 @@ , rocm-runtime , roctracer , rocminfo +, rocm-smi , numactl , libGL , libxml2 @@ -35,6 +37,11 @@ in stdenv.mkDerivation (finalAttrs: { pname = "clr"; version = "5.7.0"; + outputs = [ + "out" + "icd" + ]; + src = fetchFromGitHub { owner = "ROCm-Developer-Tools"; repo = "clr"; @@ -106,6 +113,10 @@ in stdenv.mkDerivation (finalAttrs: { # 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 ''; passthru = { @@ -134,6 +145,13 @@ in stdenv.mkDerivation (finalAttrs: { owner = finalAttrs.src.owner; repo = finalAttrs.src.repo; }; + + impureTests = { + clr-icd = callPackage ./test.nix { + inherit rocm-smi; + clr = finalAttrs.finalPackage; + }; + }; }; meta = with lib; { diff --git a/pkgs/development/rocm-modules/5/clr/test.nix b/pkgs/development/rocm-modules/5/clr/test.nix new file mode 100644 index 000000000000..c02bb4da8886 --- /dev/null +++ b/pkgs/development/rocm-modules/5/clr/test.nix @@ -0,0 +1,23 @@ +{ lib +, makeImpureTest +, clinfo +, clr +, rocm-smi +}: + +makeImpureTest { + name = "clr-icd"; + testedPackage = "rocmPackages.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; + }; +} diff --git a/pkgs/development/rocm-modules/5/default.nix b/pkgs/development/rocm-modules/5/default.nix index 838874f398e2..ac8a32ef5176 100644 --- a/pkgs/development/rocm-modules/5/default.nix +++ b/pkgs/development/rocm-modules/5/default.nix @@ -86,7 +86,7 @@ in rec { # Replaces hip, opencl-runtime, and rocclr clr = callPackage ./clr { - inherit rocmUpdateScript hip-common hipcc rocm-device-libs rocm-comgr rocm-runtime roctracer rocminfo; + inherit rocmUpdateScript hip-common hipcc rocm-device-libs rocm-comgr rocm-runtime roctracer rocminfo rocm-smi; inherit (llvm) clang; stdenv = llvm.rocmClangStdenv; };