を使用してタイミングを計っている単純なカーネルがありますclock()
。この関数については、NVIDIA CUDA で内部カーネル時間を測定する方法で知りましたか?
だから私はそれを
計るためclock_t start = clock();
に(そして同様に停止して)使用しました。コンパイル時に、次のエラーが発生します。
tex1.cu(14): エラー: 明らかな呼び出しの括弧の前にある式には、(ポインターへの) 関数型が必要です`
ヘッダー ファイルまたはコンパイラ オプションがありませんか?
また、CUDA タイマー ( cudaEvent_t start, stop;
) を使用してみましたが、取得した経過時間は 0 ミリ秒です。開始と停止を作成し、開始を記録し、CUDA を実行し、同期し、停止を記録し、イベントを同期し、経過時間を測定します。この部分は正常にコンパイルされますが、経過時間がゼロになります。
これは、テクスチャ メモリの理解度をテストするために使用している単純なカーネルです。カーネル:
__global__ void magic(float *mean, int *clock){
int i, tid = threadIdx.x + blockIdx.x * blockDim.x;
float t, sum=0.0;
clock_t start = clock();
if ( tid < dimy )
{
for(i=0;i<dimx; i++){
t = tex2D( input, i, tid );
sum = sum + t*t;
}
clock_t stop = clock();
clock[tid] = (int)(stop-start);
}
}