gpu顯存(全域記憶體)在使用時資料對齊的問題,gpu對齊

來源:互聯網
上載者:User

gpu顯存(全域記憶體)在使用時資料對齊的問題,gpu對齊

全域儲存空間,即普通的顯存,整個網格中的任意線程都能讀寫全域儲存空間的任意位置。

存取延時為400-600 clock cycles  非常容易成為效能瓶頸。

訪問顯存時,讀取和儲存必須對齊,寬度為4Byte。如果沒有正確的對齊,讀寫將被編譯器拆分為多次操作,降低訪存效能。

多個warp的讀寫操作如果能夠滿足合并訪問,則多次訪存操作會被合并成一次完成。合并訪問的條件,1.0和1.1的裝置要求較嚴格,1.2及更高能力的裝置上放寬了合并訪問的條件。

1.2及其更高能力的裝置支援對8 bit、16 bit、32 bit、64 bit資料字的合并訪問,相應的段的大小為:32Byte 64Byte 128Byte,大於128Byte,分兩次傳輸。

在一次合并傳輸的資料中,不要求線程編號和訪問的資料字編號相同。

當訪問128Byte資料時,如果地址沒有對齊到128Byte時,在GT200會產生兩次合并訪存。根據每個地區的大小,分為兩次合并訪存,32Byte和96Byte。

全域儲存空間在使用的時候,主要注意的兩個問題:

1. 資料對齊的問題。一維資料使用cudaMalloc()開闢gpu全域記憶體空間,多維資料建議使用cudaMallocPitch()建立記憶體空間,以保證段對齊。cudaMallocPitch函數分配的記憶體中,數組的每一行的第一個元素的開始地址都保證是對齊的。因為每行有多少個資料是不確定的widthofx*sizeof(元素)不一定是256的倍數。故此,為保證數組的每一行的第一個元素的開始地址對齊,cudaMallocPitch在分配記憶體時,每行會多分配一些位元組,以保證widthofx*sizeof(元素)+多分配的位元組是256的倍數(對齊)。這樣,y*widthofx*sizeof(元素)+x*sizeof(元素)來計算a[y][x]的地址就不正確了。而應該是y*[widthofx*sizeof(元素)+多分配的位元組]+x*sizeof(元素)。而函數中返回的pitch的值就是widthofx*sizeof(元素)+多分配的位元組。

2. 合并訪問。關鍵就是要理解,GPU是以half-warp(1.2及更高裝置為warp)進行訪存時,即16個線程一起訪問儲存空間,到這16個線程的訪問的地址在同一塊地區(指硬體上可以一起傳送寬度)時,並且沒有衝突產生時,則這塊地區的資料可以被線程同時,提升了訪存的效率。


GPU-Z顯示的顯卡資訊中一個顯存,一個記憶體是什

是一G,這個是沒有錯的,
框裡顯示的是顯存工作頻率,用顯存、記憶體顯示都是一個意思,都是顯存500Mhz工作頻率

如果是用記憶體當顯存,那個頻率會是你記憶體工作頻率的一半,比如你記憶體是1333的,同時也工作在1333上,那麼如果是tc共用的,記憶體頻率會是666Mhz當顯存,而不會是500Mhz,反而會提升你這個顯卡效能,GPU-Z裡也不會顯示TC來的記憶體當顯存的頻率。
同樣原理,如果你記憶體是ddr2 800的,tc記憶體做了顯存,顯示的是400Mhz,比你顯存頻率低,會降低你的顯卡效能,同樣,GPU-Z裡也不會顯示TC來的記憶體當顯存的頻率。
明白沒有?不知道你的記憶體工作情況,
--------------
要說的是你這個顯卡效能極端低級,給他1000G顯存和256M顯存相比基本相差無幾,只有千元以上高端主流級顯卡採用2G以上才有意義。

花你那個199元的錢真冤枉,買個二手100元的9600GT都秒的他找不到北了。200元買個二手5750顯卡更是大型單機遊戲都可以跑。
 
顯存是什?玩遊戲累人家說您的可用顯存不夠還要繼續進行遊戲?一進行的話卡死了- -

顯存,也被叫做幀緩衝,它的作用是用來儲存顯卡晶片處理過或者即將提取的渲染資料。如同電腦的記憶體 一樣,顯存是用來儲存要處理的圖形資訊的組件。我們在顯示屏上看到的畫面是由一個個的像素點構成的,而每個像素點都以4至32甚至64位的資料來控制它的亮度和色彩,這些資料必須通過顯存來儲存,再交由顯示晶片和CPU調配,最後把運算結果轉化為圖形輸出到顯示器上。顯存和主板記憶體一樣,執行存貯的功能,但它存貯的對像是顯卡輸出到顯示器上的每個像素的資訊。顯存是顯卡非常重要的組成部分,顯示晶片處理完資料後會將資料儲存到顯存中,然後由RAMDAC(數模轉換器)從顯存中讀取出資料並將數字訊號轉換為類比訊號,最後由螢幕顯示出來。在進階的圖形加速卡 中,顯存不僅用來儲存圖形資料,而且還被顯示晶片用來進行3D函數運算。在nVIDIA等進階顯示晶片中,已發展出和CPU平行的“GPU”(圖形處理器)。“T&&L”(變形和照明)等高 密度運算由GPU在顯卡上完成,由此更加重了對顯存的依賴。由於顯存在顯卡上所起的作用,顯然顯存的速度和頻寬直接影響到顯卡的整體速度。顯存作為存貯器也和主板記憶體一樣經曆了多個發展階段,甚至可以說顯存的發展比主板記憶體更為活躍,並有著更多的品種和類型。現在被廣泛使用的顯存類型是SDRAM和SGRAM,從去年開始,效能更加優異的DDR記憶體首先被應用到顯卡上,促進了顯卡整體效能的提高。DDR以在顯卡上的成功為先導,全面發展到了主板系統,現在,一個DDR“獨領風騷三兩年”的時代即將呈現在世人面前。

顯存容量是顯卡上本地顯存的容量數,這是選擇顯卡的關鍵參數之一。顯存容量的大小決定著顯存臨時儲存資料的能力,在一定程度上也會影響顯卡的效能。顯存容量也是隨著顯卡的發展而逐步增大的,並且有越來越增大的趨勢。顯存容量從早期的512KB、1MB、2MB等極小容量,發展到8MB、12MB、16MB、32MB、64MB,一直到目前主流的512MB、1GB和高檔顯卡的2GB,某些專業顯卡甚至已經具有4GB的顯存了。在顯卡最大解析度方面,最大解析度在一定程度上跟顯存有著直接關係,因為這些像素點的資料最初都要儲存於顯存內,因此顯存容量會影響到最大解析度。在早期顯卡的顯存容量只具有512KB、1MB、2MB等極小容量時,顯存容量確實是最大解析度的一個瓶頸;但目前主流顯卡的顯存容量,就連64MB也已經被淘汰,主流的娛樂級顯卡已經是512MB或1GB,某些專業顯卡甚至已經具有4GB的顯存,在這樣的情況下,顯存容量早已經不再是影響最大解析度的因素。在顯卡效能方面,隨著顯示晶片的處理能力越來越強大,特別是現在的大型3D遊戲和專業渲染需要臨時儲存的資料也越來越多,所需要的顯存容量也是越來越大,顯存容量在一定程度上也會影響到顯卡的效能。例如在顯示核心足夠強勁而顯存容量比較小的情況下,卻有大量的大紋理貼圖資料需要存放,如果顯存的容量不足以存放這些資料,那麼顯示核心在某些時間就只有閑置以等待這些資料處理完畢,這就影響了顯示核心效能的發揮從而也就影響到了顯卡的效能。值得注意的是,顯存容量越大並不一定意味著顯卡的效能就越高,因為決定顯卡效能的三要素首先是其所採用的顯示晶片,其次是顯存頻寬(這取決於顯存位寬和顯存頻率),最後才是顯存容量。一款顯卡究竟應該配備多大的顯存容量才合適是由其所採用的顯示晶片所決定的,也就是說顯存容量應該與顯示核心的效能相匹配才合理,顯示晶片效能越高由於其處理能力越高所配備的顯存容量相應也應該越大,而低效能的顯示晶片配備大容量顯存對其效能是沒有任何協助的。例如市售的某些配備了512MB大容......餘下全文>>
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.