2013-02-26 45 views
1

我用--ptax選項= -v在編譯我的.CU代碼,它給了以下內容:CUDA佔用率計算器,

ptxas info: Used 74 registers, 124 bytes smem, 16 bytes cmem[1] 

devQuery我的卡返回如下:

rev: 2.0 
name: tesla c2050 
total shared memory per block: 49152 
total reg. per block: 32768 

現在,我輸入這些數據到CUDA佔有率計算器如下:

1.) 2.0 
1.b) 49152 
2.) threads per block: x 
    registers per thread: 74 
    shared memory per block (bytes): 124 

我被改變X(每個塊的線程)使得x * 74 < = 32768。例如,我輸入128(或256)代替x。我是否正確輸入佔用率計算器輸入的所有必需值?謝謝。

回答

4

ptxas-options=--verbose(或-v)產生的格式的輸出

ptxas : info : Compiling entry function '_Z13matrixMulCUDAILi16EEvPfS0_S0_ii' for 'sm_10' 
ptxas : info : Used 15 registers, 2084 bytes smem, 12 bytes cmem[1] 

的關鍵信息是

  • 第一線具有目標架構
  • 第二線具有<Registers Per Thread>, <Static Shared Memory Per Block>, <Constant Memory Per Kernel>

當你填寫入住率計算器

  • 集字段1)選擇計算能力,以在上述的例子「sm_10」
  • 集字段2)寄存器每主題到
  • 集字段2)共享存儲器中的每塊到+ DynamicSharedMemoryPerBlock傳遞作爲第3個參數<<<GridDim, BlockDim, DynamicSharedMemoryPerBlock, Stream>>>

佔用計算器幫助選項卡包含其他信息。

在您的示例中,我相信您沒有正確設置字段1,因爲費米架構僅限於每個線程63個註冊表。 sm_1 *支持每個線程124個寄存器的限制。

+0

在我的情況下,我有'sm_13'(-arch = sm_13),並且我只將內核調用爲<<< GridDim,BlockDim >>>。所以我必須這樣做:設置字段1 = 1.3;設置欄位2 = 74;設置字段3 = 124.這是正確的嗎?謝謝! – tiki 2013-02-26 03:02:58

+0

@torem是的,這是正確的。 – 2013-02-27 17:14:47