AMD公開HSA運算架構細節
2013-05-13 20:09:11 本站原創AMD發表新運算架構技術hUMA,可讓CPU與GPU共享同一記憶體空間,解決過去的資料重覆拷貝問題
2012年,AMD就攜手ARM、高通、三星、聯發科等廠商成立HSA(Heterogeneous Systems Architecture)基金會,希望拓展CPU和GPU協同運算的新架構,并輔助此架構發展的異質運算新軟體開發環境。
日前,AMD進一步公開說明此運算架構的新技術:hUMA(heterogeneous Uniform Memory Access)。透過hUMA,CPU和GPU能共享同一個記憶體空間,并且CPU能夠直接存取GPU的記憶體位址,不必像過去得花工夫再將GPU的運算資料復寫到CPU上。
換句話說,以過去技術發展的狀態,即便GPU和CPU已整合到同一個晶片上(GPGPU技術),晶片在運算時要定位記憶體的位置仍然得經過繁雜的步驟,這是因為CPU和GPU的記憶體池仍然是獨立運作。
先前為了解決兩者記憶體池獨立的運算問題,當CPU程式需要在GPU上進行部分運算時,CPU都必須從CPU的記憶體上復制所有的資料到GPU的記憶體上,而當GPU上的運算完成時,這些資料還得再復制回到CPU記憶體上。這些步驟都會不斷耗費時間以及程式處理的效能。
此外,復制資料的步驟也代表著,當CPU正在運作時,GPU就無法同時運算相同的資料。而當不同程式語言間的關鍵術語(exact terminology)變化時,CPU資料架構會啟動指標器(pointers)來指示相關的資料,但是,因為CPU的指標器是指示到CPU記憶體上的位置,而GPU的記憶體又是另一個獨立架構,因此這樣的架構若復制到GPU上運作,反而會產生位置錯置的問題。
而hUMA技術,就是來解決兩者記憶體獨立的問題。
hUMA像個連貫快取的系統,讓CPU和GPU能共享同一個記憶體空間,讓CPU和GPU在記憶體上看到的資料都能維持一致,如果其中一方上的資料改變,即便舊資料經過快取,另一方還是能看到經改變的資料。換句話說,hUMA能讓GPU直接存取CPU的記憶體位置,當CPU在讀寫資料時,GPU也能同時讀寫資料。
此外,hUMA也能用在CPU的需要配置虛擬記憶體(demand-paged virtual memory)上。當GPU要存取寫在磁碟上的位置時,CPU就能讓作業系統去尋找,并加載相關的資料進記憶體中。
第一款支援hUMA的產品將會是AMD的Kaveri APU,預計今年下半年上市。根據AMD表示,hUMA將會支援C++和Java等開發語言。