Ich想比較我的cuda代碼在GPU上的速度(數據已被複制)以及我的代碼在CPU上的速度有多快。時間測量CUDA和C#
在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。秒錶不夠精確。
任何想法?
使用'StopWatch.ElapsedTicks',如果是這樣的粒度不夠細做比較,http://msdn.microsoft.com/en-us/library/system.diagnostics.stopwatch.elapsedticks更多的工作。 aspx,如果你想知道tick屬性在頻率屬性看起來有多久,它會因系統而異,http://msdn.microsoft.com/en-us/library/system.diagnostics.stopwatch.frequency.aspx – Jodrell
@ Silve2611您應該將第二個cudaEventCreate()移到第一個cudaEventRecord()之前,以避免可能增加第二個cudaEventRecord()的提交延遲。 –
謝謝我會試試看 – Silve2611