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

22 statements  

« prev     ^ index     » next       coverage.py v7.16.0, created at 2026-09-03 02:41 +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 """Header metadata with ordered alternatives searched first-to-last.""" 

17 

18 name: str 

19 packaged_with: HeaderPackagedWith 

20 header_basename: str 

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

22 available_on_linux: bool = True 

23 available_on_windows: bool = True 

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

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

26 # Product-specific environment variables whose values are anchor points. 

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

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

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

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

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

32 # Linux system install directories (glob patterns; environment variables are expanded). 

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

34 # Windows system install directories (glob patterns; environment variables are expanded). 

35 system_install_dirs_windows: tuple[str, ...] = () 

36 # Whether to search /usr/include/<sysconfig MULTIARCH> before system_install_dirs. 

37 use_linux_multiarch_include_dir: bool = False 

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

39 conda_targets_layout: bool = True 

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

41 use_ctk_root_canary: bool = True 

42 

43 

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

45 # ----------------------------------------------------------------------- 

46 # CTK (CUDA Toolkit) headers 

47 # ----------------------------------------------------------------------- 

48 HeaderDescriptorSpec( 

49 name="cccl", 

50 packaged_with="ctk", 

51 header_basename="cuda/std/version", 

52 site_packages_dirs=( 

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

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

55 ), 

56 include_subdirs=("cccl",), 

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

58 ), 

59 HeaderDescriptorSpec( 

60 name="cublas", 

61 packaged_with="ctk", 

62 header_basename="cublas.h", 

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

64 ), 

65 HeaderDescriptorSpec( 

66 name="cudart", 

67 packaged_with="ctk", 

68 header_basename="cuda_runtime.h", 

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

70 ), 

71 HeaderDescriptorSpec( 

72 name="cufft", 

73 packaged_with="ctk", 

74 header_basename="cufft.h", 

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

76 ), 

77 HeaderDescriptorSpec( 

78 name="cufile", 

79 packaged_with="ctk", 

80 header_basename="cufile.h", 

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

82 available_on_windows=False, 

83 ), 

84 HeaderDescriptorSpec( 

85 name="curand", 

86 packaged_with="ctk", 

87 header_basename="curand.h", 

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

89 ), 

90 HeaderDescriptorSpec( 

91 name="cusolver", 

92 packaged_with="ctk", 

93 header_basename="cusolverDn.h", 

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

95 ), 

96 HeaderDescriptorSpec( 

97 name="cusparse", 

98 packaged_with="ctk", 

99 header_basename="cusparse.h", 

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

101 ), 

102 HeaderDescriptorSpec( 

103 name="npp", 

104 packaged_with="ctk", 

105 header_basename="npp.h", 

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

107 ), 

108 HeaderDescriptorSpec( 

109 name="profiler", 

110 packaged_with="ctk", 

111 header_basename="cuda_profiler_api.h", 

112 site_packages_dirs=("nvidia/cu13/include", "nvidia/cuda_profiler_api/include"), 

113 ), 

114 HeaderDescriptorSpec( 

115 name="nvcc", 

116 packaged_with="ctk", 

117 header_basename="fatbinary_section.h", 

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

119 ), 

120 HeaderDescriptorSpec( 

121 name="nvfatbin", 

122 packaged_with="ctk", 

123 header_basename="nvFatbin.h", 

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

125 ), 

126 HeaderDescriptorSpec( 

127 name="nvjitlink", 

128 packaged_with="ctk", 

129 header_basename="nvJitLink.h", 

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

131 ), 

132 HeaderDescriptorSpec( 

133 name="nvjpeg", 

134 packaged_with="ctk", 

135 header_basename="nvjpeg.h", 

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

137 ), 

138 HeaderDescriptorSpec( 

139 name="nvrtc", 

140 packaged_with="ctk", 

141 header_basename="nvrtc.h", 

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

143 ), 

144 HeaderDescriptorSpec( 

145 name="nvvm", 

146 packaged_with="ctk", 

147 header_basename="nvvm.h", 

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

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

150 ), 

151 HeaderDescriptorSpec( 

152 name="cudla", 

153 packaged_with="ctk", 

154 header_basename="cudla.h", 

155 site_packages_dirs=("nvidia/cu13/include",), 

156 available_on_windows=False, 

157 ), 

158 # ----------------------------------------------------------------------- 

159 # Third-party / separately packaged headers 

160 # ----------------------------------------------------------------------- 

161 HeaderDescriptorSpec( 

162 name="cudnn", 

163 packaged_with="other", 

164 header_basename="cudnn.h", 

165 site_packages_dirs=("nvidia/cudnn/include",), 

166 product_root_env_vars=("CUDNN_PATH",), 

167 system_install_dirs=( 

168 "/usr/include", 

169 "/usr/local/include", 

170 ), 

171 system_install_dirs_windows=("${ProgramFiles}/NVIDIA/CUDNN/v9.*/include",), 

172 use_linux_multiarch_include_dir=True, 

173 conda_targets_layout=False, 

174 use_ctk_root_canary=False, 

175 ), 

176 HeaderDescriptorSpec( 

177 name="cusolverMp", 

178 packaged_with="other", 

179 header_basename="cusolverMp.h", 

180 site_packages_dirs=("nvidia/cu13/include", "nvidia/cu12/include"), 

181 available_on_windows=False, 

182 conda_targets_layout=False, 

183 use_ctk_root_canary=False, 

184 ), 

185 HeaderDescriptorSpec( 

186 name="cusparseLt", 

187 packaged_with="other", 

188 header_basename="cusparseLt.h", 

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

190 conda_targets_layout=False, 

191 use_ctk_root_canary=False, 

192 ), 

193 HeaderDescriptorSpec( 

194 name="cute", 

195 packaged_with="other", 

196 header_basename="cute/tensor.hpp", 

197 site_packages_dirs=("cutlass_library/source/include",), 

198 conda_targets_layout=False, 

199 use_ctk_root_canary=False, 

200 ), 

201 HeaderDescriptorSpec( 

202 name="cutensor", 

203 packaged_with="other", 

204 header_basename="cutensor.h", 

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

206 conda_targets_layout=False, 

207 use_ctk_root_canary=False, 

208 ), 

209 HeaderDescriptorSpec( 

210 name="cudensitymat", 

211 packaged_with="other", 

212 header_basename="cudensitymat.h", 

213 site_packages_dirs=("cuquantum/include",), 

214 available_on_windows=False, 

215 conda_targets_layout=False, 

216 use_ctk_root_canary=False, 

217 ), 

218 HeaderDescriptorSpec( 

219 name="cupauliprop", 

220 packaged_with="other", 

221 header_basename="cupauliprop.h", 

222 site_packages_dirs=("cuquantum/include",), 

223 available_on_windows=False, 

224 conda_targets_layout=False, 

225 use_ctk_root_canary=False, 

226 ), 

227 HeaderDescriptorSpec( 

228 name="cutensornet", 

229 packaged_with="other", 

230 header_basename="cutensornet.h", 

231 site_packages_dirs=("cuquantum/include",), 

232 available_on_windows=False, 

233 conda_targets_layout=False, 

234 use_ctk_root_canary=False, 

235 ), 

236 HeaderDescriptorSpec( 

237 name="custabilizer", 

238 packaged_with="other", 

239 header_basename="custabilizer.h", 

240 site_packages_dirs=("cuquantum/include",), 

241 available_on_windows=False, 

242 conda_targets_layout=False, 

243 use_ctk_root_canary=False, 

244 ), 

245 HeaderDescriptorSpec( 

246 name="custatevec", 

247 packaged_with="other", 

248 header_basename="custatevec.h", 

249 site_packages_dirs=("cuquantum/include",), 

250 available_on_windows=False, 

251 conda_targets_layout=False, 

252 use_ctk_root_canary=False, 

253 ), 

254 HeaderDescriptorSpec( 

255 name="cutlass", 

256 packaged_with="other", 

257 header_basename="cutlass/cutlass.h", 

258 site_packages_dirs=("cutlass_library/source/include",), 

259 conda_targets_layout=False, 

260 use_ctk_root_canary=False, 

261 ), 

262 HeaderDescriptorSpec( 

263 name="mathdx", 

264 packaged_with="other", 

265 header_basename="libmathdx.h", 

266 site_packages_dirs=("nvidia/cu13/include", "nvidia/cu12/include"), 

267 conda_targets_layout=False, 

268 use_ctk_root_canary=False, 

269 ), 

270 HeaderDescriptorSpec( 

271 name="nccl", 

272 packaged_with="other", 

273 header_basename="nccl.h", 

274 site_packages_dirs=("nvidia/nccl/include",), 

275 available_on_windows=False, 

276 anchor_include_rel_dirs=("include", "build/include"), 

277 product_root_env_vars=("NCCL_HOME",), 

278 system_install_dirs=("/usr/include", "/usr/local/include"), 

279 conda_targets_layout=False, 

280 use_ctk_root_canary=False, 

281 ), 

282 HeaderDescriptorSpec( 

283 name="nvshmem", 

284 packaged_with="other", 

285 header_basename="nvshmem.h", 

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

287 available_on_windows=False, 

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

289 conda_targets_layout=False, 

290 use_ctk_root_canary=False, 

291 ), 

292)