cuda-samples icon indicating copy to clipboard operation
cuda-samples copied to clipboard

CDP is not detected when building samples on Nix

Open brynblack opened this issue 9 months ago • 1 comments

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

brynblack avatar May 17 '24 06:05 brynblack