作為高端計算領(lǐng)域冉冉升起的新星,NVIDIA憑借其GPGPU解決方案成功占領(lǐng)了很多高性能計算和大規(guī)模聯(lián)合渲染市場。能夠取得這樣的成績一方面源于NVIDIA GPGPU產(chǎn)品超強的并行計算能力,而另一方面則來自于CUDA這種高效率的類C開發(fā)語言。而現(xiàn)在,NVIDIA正式發(fā)布了CUDA 6,該版本加入了對統(tǒng)一尋址功能的支持,另GPGPU可以更方便的調(diào)用系統(tǒng)內(nèi)存,從而大幅提升計算效能。
支持統(tǒng)一尋址可使GPGPU直接訪問CPU內(nèi)存、GPU顯存,無需在彼此之間手動拷貝數(shù)據(jù),可在大量編程語言中更簡單地添加GPU加速支持,提高編程和執(zhí)行效率,降低程序復(fù)雜度。
其實CUDA 4就開始支持統(tǒng)一虛擬尋址,x86 CPU、GPU內(nèi)存池可在同一空間內(nèi)進行尋址,但那僅僅是簡單的內(nèi)存管理,擺脫不了手動數(shù)據(jù)轉(zhuǎn)移。
CUDA 6則在現(xiàn)有的內(nèi)存池結(jié)構(gòu)上增加了一個統(tǒng)一內(nèi)存系統(tǒng),程序員可以直接訪問任何內(nèi)存/顯存資源,或者在合法的內(nèi)存空間內(nèi)尋址,而不用管涉及到的到底是內(nèi)存還是顯存。
不過注意,CUDA 6并不是完全不需要數(shù)據(jù)拷貝,只不過將這個工作從程序員那里接過來自動執(zhí)行而已,它仍然受制于PCI-E的帶寬和延遲,因此和AMD hUMA異構(gòu)統(tǒng)一尋址架構(gòu)是不一樣的。
NVIDIA的統(tǒng)一內(nèi)存尋址
簡化的內(nèi)存管理代碼
另外值得一提的是,NVIDIA此前已經(jīng)宣布下代GPU Maxwell將會支持統(tǒng)一虛擬內(nèi)存,但它要到明年才會發(fā)布。NVIDIA表示,他們找到了完全通過軟件執(zhí)行統(tǒng)一內(nèi)存的方法,所以就提前這么做了,Maxwell則會有某種硬件層面的統(tǒng)一內(nèi)存技術(shù)(或許性能更高),但具體細節(jié)還有待公布。
在消費級領(lǐng)域,由于索尼PS4游戲機的發(fā)布,統(tǒng)一尋址技術(shù)開始進入人們的視線(PS4的GPU和CPU使用統(tǒng)一的GDDR5作為系統(tǒng)內(nèi)存和顯存使用,不再彼此分開),這一應(yīng)用的特點便是大幅度提高了程序的執(zhí)行效率,減少各種拷貝操作和相應(yīng)的等待時間。雖然AMD的GPGPU產(chǎn)品也在高性能計算領(lǐng)域有所建樹,但由于缺乏一種好用、易用的編程環(huán)境,AMD在高性能計算市場的表現(xiàn)始終不敵競爭對手NVIDIA。而現(xiàn)在,AMD和NVIDIA都有了自己的統(tǒng)一尋址技術(shù),未來超算的性能和效率有望得到進一步提升。