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