晶片製造商AMD發表HSA運算架構的新技術: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上。

過去CPU和GPU的記憶體池仍獨立運作
換句話說,以過去技術發展的狀態,即便GPU和CPU已整合到同一個晶片上(GPGPU技術),晶片在運算時要定位記憶體的位置仍然得經過繁雜的步驟,這是因為CPU和GPU的記憶體池仍然是獨立運作。

先前為了解決兩者記憶體池獨立的運算問題,當CPU程式需要在GPU上進行部分運算時,CPU都必須從CPU的記憶體上複製所有的資料到GPU的記憶體上,而當GPU上的運算完成時,這些資料還得再複製回到CPU記憶體上。這些步驟都會不斷耗費時間以及程式處理的效能。

此外,複製資料的步驟也代表著,當CPU正在運作時,GPU就無法同時運算相同的資料。而當不同程式語言間的關鍵術語(exact terminology)變化時,CPU資料架構會啟動指標器(pointers)來指示相關的資料,但是,因為CPU的指標器是指示到CPU記憶體上的位置,而GPU的記憶體又是另一個獨立架構,因此這樣的架構若複製到GPU上運作,反而會產生位置錯置的問題。

而hUMA技術,就是來解決兩者記憶體獨立的問題。

hUMA能讓GPU直接存取CPU的記憶體位置
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等開發語言。文⊙楊晨欣

hUMA概念

熱門新聞

Advertisement