File size: 1,902 Bytes
e8805c1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#!/usr/bin/env bash

set -euo pipefail

failures=0

check_command() {
  local name="$1"
  if command -v "$name" >/dev/null 2>&1; then
    echo "OK   command: $name -> $(command -v "$name")"
  else
    echo "FAIL command: $name"
    failures=$((failures + 1))
  fi
}

check_file() {
  local path="$1"
  if [[ -f "$path" ]]; then
    echo "OK   file: $path"
  else
    echo "FAIL file: $path"
    failures=$((failures + 1))
  fi
}

echo "===== COMMANDS ====="
check_command python
check_command vllm
check_command gcc
check_command g++
check_command ninja
check_command nvidia-smi

echo
echo "===== SYSTEM FILES ====="
check_file /usr/include/python3.12/Python.h
check_file /usr/lib/wsl/lib/libcuda.so

echo
echo "===== PYTHON PACKAGES ====="
python - <<'PY'
import importlib.metadata

for package in ("vllm", "torch", "transformers", "compressed-tensors", "nvidia-cuda-nvrtc"):
    try:
        print(f"OK   {package}: {importlib.metadata.version(package)}")
    except importlib.metadata.PackageNotFoundError:
        print(f"MISS {package}")
PY

echo
echo "===== NVRTC FILES ====="
python - <<'PY'
import site
from pathlib import Path

found = []
for site_dir in site.getsitepackages():
    for path in (Path(site_dir) / "nvidia").glob("cu*/lib/libnvrtc*.so*"):
        found.append(path)

for path in sorted(found):
    print(path)

if not found:
    raise SystemExit("No NVRTC libraries found")
PY

echo
echo "===== CUDA DRIVER LINK ====="
cat >/tmp/internvl_cuda_link_test.cpp <<'CPP'
extern "C" int cuInit(unsigned int flags);
int main() { return 0; }
CPP

LIBRARY_PATH="/usr/lib/wsl/lib:${LIBRARY_PATH:-}" \
  g++ /tmp/internvl_cuda_link_test.cpp -Wl,--no-as-needed -lcuda \
  -o /tmp/internvl_cuda_link_test

echo "OK   CUDA driver link"

if [[ "$failures" -ne 0 ]]; then
  echo "Runtime check failed: $failures required item(s) missing." >&2
  exit 1
fi

echo
echo "WSL RUNTIME CHECK: SUCCESS"