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.
Author: Vedran Miletić