PyTorch's CUDA 12.8 and 12.9 builds start at Turing since torch 2.8, as CUDA 13 does, so on a V100 both ComfyUI builds were installed, 10 GB each, and failed on the card with "no kernel image". The cu129 build now needs 7.5, and a third, on PyTorch's CUDA 12.6 torch, carries Volta and Pascal. The open kernel module, NVIDIA's default since 560, writes "Open Kernel Module for x86_64 580.82.07" in /proc/driver/nvidia/version, and the word after "Module" was taken as the driver: "for". With the driver unknown, every build was tried whatever driver it needs. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
26 lines
931 B
Go
26 lines
931 B
Go
package discovery
|
|
|
|
import (
|
|
"os"
|
|
"path/filepath"
|
|
"testing"
|
|
)
|
|
|
|
func TestNVIDIADriverFrom(t *testing.T) {
|
|
for _, tc := range []struct{ text, want string }{
|
|
{"NVRM version: NVIDIA UNIX x86_64 Kernel Module 570.86.15 Thu Jan 23 21:30:38 UTC 2025\nGCC version: gcc version 12.2.0\n", "570.86.15"},
|
|
{"NVRM version: NVIDIA UNIX Open Kernel Module for x86_64 580.82.07 Release Build (dvs-builder@U16-I3-B03-4-3) Wed Aug 27 00:51:12 UTC 2025\n", "580.82.07"},
|
|
{"NVRM version: NVIDIA UNIX Open Kernel Module for aarch64 580.95.05 Release Build\n", "580.95.05"},
|
|
{"NVRM version: NVIDIA UNIX x86_64 Kernel Module 535.54 Mon\n", "535.54"},
|
|
{"something else\n", ""},
|
|
} {
|
|
p := filepath.Join(t.TempDir(), "version")
|
|
if err := os.WriteFile(p, []byte(tc.text), 0o600); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if got := nvidiaDriverFrom(p); got != tc.want {
|
|
t.Errorf("%q: got %q, want %q", tc.text, got, tc.want)
|
|
}
|
|
}
|
|
}
|