我想知道是否有一種方法可以查看給定內核中的所有變量值,例如threadIdx.x = 1當前正在工作的數據以及該數據的值是什麼?如何在VS 2010中使用Nvidia NSight查看CUDA線程值?
所有工作正常,所以我的問題是怎麼看的變量,例如,你可以在正常VS做,使用「快速查看」或「添加表」,什麼是他們相當於NSight? 謝謝,現在一直在掙扎幾個小時。
我有CUDA信息窗口和CUDA經窗口僅顯示blockIdx,threadIDx通過NSight調試運行時的座標。
__global__ void addKernel(int *c, const int *a, const int *b)
{
int i = threadIdx.x;
if(i<N)
c[i]=a[i]*b[i];
// DUmmy code
if(i<2)
int k=i;
}
我的內核被稱爲像這樣addKernel<<<1,N>>>(dev_c,dev_a,dev_b)
和我#DEFINEñ10
我把裏面的斷點if和else。經線窗口中的輸出設置爲顯示:
*(a+i) *(b+i) *(c+i) i
0 0 -1 0
2 1 -1 1
4 4 -1 2
6 9 -1 3
8 16 -1 4
所以,我的c永遠不會成立。怎麼會這樣? 謝謝
附:當我看到我得到-1的問題時,那些會給我帶來負面影響的人會放棄嗎?再次感謝
http://http.developer.nvidia.com/NsightVisualStudio/2.2/文檔/ UserGuide/HTML/Content/CUDA_Warp_Watch.htm – talonmies 2013-02-10 14:41:39
是的,我知道CUDA Info和Warp窗口在哪裏,但是當我放置一個斷點時它不會如何變數。是你的代碼和輸出 – 2013-02-10 19:46:09
你好,你現在可以看看,謝謝 – 2013-02-10 20:27:51