50 lines
1.0 KiB
Nix
50 lines
1.0 KiB
Nix
{
|
|
stdenv
|
|
, lib
|
|
, cudatoolkit
|
|
, cudaPackages
|
|
, autoAddDriverRunpath
|
|
, strace
|
|
}:
|
|
|
|
stdenv.mkDerivation (finalAttrs: {
|
|
name = "cudainfo";
|
|
src = ./.;
|
|
buildInputs = [
|
|
cudatoolkit # Required for nvcc
|
|
cudaPackages.cuda_cudart.static # Required for -lcudart_static
|
|
autoAddDriverRunpath
|
|
];
|
|
installPhase = ''
|
|
mkdir -p $out/bin
|
|
cp -a cudainfo $out/bin
|
|
'';
|
|
passthru.gpuCheck = stdenv.mkDerivation {
|
|
name = "cudainfo-test";
|
|
requiredSystemFeatures = [ "cuda" ];
|
|
dontBuild = true;
|
|
nativeCheckInputs = [
|
|
finalAttrs.finalPackage # The cudainfo package from above
|
|
strace # When it fails, it will show the trace
|
|
];
|
|
dontUnpack = true;
|
|
doCheck = true;
|
|
checkPhase = ''
|
|
if ! cudainfo; then
|
|
set -x
|
|
cudainfo=$(command -v cudainfo)
|
|
ldd $cudainfo
|
|
readelf -d $cudainfo
|
|
strace -f $cudainfo
|
|
set +x
|
|
fi
|
|
'';
|
|
installPhase = "touch $out";
|
|
};
|
|
|
|
meta = {
|
|
platforms = [ "x86_64-linux" ];
|
|
maintainers = with lib.maintainers.bsc; [ rarias ];
|
|
};
|
|
})
|