libtorch-bin: fix passthru.tests for CUDA

- Provide the CUDA toolkit and CuDNN dependencies.
- Expose libcuda.so stub to run the test in the sandbox.
This commit is contained in:
Daniël de Kok
2021-02-15 18:58:01 +01:00
parent c4482a0c2a
commit d5b676eb34
2 changed files with 44 additions and 7 deletions
@@ -1,6 +1,28 @@
{ stdenv, cmake, libtorch-bin, symlinkJoin }:
{ lib
, stdenv
, cmake
, libtorch-bin
, linkFarm
, symlinkJoin
stdenv.mkDerivation {
, cudaSupport
, cudatoolkit
, cudnn
}:
let
cudatoolkit_joined = symlinkJoin {
name = "${cudatoolkit.name}-unsplit";
paths = [ cudatoolkit.out cudatoolkit.lib ];
};
# We do not have access to /run/opengl-driver/lib in the sandbox,
# so use a stub instead.
cudaStub = linkFarm "cuda-stub" [{
name = "libcuda.so.1";
path = "${cudatoolkit}/lib/stubs/libcuda.so";
}];
in stdenv.mkDerivation {
pname = "libtorch-test";
version = libtorch-bin.version;
@@ -8,7 +30,11 @@ stdenv.mkDerivation {
nativeBuildInputs = [ cmake ];
buildInputs = [ libtorch-bin ];
buildInputs = [ libtorch-bin ] ++
lib.optionals cudaSupport [ cudnn ];
cmakeFlags = lib.optionals cudaSupport
[ "-DCUDA_TOOLKIT_ROOT_DIR=${cudatoolkit_joined}" ];
doCheck = true;
@@ -17,6 +43,7 @@ stdenv.mkDerivation {
'';
checkPhase = ''
./test
LD_LIBRARY_PATH=${cudaStub}''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH \
./test
'';
}