Nastavitev HSAIL: AMD pojasnjuje prihodnost sodelovanja CPU / GPU

AMD HSAIL

Pobuda AMD za heterogeno sistemsko arhitekturo (HSA) je v stalnem interesu, odkar se je podjetje prvič začelo pogovarjati o procesorjih »Fusion« leta 2007. Danes je družba na mednarodni konferenci o računalniški tehnologiji Hot Chips podala podrobne podatke o tem, kaj je Fundacija HSA je zasnovala jezik, ki poganja tehnologijo, poimenovan HSAIL (HSA Intermediate Language).

Najbolje je začeti z osnovnim pregledom problema. Kljub priljubljenosti OpenCL in Nvidijine neposredne naložbe v stotine milijonov dolarjev v svoje izdelke Tesla in programsko opremo CUDA je dejanska naloga selitev dela s CPU na GPU, njegovo izvajanje in ponovna vzpostavitev še vedno velik glavobol. Najenostavnejša razlaga problema je naslednja: večino zgodovine je bil trend v računalništvu premikanje nalog na Osrednji Procesna enota, ki bi jih nato izvedla. Igre so tako rekoč edina delovna obremenitev, ki se je uprla tej težnji (premikanje grafičnega procesorja na matrico ni isto kot programiranje igre za zagon na CPU).



Oblikovanje SoC



Po desetletjih premikov delovnih obremenitev proti CPU je oblikovanje sistema, ki jih spet premakne nazaj in omogoča, da je GPU enakovreden partner, zapleteno podjetje. The strojna stran združljivosti HSA to težavo obravnava z določitvijo številnih zmožnosti, ki jih mora imeti kombinirani sistem CPU-GPU, da lahko izkoristi heterogene izračune. CPU in GPU morata imeti skupen nabor vnosov tabel strani, omogočati morata CPU in GPU napako strani (in uporabljati isti naslovni prostor), sistem mora imeti možnost čakalnih ukazov za izvajanje na GPU, ne da bi moral biti potreben OS jedro za izvajanje naloge mora biti GPU sposoben samostojnega preklapljanja med nalogami, obe napravi pa morata biti sposobni naslavljati isti koherentni blok pomnilnika.

HSAIL je zasnovan za obravnavo programske strani enačbe.



HSAIL: To ni API

To je dovolj velika točka zmede, da jo želim odpraviti na začetku. HSAIL je vmesni prevajalski jezik, ki se ustvari med izvajanjem in preslika na ISA prodajalca strojne opreme. Ta skrivnostna omaka omogoča večjim ponudnikom, kot so Imagination, ARM, AMD in Qualcomm, da izkoristijo tehnologijo, čeprav imajo vsak različno strojno opremo GPU. Zamisel je, da napišete kodo v izbranem jeziku (našteti so vsi C ++, AMP, OpenCL, Java ali Python), nato pa se ta koda prevede tako, da cilja na HSAIL in deluje na katerem koli GPU, ki je integriran v sistem.

HSA sklad

Prednost HSAIL-a je po mnenju AMD-a ta, da od programerjev ne bo potrebno, da se učijo povsem novih jezikov. Če ste seznanjeni z OpenCL, uporabite OpenCL. Med zmogljivostmi HSAIL in nekaterimi podporami OpenCL 2.0 se lahko še vedno nekaj prekriva, vendar je HSAIL izrecno zasnovan za poenostavitev programiranja za grafične procesorje na nekatere kritične načine. Odpira tudi možnost pospeševanja jezikov kot Java na GPU, vendar to spet zahteva, da je tudi Java sposobna dobro preslikati grafično kartico. Ta hidra ima številne glave.



Kot je prikazano zgoraj, je osrednja ideja, da strojni blok, ki podpira HSAIL, ni nujno združljiv z x86 ali temelji na GCN ali povezan s katero koli drugo specifično arhitekturo. To pomeni, da ima Imagination lahko kode poganja enako dobro kot Qualcomm, vsaj pod pogojem, da vsako podjetje naredi svoj gonilnik. Kljub temu programerja ne obremenjujejo s tem, kar je velika prednost.

Kaj pa igre na srečo?

To je precej zapleteno vprašanje. Kar imenujemo 'igranje iger', je prav neverjetno zapleten pretok podatkov med CPU, GPU, glavnim pomnilnikom in priloženim pomnilnikom. CPU-ji in GPU-ji so morali vedno komunicirati, toda večino zgodovine je bila ta komunikacija asinhrona in hitra le v eno smer. Kot je razvidno iz spodnjega grafikona, je bila komunikacija CPU-GPU v preteklosti precej nenamerna.

Pasovna širina AMD Llano

Ta grafikon prikazuje Llanovo pasovno širino za CPU in GPU pri dostopu do različnih vrst pomnilnika. Je enostranski, ker odraža neravnovesje med značilnimi pasovnimi širinami CPU in GPU do različnih delov glavnega pomnilnika. Te enostranske povezave je mogoče okrepiti in zmanjšati zakasnitev - smisel njihovega prikaza tukaj je ponazoriti, da to na splošno ponazarja status quo, s katerim so razvijalci že desetletja vajeni. Igre so bile v preteklosti zasnovane tako, da dobro delujejo v določeni vrsti konfiguracije. HSA lahko to spremeni, vendar razvoj programske opreme nenehno zaostaja strojna oprema.

CPU - GPU sodelovanje

To ne pomeni, da HSA ne bo pomemben ali da ne bo mogel povečati zmogljivosti igre. Eno od področij, ki jih AMD poudarja, je, da so bili v preteklosti GPU-ji sicer uporabljeni za pospeševanje in izboljševanje fizike iger, vendar je bila večina obdelave strogo kozmetična. Nvidijin PhysX omogoča čudovite prikaze dodatnih sladkarij za oči, vendar ta očesni bonbon ni vplival na dejansko igro. Ena od stvari, ki jih AMD poudarja v svoji predstavitvi, je fizika v igri je računalniški problem - in HSA je mogoče izkoristiti za ustvarjanje veliko močnejših izkušenj.

HSA bo imel koristi od iger na srečo, vendar podatki kažejo, da te prednosti lahko traja čas, da se pojavi - fizikalni motorji morajo biti zasnovani za posredovanje podatkov naprej in nazaj, HSAIL mora biti poslan, prehod na nov programski model pa bo trajal nekaj časa. Zaenkrat je poudarek na uporabi HSAIL za računske naloge, zato se večina podjetij, ki so napovedala podporo HSA, osredotoča na visoko zmogljivo računalništvo.

Povečanje programabilnosti in uporabnosti grafičnih procesorjev vpliva na mobilne in zapletene naloge, kot sta prepoznavanje obraza in obdelava naravnega jezika. Cilj AMD-a s HSAIL in HSA je zagotoviti skupni okvir, ki lahko pospeši številne naloge, vendar je pot do uporabe iger na srečo lahko bolj zapletena kot na drugih področjih, kjer CPU in GPU skoraj nimajo zgodovine izmenjave podatkov, cilj pa je najprej omogočiti vzpodbujanje GPU.

Copyright © Vse Pravice Pridržane | 2007es.com