fix(sgl-kernel): support CUDA 13 runtime preloading for DGX Spark (#18747)

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
blake-snc
2026-02-15 08:43:04 -08:00
committed by GitHub
parent b79808bee2
commit 5fc328465a

View File

@@ -166,6 +166,14 @@ def _load_architecture_specific_ops():
)
# All attempts failed
cuda_version = torch.version.cuda
if cuda_version and cuda_version.startswith("13"):
install_hint = (
"pip install sgl-kernel --index-url https://docs.sglang.ai/whl/cu130/"
)
else:
install_hint = "pip install --upgrade sgl_kernel"
error_msg = f"""
[sgl_kernel] CRITICAL: Could not load any common_ops library!
@@ -177,9 +185,10 @@ Attempted locations:
GPU Info:
- Compute capability: {compute_capability}
- Expected variant: {variant_name}
- CUDA version: {cuda_version}
Please ensure sgl_kernel is properly installed with:
pip install --upgrade sgl_kernel
{install_hint}
Error details from previous import attempts:
{attempt_error_msg}
@@ -205,7 +214,7 @@ def _find_cuda_home():
def _preload_cuda_library():
"""Preload the CUDA runtime library to help avoid 'libcudart.so.12 not found' issues."""
"""Preload the CUDA runtime library to help avoid 'libcudart.so not found' issues."""
cuda_home = Path(_find_cuda_home())
candidate_dirs = [
@@ -217,16 +226,22 @@ def _preload_cuda_library():
Path("/usr/lib"),
]
# Determine CUDA major version to try the matching library first.
# On CUDA 13 systems (e.g., DGX Spark), only libcudart.so.13 exists.
cuda_major = torch.version.cuda.split(".")[0] if torch.version.cuda else "12"
lib_versions = list(dict.fromkeys([cuda_major, "13", "12"]))
for base in candidate_dirs:
candidate = base / "libcudart.so.12"
if candidate.exists():
try:
cuda_runtime_lib = candidate.resolve()
ctypes.CDLL(str(cuda_runtime_lib), mode=ctypes.RTLD_GLOBAL)
logger.debug(f"Preloaded CUDA runtime under {cuda_runtime_lib}")
return
except Exception as e:
logger.debug(f"Failed to load {candidate}: {e}")
continue
for lib_version in lib_versions:
candidate = base / f"libcudart.so.{lib_version}"
if candidate.exists():
try:
cuda_runtime_lib = candidate.resolve()
ctypes.CDLL(str(cuda_runtime_lib), mode=ctypes.RTLD_GLOBAL)
logger.debug(f"Preloaded CUDA runtime under {cuda_runtime_lib}")
return
except Exception as e:
logger.debug(f"Failed to load {candidate}: {e}")
continue
logger.debug("[sgl_kernel] Could not preload CUDA runtime library")