nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 backendStdenv,
3 cmake,
4 cuda_cccl,
5 cuda_cudart,
6 cuda_nvcc,
7 cudaNamePrefix,
8 flags,
9 lib,
10 libcublas,
11 saxpy,
12}:
13backendStdenv.mkDerivation (finalAttrs: {
14 __structuredAttrs = true;
15 strictDeps = true;
16
17 name = "${cudaNamePrefix}-${finalAttrs.pname}-${finalAttrs.version}";
18 pname = "saxpy";
19 version = "0-unstable-2023-07-11";
20
21 src = ./src;
22
23 nativeBuildInputs = [
24 cmake
25 cuda_nvcc
26 ];
27
28 buildInputs = [
29 cuda_cccl
30 cuda_cudart
31 libcublas
32 ];
33
34 cmakeFlags = [
35 (lib.cmakeBool "CMAKE_VERBOSE_MAKEFILE" true)
36 (lib.cmakeFeature "CMAKE_CUDA_ARCHITECTURES" flags.cmakeCudaArchitecturesString)
37 ];
38
39 passthru.gpuCheck = saxpy.overrideAttrs (_: {
40 requiredSystemFeatures = [ "cuda" ];
41 doInstallCheck = true;
42 postInstallCheck = ''
43 $out/bin/${saxpy.meta.mainProgram or (lib.getName saxpy)}
44 '';
45 });
46
47 meta = {
48 description = "Simple (Single-precision AX Plus Y) FindCUDAToolkit.cmake example for testing cross-compilation";
49 license = lib.licenses.mit;
50 teams = [ lib.teams.cuda ];
51 mainProgram = "saxpy";
52 platforms = lib.platforms.unix;
53 };
54})