從CPU架構(gòu)和技術(shù)的演變看GPU未來發(fā)展
再來看看GPU二級(jí)緩存部分的設(shè)計(jì),這一方面就與CPU非常相似了。
★ Cypress的二級(jí)緩存:綁定顯存控制器的分離式設(shè)計(jì)
以往的GPU,包括NVIDIA上代的GT200以及AMD最新的Cypress核心,二級(jí)緩存都是與顯存控制器綁定在一起的,其作用就是縮短GPU到顯存的響應(yīng)時(shí)間。由于顯存控制器一般都是64bit一組,為多組模塊化設(shè)計(jì),因此二級(jí)緩存也被劃分為N個(gè)獨(dú)立的模塊,而不是統(tǒng)一的整體。
Cypress:L2綁定Memory Controller
Cypress擁有4個(gè)64bit顯存控制器,每個(gè)顯存控制器綁定128KB容量的二級(jí)緩存,總計(jì)512KB,這個(gè)容量要比NVIDIA上代的GT200大一倍。
★ GF100的二級(jí)緩存:統(tǒng)一的大容量高速緩存
而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)勢尤為明顯。后期處理過濾器需要多個(gè)SM才能讀取相同的數(shù)據(jù),該過濾器與存儲(chǔ)器之間的距離更短,從而提升了帶寬效率。
統(tǒng)一的共享式緩存比單獨(dú)的緩存效率更高。在獨(dú)享式緩存設(shè)計(jì)中,即使同一個(gè)緩存被多個(gè)指令預(yù)訂,它也無法使用其它緩存中未貼圖的部分。高速緩存的利用率將遠(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)先算法來清除二級(jí)緩存中的數(shù)據(jù),這種算法包含了各種檢查,可幫助確保所需的數(shù)據(jù)能夠駐留在高速緩存當(dāng)中。
★ GF100共享式二級(jí)緩存堪比酷睿2:
可以看出,ATI的一二級(jí)緩存都是完全分散的,為了協(xié)調(diào)一二級(jí)緩存之間的數(shù)據(jù)交換,ATI特意設(shè)計(jì)了一個(gè)可全局共享的64KB數(shù)據(jù)緩存。
而GF100的一級(jí)緩存可以根據(jù)需求動(dòng)態(tài)的為共享緩存或者一級(jí)緩存分配較大的容量,從而加速數(shù)據(jù)處理。二級(jí)緩存更是大容量一體式設(shè)計(jì),當(dāng)線程組在一級(jí)緩存中找不到數(shù)據(jù)時(shí),可以直接從“海量”的二級(jí)緩存中索取,縮短了數(shù)據(jù)請(qǐng)求與定址時(shí)間,消除了瓶頸。
至于獨(dú)享式緩存與共享式緩存的效率與性能,無需多言,大家可參照CPU的發(fā)展即可略知一二。
關(guān)注我們
