0
私はGeForce 9800 GX2を使用しています。私は、ドライバをインストールし、CUDA SDK私はこのようにSを見て簡単なプログラムを書いた:CUDAカーネルが起動しない
__global__ void myKernel(int *d_a)
{
int tx=threadIdx.x;
d_a[tx]+=1;
cuPrintf("Hello, world from the device!\n");
}
int main()
{
int *a=(int*)malloc(sizeof(int)*10);
int *d_a;
int i;
for(i=0;i<10;i++)
a[i]=i;
cudaPrintfInit();
cudaMalloc((void**)&d_a,10*sizeof(int));
cudaMemcpy(d_a,a,10*sizeof(int),cudaMemcpyHostToDevice);
myKernel<<<1,10>>>(d_a);
cudaPrintfDisplay(stdout, true);
cudaMemcpy(a,d_a,10*sizeof(int),cudaMemcpyDeviceToHost);
cudaPrintfEnd();
cudaFree(d_a);
}
は、コードが正常にコンパイルされますが、カーネルは...何のメッセージがカーネル側から出力されません起動してはならないと思われます。これを解決するにはどうすればよいですか?
あなたは、いくつかのエラーチェックを追加することによって開始することができます。これらのAPI呼び出しのすべてがステータスを返します。どのエラーが報告されているのか、そしてどのようなエラーが発生しているのかを確認するために、それらのすべてをチェックする必要があります。 – talonmies
また、SDKサンプルコードを実行しましたか? LinuxまたはWindows? SDKサンプルはコンパイルされ、動作しますか?それらのすべて? – Patrick87
私はランタイムエラーを識別するためのAPIを入れてみましたが、それはまたuser997704 @ –