summary refs log tree commit diff
path: root/pkgs/development/rocm-modules
diff options
context:
space:
mode:
authorMadoura <madouura@gmail.com>2023-10-05 11:52:09 -0500
committerMadoura <madouura@gmail.com>2023-10-09 16:38:53 -0500
commitae91d1330e833c8b20be31317cb6e27a43974ef5 (patch)
tree4a9fc1057a29b53ada48cf6bbf8578c73dbc6cfd /pkgs/development/rocm-modules
parenta3a45bea58e965b90e1abcea08feed78035b32db (diff)
downloadnixpkgs-ae91d1330e833c8b20be31317cb6e27a43974ef5.tar
nixpkgs-ae91d1330e833c8b20be31317cb6e27a43974ef5.tar.gz
nixpkgs-ae91d1330e833c8b20be31317cb6e27a43974ef5.tar.bz2
nixpkgs-ae91d1330e833c8b20be31317cb6e27a43974ef5.tar.lz
nixpkgs-ae91d1330e833c8b20be31317cb6e27a43974ef5.tar.xz
nixpkgs-ae91d1330e833c8b20be31317cb6e27a43974ef5.tar.zst
nixpkgs-ae91d1330e833c8b20be31317cb6e27a43974ef5.zip
rocmPackages.clr: replace rocm-opencl-icd
Diffstat (limited to 'pkgs/development/rocm-modules')
-rw-r--r--pkgs/development/rocm-modules/5/clr/default.nix18
-rw-r--r--pkgs/development/rocm-modules/5/clr/test.nix23
-rw-r--r--pkgs/development/rocm-modules/5/default.nix2
3 files changed, 42 insertions, 1 deletions
diff --git a/pkgs/development/rocm-modules/5/clr/default.nix b/pkgs/development/rocm-modules/5/clr/default.nix
index d3f811dcc42..c0d4de8cbb7 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 00000000000..c02bb4da888
--- /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 838874f398e..ac8a32ef517 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;
   };