決戰(zhàn)性能之巔!NV雙芯旗艦GTX590評(píng)測(cè)
GF100核心擁有很多種類的緩存,他們的用途不盡相同,其中一級(jí)緩存、共享緩存和紋理緩存位于SM內(nèi)部,二級(jí)緩存則是獨(dú)立的一塊,與光柵單元及顯存控制器相連。
9.6 一級(jí)緩存與二級(jí)緩存
● 64KB可配置共享緩存與一級(jí)高速緩存
以往的GPU都是沒(méi)有一級(jí)緩存的,只有一級(jí)紋理緩存,因?yàn)檫@些緩存無(wú)法在通用計(jì)算中用于存儲(chǔ)計(jì)算數(shù)據(jù),只能用于在紋理采樣時(shí)暫存紋理。而在GF100當(dāng)中,NVIDIA首次引入真正的一級(jí)高速緩存,而且還可被動(dòng)態(tài)的劃分為共享緩存。
在GF100 GPU中,每個(gè)SM除了擁有專用的紋理緩存外,還擁有64KB容量的片上緩存,這部分緩存可配置為16KB的一級(jí)緩存+48KB共享緩存,或者是48KB一級(jí)緩存+16KB共享緩存。這種劃分方式完全是動(dòng)態(tài)執(zhí)行的,一個(gè)時(shí)鐘周期之后可自動(dòng)根據(jù)任務(wù)需要即時(shí)切換而不需要程序主動(dòng)干預(yù)。
一級(jí)緩存與共享緩存是互補(bǔ)的,共享緩存能夠?yàn)槊鞔_界定存取數(shù)據(jù)的算法提升存取速度,而一級(jí)緩存則能夠?yàn)橐恍┎灰?guī)則的算法提升存儲(chǔ)器存取速度。在這些不規(guī)則算法中,事先并不知道數(shù)據(jù)地址。
對(duì)于圖形渲染來(lái)說(shuō),重復(fù)或者固定的數(shù)據(jù)比較多,因此一般是劃分48KB為共享緩存,當(dāng)然剩下的16KB一級(jí)緩存也不是完全沒(méi)用,它可以充當(dāng)寄存器溢出的緩沖區(qū),讓寄存器能夠?qū)崿F(xiàn)不俗的性能提升。
而在并行計(jì)算之中,一級(jí)緩存與共享緩存同樣重要,它們可以讓同一個(gè)線程塊中的線程能夠互相協(xié)作,從而促進(jìn)了片上數(shù)據(jù)廣泛的重復(fù)利用并減少了片外的通信量。共享存儲(chǔ)器是使許多高性能CUDA應(yīng)用程序成為可能的重要促成因素。
● 共享式二級(jí)高速緩存
GF100擁有一個(gè)768KB容量統(tǒng)一的二級(jí)高速緩存,該緩存可以為所有載入、存儲(chǔ)以及紋理請(qǐng)求提供服務(wù)。二級(jí)緩存可在整個(gè)GPU中提供高效、高速的數(shù)據(jù)共享。物理效果、光線追蹤以及稀疏數(shù)據(jù)結(jié)構(gòu)等事先不知道數(shù)據(jù)地址的算法在硬件高速緩存上的運(yùn)行優(yōu)勢(shì)尤為明顯。后期處理過(guò)濾器需要多個(gè)SM才能讀取相同的數(shù)據(jù),該過(guò)濾器與存儲(chǔ)器之間的距離更短,從而提升了帶寬效率。
統(tǒng)一的共享式緩存比單獨(dú)的緩存效率更高。在獨(dú)享式緩存設(shè)計(jì)中,即使同一個(gè)緩存被多個(gè)指令預(yù)訂,它也無(wú)法使用其它緩存中未貼圖的部分。高速緩存的利用率將遠(yuǎn)低于它的理論帶寬。GF100的統(tǒng)一共享式二級(jí)高速緩存可在不同請(qǐng)求之間動(dòng)態(tài)地平衡負(fù)載,從而充分地利用緩存。二級(jí)高速緩存取代了之前GPU中的二級(jí)紋理緩存、ROP緩存以及片上FIFO。
GF100的緩存架構(gòu)讓各流水線之間可以高效地通信,減少了顯存讀寫操作
統(tǒng)一的高速緩存還能夠確保存儲(chǔ)器按照程序的順序執(zhí)行存取指令。當(dāng)讀、寫路徑分離(例如一個(gè)只讀紋理路徑以及一個(gè)只寫ROP路徑)時(shí),可能會(huì)出現(xiàn)先寫后讀的危險(xiǎn)。一個(gè)統(tǒng)一的讀/寫路徑能夠確保程序的正確運(yùn)行,同時(shí)也是讓NVIDIA GPU能夠支持通用C/C++程序的重要因素。
與只讀的GT200二級(jí)緩存相比,GF100的二級(jí)高速緩存既能讀又能寫,
而且是完全一致的。NVIDIA采用了一種優(yōu)先算法來(lái)清除二級(jí)緩存中的數(shù)據(jù),這種算法包含了各種檢查,可幫助確保所需的數(shù)據(jù)能夠駐留在高速緩存當(dāng)中。
關(guān)注我們
