Skip to content

Commit 09069a3

Browse files
authored
[doc-only] Prepare for cuda-pathfinder v1.4.1 release (#1728)
* Add Linux support for loading libcupti.so.12 and libcupti.so.13 This commit adds support for finding and loading CUPTI libraries on Linux through cuda.pathfinder. It implements support for all enumerated installation methods: - Site-packages: nvidia/cuda_cupti/lib (CUDA 12) and nvidia/cu13/lib (CUDA 13) - Conda: $CONDA_PREFIX/lib (colocated with other CUDA libraries) - CTK via CUDA_HOME: $CUDA_HOME/extras/CUPTI/lib64 - CTK via canary probe: system CTK root discovery (similar to nvvm) Changes: - Add 'cupti' to supported library names and SONAMEs - Add site-packages paths for CUDA 12 and 13 - Add cupti to CTK root canary discoverable libraries - Update find_nvidia_dynamic_lib to handle extras/CUPTI/lib64 path - Add logic to distinguish CTK (extras/CUPTI/lib64) vs conda (lib) paths - Update _find_so_using_lib_dir to support versioned libraries via glob - Add comprehensive mock tests covering all installation methods Fixes #1572 (Linux support) Made-with: Cursor * Update cupti tests to use new SearchContext-based API Migrated test_load_nvidia_dynamic_lib_using_mocker.py from the old _FindNvidiaDynamicLib API to the new descriptor-based SearchContext API. Changes: - Replace _FindNvidiaDynamicLib imports with search_steps and load_nvidia_dynamic_lib modules - Update mocks to use run_find_steps, LOADER, and SearchContext - Use LIB_DESCRIPTORS to get cupti descriptor - Update all test functions to work with the new search step architecture Made-with: Cursor * Remove unused CTK canary variables from supported_nvidia_libs.py These variables (_CTK_ROOT_CANARY_ANCHOR_LIBNAMES and _CTK_ROOT_CANARY_DISCOVERABLE_LIBNAMES) were added in the cupti PR but are not used in the new descriptor-based architecture. The new code uses desc.ctk_root_canary_anchor_libnames directly from descriptors. Made-with: Cursor * Improve comment for change in LinuxSearchPlatform.find_in_lib_dir() * Add cputi to cu12, cu13 groups in cuda_pathfinder/pyproject.toml * Add cuda_cupti to cuda-components in .github/actions/fetch_ctk/action.yml * Add windows_dlls, site_packages_windows, anchor_rel_dirs_windows for cupti in /descriptor_catalog.py * test: Refactor cupti mock tests to focus on Conda and error paths Remove tests covered by real CI: - Site-packages tests (CUDA 12 and 13) - covered by real CI - CTK tests (CUDA_HOME and canary probe) - covered by real CI - Search order tests involving site-packages/CTK - covered by real CI Keep tests not covered by real CI: - Conda discovery test - Conda not covered by real CI - Error path test (not found) - error path not covered - Conda vs CTK search order test - Conda not covered by real CI Also remove unused imports and helper functions. Made-with: Cursor * Add pathfinder release/1.4.1-notes.rst * Add PR #1731 to release/1.4.1-notes.rst
1 parent 3a7222b commit 09069a3

File tree

2 files changed

+53
-0
lines changed

2 files changed

+53
-0
lines changed

cuda_pathfinder/docs/nv-versions.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,10 @@
33
"version": "latest",
44
"url": "https://nvidia.github.io/cuda-python/cuda-pathfinder/latest/"
55
},
6+
{
7+
"version": "1.4.1",
8+
"url": "https://nvidia.github.io/cuda-python/cuda-pathfinder/1.4.1/"
9+
},
610
{
711
"version": "1.4.0",
812
"url": "https://nvidia.github.io/cuda-python/cuda-pathfinder/1.4.0/"
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
.. SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2+
.. SPDX-License-Identifier: Apache-2.0
3+
4+
.. py:currentmodule:: cuda.pathfinder
5+
6+
``cuda-pathfinder`` 1.4.1 Release notes
7+
=======================================
8+
9+
Released on Mar 6, 2026
10+
11+
Highlights
12+
----------
13+
14+
* Add CTK canary fallback for header discovery. When CUDA headers cannot be
15+
found via site-packages, Conda, or ``CUDA_HOME``/``CUDA_PATH``, the system
16+
now attempts to discover the CTK root via canary probing (using a
17+
system-loaded ``cudart`` library path) and searches the CTK include layout
18+
from that root. This improves header discovery in standard and non-standard
19+
CTK installations, including containerized environments.
20+
(`PR #1731 <https://github.com/NVIDIA/cuda-python/pull/1731>`_)
21+
22+
* Add support for loading CUPTI (CUDA Profiling Tools Interface) dynamic libs
23+
via ``load_nvidia_dynamic_lib("cupti")`` on Linux and Windows. CUPTI libraries
24+
are discovered in site-packages (CUDA 12 and 13), Conda environments, and
25+
CTK installations (via CUDA_HOME/CUDA_PATH or canary probe).
26+
Supports ``libcupti.so.12``, ``libcupti.so.13`` on Linux and versioned
27+
``cupti64_*.dll`` files on Windows.
28+
(`PR #1693 <https://github.com/NVIDIA/cuda-python/pull/1693>`_)
29+
30+
* Add support for finding static libraries (e.g., ``libcudadevrt.a`` on Linux,
31+
``cudadevrt.lib`` on Windows) via new ``find_static_lib()`` and
32+
``locate_static_lib()`` APIs. These follow the same search order as bitcode
33+
libraries: site-packages, Conda, then CUDA_HOME/CUDA_PATH.
34+
(`PR #1690 <https://github.com/NVIDIA/cuda-python/pull/1690>`_)
35+
36+
* Fix site-packages search order for virtual environments created with
37+
``--system-site-packages``. The search now correctly prioritizes the venv's
38+
site-packages before user-site-packages, conforming to PEP 405.
39+
(`PR #1717 <https://github.com/NVIDIA/cuda-python/pull/1717>`_)
40+
41+
Internal refactoring
42+
--------------------
43+
44+
* Refactor library discovery and loading to use a descriptor-driven architecture.
45+
All library metadata (SONAMEs, DLLs, site-packages paths, dependencies, loader
46+
flags) is now consolidated into a single ``LibDescriptor`` registry, improving
47+
maintainability and extensibility. This is an internal refactoring with no
48+
behavioral changes.
49+
(`PR #1685 <https://github.com/NVIDIA/cuda-python/pull/1685>`_)

0 commit comments

Comments
 (0)