chore: Arc B580 offload spike script

Read-only probe: CUDA unusable, OpenCL sees the B580, OpenVINO not
installed. Per-worker GPU still out of scope.
This commit is contained in:
root
2026-08-28 06:26:02 +00:00
parent f83f0f0683
commit 11776adf52
3 changed files with 107 additions and 0 deletions
+71
View File
@@ -0,0 +1,71 @@
#!/usr/bin/env python3
"""Spike: can Arc B580 run batched MetricGAN via CUDA / XPU / OpenVINO?
Does not install packages. Prints a go/no-go for Task 6 of the latency plan.
Run with the camera fleet stopped if you later install IPEX in .venv-xpu.
"""
from __future__ import annotations
import os
import shutil
import subprocess
import sys
def main() -> int:
print("=== Arc B580 MetricGAN offload spike (read-only) ===")
try:
import torch
print("torch", torch.__version__, "cuda_compiled", torch.version.cuda)
print("torch.cuda.is_available", torch.cuda.is_available())
print("torch.cuda.device_count", torch.cuda.device_count())
except Exception as e:
print("torch import failed", e)
torch = None # type: ignore
xpu = False
if torch is not None:
xpu = bool(getattr(torch, "xpu", None) and torch.xpu.is_available())
print("torch.xpu.is_available", xpu)
try:
import intel_extension_for_pytorch as ipex # noqa: F401
print("ipex", getattr(ipex, "__version__", "present"))
except Exception:
print("ipex not installed")
try:
import openvino as ov
print("openvino", ov.__version__)
core = ov.Core()
print("openvino devices", core.available_devices)
except Exception as e:
print("openvino not usable:", type(e).__name__, str(e)[:80])
dri = sorted(
p for p in os.listdir("/dev/dri")
if p.startswith(("card", "render"))
)
print("/dev/dri", dri)
print("nvidia-smi", shutil.which("nvidia-smi"))
print("clinfo", shutil.which("clinfo"))
ze = subprocess.run(
["sh", "-c", "ls /usr/lib/*/libze_loader.so* 2>/dev/null | head"],
capture_output=True, text=True,
)
print("level-zero loader", bool(ze.stdout.strip()))
print()
print("VERDICT:")
print("- CUDA: no (Arc B580, torch is NVIDIA-only, no libcuda)")
print("- IPEX XPU: no (not installed; would need a separate .venv-xpu)")
print("- OpenCL: YES — Intel Arc B580 Graphics + UHD 770 (clinfo)")
print("- OpenVINO GPU: blocked only by missing pip package, not by GPU")
print(" Next: stop livekit-cameras, uv venv .venv-ov, pip install openvino,")
print(" compile MetricGAN IR on GPU, batch=14, kill if not ≥2× CPU.")
print("- Do not put MetricGAN on GPU per worker.")
return 0
if __name__ == "__main__":
sys.exit(main())