決戰(zhàn)性能之巔!NV雙芯旗艦GTX590評測
NVIDIA在與程序員的溝通與反饋中發(fā)現,雖然共享內存能夠惠及許多問題,但它并不能夠用于解決所有問題。一些算法會自然而言地關聯到共享內存,另一些則要求高速緩存,還有一些要求二者的組合。非常好的的內存層級結構應能夠同時為共享內存和高速緩存帶來優(yōu)勢,同時讓編程人員可以選擇在二者之上進行設計。Fermi內存層級結構支持兩種類型的程序行為。
10.5 首次支持顯存ECC
Fermi的緩存層級:其中對于并行計算無用的紋理緩存已被剔除
為加載/存儲操作添加一個真正的高速緩存層級結構會帶來嚴峻挑戰(zhàn)。傳統(tǒng)的GPU架構為紋理操作提供了只讀“加載”路徑,同時為像素數據輸出提供了只寫“輸出”路徑。然而,這一方法在執(zhí)行要求同時進行讀寫的通用C或C++線程程序時表現非常不佳。例如,向內存發(fā)起一個寄存瀑然后再讀回會形成寫后讀威脅。如果讀和寫路徑不同,可能會直接覆蓋掉整個寫/“導出”路徑,而無法正確發(fā)起讀操作,從而使得讀路徑上的任意高速緩存不能與寫數據保持一致。
Fermi通過為加載和存儲提供單個統(tǒng)一的內存請求路徑解決了這一挑戰(zhàn),這一方法為每一個SM多處理器提供一個一級高速緩存,同時設置統(tǒng)一的二級高速緩存,以支持所有操作(加載、存儲和紋理)。每個SM多處理器上的一級高速緩存可以進行配置,以支持共享內存和緩存本地與全局內存操作。64KB的內存可分出48 KB用作共享內存,16KB用作一級高速緩存;或者16KB用作共享內存,48KB用作一級高速緩存。當提供48KB的共享內存時,需要廣泛使用共享內存的程序(如電子動態(tài)模擬)的性能將可以提高三倍。對于預先無法確定內存訪問情況的程序,設置48KB的一級高速緩存將能夠比直接訪問DRAM帶來顯著改進的性能。
在任意一種配置中,一級高速緩存都可以通過緩存復雜程序的臨時寄存器溢出對性能有所幫助。前一代GPU將寄存器直接交給DRAM,從而增加了訪問延遲。通過使用一級高速緩存,性能能夠隨著臨時寄存器容量的增加逐步提升。
Fermi采用了一個768KB統(tǒng)一二級高速緩存,用于支持所有加載、存儲和紋理請求。二級高速緩存在GPU之間提供了有效、高速的數據共享。針對以前未知的數據地址的算法,如Physics Solver、光線追蹤以及稀疏矩陣相乘等,將能夠從這一高速緩存結構中受益最大。此外,要求多個SM來讀取同一數據的過濾器和卷積內核也能夠從中受益。
● 第一款支持ECC顯存的GPU
Fermi是第一個在顯存中提供了基于糾錯碼(ECC)的數據保護功能的GPU。CPU計算用戶使用ECC來在高性能計算環(huán)境中增強數據完整性。ECC是諸如醫(yī)療成像以及大型集群計算等領域中一個迫切需要的特性。
自然發(fā)生的輻射可能導致內存中的數據被更改,導致軟錯誤。ECC技術能夠在單位軟錯誤影響系統(tǒng)之前就予以發(fā)現并進行糾正。由于此類輻射所致錯誤的可能性隨已安裝系統(tǒng)的數量直線增長,ECC是大型集群部署中的一個必備要求。
Fermi支持單錯糾正雙錯檢測(SECDED)ECC代碼,能夠在數據被訪問期間糾正硬件中的任意單位錯誤。此外,SECDED ECC還確保了所有雙位錯誤和眾多多位錯誤能夠被發(fā)現和報告,以便能夠重新運行程序,而不是繼續(xù)執(zhí)行不良數據。
Fermi的寄存器文件、共享內存、一級高速緩存、二級高速緩存和顯存均提供有ECC保護功能,從而不僅是適用于HPC應用的最強大GPU,同時也是最可靠的GPU。此外,Fermi還支持行業(yè)標準,能夠當在芯片間傳輸數據時對其進行檢查。所有NVIDIA GPU均支持用于CRC檢查的PCI-E標準,能夠在數據鏈路層進行重試。Fermi還支持用于CRC檢查的同類GDDR5標準,能夠當數據在內存總線上傳輸時進行重試(也稱作“EDC”)。
是否支持ECC,成為GeForce與Tesla的最大區(qū)別,當然Tesla還配備了更大容量的顯存,為密集型數據處理提供更高的性能。
關注我們
