Skip to content

Commit bdd6447

Browse files
yangcalrwgk
andauthored
Pathfinder: add support on cuQuantum library loading and header descriptors (#2376)
* Pathfinder: add support on cutensornet for library loading and header descriptors * Pathfinder: add support on custatevec for library loading and header descriptors * Pathfinder: add support on cudensitymat for library loading and header descriptors * Pathfinder: add support on custabilizer for library loading and header descriptors * Pathfinder: add support on cupauliprop for library loading and header descriptors * switch to cuquantum metapackage to simplify dependency listing --------- Co-authored-by: Ralf W. Grosse-Kunstleve <rwgkio@gmail.com>
1 parent a9df0a5 commit bdd6447

5 files changed

Lines changed: 96 additions & 1 deletion

File tree

cuda_pathfinder/cuda/pathfinder/_dynamic_libs/descriptor_catalog.py

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -382,6 +382,48 @@ class DescriptorSpec:
382382
site_packages_linux=("cutensor/lib",),
383383
dependencies=("cutensor", "cublasLt", "cudart", "nccl"),
384384
),
385+
DescriptorSpec(
386+
name="cudensitymat",
387+
packaged_with="other",
388+
linux_sonames=("libcudensitymat.so.0",),
389+
site_packages_linux=("cuquantum/lib",),
390+
dependencies=(
391+
"cutensornet",
392+
"cutensor",
393+
"cusolver",
394+
"cublasLt",
395+
"cublas",
396+
"curand",
397+
"cusparse",
398+
"nvJitLink",
399+
),
400+
),
401+
DescriptorSpec(
402+
name="cupauliprop",
403+
packaged_with="other",
404+
linux_sonames=("libcupauliprop.so.0",),
405+
site_packages_linux=("cuquantum/lib",),
406+
),
407+
DescriptorSpec(
408+
name="cutensornet",
409+
packaged_with="other",
410+
linux_sonames=("libcutensornet.so.2",),
411+
site_packages_linux=("cuquantum/lib",),
412+
dependencies=("cutensor", "cublas", "cusolver"),
413+
),
414+
DescriptorSpec(
415+
name="custabilizer",
416+
packaged_with="other",
417+
linux_sonames=("libcustabilizer.so.0",),
418+
site_packages_linux=("cuquantum/lib",),
419+
),
420+
DescriptorSpec(
421+
name="custatevec",
422+
packaged_with="other",
423+
linux_sonames=("libcustatevec.so.1",),
424+
site_packages_linux=("cuquantum/lib",),
425+
dependencies=("cublas", "cublasLt"),
426+
),
385427
DescriptorSpec(
386428
name="nccl",
387429
packaged_with="other",

cuda_pathfinder/cuda/pathfinder/_headers/header_descriptor_catalog.py

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,51 @@ class HeaderDescriptorSpec:
183183
conda_targets_layout=False,
184184
use_ctk_root_canary=False,
185185
),
186+
HeaderDescriptorSpec(
187+
name="cudensitymat",
188+
packaged_with="other",
189+
header_basename="cudensitymat.h",
190+
site_packages_dirs=("cuquantum/include",),
191+
available_on_windows=False,
192+
conda_targets_layout=False,
193+
use_ctk_root_canary=False,
194+
),
195+
HeaderDescriptorSpec(
196+
name="cupauliprop",
197+
packaged_with="other",
198+
header_basename="cupauliprop.h",
199+
site_packages_dirs=("cuquantum/include",),
200+
available_on_windows=False,
201+
conda_targets_layout=False,
202+
use_ctk_root_canary=False,
203+
),
204+
HeaderDescriptorSpec(
205+
name="cutensornet",
206+
packaged_with="other",
207+
header_basename="cutensornet.h",
208+
site_packages_dirs=("cuquantum/include",),
209+
available_on_windows=False,
210+
conda_targets_layout=False,
211+
use_ctk_root_canary=False,
212+
),
213+
HeaderDescriptorSpec(
214+
name="custabilizer",
215+
packaged_with="other",
216+
header_basename="custabilizer.h",
217+
site_packages_dirs=("cuquantum/include",),
218+
available_on_windows=False,
219+
conda_targets_layout=False,
220+
use_ctk_root_canary=False,
221+
),
222+
HeaderDescriptorSpec(
223+
name="custatevec",
224+
packaged_with="other",
225+
header_basename="custatevec.h",
226+
site_packages_dirs=("cuquantum/include",),
227+
available_on_windows=False,
228+
conda_targets_layout=False,
229+
use_ctk_root_canary=False,
230+
),
186231
HeaderDescriptorSpec(
187232
name="cutlass",
188233
packaged_with="other",

cuda_pathfinder/pyproject.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ test = [
2121
cu12 = [
2222
"cuda-toolkit[nvcc,cublas,nvrtc,cudart,cufft,curand,cusolver,cusparse,npp,nvfatbin,nvjitlink,nvjpeg,cccl,cupti,profiler]==12.*",
2323
"cuda-toolkit[cufile]==12.*; sys_platform != 'win32'",
24+
"cuquantum-cu12; sys_platform != 'win32'",
2425
"cutensor-cu12",
2526
"nvidia-cublasmp-cu12; sys_platform != 'win32'",
2627
"nvidia-cudss-cu12",
@@ -34,6 +35,7 @@ cu12 = [
3435
cu13 = [
3536
"cuda-toolkit[nvcc,cublas,nvrtc,cudart,cufft,curand,cusolver,cusparse,npp,nvfatbin,nvjitlink,nvjpeg,cccl,cupti,profiler,nvvm]==13.*",
3637
"cuda-toolkit[cufile]==13.*; sys_platform != 'win32'",
38+
"cuquantum-cu13; sys_platform != 'win32'",
3739
"cutensor-cu13",
3840
"nvidia-cublasmp-cu13; sys_platform != 'win32'",
3941
"nvidia-cudla; platform_system == 'Linux' and platform_machine == 'aarch64'",

cuda_pathfinder/tests/test_find_nvidia_headers.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
1+
# SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
22
# SPDX-License-Identifier: Apache-2.0
33

44
# Currently these installations are only manually tested:
@@ -42,10 +42,15 @@
4242
assert STRICTNESS in ("see_what_works", "all_must_work")
4343

4444
NON_CTK_IMPORTLIB_METADATA_DISTRIBUTIONS_NAMES = {
45+
"cudensitymat": r"^cudensitymat-.*$",
46+
"cupauliprop": r"^cupauliprop-.*$",
4547
"cusolverMp": r"^nvidia-cusolvermp-.*$",
4648
"cusparseLt": r"^nvidia-cusparselt-.*$",
4749
"cute": r"^nvidia-cutlass$",
4850
"cutensor": r"^cutensor-.*$",
51+
"cutensornet": r"^cutensornet-.*$",
52+
"custabilizer": r"^custabilizer-.*$",
53+
"custatevec": r"^custatevec-.*$",
4954
"cutlass": r"^nvidia-cutlass$",
5055
"mathdx": r"^nvidia-libmathdx-.*$",
5156
"nvshmem": r"^nvidia-nvshmem-.*$",

toolshed/conda_create_for_pathfinder_testing.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ set -u
2525
# Keep this list aligned with the Linux-installable subset of
2626
# cuda_pathfinder/pyproject.toml.
2727
cpkgs=(
28+
"cuquantum"
2829
"cusparselt-dev"
2930
"cutensor"
3031
"cutlass"

0 commit comments

Comments
 (0)