1 Punkte von haruneo 1 일 전 | Noch keine Kommentare. | Auf WhatsApp teilen

Ich habe mich gefragt, ob es eine günstige Möglichkeit gibt, große Modelle auszuführen, und dabei die CMP 100-210 entdeckt, also habe ich testweise vier Stück gekauft.
Mit 16 GB HBM2 pro Karte sah das ziemlich gut aus.

Aber NVIDIA hat sie wirklich konsequent blockiert.

  • Tensor Cores sind 64-mal langsamer (HMMA-Latenz 8→512 Zyklen)
  • PCIe Gen1 x1, dazu kein P2P
  • CUPTI ist ebenfalls gesperrt, daher lässt sich auch torch.profiler nicht nutzen
  • Es ist per im Die eingebrannter e-fuse blockiert, also lässt sich auch per Firmware nichts freischalten (alles ausprobiert)

Deshalb funktionieren vLLM, der Standardpfad von llama.cpp, FA und bnb alle nicht.
Alles, was cuBLAS Tensor Cores anfasst, läuft entweder nur mit 1/64 der Geschwindigkeit oder stürzt ab.

Es war zu schade, GPU-Hardware im Wert von 640.000 Won ungenutzt auf dem Schreibtisch liegen zu haben, also habe ich meine eigene Inferenz-Engine geschrieben.

Ich habe nur Pfade verwendet, bei denen kein Throttling greift:

  • GEMM mit selbstgeschriebenem DP4A-Kernel (int8, 17 TFLOP)
  • Attention mit selbstgeschriebenem FlashAttention plus block-sparse im MInference-Stil
  • Zwischen GPUs eine Hidden-State-Bridge über pinned host memory (weil es kein P2P gibt)
  • 256K Kontext mit 3-Bit-KV-Cache (WHT + Lloyd-Max), von 17 GB auf 3,5 GB

Derzeit laufen sowohl 27B als auch 9B, sofern es sich um Qwen3.5/3.6-Hybridmodelle (GDN + Attention) handelt.
OpenAI-kompatible API, Streaming, Tool Calls, Vision (mmproj) und /no_think werden ebenfalls unterstützt.

Benchmarks (gegenüber llama.cpp build 8462, gleiches Q8_0 GGUF, gleiche Hardware):

  • 9B Single-GPU Prefill: 1,22 ~ 2,99x
  • 27B 3-GPU Prefill: 1,45 ~ 2,86x
  • Gen: +30 ~ 50%

Ehrliche Einschränkungen:

  • MoE wird nicht unterstützt (nur dichte Hybridmodelle)
  • Wenn ihr eine A100 / H100 habt, nutzt vLLM. Das ist deutlich schneller.
  • Dinge wie DFlash sind zwar im Code vorhanden, laufen aber nicht (drafter mismatch)
  • Offiziell wird nur Q8_0 unterstützt

Ich hoffe, das hilft Leuten, die in einer ähnlichen Umgebung feststecken.
Da die Engine von einem Oberstufenschüler im 1. Jahr mit Hilfe von Claude erstellt wurde, kann es viele Bugs und viel Spaghetti-Code geben.
Issues und PRs sind willkommen!

Noch keine Kommentare.

Noch keine Kommentare.