私のcudaコードがgpu上でどれだけ速いか(データはすでにコピーされています)、私のコードがCPU上でどれだけ速いかを比較したいと思います。
cuda-code での測定は次のように行われます
cudaEvent_t start, stop;
cudaEventCreate(&start);
cudaEventRecord(start,0);
//Kernel Execution
transformKernel7<<<grid,threads>>>(dev_result, width, height, angle, N);
cudaEventCreate(&stop);
cudaEventRecord(stop,0);
cudaEventSynchronize(stop);
cudaEventElapsedTime(&cuTime, start,stop);
今、私は自分のコードを C# で測定したいと考えています。次のコードがあります
var sw = Stopwatch.StartNew();
//making some calculation....
var elapsed = sw.ElapsedMilliseconds;
私の問題は、sw.ElapsedMilliseconds が十分に正確でないことです。0.02490834 の時間に 0 を返します。
ティックを使用しますが、ティックを適切な結果に再計算する方法がわかりません。私の Cuda コードの時間は、0.058938483 のような私の値を与えることができます。ストップウォッチは十分に正確ではありません。
何か案は?