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

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 dynamic libraries.""" 

5 

6from __future__ import annotations 

7 

8from dataclasses import dataclass 

9from typing import Literal 

10 

11from cuda.pathfinder._utils.ctk_root_canary import CTK_ROOT_CANARY_ANCHOR_LIBNAMES 

12 

13PackagedWith = Literal["ctk", "other", "driver"] 

14 

15 

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 

30 

31 

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)