Vector Processing Unit on FPGA

Emil Eyvazov · Czech Technical University Digital Library (Czech Technical University in Prague) · 2026

Násobení matic je široce používaná operace v mnoha oblastech, zejména v oblasti umělé inteligence. Násobení matic lze reprezentovat jako skalární součin vektorů, proto je rychlý a paralelní výpočet skalárního součinu velkých vektorů s miliony a více položkami velmi důležitý. Tato práce představuje jednoduchý, flexibilní a škálovatelný návrh VPU (Vector Processing Unit), který je napsán v SystemVerilog a testován na Zynq SoC, což je FPGA s PS (Processing System), který slouží jako hostitelský CPU, a PL (Programmable Logic), který obsahuje návrh VPU. Zatímco skalární součin je hlavní operací, tento návrh může také provádět operace součtu, minima a maxima dvou velkých vektorů. Rychlá komunikace mezi PS a PL je implementována prostřednictvím dvou DMA IP jader, která přenášejí oba vektory paralelně, aby se urychlila doba přenosu. Vzhledem k flexibilitě a škálovatelnosti návrhu jsou různé konfigurace návrhu testovány vzájemně a proti sekvenčnímu řešení na CPU, aby se dosáhlo nejlepší konfigurace s nejnižším využitím zdrojů FPGA pro skalární součin a další operace. Doba provádění skalárního součinu a dalších operací navrhovaného návrhu je porovnána se sekvenčním návrhem na CPU, aby se prokázalo, že navrhovaný návrh je výrazně rychlejší.

Read the paper · More papers on PaperTik