Unverified Commit 4af7dad6 authored by Madoura's avatar Madoura
Browse files

rocfft: split base outputs for hydra

Split the base derivation's outputs to hopefully avoid hydra failing the base due to the output limit and not continuing with the rest.
This and all hydra commits for rocfft and composable_kernel will be reverted if this does not work.
parent 9cb1ca6d
Loading
Loading
Loading
Loading
+40 −14
Original line number Diff line number Diff line
@@ -19,6 +19,11 @@
}:

let
  name-zero = "librocfft-device-0.so.0.1";
  name-one = "librocfft-device-1.so.0.1";
  name-two = "librocfft-device-2.so.0.1";
  name-three = "librocfft-device-3.so.0.1";

  # This is over 3GB, to allow hydra caching we separate it
  rf = stdenv.mkDerivation (finalAttrs: {
    pname = "rocfft";
@@ -26,6 +31,10 @@ let

    outputs = [
      "out"
      "libzero"
      "libone"
      "libtwo"
      "libthree"
    ] ++ lib.optionals buildTests [
      "test"
    ] ++ lib.optionals buildBenchmarks [
@@ -80,7 +89,16 @@ let
      "-DBUILD_CLIENTS_SAMPLES=ON"
    ];

    postInstall = lib.optionalString buildTests ''
    postInstall = ''
      mv $out/lib/${name-zero} $libzero
      mv $out/lib/${name-one} $libone
      mv $out/lib/${name-two} $libtwo
      mv $out/lib/${name-three} $libthree
      ln -s $libzero $out/lib/${name-zero}
      ln -s $libone $out/lib/${name-one}
      ln -s $libtwo $out/lib/${name-two}
      ln -s $libthree $out/lib/${name-three}
    '' + lib.optionalString buildTests ''
      mkdir -p $test/{bin,lib/fftw}
      cp -a $out/bin/* $test/bin
      ln -s ${fftw}/lib/libfftw*.so $test/lib/fftw
@@ -113,23 +131,31 @@ let
    };
  });

  rf-zero = runCommand "librocfft-device-0.so.0.1" { preferLocalBuild = true; } ''
    cp -a ${rf}/lib/$name $out
  rf-zero = runCommand name-zero { preferLocalBuild = true; } ''
    cp -a ${rf.libzero} $out
  '';

  rf-one = runCommand "librocfft-device-1.so.0.1" { preferLocalBuild = true; } ''
    cp -a ${rf}/lib/$name $out
  rf-one = runCommand name-one { preferLocalBuild = true; } ''
    cp -a ${rf.libone} $out
  '';

  rf-two = runCommand "librocfft-device-2.so.0.1" { preferLocalBuild = true; } ''
    cp -a ${rf}/lib/$name $out
  rf-two = runCommand name-two { preferLocalBuild = true; } ''
    cp -a ${rf.libtwo} $out
  '';

  rf-three = runCommand "librocfft-device-3.so.0.1" { preferLocalBuild = true; } ''
    cp -a ${rf}/lib/$name $out
  rf-three = runCommand name-three { preferLocalBuild = true; } ''
    cp -a ${rf.libthree} $out
  '';
in stdenv.mkDerivation {
  inherit (rf) pname version outputs src passthru meta;
  inherit (rf) pname version src passthru meta;

  outputs = [
    "out"
  ] ++ lib.optionals buildTests [
    "test"
  ] ++ lib.optionals buildBenchmarks [
    "benchmark"
  ];

  dontUnpack = true;
  dontPatch = true;
@@ -140,10 +166,10 @@ in stdenv.mkDerivation {
    runHook preInstall

    mkdir -p $out/lib
    cp -as ${rf-zero} $out/lib/${rf-zero.name}
    cp -as ${rf-one} $out/lib/${rf-one.name}
    cp -as ${rf-two} $out/lib/${rf-two.name}
    cp -as ${rf-three} $out/lib/${rf-three.name}
    ln -sf ${rf-zero} $out/lib/${name-zero}
    ln -sf ${rf-one} $out/lib/${name-one}
    ln -sf ${rf-two} $out/lib/${name-two}
    ln -sf ${rf-three} $out/lib/${name-three}
    cp -an ${rf}/* $out
  '' + lib.optionalString buildTests ''
    cp -a ${rf.test} $test