cuda-samples
cuda-samples copied to clipboard
CDP is not detected when building samples on Nix
Details
When trying to compile cuda-samples
under nixos-unstable
, it will always error with undefined references to CDP related libraries and functions.
flake.nix
{
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
};
outputs = { nixpkgs, ... }:
let
system = "x86_64-linux";
pkgs = import nixpkgs {
inherit system;
config = {
allowUnfree = true;
permittedInsecurePackages = [
"freeimage-unstable-2021-11-01"
];
};
};
shell = pkgs.mkShell {
name = "cuda-env-shell";
buildInputs = with pkgs; [
cudatoolkit
# samples
];
shellHook = ''
export CUDA_PATH=${pkgs.cudatoolkit}
export EXTRA_LDFLAGS="-L/lib -L${pkgs.linuxPackages.nvidia_x11}/lib"
export EXTRA_CCFLAGS="-I/usr/include"
export LD_LIBRARY_PATH="${pkgs.linuxPackages.nvidia_x11}/lib"
'';
};
in
{
devShells.${system}.default = shell;
packages.${system}.cuda-samples = pkgs.callPackage ./generic.nix {
cudaVersion = "12.4.1";
hash = "sha256-vJmqAIrOiYTXuPLcqBXDdayQvdLpJGJYK60KEDT1sgo=";
backendStdenv = pkgs.cudaPackages.backendStdenv;
};
};
}
Error
make[1]: Leaving directory '/build/source/Samples/3_CUDA_Features/bindlessTexture'
make[1]: Entering directory '/build/source/Samples/3_CUDA_Features/cdpAdvancedQuicksort'
>>> GCC Version is greater or equal to 5.0.0 <<<
/nix/store/cxb6q2wdmlxbhxsxhqz5s96q5vjniig4-cuda-merged-12.2/bin/nvcc -ccbin g++ -I../../../Common -m64 -dc -maxrregcount=64 --std=c++14 --threads 0 -gencode arch=compute_50,code=sm_50 -genco>
/nix/store/cxb6q2wdmlxbhxsxhqz5s96q5vjniig4-cuda-merged-12.2/bin/nvcc -ccbin g++ -I../../../Common -m64 -dc -maxrregcount=64 --std=c++14 --threads 0 -gencode arch=compute_50,code=sm_50 -genco>
/nix/store/cxb6q2wdmlxbhxsxhqz5s96q5vjniig4-cuda-merged-12.2/bin/nvcc -ccbin g++ -m64 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_60,code=sm_>
nvlink error : Undefined reference to '__cudaCDP2GetLastError' in 'cdpAdvancedQuicksort.o' (target: sm_50)
nvlink error : Undefined reference to '__cudaCDP2PeekAtLastError' in 'cdpAdvancedQuicksort.o' (target: sm_50)
nvlink error : Undefined reference to '__cudaCDP2GetErrorString' in 'cdpAdvancedQuicksort.o' (target: sm_50)
nvlink error : Undefined reference to '__cudaCDP2StreamCreateWithFlags' in 'cdpAdvancedQuicksort.o' (target: sm_50)
nvlink error : Undefined reference to '__cudaCDP2MemcpyAsync' in 'cdpAdvancedQuicksort.o' (target: sm_50)
nvlink error : Undefined reference to '__cudaCDP2GetParameterBufferV2' in 'cdpAdvancedQuicksort.o' (target: sm_50)
nvlink error : Undefined reference to '__cudaCDP2LaunchDeviceV2' in 'cdpAdvancedQuicksort.o' (target: sm_50)
make[1]: *** [Makefile:370: cdpAdvancedQuicksort] Error 255
make[1]: Leaving directory '/build/source/Samples/3_CUDA_Features/cdpAdvancedQuicksort'
make: *** [Makefile:45: Samples/3_CUDA_Features/cdpAdvancedQuicksort/Makefile.ph_build] Error 2