Skip to content

Commit 3a75459

Browse files
committed
Use all available dynamic library names
1 parent b0d9639 commit 3a75459

3 files changed

Lines changed: 15 additions & 7 deletions

File tree

‎cuda_pathfinder/cuda/pathfinder/_dynamic_libs/load_nvidia_dynamic_lib.py‎

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
build_dynamic_lib_subprocess_command,
3535
parse_dynamic_lib_subprocess_payload,
3636
)
37-
from cuda.pathfinder._dynamic_libs.supported_nvidia_libs import SUPPORTED_LIBNAMES
37+
from cuda.pathfinder._dynamic_libs.supported_nvidia_libs import ALL_AVAILABLE_LIBNAMES
3838
from cuda.pathfinder._utils.platform_aware import IS_WINDOWS
3939

4040
if TYPE_CHECKING:
@@ -43,7 +43,6 @@
4343
# All libnames recognized by load_nvidia_dynamic_lib, across all categories
4444
# (CTK, third-party, driver).
4545
_ALL_KNOWN_LIBNAMES: frozenset[str] = frozenset(LIB_DESCRIPTORS)
46-
_ALL_SUPPORTED_LIBNAMES: frozenset[str] = frozenset(SUPPORTED_LIBNAMES)
4746
_PLATFORM_NAME = "Windows" if IS_WINDOWS else "Linux"
4847
_CANARY_PROBE_TIMEOUT_SECONDS = 10.0
4948

@@ -307,9 +306,9 @@ def load_nvidia_dynamic_lib(libname: str) -> LoadedDL:
307306
)
308307
if libname not in _ALL_KNOWN_LIBNAMES:
309308
raise DynamicLibUnknownError(f"Unknown library name: {libname!r}. Known names: {sorted(_ALL_KNOWN_LIBNAMES)}")
310-
if libname not in _ALL_SUPPORTED_LIBNAMES:
309+
if libname not in ALL_AVAILABLE_LIBNAMES:
311310
raise DynamicLibNotAvailableError(
312311
f"Library name {libname!r} is known but not available on {_PLATFORM_NAME}. "
313-
f"Supported names on {_PLATFORM_NAME}: {sorted(_ALL_SUPPORTED_LIBNAMES)}"
312+
f"Supported names on {_PLATFORM_NAME}: {sorted(ALL_AVAILABLE_LIBNAMES)}"
314313
)
315314
return _load_lib_no_cache(libname)

‎cuda_pathfinder/cuda/pathfinder/_dynamic_libs/supported_nvidia_libs.py‎

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,15 @@
3232
desc.name for desc in _CTK_DESCRIPTORS if desc.windows_dlls and not desc.linux_sonames
3333
)
3434

35+
if not IS_WINDOWS:
36+
ALL_AVAILABLE_LIBNAMES = frozenset(desc.name for desc in DESCRIPTOR_CATALOG if desc.linux_sonames)
37+
else:
38+
assert IS_WINDOWS_X64 or IS_WINDOWS_ARM64
39+
_current_windows_arch = "x64" if IS_WINDOWS_X64 else "arm64"
40+
ALL_AVAILABLE_LIBNAMES = frozenset(
41+
desc.name for desc in DESCRIPTOR_CATALOG if _current_windows_arch in desc.supported_windows_arch
42+
)
43+
3544
SUPPORTED_LIBNAMES_LINUX = SUPPORTED_LIBNAMES_COMMON + SUPPORTED_LIBNAMES_LINUX_ONLY
3645
SUPPORTED_LIBNAMES_WINDOWS_X64 = tuple(desc.name for desc in _CTK_DESCRIPTORS if "x64" in desc.supported_windows_arch)
3746
SUPPORTED_LIBNAMES_WINDOWS_ARM64 = tuple(

‎cuda_pathfinder/tests/test_load_nvidia_dynamic_lib.py‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@
2626

2727

2828
@pytest.mark.agent_authored(model="gpt-5")
29-
def test_loader_uses_platform_supported_libnames():
30-
assert frozenset(supported_nvidia_libs.SUPPORTED_LIBNAMES) == load_nvidia_dynamic_lib_module._ALL_SUPPORTED_LIBNAMES
29+
def test_loader_uses_all_available_libnames():
30+
assert supported_nvidia_libs.ALL_AVAILABLE_LIBNAMES == load_nvidia_dynamic_lib_module.ALL_AVAILABLE_LIBNAMES
3131

3232

3333
def test_supported_libnames_linux_sonames_consistency():
@@ -95,7 +95,7 @@ def test_unknown_libname_raises_dynamic_lib_unknown_error():
9595
def test_known_but_platform_unavailable_libname_raises_dynamic_lib_not_available_error(monkeypatch):
9696
load_nvidia_dynamic_lib.cache_clear()
9797
monkeypatch.setattr(load_nvidia_dynamic_lib_module, "_ALL_KNOWN_LIBNAMES", frozenset(("known_but_unavailable",)))
98-
monkeypatch.setattr(load_nvidia_dynamic_lib_module, "_ALL_SUPPORTED_LIBNAMES", frozenset())
98+
monkeypatch.setattr(load_nvidia_dynamic_lib_module, "ALL_AVAILABLE_LIBNAMES", frozenset())
9999
monkeypatch.setattr(load_nvidia_dynamic_lib_module, "_PLATFORM_NAME", "TestOS")
100100
with pytest.raises(
101101
DynamicLibNotAvailableError,

0 commit comments

Comments
 (0)