Skip to content

Commit 7fe89a2

Browse files
rwgkcursoragent
andcommitted
pathfinder: encode authored relation metadata
Record graph-derived dynamic-link groupings and cross-surface companion tags so later guard-rails milestones can add component- and pipeline-aware policy without reworking the catalogs or resolution plumbing. Co-authored-by: Cursor <cursoragent@cursor.com>
1 parent aa4472c commit 7fe89a2

9 files changed

Lines changed: 296 additions & 1 deletion

File tree

cuda_pathfinder/cuda/pathfinder/_binaries/supported_nvidia_binaries.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,4 +31,14 @@
3131
"nsight-compute": (_NSIGHT_COMPUTE_BIN,),
3232
}
3333

34+
SUPPORTED_BINARIES_CTK_COMPANION_TAGS = {
35+
"bin2c": ("toolchain_cuda_nvcc",),
36+
"cuobjdump": ("toolchain_cuda_nvcc",),
37+
"fatbinary": ("toolchain_cuda_nvcc",),
38+
"nvcc": ("toolchain_cuda_nvcc",),
39+
"nvdisasm": ("toolchain_cuda_nvcc",),
40+
"nvlink": ("toolchain_cuda_nvcc",),
41+
"nvprune": ("toolchain_cuda_nvcc",),
42+
}
43+
3444
SUPPORTED_BINARIES_ALL = SUPPORTED_BINARIES = tuple(SITE_PACKAGES_BINDIRS.keys())

cuda_pathfinder/cuda/pathfinder/_compatibility_guard_rails.py

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,10 @@
1919
from cuda.pathfinder._binaries.find_nvidia_binary_utility import (
2020
find_nvidia_binary_utility as _find_nvidia_binary_utility,
2121
)
22-
from cuda.pathfinder._binaries.supported_nvidia_binaries import SUPPORTED_BINARIES_ALL
22+
from cuda.pathfinder._binaries.supported_nvidia_binaries import (
23+
SUPPORTED_BINARIES_ALL,
24+
SUPPORTED_BINARIES_CTK_COMPANION_TAGS,
25+
)
2326
from cuda.pathfinder._dynamic_libs.lib_descriptor import LIB_DESCRIPTORS
2427
from cuda.pathfinder._dynamic_libs.load_dl_common import LoadedDL
2528
from cuda.pathfinder._dynamic_libs.load_nvidia_dynamic_lib import (
@@ -33,12 +36,14 @@
3336
)
3437
from cuda.pathfinder._headers.header_descriptor import HEADER_DESCRIPTORS
3538
from cuda.pathfinder._static_libs.find_bitcode_lib import (
39+
SUPPORTED_BITCODE_LIBS_CTK_COMPANION_TAGS,
3640
LocatedBitcodeLib,
3741
)
3842
from cuda.pathfinder._static_libs.find_bitcode_lib import (
3943
locate_bitcode_lib as _locate_bitcode_lib,
4044
)
4145
from cuda.pathfinder._static_libs.find_static_lib import (
46+
SUPPORTED_STATIC_LIBS_CTK_COMPANION_TAGS,
4247
LocatedStaticLib,
4348
)
4449
from cuda.pathfinder._static_libs.find_static_lib import (
@@ -123,6 +128,8 @@ class ResolvedItem:
123128
ctk_root: str | None
124129
ctk_version: CtkVersion | None
125130
ctk_version_source: str | None
131+
dynamic_link_component: str | None
132+
ctk_companion_tags: tuple[str, ...]
126133

127134
def describe(self) -> str:
128135
found_via = "" if self.found_via is None else f" via {self.found_via}"
@@ -317,6 +324,8 @@ def _resolve_item(
317324
packaged_with: PackagedWith,
318325
abs_path: str,
319326
found_via: str | None,
327+
dynamic_link_component: str | None = None,
328+
ctk_companion_tags: tuple[str, ...] = (),
320329
) -> ResolvedItem:
321330
ctk_metadata = _ctk_metadata_for_abs_path(abs_path)
322331
return ResolvedItem(
@@ -328,6 +337,8 @@ def _resolve_item(
328337
ctk_root=None if ctk_metadata is None else ctk_metadata.ctk_root,
329338
ctk_version=None if ctk_metadata is None else ctk_metadata.ctk_version,
330339
ctk_version_source=None if ctk_metadata is None else ctk_metadata.source,
340+
dynamic_link_component=dynamic_link_component,
341+
ctk_companion_tags=ctk_companion_tags,
331342
)
332343

333344

@@ -343,6 +354,8 @@ def _resolve_dynamic_lib_item(libname: str, loaded: LoadedDL) -> ResolvedItem:
343354
packaged_with=desc.packaged_with,
344355
abs_path=loaded.abs_path,
345356
found_via=loaded.found_via,
357+
dynamic_link_component=desc.dynamic_link_component,
358+
ctk_companion_tags=desc.ctk_companion_tags,
346359
)
347360

348361

@@ -359,6 +372,7 @@ def _resolve_header_item(libname: str, located: LocatedHeaderDir) -> ResolvedIte
359372
packaged_with=desc.packaged_with,
360373
abs_path=metadata_abs_path,
361374
found_via=located.found_via,
375+
ctk_companion_tags=desc.ctk_companion_tags,
362376
)
363377

364378

@@ -370,6 +384,7 @@ def _resolve_static_lib_item(located: LocatedStaticLib) -> ResolvedItem:
370384
packaged_with=packaged_with,
371385
abs_path=located.abs_path,
372386
found_via=located.found_via,
387+
ctk_companion_tags=SUPPORTED_STATIC_LIBS_CTK_COMPANION_TAGS.get(located.name, ()),
373388
)
374389

375390

@@ -381,6 +396,7 @@ def _resolve_bitcode_lib_item(located: LocatedBitcodeLib) -> ResolvedItem:
381396
packaged_with=packaged_with,
382397
abs_path=located.abs_path,
383398
found_via=located.found_via,
399+
ctk_companion_tags=SUPPORTED_BITCODE_LIBS_CTK_COMPANION_TAGS.get(located.name, ()),
384400
)
385401

386402

@@ -392,6 +408,7 @@ def _resolve_binary_item(utility_name: str, abs_path: str) -> ResolvedItem:
392408
packaged_with=packaged_with,
393409
abs_path=abs_path,
394410
found_via=None,
411+
ctk_companion_tags=SUPPORTED_BINARIES_CTK_COMPANION_TAGS.get(utility_name, ()),
395412
)
396413

397414

0 commit comments

Comments
 (0)