Compiling Algorithms for Heterogeneous Systems
Majoritatea aplicațiilor emergente în domeniul imagisticii și al învățării automate trebuie să efectueze cantități imense de calcul, respectând în același timp limite stricte de energie și putere. Pentru a atinge aceste obiective, arhitecții construiesc motoare de calcul din ce în ce mai specializate, adaptate pentru aceste sarcini specifice. Sistemele informatice rezultate sunt eterogene, conținând mai multe nuclee de procesare cu modele de execuție extrem de diferite. Din păcate, costul de producție al acestui hardware specializat - și al software-ului pentru controlul acestuia - este astronomic. În plus, sarcina de portare a algoritmilor pe aceste mașini eterogene necesită de obicei ca algoritmul să fie împărțit pe mașină și rescris pentru fiecare arhitectură specifică, ceea ce necesită mult timp și este predispus la erori.
În ultimii câțiva ani, autorii au abordat această problemă utilizând limbaje specifice domeniului (DSL): limbaje de programare de nivel înalt personalizate pentru domenii specifice, cum ar fi manipularea bazelor de date, învățarea automată sau prelucrarea imaginilor. Prin renunțarea la generalitate, aceste limbaje sunt capabile să ofere dezvoltatorului abstracții de nivel înalt, producând în același timp rezultate de înaltă performanță. Scopul acestei cărți este de a stimula adoptarea și crearea de limbaje specifice domeniului, în special pentru sarcina de a crea proiecte hardware.
În primul capitol, o scurtă călătorie istorică explică forțele care conduc arhitectura calculatoarelor în prezent. Capitolul 2 descrie diversele metode de realizare a proiectelor pentru acceleratoare, subliniind nevoia de mai multă abstractizare și instrumentele care permit proiectanților să lucreze la un nivel conceptual superior. De aici, capitolul 3 oferă o scurtă introducere în algoritmii de procesare a imaginilor și în modelele de proiectare hardware pentru implementarea acestora. Capitolele 4 și 5 descriu și compară Darkroom și Halide, două limbaje specifice domeniului create pentru prelucrarea imaginilor care produc proiecte de înaltă performanță atât pentru FPGA, cât și pentru CPU din același cod sursă, permițând cicluri rapide de proiectare și portarea rapidă a algoritmilor. Secțiunea finală descrie modul în care abordarea DSL simplifică, de asemenea, problema interfeței dintre codul aplicației și accelerator prin generarea stivei de drivere în plus față de configurația acceleratorului.
Această carte ar trebui să servească ca o introducere utilă în calculul specializat pe domenii pentru studenții la arhitectura calculatoarelor și ca o introducere în limbajele specifice domeniului și hardware-ul de procesare a imaginilor pentru cei cu mai multă experiență în domeniu.
© Book1 Group - toate drepturile rezervate.
Conținutul acestui site nu poate fi copiat sau utilizat, nici parțial, nici integral, fără permisiunea scrisă a proprietarului.
Ultima modificare: 2024.11.08 07:02 (GMT)