我想比较一下我的 cuda 代码在 gpu 上的速度(数据已经复制)和我的代码在 CPU 上的速度。
cuda代码中的测量如下
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 时间为 0.02490834。
我会使用刻度,但我不确定如何将刻度重新计算为正确的结果。我的 Cuda 代码中的时间可以给出我的值,例如 0.058938483。秒表不够精确。
有任何想法吗?