カーネル実行時間の取得

カーネルのみの実行時間の計測はEventを利用した計測方法が便利。メモリ転送の時間も計測可能。 デバイス側の実行時間だけを計測したいときに利用する。

  cudaEvent_t start, stop;
  float elapsedTime;
 
  cudaEventCreate(&start);
  cudaEventCreate(&stop);
 
 
  cudaEventRecord(start,0);  // ここから
 
  kernel_call<<<NUM_BLOCK, NUM_THREAD>>>(A, B, C);
 
  cudaEventRecord(stop,0);   // ここまで
  cudaEventSynchronize(stop);
  cudaEventElapsedTime(&elapsedTime, start, stop);