2015-02-11 51 views
0

當我的GeForce 620M和我的代碼是:「無效的配置參數」錯誤調用CUDA內核

int threadsPerBlock = 256;     
int blocksPerGrid = Number_AA_GPU/threadsPerBlock; 
for(it=0;it<Number_repeatGPU;it++) 
{ 
    Kernel_Update<<<blocksPerGrid,threadsPerBlock>>>(A, B, C, D, rand(), rand());  
} 

我得到:

無效的配置參數。

可能是什麼原因?

+0

原因可能取決於'Number_AA_GPU'的值 – talonmies 2015-02-11 08:55:40

回答

2

內核配置參數是<<<...>>>符號之間的參數。

您的GeForce 620M是一款compute capability 2.1設備。

甲計算能力2.1設備is limited to 65535傳遞時,對每電網參數塊1維參數(第一要傳遞兩個參數。)

由於要傳遞的其他參數(256, threadsPerBlock)絕對是界外,我認爲你的第一個參數超出範圍:

int blocksPerGrid = Number_AA_GPU/threadsPerBlock; 

Number_AA_GPU或者是大於65535 * 256(大於或等於65536 * 256將觸發故障)或者它是零(實際上Number_AA_GPU小於2由於整數除法,56會失敗),或者是否定的。

未來,如果您提供了一個完整的示例,您可以編寫更容易解讀的問題。在這種情況下,告訴我們什麼Number_AA_GPU可以使我的答案更明確。