Pregled heterogene sustavske arhitekture

Note

Složeno prema HSA Overview, autor P. Rogers, poglavlje u knjizi Heterogeneous System Architecture: A New Compute Platform Infrastructure, urednik Wen-mei W. Hwu, izdavač Elsevier (dalje u tekstu: HSAANCPI). Autorska prava na izvorni tekst zadržava HSA Foundation.

Heterogena sustavska arhitektura (engl. Heterogeneous System Architecture, HSA) je:

  • nova hardverska i softverska platforma koja omogućuje zajednički rad procesora različite vrste u dijeljenoj memoriji

  • primjenjiva na pametne telefone, tablete, osobna računala, radne stanice i superračunala

  • evolucija simetričnog multiprocesinga (engl. symmetric multiprocessing, SMP): homogeni multiprocesorski sustavi postavili su temelj za današnje heterogene sustave na čipu (engl. System on Chip, SoC) i ubrzane procesorske jedinice (engl. Accelerated Processing Unit, APU); u zadnjem desetljeću to su čipovi:

    • APU: Intel Core i3, i5, i7; AMD A, E, C, Z, Athloni na socketima AM1 i AM4 te Ryzen serije G i U; NVIDIA Tegra

    • SoC: Samsung Exynos, Qualcomm Snapdragon, ImgTec PowerVR, HiSilicon Kirin, AMD G i R

  • APU/SoC: CPU, GPU, DSP, audio-video enkoderi i dekoderi, DMA uređaji, pogoni za kriptografiju

  • HSA izvorno fokusirana na GPU-e (koji rade uz CPU-e), ali kasnije proširena i na druge vrste uređaja uglavnom već prisutne u SoC-ima

  • GPU-i izvorno vezani na CPU-e kao ulazno-izlazne jedinice

    • odvojeni silicij; integracija CPU-a i GPU-a na isti silicij se pokazala dosta složena

    • korišteni isključivo za grafiku do otkrića programabilnih shadera

    • HSA Foundation uspostavljena s ciljem razvoja jednostavnijih programskih modela za programiranje softvera koji se izvode na CPU-ima i GPU-ima

Kratka povijest računanja na GPU-ima

  • počinje 2000-ih, GPU-i su tada vezani na CPU-e najčešće putem PCI-a ili AGP-a [HSAANCPI, slika 2.1]

  • CPU ima sustavsku (glavnu, radnu) memoriju, GPU ima vlastitu memoriju (uglavnom veće širine pojasa od sustavske memorije)

    • programer mora brinuti o kopiranju podataka iz jedne u drugu ovisno o tome koji uređaj želi koristiti za obradu podataka

    • takav sustav se Non-uniform memory access (NUMA)

      • primjer niske neuniformnosti: SMP sustav s 2 procesora i odvojenim bazenima memorije: svaki CPU ima izravan pristup svojem bazenu memorije (niže zadržavanje), a neizravan pristup tuđem (više zadržavanje)

      • primjer visoke neuinformnosti: heterogeni sustav s CPU-om i GPU-om na sabirnici PCI/AGP/PCIe

    • GPU koristi virtualne adrese kod pristupanja memoriji CPU-a pa se pokazivači i reference ne mogu prosljeđivati između CPU-a i GPU-a

      • strukture podataka moraju imati odmake pojedinih podataka umjesto njihovih adresa u memoriji

    • straničenje i virtualna memorija mogu stvoriti probleme kod pristupanja GPU-a memoriji CPU-a

      • GPU-i mogu pristupati samo onim stranicama u memoriji CPU-a koje su zaključane (engl. page locked) ili prikačene (engl. pinned) pa ih upravljanje virtualnom memorijom neće privremeno preseliti u pohranu podataka

      • postoji ograničenje količine memorije koja može biti zaključana/prikačena i tipično iznosi pola sustavske memorije

      • programer mora brinuti o zaključavanju/kačenju memorije

    • još jedan problem s memorijom je koherencija memorije

      • javlja se kad više niti dijeli podatke u memoriji

Todo

Ovaj dio treba dovršiti.