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
« 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
4"""Canonical authored descriptor catalog for header directories."""
6from __future__ import annotations
8from dataclasses import dataclass
9from typing import Literal
11HeaderPackagedWith = Literal["ctk", "other"]
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
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)