Coverage for cuda / pathfinder / _dynamic_libs / descriptor_catalog.py: 100.00%
19 statements
« prev ^ index » next coverage.py v7.13.4, created at 2026-03-08 01:07 +0000
« prev ^ index » next coverage.py v7.13.4, created at 2026-03-08 01:07 +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 dynamic libraries."""
6from __future__ import annotations
8from dataclasses import dataclass
9from typing import Literal
11PackagedWith = Literal["ctk", "other", "driver"]
14@dataclass(frozen=True, slots=True)
15class DescriptorSpec:
16 name: str
17 packaged_with: PackagedWith
18 linux_sonames: tuple[str, ...] = ()
19 windows_dlls: tuple[str, ...] = ()
20 site_packages_linux: tuple[str, ...] = ()
21 site_packages_windows: tuple[str, ...] = ()
22 dependencies: tuple[str, ...] = ()
23 anchor_rel_dirs_linux: tuple[str, ...] = ("lib64", "lib")
24 anchor_rel_dirs_windows: tuple[str, ...] = ("bin/x64", "bin")
25 ctk_root_canary_anchor_libnames: tuple[str, ...] = ()
26 requires_add_dll_directory: bool = False
27 requires_rtld_deepbind: bool = False
30DESCRIPTOR_CATALOG: tuple[DescriptorSpec, ...] = (
31 # -----------------------------------------------------------------------
32 # CTK (CUDA Toolkit) libraries
33 # -----------------------------------------------------------------------
34 DescriptorSpec(
35 name="cudart",
36 packaged_with="ctk",
37 linux_sonames=("libcudart.so.12", "libcudart.so.13"),
38 windows_dlls=("cudart64_12.dll", "cudart64_13.dll"),
39 site_packages_linux=("nvidia/cu13/lib", "nvidia/cuda_runtime/lib"),
40 site_packages_windows=("nvidia/cu13/bin/x86_64", "nvidia/cuda_runtime/bin"),
41 ),
42 DescriptorSpec(
43 name="nvfatbin",
44 packaged_with="ctk",
45 linux_sonames=("libnvfatbin.so.12", "libnvfatbin.so.13"),
46 windows_dlls=("nvfatbin_120_0.dll", "nvfatbin_130_0.dll"),
47 site_packages_linux=("nvidia/cu13/lib", "nvidia/nvfatbin/lib"),
48 site_packages_windows=("nvidia/cu13/bin/x86_64", "nvidia/nvfatbin/bin"),
49 ),
50 DescriptorSpec(
51 name="nvJitLink",
52 packaged_with="ctk",
53 linux_sonames=("libnvJitLink.so.12", "libnvJitLink.so.13"),
54 windows_dlls=("nvJitLink_120_0.dll", "nvJitLink_130_0.dll"),
55 site_packages_linux=("nvidia/cu13/lib", "nvidia/nvjitlink/lib"),
56 site_packages_windows=("nvidia/cu13/bin/x86_64", "nvidia/nvjitlink/bin"),
57 ),
58 DescriptorSpec(
59 name="nvrtc",
60 packaged_with="ctk",
61 linux_sonames=("libnvrtc.so.12", "libnvrtc.so.13"),
62 windows_dlls=("nvrtc64_120_0.dll", "nvrtc64_130_0.dll"),
63 site_packages_linux=("nvidia/cu13/lib", "nvidia/cuda_nvrtc/lib"),
64 site_packages_windows=("nvidia/cu13/bin/x86_64", "nvidia/cuda_nvrtc/bin"),
65 requires_add_dll_directory=True,
66 ),
67 DescriptorSpec(
68 name="nvvm",
69 packaged_with="ctk",
70 linux_sonames=("libnvvm.so.4",),
71 windows_dlls=("nvvm64.dll", "nvvm64_40_0.dll", "nvvm70.dll"),
72 site_packages_linux=("nvidia/cu13/lib", "nvidia/cuda_nvcc/nvvm/lib64"),
73 site_packages_windows=("nvidia/cu13/bin/x86_64", "nvidia/cuda_nvcc/nvvm/bin"),
74 anchor_rel_dirs_linux=("nvvm/lib64",),
75 anchor_rel_dirs_windows=("nvvm/bin/*", "nvvm/bin"),
76 ctk_root_canary_anchor_libnames=("cudart",),
77 ),
78 DescriptorSpec(
79 name="cublas",
80 packaged_with="ctk",
81 linux_sonames=("libcublas.so.12", "libcublas.so.13"),
82 windows_dlls=("cublas64_12.dll", "cublas64_13.dll"),
83 site_packages_linux=("nvidia/cu13/lib", "nvidia/cublas/lib"),
84 site_packages_windows=("nvidia/cu13/bin/x86_64", "nvidia/cublas/bin"),
85 dependencies=("cublasLt",),
86 ),
87 DescriptorSpec(
88 name="cublasLt",
89 packaged_with="ctk",
90 linux_sonames=("libcublasLt.so.12", "libcublasLt.so.13"),
91 windows_dlls=("cublasLt64_12.dll", "cublasLt64_13.dll"),
92 site_packages_linux=("nvidia/cu13/lib", "nvidia/cublas/lib"),
93 site_packages_windows=("nvidia/cu13/bin/x86_64", "nvidia/cublas/bin"),
94 ),
95 DescriptorSpec(
96 name="cufft",
97 packaged_with="ctk",
98 linux_sonames=("libcufft.so.11", "libcufft.so.12"),
99 windows_dlls=("cufft64_11.dll", "cufft64_12.dll"),
100 site_packages_linux=("nvidia/cu13/lib", "nvidia/cufft/lib"),
101 site_packages_windows=("nvidia/cu13/bin/x86_64", "nvidia/cufft/bin"),
102 requires_add_dll_directory=True,
103 ),
104 DescriptorSpec(
105 name="cufftw",
106 packaged_with="ctk",
107 linux_sonames=("libcufftw.so.11", "libcufftw.so.12"),
108 windows_dlls=("cufftw64_11.dll", "cufftw64_12.dll"),
109 site_packages_linux=("nvidia/cu13/lib", "nvidia/cufft/lib"),
110 site_packages_windows=("nvidia/cu13/bin/x86_64", "nvidia/cufft/bin"),
111 dependencies=("cufft",),
112 ),
113 DescriptorSpec(
114 name="curand",
115 packaged_with="ctk",
116 linux_sonames=("libcurand.so.10",),
117 windows_dlls=("curand64_10.dll",),
118 site_packages_linux=("nvidia/cu13/lib", "nvidia/curand/lib"),
119 site_packages_windows=("nvidia/cu13/bin/x86_64", "nvidia/curand/bin"),
120 ),
121 DescriptorSpec(
122 name="cusolver",
123 packaged_with="ctk",
124 linux_sonames=("libcusolver.so.11", "libcusolver.so.12"),
125 windows_dlls=("cusolver64_11.dll", "cusolver64_12.dll"),
126 site_packages_linux=("nvidia/cu13/lib", "nvidia/cusolver/lib"),
127 site_packages_windows=("nvidia/cu13/bin/x86_64", "nvidia/cusolver/bin"),
128 dependencies=("nvJitLink", "cusparse", "cublasLt", "cublas"),
129 ),
130 DescriptorSpec(
131 name="cusolverMg",
132 packaged_with="ctk",
133 linux_sonames=("libcusolverMg.so.11", "libcusolverMg.so.12"),
134 windows_dlls=("cusolverMg64_11.dll", "cusolverMg64_12.dll"),
135 site_packages_linux=("nvidia/cu13/lib", "nvidia/cusolver/lib"),
136 site_packages_windows=("nvidia/cu13/bin/x86_64", "nvidia/cusolver/bin"),
137 dependencies=("nvJitLink", "cublasLt", "cublas"),
138 ),
139 DescriptorSpec(
140 name="cusparse",
141 packaged_with="ctk",
142 linux_sonames=("libcusparse.so.12",),
143 windows_dlls=("cusparse64_12.dll",),
144 site_packages_linux=("nvidia/cu13/lib", "nvidia/cusparse/lib"),
145 site_packages_windows=("nvidia/cu13/bin/x86_64", "nvidia/cusparse/bin"),
146 dependencies=("nvJitLink",),
147 ),
148 DescriptorSpec(
149 name="nppc",
150 packaged_with="ctk",
151 linux_sonames=("libnppc.so.12", "libnppc.so.13"),
152 windows_dlls=("nppc64_12.dll", "nppc64_13.dll"),
153 site_packages_linux=("nvidia/cu13/lib", "nvidia/npp/lib"),
154 site_packages_windows=("nvidia/cu13/bin/x86_64", "nvidia/npp/bin"),
155 ),
156 DescriptorSpec(
157 name="nppial",
158 packaged_with="ctk",
159 linux_sonames=("libnppial.so.12", "libnppial.so.13"),
160 windows_dlls=("nppial64_12.dll", "nppial64_13.dll"),
161 site_packages_linux=("nvidia/cu13/lib", "nvidia/npp/lib"),
162 site_packages_windows=("nvidia/cu13/bin/x86_64", "nvidia/npp/bin"),
163 dependencies=("nppc",),
164 ),
165 DescriptorSpec(
166 name="nppicc",
167 packaged_with="ctk",
168 linux_sonames=("libnppicc.so.12", "libnppicc.so.13"),
169 windows_dlls=("nppicc64_12.dll", "nppicc64_13.dll"),
170 site_packages_linux=("nvidia/cu13/lib", "nvidia/npp/lib"),
171 site_packages_windows=("nvidia/cu13/bin/x86_64", "nvidia/npp/bin"),
172 dependencies=("nppc",),
173 ),
174 DescriptorSpec(
175 name="nppidei",
176 packaged_with="ctk",
177 linux_sonames=("libnppidei.so.12", "libnppidei.so.13"),
178 windows_dlls=("nppidei64_12.dll", "nppidei64_13.dll"),
179 site_packages_linux=("nvidia/cu13/lib", "nvidia/npp/lib"),
180 site_packages_windows=("nvidia/cu13/bin/x86_64", "nvidia/npp/bin"),
181 dependencies=("nppc",),
182 ),
183 DescriptorSpec(
184 name="nppif",
185 packaged_with="ctk",
186 linux_sonames=("libnppif.so.12", "libnppif.so.13"),
187 windows_dlls=("nppif64_12.dll", "nppif64_13.dll"),
188 site_packages_linux=("nvidia/cu13/lib", "nvidia/npp/lib"),
189 site_packages_windows=("nvidia/cu13/bin/x86_64", "nvidia/npp/bin"),
190 dependencies=("nppc",),
191 ),
192 DescriptorSpec(
193 name="nppig",
194 packaged_with="ctk",
195 linux_sonames=("libnppig.so.12", "libnppig.so.13"),
196 windows_dlls=("nppig64_12.dll", "nppig64_13.dll"),
197 site_packages_linux=("nvidia/cu13/lib", "nvidia/npp/lib"),
198 site_packages_windows=("nvidia/cu13/bin/x86_64", "nvidia/npp/bin"),
199 dependencies=("nppc",),
200 ),
201 DescriptorSpec(
202 name="nppim",
203 packaged_with="ctk",
204 linux_sonames=("libnppim.so.12", "libnppim.so.13"),
205 windows_dlls=("nppim64_12.dll", "nppim64_13.dll"),
206 site_packages_linux=("nvidia/cu13/lib", "nvidia/npp/lib"),
207 site_packages_windows=("nvidia/cu13/bin/x86_64", "nvidia/npp/bin"),
208 dependencies=("nppc",),
209 ),
210 DescriptorSpec(
211 name="nppist",
212 packaged_with="ctk",
213 linux_sonames=("libnppist.so.12", "libnppist.so.13"),
214 windows_dlls=("nppist64_12.dll", "nppist64_13.dll"),
215 site_packages_linux=("nvidia/cu13/lib", "nvidia/npp/lib"),
216 site_packages_windows=("nvidia/cu13/bin/x86_64", "nvidia/npp/bin"),
217 dependencies=("nppc",),
218 ),
219 DescriptorSpec(
220 name="nppisu",
221 packaged_with="ctk",
222 linux_sonames=("libnppisu.so.12", "libnppisu.so.13"),
223 windows_dlls=("nppisu64_12.dll", "nppisu64_13.dll"),
224 site_packages_linux=("nvidia/cu13/lib", "nvidia/npp/lib"),
225 site_packages_windows=("nvidia/cu13/bin/x86_64", "nvidia/npp/bin"),
226 dependencies=("nppc",),
227 ),
228 DescriptorSpec(
229 name="nppitc",
230 packaged_with="ctk",
231 linux_sonames=("libnppitc.so.12", "libnppitc.so.13"),
232 windows_dlls=("nppitc64_12.dll", "nppitc64_13.dll"),
233 site_packages_linux=("nvidia/cu13/lib", "nvidia/npp/lib"),
234 site_packages_windows=("nvidia/cu13/bin/x86_64", "nvidia/npp/bin"),
235 dependencies=("nppc",),
236 ),
237 DescriptorSpec(
238 name="npps",
239 packaged_with="ctk",
240 linux_sonames=("libnpps.so.12", "libnpps.so.13"),
241 windows_dlls=("npps64_12.dll", "npps64_13.dll"),
242 site_packages_linux=("nvidia/cu13/lib", "nvidia/npp/lib"),
243 site_packages_windows=("nvidia/cu13/bin/x86_64", "nvidia/npp/bin"),
244 dependencies=("nppc",),
245 ),
246 DescriptorSpec(
247 name="nvblas",
248 packaged_with="ctk",
249 linux_sonames=("libnvblas.so.12", "libnvblas.so.13"),
250 windows_dlls=("nvblas64_12.dll", "nvblas64_13.dll"),
251 site_packages_linux=("nvidia/cu13/lib", "nvidia/cublas/lib"),
252 site_packages_windows=("nvidia/cu13/bin/x86_64", "nvidia/cublas/bin"),
253 dependencies=("cublas", "cublasLt"),
254 ),
255 DescriptorSpec(
256 name="nvjpeg",
257 packaged_with="ctk",
258 linux_sonames=("libnvjpeg.so.12", "libnvjpeg.so.13"),
259 windows_dlls=("nvjpeg64_12.dll", "nvjpeg64_13.dll"),
260 site_packages_linux=("nvidia/cu13/lib", "nvidia/nvjpeg/lib"),
261 site_packages_windows=("nvidia/cu13/bin/x86_64", "nvidia/nvjpeg/bin"),
262 ),
263 DescriptorSpec(
264 name="cufile",
265 packaged_with="ctk",
266 linux_sonames=("libcufile.so.0",),
267 site_packages_linux=("nvidia/cu13/lib", "nvidia/cufile/lib"),
268 ),
269 DescriptorSpec(
270 name="cupti",
271 packaged_with="ctk",
272 linux_sonames=("libcupti.so.12", "libcupti.so.13"),
273 windows_dlls=(
274 "cupti64_2025.4.1.dll",
275 "cupti64_2025.3.1.dll",
276 "cupti64_2025.2.1.dll",
277 "cupti64_2025.1.1.dll",
278 "cupti64_2024.3.2.dll",
279 "cupti64_2024.2.1.dll",
280 "cupti64_2024.1.1.dll",
281 "cupti64_2023.3.1.dll",
282 "cupti64_2023.2.2.dll",
283 "cupti64_2023.1.1.dll",
284 "cupti64_2022.4.1.dll",
285 ),
286 site_packages_linux=("nvidia/cu13/lib", "nvidia/cuda_cupti/lib"),
287 site_packages_windows=("nvidia/cu13/bin/x86_64", "nvidia/cuda_cupti/bin"),
288 anchor_rel_dirs_linux=("extras/CUPTI/lib64", "lib"),
289 anchor_rel_dirs_windows=("extras/CUPTI/lib64", "bin"),
290 ctk_root_canary_anchor_libnames=("cudart",),
291 ),
292 # -----------------------------------------------------------------------
293 # Third-party / separately packaged libraries
294 # -----------------------------------------------------------------------
295 DescriptorSpec(
296 name="cublasmp",
297 packaged_with="other",
298 linux_sonames=("libcublasmp.so.0",),
299 site_packages_linux=("nvidia/cublasmp/cu13/lib", "nvidia/cublasmp/cu12/lib"),
300 dependencies=("cublas", "cublasLt", "nvshmem_host"),
301 ),
302 DescriptorSpec(
303 name="cufftMp",
304 packaged_with="other",
305 linux_sonames=("libcufftMp.so.12", "libcufftMp.so.11"),
306 site_packages_linux=("nvidia/cufftmp/cu13/lib", "nvidia/cufftmp/cu12/lib"),
307 dependencies=("nvshmem_host",),
308 requires_rtld_deepbind=True,
309 ),
310 DescriptorSpec(
311 name="mathdx",
312 packaged_with="other",
313 linux_sonames=("libmathdx.so.0",),
314 windows_dlls=("mathdx64_0.dll",),
315 site_packages_linux=("nvidia/cu13/lib", "nvidia/cu12/lib"),
316 site_packages_windows=("nvidia/cu13/bin/x86_64", "nvidia/cu12/bin"),
317 dependencies=("nvrtc",),
318 ),
319 DescriptorSpec(
320 name="cudss",
321 packaged_with="other",
322 linux_sonames=("libcudss.so.0",),
323 windows_dlls=("cudss64_0.dll",),
324 site_packages_linux=("nvidia/cu13/lib", "nvidia/cu12/lib"),
325 site_packages_windows=("nvidia/cu13/bin", "nvidia/cu12/bin"),
326 dependencies=("cublas", "cublasLt"),
327 ),
328 DescriptorSpec(
329 name="cusparseLt",
330 packaged_with="other",
331 linux_sonames=("libcusparseLt.so.0",),
332 windows_dlls=("cusparseLt.dll",),
333 site_packages_linux=("nvidia/cusparselt/lib",),
334 site_packages_windows=("nvidia/cusparselt/bin",),
335 ),
336 DescriptorSpec(
337 name="cutensor",
338 packaged_with="other",
339 linux_sonames=("libcutensor.so.2",),
340 windows_dlls=("cutensor.dll",),
341 site_packages_linux=("cutensor/lib",),
342 site_packages_windows=("cutensor/bin",),
343 dependencies=("cublasLt",),
344 ),
345 DescriptorSpec(
346 name="cutensorMg",
347 packaged_with="other",
348 linux_sonames=("libcutensorMg.so.2",),
349 windows_dlls=("cutensorMg.dll",),
350 site_packages_linux=("cutensor/lib",),
351 site_packages_windows=("cutensor/bin",),
352 dependencies=("cutensor", "cublasLt"),
353 ),
354 DescriptorSpec(
355 name="nccl",
356 packaged_with="other",
357 linux_sonames=("libnccl.so.2",),
358 site_packages_linux=("nvidia/nccl/lib",),
359 ),
360 DescriptorSpec(
361 name="nvpl_fftw",
362 packaged_with="other",
363 linux_sonames=("libnvpl_fftw.so.0",),
364 site_packages_linux=("nvpl/lib",),
365 ),
366 DescriptorSpec(
367 name="nvshmem_host",
368 packaged_with="other",
369 linux_sonames=("libnvshmem_host.so.3",),
370 site_packages_linux=("nvidia/nvshmem/lib",),
371 ),
372 # -----------------------------------------------------------------------
373 # Driver libraries (system-search only, no CTK cascade)
374 # -----------------------------------------------------------------------
375 DescriptorSpec(
376 name="cuda",
377 packaged_with="driver",
378 linux_sonames=("libcuda.so.1",),
379 windows_dlls=("nvcuda.dll",),
380 ),
381 DescriptorSpec(
382 name="nvml",
383 packaged_with="driver",
384 linux_sonames=("libnvidia-ml.so.1",),
385 windows_dlls=("nvml.dll",),
386 ),
387)