を宣言するとき、私はクーダに新しいですし、それをテストするための簡単なプログラムを書き始めました。おそらくそれには多くの問題がありますが、私のストッパーは私がタイトルに書いたエラーです:単純なcudaError_t変数を宣言するたびに、 "Unrecognized token"コンパイルエラーが発生します。認識されないトークンエラーcudaError_t変数
#include <cuda_runtime.h>
#include <cuda_runtime_api.h>
extern "C" void callCudaCode(int*);
__global__ void mykernel (int *a, int *b, int *c)
{
//*c = *a + *b;
*c = 34;
}
void callCudaCode(int* results)
{
int a=3, b=8;
int *da, *db, *dc;
int size = sizeof(int);
cudaError_t myCudaError;// = cudaGetLastError();
//const char* errorStr = cudaGetErrorName(cudaError);
cudaMalloc((void**)da, size);
cudaMalloc((void**)db, size);
cudaMalloc((void**)dc, size);
cudaMemcpy(da, &a, size, cudaMemcpyHostToDevice);
cudaMemcpy(db, &b, size, cudaMemcpyHostToDevice);
mykernel<<<1,1>>>(da,db,dc);
cudaMemcpy(results, dc, size, cudaMemcpyDeviceToHost);
cudaFree(da);
cudaFree(db);
cudaFree(dc);
}
あり、このファイルを使用する別のmain.cppにファイルがあるが、私はそれがこのエラーを説明するのに関連する何かを持っているとは思わないので、私はそれが含まれていませんでした: はここに私のコードサンプルです。 私がcudaError_t変数の宣言をコメントすると、コードはコンパイルされます(これはうまく実行されませんが、別の話です)。
私はすでにこの問題をグーグルだけ私の例とは何の関係もありませんエラーが見つけた:私が理解から、スペース・エラー、printfのエラー...
を、cudaError_tが列挙型でありますそれを含めることによって、私は何の問題があってはならないので、cuda_runtime_api.hで定義された...
誰もが何が起こっている上の任意の手掛かりを持っていますか?
EDIT
私は添付ファイルがmycuda.cuです。 my.cuda.cuからcallCudaCode()関数を呼び出すmain.cppという別のファイルがあります。 Qt Creatorとqmakeを使ってプロジェクトをビルドしています。はい、Qtが.cuプロジェクトをコンパイルしようとしないように.proファイルを設定するように注意しました。 myCudaError変数を宣言する行にコメントすると、プロジェクトは正常にコンパイルされます。コメントを外すと、コンパイルの問題が発生します。
何問題のファイルの名前です - あなたは '万が一.cpp'で終わるファイル名を使用していますか? – tera
このファイルはcuda.cuです。このファイルからcallCudaCode()を呼び出すだけのmain.cppがあります。 –
ファイルに '.cu'拡張子がある場合、CUDAランタイムインクルードは不要です.nvccは自動的にCUDAヘッダーをインクルードします。 – tera