Acceleratoare specifice domeniului: definiție, arhitectură și utilizare

Acceleratoare specifice domeniului: definiție, arhitectură și utilizare

Acceleratoarele specifice domeniului sau Acceleratoarele specifice domeniului sunt un tip de unitate care se află prin complexitatea sa sub a Procesor, dar are capacitatea de a efectua anumite sarcini consumând mai puțină energie și fiind mai rapid. Dar cum funcționează, ce le definește și de ce sunt viitorul hardware-ului?

Odată cu trecerea timpului, programele trebuie să meargă din ce în ce mai repede, dar în același timp CPU-urile și GPU-urile au devenit monitoare de complexitate, unde este foarte dificil să crești performanțele într-un mod tradițional. Soluția viitoare pentru această problemă? Acceleratoare specifice domeniului

În primul rând, conceptul clapetei de accelerație

Sistema ARM RISC

De la începutul computerului, cipurile de asistență au fost necesare pentru a accelera anumite tehnici, inițial aceste cipuri au eliberat CPU-ul de a efectua o sarcină repetitivă și recursivă. Cel mai clar exemplu au fost sistemele grafice care au făcut ca CPU-ul să nu trebuiască să piardă majoritatea timpului desenând pe ecran.

Un accelerator este un cip de asistență care merge mai departe, deoarece nu numai că eliberează CPU-ul de a face acea sarcină, ci și îl accelerează. Adică, sarcina se realizează într-o parte din timp din ceea ce ar lua CPU. Ceea ce înseamnă că este accelerat și are un impact asupra faptului că totul merge mai repede. De aici și numele accelerator.

Acceleratoare există multe tipuri și modele, orice tip de hardware poate fi un accelerator: un microcontroler, un FPGA, un circuit combinațional sau secvențial etc. În ultimii ani a apărut un tip de accelerator care va domina hardware-ul în anii următori , Acceleratoare specifice domeniului.

Acceleratoare specifice domeniului, definiție generală

reloj-CPU

În hardware, folosim acceleratoare de mult timp pentru diferite tipuri de joburi și aplicații specifice și, prin urmare, pentru un domeniu specific, în special. Astăzi aceste domenii pot fi grafică, Deep Learning, bioinformatică, procesare vocală și imagini în timp real. Există multe domenii specifice în care un Accelerator specific domeniului poate rezolva problema într-un mod mai bun decât un procesor, adică în mai puțin timp și consumând mai puțin.

Primul lucru care îmi va veni în minte este întrebarea: este un GPU un Accelerator specific domeniului? Nu Nu este. DSA-urile se ocupă în special de sarcini foarte specifice, astfel încât un GPU va avea mai multe dintre aceste unități. Pentru a face mai ușor de înțeles, trebuie luat în considerare faptul că fiecare sarcină poate fi împărțită în mai multe sarcini mai mici care pot fi accelerate independent cu acest tip de procesoare.

Cu toate acestea, acceleratoarele specifice domeniului sunt diferite de alte opțiuni care există pe piață, deoarece exploatează în proiectarea lor o serie de caracteristici care le plasează între procesoarele de uz general și acceleratoarele convenționale. Cu alte cuvinte, acestea nu ating complexitatea unui CPU, dar sunt mult mai complexe decât soluțiile clasice, în special cele bazate pe o funcție fixă.

Domeniu specific, ISA specific

Codul sursă

Primul lucru pe care trebuie să-l avem în vedere este că un Domain Specific Accelerator nu este un CPU, deși execută și un program, designul său este optimizat pentru o soluție specifică și nu una în general, pentru aceasta se creează un ISA total în jurul Unitate DSA exclusivă ale cărei instrucțiuni, registre și tipuri de date utilizate sunt considerate a rezolva într-un timp scurt anumite instrucțiuni pe care un procesor le-ar lua multe cicluri.

CPU-urile din ISA-urile lor construiesc astăzi instrucțiuni din microinstrucțiuni care partajează o cale de date comună prin ciclul de instrucțiuni. Aceasta înseamnă că, datorită complexității setului de instrucțiuni, o instrucțiune complexă durează mai multe cicluri. Într-un DSA putem crea bucle de instrucțiuni și căi de date specifice pentru anumite instrucțiuni care rulează mai repede. Putem chiar să creăm unități în paralel care execută doar acea instrucțiune recursiv.

Dar cel mai mare avantaj al acestui lucru este că ne permite pentru anumite aplicații să scăpăm de instrucțiunile pe care o unitate cu scop general, care pentru aplicația noastră specifică este inutilă. Și că în ultimii ani au ajuns să transforme seturile de registre și instrucțiuni ale CPU-urilor și GPU-urilor în mastodonti care ocupă un spațiu mare.

Acceleratoare specifice domeniului și acces la memorie

Coste Energético Relativo

O altă îmbunătățire a DSA are legătură cu memoria, deoarece, la fel ca un microcontroler, ei folosesc memoria în cadrul acceleratorului în sine. Ceea ce este important, deoarece distanța fizică în care se află memoria influențează costul energetic al instrucțiunilor.

Configurația sa de memorie este principalul avantaj al acceleratoarelor, deoarece fiecare instrucțiune executată consumă mult mai puțină energie decât într-un procesor, în plus, evită problema discordiei cu memoria. Un DSA nu folosește sistemul RAM pentru a-și efectua calculele, astfel încât să poată funcționa în paralel tot timpul.

În plus, datorită modului lor de funcționare, le putem plasa într-un SoC sau într-o structură similară și să avem CPU care să comunice direct cu ele, totul fără a fi nevoie să parcurgem memoria RAM pentru a obține datele.

Hardware și software merg mână în mână în DSA-uri

Diseño Circuitos Papel

Proiectarea hardware-ului nu se face în mod normal pentru un anumit software, ci mai degrabă este software-ul care este adaptat pentru a profita de hardware. Acest lucru se realizează prin utilizarea API-urilor specializate la nivel de software în care software-ul interacționează cu o abstractizare a hardware-ului, astfel încât un program care este driverul este cel care efectuează traducerea între abstractizare și hardware.

În Domain Specific Accelerators, ideea este că pot executa un program care rulează pe ei ca și cum ar fi un CPU, dar având în vedere că au un set specializat de instrucțiuni pentru o anumită problemă, cu scopul ca programele să ruleze mai rapid sub un DSA care sub un CPU datorită ISA și arhitecturii sale specializate.

Test Design Procesadores

Multe dintre proiectele hardware în viitor vor fi DSA-uri pentru probleme specializate. Care vor fi create local în fiecare companie și instituție pentru a accelera anumite părți ale unuia sau mai multor programe care au fost dezvoltate. Implementarea acestuia va fi prin crearea de cipuri unice, implementarea sa în SoC-uri și chiar în FPGA-uri prin limbaje precum Verilog sau VHDL.

Deci, este să inversăm complet relația dintre hardware și software, deoarece trecem de la proiectarea software-ului pentru a profita de un hardware specific la proiectarea hardware pentru soluții software specifice.