Hardwarová akcelerace - Hardware acceleration

Hardwarová akcelerace je použití počítačového hardwaru určeného k efektivnějšímu provádění konkrétních funkcí ve srovnání se softwarem běžícím na univerzální procesorové jednotce (CPU). Jakékoli transformace z údajů , které lze vypočítat software běžící na generické CPU lze také vypočítat v zakázkovém hardwaru, nebo v nějakém kombinaci obojího.

Aby bylo možné provádět výpočetní úlohy rychleji (nebo lépe jiným způsobem), lze obecně investovat čas a peníze do vylepšení softwaru, vylepšení hardwaru nebo obojího. Existují různé přístupy s výhodami a nevýhodami z hlediska snížené latence , zvýšené propustnosti a snížené spotřeby energie . Mezi typické výhody zaměření na software může patřit rychlejší vývoj , nižší neopakující se technické náklady, vyšší přenositelnost a snadná aktualizace funkcí nebo opravování chyb za cenu režie pro výpočet obecných operací. Mezi výhody zaměření na hardware může patřit zrychlení , snížená spotřeba energie , nižší latence, zvýšený paralelismus a šířka pásma a lepší využití plošných a funkčních komponent dostupných na integrovaném obvodu ; za cenu nižší schopnosti aktualizovat návrhy po vyleptání na křemík a vyšších nákladů na funkční ověření a časů uvedení na trh. V hierarchii digitálních výpočetních systémů od univerzálních procesorů po plně přizpůsobený hardware existuje kompromis mezi flexibilitou a efektivitou, přičemž účinnost se zvyšuje o řád, když je jakákoli daná aplikace implementována výše v této hierarchii. Tato hierarchie zahrnuje univerzální procesory, jako jsou procesory, specializovanější procesory, jako jsou GPU , pevná funkce implementovaná v polích programovatelných bran (FPGA) a pevná funkce implementovaná v integrovaných obvodech specifických pro aplikaci (ASIC).

Hardwarová akcelerace je výhodná z hlediska výkonu a praktická, když jsou funkce opraveny, takže aktualizace nejsou tak potřebné jako v softwarových řešeních. S příchodem přeprogramovatelných logických zařízení, jako jsou FPGA, se omezení hardwarové akcelerace na plně fixní algoritmy od roku 2010 zmírnilo, což umožnilo hardwarovou akceleraci aplikovat na problémové domény vyžadující úpravu algoritmů a řízení toku zpracování .

Přehled

Integrované obvody mohou být vytvořeny pro provádění libovolných operací s analogovými a digitálními signály. Nejčastěji v oblasti výpočetní techniky jsou signály digitální a lze je interpretovat jako data binárních čísel . Počítačový hardware a software pracuje s informacemi v binární reprezentaci k provádění výpočtů ; toho je dosaženo výpočtem booleovských funkcí na bitech vstupu a výstupem výsledku do některého výstupního zařízení po proudu pro uložení nebo další zpracování .

Výpočetní ekvivalence hardwaru a softwaru

Protože všechny Turingovy stroje mohou provozovat jakoukoli vypočítatelnou funkci , je vždy možné navrhnout vlastní hardware, který plní stejnou funkci jako daný software. Naopak software lze vždy použít k emulaci funkce daného hardwaru. Vlastní hardware může nabízet vyšší výkon na watt pro stejné funkce, které lze specifikovat v softwaru. Jazyky popisu hardwaru (HDL), jako jsou Verilog a VHDL, mohou modelovat stejnou sémantiku jako software a syntetizovat design do netlistu, který lze naprogramovat na FPGA nebo složit do logických bran ASIC.

Počítače s uloženým programem

Drtivá většina softwarových výpočtů se vyskytuje na strojích implementujících von Neumannovu architekturu , souhrnně označovaných jako počítače s uloženým programem . Počítačové programy jsou uloženy jako data a vykonán podle procesorů . Takové procesory musí načítat a dekódovat instrukce, stejně jako načítat datové operandy z paměti (jako součást cyklu instrukcí ), aby mohly provádět instrukce tvořící softwarový program. Spoléhání se na společnou mezipaměť pro kód a data vede k „von Neumann bottleneck“, což je zásadní omezení propustnosti softwaru na procesorech implementujících von Neumannovu architekturu. I v upravené Harvardské architektuře , kde mají instrukce a data v paměťové hierarchii oddělené mezipaměti , existuje režie dekódování instrukčních kódů a multiplexování dostupných prováděcích jednotek na mikroprocesoru nebo mikrokontroléru , což vede k nízkému využití obvodu. Moderní procesory, které poskytují simultánní vícevláknové využití, využívají nedostatečné využití dostupných funkčních jednotek procesoru a paralelismus na úrovni instrukcí mezi různými hardwarovými vlákny.

Hardwarové prováděcí jednotky

Hardwarové prováděcí jednotky obecně nespoléhají na von Neumannovu nebo upravenou harvardskou architekturu a nepotřebují provádět kroky načítání a dekódování instrukčního cyklu instrukcí a způsobovat režii těchto fází. Pokud jsou v hardwarovém návrhu úrovně přenosu registru (RTL) specifikovány potřebné výpočty, lze náklady na čas a obvodovou oblast, které by vznikly fázemi načítání instrukcí a dekódováním, získat zpět a použít k jinému použití.

Tato rekultivace šetří čas, energii a oblast obvodu při výpočtu. Rekultivované zdroje lze použít ke zvýšení paralelního výpočtu, dalších funkcí, komunikace nebo paměti a také ke zvýšení možností vstupu/výstupu . To stojí za cenu univerzálního nástroje.

Rozvíjející se hardwarové architektury

Větší přizpůsobení hardwarových návrhů RTL umožňuje rozvíjejícím se architekturám, jako je výpočet v paměti , architektury spouštěné transportem (TTA) a sítě na čipu (NoC), dále těžit ze zvýšené lokalizace dat do kontextu provádění, čímž se snižuje výpočetní a komunikační latence mezi moduly a funkční jednotky.

Vlastní hardware je omezen v možnosti paralelního zpracování pouze oblastí a logickými bloky dostupnými na kostce integrovaného obvodu . Proto je hardware mnohem svobodnější nabídnout masivní paralelismus než software na obecných procesorech, což nabízí možnost implementace modelu paralelního stroje s náhodným přístupem (PRAM).

Je běžné, že se staví vícežilových a manycore zpracovatelských jednotek z mikroprocesorových IP základních schémat na jediném FPGA nebo ASIC. Podobně lze specializované funkční jednotky skládat paralelně jako při zpracování digitálního signálu, aniž by byly vloženy do jádra IP procesoru . Hardwarová akcelerace se proto často používá pro opakující se fixní úlohy zahrnující malé podmíněné větvení , zejména u velkého množství dat. To je, jak NVIDIA ‚s CUDA řada GPU jsou implementovány.

Metriky implementace

Jak se mobilita zařízení zvýšila, byly vyvinuty nové metriky, které měří relativní výkon konkrétních protokolů akcelerace s ohledem na charakteristiky, jako jsou fyzické rozměry hardwaru, spotřeba energie a provozní propustnost. Ty lze shrnout do tří kategorií: efektivita úkolů, účinnost implementace a flexibilita. Příslušné metriky zohledňují oblast hardwaru spolu s odpovídající propustností operací a spotřebovanou energií.

Aplikace

Mezi příklady hardwarové akcelerace patří funkce akcelerace bit blit v grafických procesorových jednotkách (GPU), použití memristorů pro akceleraci neuronových sítí a hardwarová akcelerace s regulárním výrazem pro kontrolu spamu v serverovém průmyslu, která má zabránit útokům typu ReDoS ( Denial of Service ). Hardware, který provádí zrychlení, může být součástí univerzálního procesoru nebo samostatnou jednotkou nazývanou hardwarový akcelerátor, ačkoli jsou obvykle označovány konkrétnějším termínem, například 3D akcelerátor nebo kryptografický akcelerátor .

Tradičně procesory byly sekvenční (instrukce jsou prováděny jeden po druhém), a byly navrženy tak, aby běžet k obecnému použití algoritmů řízeny vyzvedávání instrukcí (například pohybující se dočasné výsledky az do souboru registrů ). Hardwarové akcelerátory zlepšují provádění konkrétního algoritmu tím, že umožňují větší souběžnost , mají specifické datové cesty pro jejich dočasné proměnné a snižují režii řízení instrukcí v cyklu načítání, dekódování a spouštění.

Moderní procesory jsou vícejádrové a často mají paralelní jednotky „ SIMD (single-instruction; multiple data“ ). I přesto hardwarová akcelerace stále přináší výhody. Hardwarová akcelerace je vhodná pro jakýkoli algoritmus náročný na výpočet, který je často prováděn v úkolu nebo programu. V závislosti na zrnitosti se hardwarová akcelerace může lišit od malé funkční jednotky po velký funkční blok (jako odhad pohybu v MPEG-2 ).

Hardwarové akcelerační jednotky podle aplikace

aplikace Hardwarový akcelerátor Akronym
Počítačová grafika Jednotka pro zpracování grafiky GPU
  • GPGPU
  • CUDA
  • RTX
Zpracování digitálních signálů Digitální signálový procesor DSP
Zpracování analogového signálu Polně programovatelné analogové pole FPAA
  • FPRF
Zpracování zvuku Mixér zvukové karty a zvukové karty N/A
Počítačové sítě Síťový procesor a řadič síťového rozhraní NPU a NIC
  • NoC
  • TCPOE nebo TOE
  • I/OAT nebo IOAT
Kryptografie Kryptografický akcelerátor a bezpečný kryptoprocesor N/A
Umělá inteligence Urychlovač AI N/A
  • VPU
  • PNN
  • N/A
Víceřádková algebra Jednotka pro zpracování tenzoru TPU
Simulace fyziky Jednotka zpracování fyziky PPU
Regulární výrazy Koprocesor s regulárním výrazem N/A
Komprese dat Akcelerátor komprese dat N/A
Zpracování v paměti Síť na čipu a systolické pole NoC; N/A
Zpracování dat Jednotka zpracování dat DPU
Jakýkoli výpočetní úkol Počítačový hardware HW (někdy)
  • FPGA
  • ASIC
  • CPLD
  • SoC
    • MPSoC
    • PSoC

Viz také

Reference

externí odkazy