diff --git a/cuda_pathfinder/cuda/pathfinder/_binaries/supported_nvidia_binaries.py b/cuda_pathfinder/cuda/pathfinder/_binaries/supported_nvidia_binaries.py index d547782d8da..78621b63e8b 100644 --- a/cuda_pathfinder/cuda/pathfinder/_binaries/supported_nvidia_binaries.py +++ b/cuda_pathfinder/cuda/pathfinder/_binaries/supported_nvidia_binaries.py @@ -14,7 +14,7 @@ # Core compilation tools "nvcc": (_CUDA13_BIN, _CUDA_NVCC_BIN), "nvdisasm": (_CUDA13_BIN, _CUDA_NVCC_BIN), - "cuobjdump": (_CUDA_NVCC_BIN,), + "cuobjdump": (_CUDA13_BIN, _CUDA_NVCC_BIN), "nvprune": (_CUDA_NVCC_BIN,), "fatbinary": (_CUDA13_BIN, _CUDA_NVCC_BIN), "bin2c": (_CUDA13_BIN, _CUDA_NVCC_BIN), diff --git a/cuda_pathfinder/tests/test_find_nvidia_binaries.py b/cuda_pathfinder/tests/test_find_nvidia_binaries.py index 9d08f5f4d5c..8979d8cb1e1 100644 --- a/cuda_pathfinder/tests/test_find_nvidia_binaries.py +++ b/cuda_pathfinder/tests/test_find_nvidia_binaries.py @@ -9,11 +9,16 @@ from cuda.pathfinder._binaries import find_nvidia_binary_utility as binary_finder_module from cuda.pathfinder._binaries.find_nvidia_binary_utility import UnsupportedBinaryError from cuda.pathfinder._binaries.supported_nvidia_binaries import ( + _CUDA13_BIN, SITE_PACKAGES_BINDIRS, SUPPORTED_BINARIES, SUPPORTED_BINARIES_ALL, ) +CUDA13_WHEEL_BINARIES = frozenset( + ("nvcc", "nvdisasm", "cuobjdump", "fatbinary", "bin2c", "nvlink", "compute-sanitizer") +) + def test_unknown_utility_name(): with pytest.raises(UnsupportedBinaryError, match=r"'unknown-utility' is not supported"): @@ -33,6 +38,20 @@ def test_supported_binaries_consistency(): assert set(SITE_PACKAGES_BINDIRS).issubset(SUPPORTED_BINARIES_ALL) +@pytest.mark.agent_authored(model="claude-opus-5") +def test_cuda13_wheel_layout_is_declared_and_preferred(): + """Every utility shipped in nvidia/cu13/bin must declare that layout first. + + Omitting it makes the site-packages search step skip an installed CUDA 13 + wheel entirely, which is only visible on hosts without a local CTK to fall + back on. + """ + declared = {name for name, bindirs in SITE_PACKAGES_BINDIRS.items() if _CUDA13_BIN in bindirs} + assert declared == set(CUDA13_WHEEL_BINARIES) + for name in CUDA13_WHEEL_BINARIES: + assert SITE_PACKAGES_BINDIRS[name][0] == _CUDA13_BIN + + @pytest.fixture def clear_find_binary_cache(): find_nvidia_binary_utility.cache_clear()