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

19 statements  

« prev     ^ index     » next       coverage.py v7.13.5, created at 2026-04-29 01:27 +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="profiler", 

102 packaged_with="ctk", 

103 header_basename="cuda_profiler_api.h", 

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

105 ), 

106 HeaderDescriptorSpec( 

107 name="nvcc", 

108 packaged_with="ctk", 

109 header_basename="fatbinary_section.h", 

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

111 ), 

112 HeaderDescriptorSpec( 

113 name="nvfatbin", 

114 packaged_with="ctk", 

115 header_basename="nvFatbin.h", 

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

117 ), 

118 HeaderDescriptorSpec( 

119 name="nvjitlink", 

120 packaged_with="ctk", 

121 header_basename="nvJitLink.h", 

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

123 ), 

124 HeaderDescriptorSpec( 

125 name="nvjpeg", 

126 packaged_with="ctk", 

127 header_basename="nvjpeg.h", 

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

129 ), 

130 HeaderDescriptorSpec( 

131 name="nvrtc", 

132 packaged_with="ctk", 

133 header_basename="nvrtc.h", 

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

135 ), 

136 HeaderDescriptorSpec( 

137 name="nvvm", 

138 packaged_with="ctk", 

139 header_basename="nvvm.h", 

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

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

142 ), 

143 HeaderDescriptorSpec( 

144 name="cudla", 

145 packaged_with="ctk", 

146 header_basename="cudla.h", 

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

148 available_on_windows=False, 

149 ), 

150 # ----------------------------------------------------------------------- 

151 # Third-party / separately packaged headers 

152 # ----------------------------------------------------------------------- 

153 HeaderDescriptorSpec( 

154 name="cusolverMp", 

155 packaged_with="other", 

156 header_basename="cusolverMp.h", 

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

158 available_on_windows=False, 

159 conda_targets_layout=False, 

160 use_ctk_root_canary=False, 

161 ), 

162 HeaderDescriptorSpec( 

163 name="cusparseLt", 

164 packaged_with="other", 

165 header_basename="cusparseLt.h", 

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

167 conda_targets_layout=False, 

168 use_ctk_root_canary=False, 

169 ), 

170 HeaderDescriptorSpec( 

171 name="cute", 

172 packaged_with="other", 

173 header_basename="cute/tensor.hpp", 

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

175 conda_targets_layout=False, 

176 use_ctk_root_canary=False, 

177 ), 

178 HeaderDescriptorSpec( 

179 name="cutensor", 

180 packaged_with="other", 

181 header_basename="cutensor.h", 

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

183 conda_targets_layout=False, 

184 use_ctk_root_canary=False, 

185 ), 

186 HeaderDescriptorSpec( 

187 name="cutlass", 

188 packaged_with="other", 

189 header_basename="cutlass/cutlass.h", 

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

191 conda_targets_layout=False, 

192 use_ctk_root_canary=False, 

193 ), 

194 HeaderDescriptorSpec( 

195 name="mathdx", 

196 packaged_with="other", 

197 header_basename="libmathdx.h", 

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

199 conda_targets_layout=False, 

200 use_ctk_root_canary=False, 

201 ), 

202 HeaderDescriptorSpec( 

203 name="nvshmem", 

204 packaged_with="other", 

205 header_basename="nvshmem.h", 

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

207 available_on_windows=False, 

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

209 conda_targets_layout=False, 

210 use_ctk_root_canary=False, 

211 ), 

212)