Custom C++ Engine verdoppelt MiniCPM-V 4.6 auf Orange Pi AIPro auf 5,90 Token/s
Nutzer Known_Ice9380 hat in wenigen Wochen eine vollständig von Grund auf neu geschriebene C++-Inference-Engine für das multimodale Modell MiniCPM-V 4.6 entwickelt, die auf dem Orange Pi AIPro-Board mit Ascend 310B NPU läuft. Das Board kostet rund 149 USD und bietet 20 TOPS INT8 bzw. 10 TFLOPS FP16. Ausgangspunkt war die Beobachtung, dass der Standard-aclnnMm-Stack beim Token-Decoding (M=1, Vektor-Matrix-Multiplikation) die Cube-Einheit des NPU stark unterauslastet und nur 2,88 Token/s bei 350 ms pro Schritt liefert. Die Optimierung erfolgte in drei Stufen: Erstens ein Custom Cube Matmul-Kernel für M=1 via MatmulImpl (+1,49 Token/s, –121 ms), zweitens ein 16-Chunk-Cube-Pfad für den besonders breiten lm_head (Vokabular ~248k Token, –29 ms), drittens ein vektorisierter Causal-Conv1d-Step-Kernel mit Unified Buffer DMAs (–30 ms). Python wird ausschließlich für CPU-seitiges Tokenisieren und Bild-Preprocessing verwendet; der gesamte Hot Path läuft torch_npu-frei im C++-Subprocess. Das Dekodieren ist aktuell durch die 44 GB/s Speicherbandbreite des Boards limitiert; die theoretische Untergrenze liegt bei ~32 ms, der aktuelle Wert bei 170 ms. Als nächsten Schritt plant der Autor INT4/INT8-Dequantisierungskernels, um 12+ Token/s zu erreichen. Der Quellcode inklusive Custom Ops, Build-Skripten und Gradio-Web-UI ist öffentlich auf GitHub verfügbar.
Frag die KI zum Artikel
Folgefragen zu Headline, Quelle und Volltext — Antwort streamt in wenigen Sekunden.
Verwandte Beiträge
- LAUNCHreddit.com3w
Open Compiler für RK3588-NPU: GPT-2 läuft mit 36 tok/s ohne Vendor-SDK
- BENCHMARKreddit.com2w
Open-Source-Kernel für AMD MI350X erreicht 78.498 tok/s mit Qwen3-35B-A3B
- FORSCHUNGarxiv.org3w
Verteilte LLM-Inferenz über Intel AI PC Flotten via Pipeline-Parallelismus
- FORSCHUNGarxiv.org2w
2-Bit-LLM-Inferenz: 7× Speed-up gegenüber 16-Bit auf CPUs und Intel Xe2 GPUs
Custom C++ Engine verdoppelt MiniCPM-V 4.6 auf Orange Pi AIPro auf 5,90 Token/s
Nutzer Known_Ice9380 hat in wenigen Wochen eine vollständig von Grund auf neu geschriebene C++-Inference-Engine für das multimodale Modell MiniCPM-V 4.6 entwickelt, die auf dem Orange Pi AIPro-Board mit Ascend 310B NPU läuft. Das Board kostet rund 149 USD und bietet 20 TOPS INT8 bzw. 10 TFLOPS FP16. Ausgangspunkt war die Beobachtung, dass der Standard-aclnnMm-Stack beim Token-Decoding (M=1, Vektor-Matrix-Multiplikation) die Cube-Einheit des NPU stark unterauslastet und nur 2,88 Token/s bei 350 ms pro Schritt liefert. Die Optimierung erfolgte in drei Stufen: Erstens ein Custom Cube Matmul-Kernel für M=1 via MatmulImpl (+1,49 Token/s, –121 ms), zweitens ein 16-Chunk-Cube-Pfad für den besonders breiten lm_head (Vokabular ~248k Token, –29 ms), drittens ein vektorisierter Causal-Conv1d-Step-Kernel mit Unified Buffer DMAs (–30 ms). Python wird ausschließlich für CPU-seitiges Tokenisieren und Bild-Preprocessing verwendet; der gesamte Hot Path läuft torch_npu-frei im C++-Subprocess. Das Dekodieren ist aktuell durch die 44 GB/s Speicherbandbreite des Boards limitiert; die theoretische Untergrenze liegt bei ~32 ms, der aktuelle Wert bei 170 ms. Als nächsten Schritt plant der Autor INT4/INT8-Dequantisierungskernels, um 12+ Token/s zu erreichen. Der Quellcode inklusive Custom Ops, Build-Skripten und Gradio-Web-UI ist öffentlich auf GitHub verfügbar.
Frag die KI zum Artikel
Folgefragen zu Headline, Quelle und Volltext — Antwort streamt in wenigen Sekunden.
Verwandte Beiträge
- LAUNCHreddit.com3w
Open Compiler für RK3588-NPU: GPT-2 läuft mit 36 tok/s ohne Vendor-SDK
- BENCHMARKreddit.com2w
Open-Source-Kernel für AMD MI350X erreicht 78.498 tok/s mit Qwen3-35B-A3B
- FORSCHUNGarxiv.org3w
Verteilte LLM-Inferenz über Intel AI PC Flotten via Pipeline-Parallelismus
- FORSCHUNGarxiv.org2w
2-Bit-LLM-Inferenz: 7× Speed-up gegenüber 16-Bit auf CPUs und Intel Xe2 GPUs