我問以下幾個問題,因爲我很困惑最大寄存器...GTX 680,Keplers和每個線程
在各種各樣的網站和報紙我發現聲明說,開普勒架構每增加寄存器的數量線程,但在我的GTX680上,這似乎不是真的,因爲RegsPerBlock是65536,所以對於1024線程它將是64個寄存器。我錯過了什麼?將來每個線程會有更多寄存器嗎?
問候 丹尼爾
我問以下幾個問題,因爲我很困惑最大寄存器...GTX 680,Keplers和每個線程
在各種各樣的網站和報紙我發現聲明說,開普勒架構每增加寄存器的數量線程,但在我的GTX680上,這似乎不是真的,因爲RegsPerBlock是65536,所以對於1024線程它將是64個寄存器。我錯過了什麼?將來每個線程會有更多寄存器嗎?
問候 丹尼爾
有開普勒架構,sm_30和sm_35的兩個變種。 GTX 680卡基於實現sm_30架構的GK104 GPU。該架構每個線程有64個寄存器,其中63個可用於用戶代碼,其中一個是專用的零寄存器。未來基於GK110的部件(如K20)實現sm_35架構,每個線程提供256個寄存器,其中255個可用於用戶代碼(又一個爲專用零寄存器)
雖然what @njuffa wrote爲真,但同樣重要的是要注意每個線程的最大寄存器數量不一定相等(寄存器文件大小/每個塊的最大線程數量)。可能會出現這種情況,您只能利用較小線程塊的每個線程的最大可能的regs。
...實際上,這是exactly how it actually is與CC 3.5 Kepler卡,以及Maxwell 5.x和Pascal 6.0卡:該寄存器文件有64個Ki寄存器;每個塊的最大線程數是1024;但每個線程的最大寄存器數是255(+零寄存器)。每塊最多256個線程的網格每個線程獲得255個寄存器。
好了,現在很清楚,非常感謝 – Daniel