Coverage for cuda / pathfinder / _headers / header_descriptor_catalog.py: 100.00%

19 statements  

« prev     ^ index     » next       coverage.py v7.13.5, created at 2026-03-25 01:07 +0000

1# SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. 

2# SPDX-License-Identifier: Apache-2.0 

3 

4"""Canonical authored descriptor catalog for header directories.""" 

5 

6from __future__ import annotations 

7 

8from dataclasses import dataclass 

9from typing import Literal 

10 

11HeaderPackagedWith = Literal["ctk", "other"] 

12 

13 

14@dataclass(frozen=True, slots=True) 

15class HeaderDescriptorSpec: 

16 name: str 

17 packaged_with: HeaderPackagedWith 

18 header_basename: str 

19 site_packages_dirs: tuple[str, ...] = () 

20 available_on_linux: bool = True 

21 available_on_windows: bool = True 

22 # Relative path(s) from anchor point to the include directory. 

23 anchor_include_rel_dirs: tuple[str, ...] = ("include",) 

24 # Subdirectories within the include dir to check before the include dir itself. 

25 include_subdirs: tuple[str, ...] = () 

26 # Windows-only additional subdirectories within the include dir. 

27 include_subdirs_windows: tuple[str, ...] = () 

28 # System install directories (glob patterns). 

29 system_install_dirs: tuple[str, ...] = () 

30 # Whether to use targets/<arch>/include layout for conda on Linux. 

31 conda_targets_layout: bool = True 

32 # Whether to attempt CTK-root canary probing (spawns a subprocess). 

33 use_ctk_root_canary: bool = True 

34 

35 

36HEADER_DESCRIPTOR_CATALOG: tuple[HeaderDescriptorSpec, ...] = ( 

37 # ----------------------------------------------------------------------- 

38 # CTK (CUDA Toolkit) headers 

39 # ----------------------------------------------------------------------- 

40 HeaderDescriptorSpec( 

41 name="cccl", 

42 packaged_with="ctk", 

43 header_basename="cuda/std/version", 

44 site_packages_dirs=( 

45 "nvidia/cu13/include/cccl", # cuda-toolkit[cccl]==13.* 

46 "nvidia/cuda_cccl/include", # cuda-toolkit[cccl]==12.* 

47 ), 

48 include_subdirs=("cccl",), 

49 include_subdirs_windows=("targets/x64/cccl", "targets/x64"), 

50 ), 

51 HeaderDescriptorSpec( 

52 name="cublas", 

53 packaged_with="ctk", 

54 header_basename="cublas.h", 

55 site_packages_dirs=("nvidia/cu13/include", "nvidia/cublas/include"), 

56 ), 

57 HeaderDescriptorSpec( 

58 name="cudart", 

59 packaged_with="ctk", 

60 header_basename="cuda_runtime.h", 

61 site_packages_dirs=("nvidia/cu13/include", "nvidia/cuda_runtime/include"), 

62 ), 

63 HeaderDescriptorSpec( 

64 name="cufft", 

65 packaged_with="ctk", 

66 header_basename="cufft.h", 

67 site_packages_dirs=("nvidia/cu13/include", "nvidia/cufft/include"), 

68 ), 

69 HeaderDescriptorSpec( 

70 name="cufile", 

71 packaged_with="ctk", 

72 header_basename="cufile.h", 

73 site_packages_dirs=("nvidia/cu13/include", "nvidia/cufile/include"), 

74 available_on_windows=False, 

75 ), 

76 HeaderDescriptorSpec( 

77 name="curand", 

78 packaged_with="ctk", 

79 header_basename="curand.h", 

80 site_packages_dirs=("nvidia/cu13/include", "nvidia/curand/include"), 

81 ), 

82 HeaderDescriptorSpec( 

83 name="cusolver", 

84 packaged_with="ctk", 

85 header_basename="cusolverDn.h", 

86 site_packages_dirs=("nvidia/cu13/include", "nvidia/cusolver/include"), 

87 ), 

88 HeaderDescriptorSpec( 

89 name="cusparse", 

90 packaged_with="ctk", 

91 header_basename="cusparse.h", 

92 site_packages_dirs=("nvidia/cu13/include", "nvidia/cusparse/include"), 

93 ), 

94 HeaderDescriptorSpec( 

95 name="npp", 

96 packaged_with="ctk", 

97 header_basename="npp.h", 

98 site_packages_dirs=("nvidia/cu13/include", "nvidia/npp/include"), 

99 ), 

100 HeaderDescriptorSpec( 

101 name="nvcc", 

102 packaged_with="ctk", 

103 header_basename="fatbinary_section.h", 

104 site_packages_dirs=("nvidia/cu13/include", "nvidia/cuda_nvcc/include"), 

105 ), 

106 HeaderDescriptorSpec( 

107 name="nvfatbin", 

108 packaged_with="ctk", 

109 header_basename="nvFatbin.h", 

110 site_packages_dirs=("nvidia/cu13/include", "nvidia/nvfatbin/include"), 

111 ), 

112 HeaderDescriptorSpec( 

113 name="nvjitlink", 

114 packaged_with="ctk", 

115 header_basename="nvJitLink.h", 

116 site_packages_dirs=("nvidia/cu13/include", "nvidia/nvjitlink/include"), 

117 ), 

118 HeaderDescriptorSpec( 

119 name="nvjpeg", 

120 packaged_with="ctk", 

121 header_basename="nvjpeg.h", 

122 site_packages_dirs=("nvidia/cu13/include", "nvidia/nvjpeg/include"), 

123 ), 

124 HeaderDescriptorSpec( 

125 name="nvrtc", 

126 packaged_with="ctk", 

127 header_basename="nvrtc.h", 

128 site_packages_dirs=("nvidia/cu13/include", "nvidia/cuda_nvrtc/include"), 

129 ), 

130 HeaderDescriptorSpec( 

131 name="nvvm", 

132 packaged_with="ctk", 

133 header_basename="nvvm.h", 

134 site_packages_dirs=("nvidia/cu13/include", "nvidia/cuda_nvcc/nvvm/include"), 

135 anchor_include_rel_dirs=("nvvm/include",), 

136 ), 

137 # ----------------------------------------------------------------------- 

138 # Third-party / separately packaged headers 

139 # ----------------------------------------------------------------------- 

140 HeaderDescriptorSpec( 

141 name="cusparseLt", 

142 packaged_with="other", 

143 header_basename="cusparseLt.h", 

144 site_packages_dirs=("nvidia/cu13/include", "nvidia/cusparselt/include"), 

145 conda_targets_layout=False, 

146 use_ctk_root_canary=False, 

147 ), 

148 HeaderDescriptorSpec( 

149 name="cutensor", 

150 packaged_with="other", 

151 header_basename="cutensor.h", 

152 site_packages_dirs=("cutensor/include",), 

153 conda_targets_layout=False, 

154 use_ctk_root_canary=False, 

155 ), 

156 HeaderDescriptorSpec( 

157 name="nvshmem", 

158 packaged_with="other", 

159 header_basename="nvshmem.h", 

160 site_packages_dirs=("nvidia/nvshmem/include",), 

161 available_on_windows=False, 

162 system_install_dirs=("/usr/include/nvshmem_*",), 

163 conda_targets_layout=False, 

164 use_ctk_root_canary=False, 

165 ), 

166)