CUDA内核运行时间的测量函数
2015-05-19 22:41
507 查看
方法一:
方法二:
关于方法二中的cudaSyncThreads()说明,如果在sdkStopTimer之前不加该函数,会导致测量时间仅仅是核函数在CPU上启动的耗时,而没有考虑在GPU中的耗时,使得结果和方法一小很多。所以要等CUDA启动的GPU线程同步之后,才能停止计时,这样得到的耗时才是正确的。
cudaEvent_t start1; cudaEventCreate(&start1); cudaEvent_t stop1; cudaEventCreate(&stop1); cudaEventRecord(start1, NULL); // 需要测时间的内核函数kernel; cudaEventRecord(stop1, NULL); cudaEventSynchronize(stop1); float msecTotal1 = 0.0f; cudaEventElapsedTime(&msecTotal1, start1, stop1);
方法二:
StopWatchInterface * timer_cublas; sdkCreateTimer(&timer_cublas); sdkStartTimer(&timer_cublas); // 需要测时间的内核函数kernel; cudaSyncThreads() sdkStopTimer(&timer_cublas); double dSeconds = sdkGetTimerValue(&timer_cublas)/((double)nIter);
关于方法二中的cudaSyncThreads()说明,如果在sdkStopTimer之前不加该函数,会导致测量时间仅仅是核函数在CPU上启动的耗时,而没有考虑在GPU中的耗时,使得结果和方法一小很多。所以要等CUDA启动的GPU线程同步之后,才能停止计时,这样得到的耗时才是正确的。
相关文章推荐
- 对CUDA内核函数运行时间测量的方法
- 对CUDA内核函数运行时间测量的方法
- STM32学习之:keil测量函数运行时间
- opencv中测量运行时间的函数
- opencv中测量运行时间的函数
- OpenCV深入学习(3)--opencv中测量运行时间的函数
- STM32学习笔记之测量某个函数运行时间
- C语言中的测量程序运行时间的函数
- 测量程序运行时间的几个函数
- opencv中测量运行时间的函数
- opencv中测量运行时间的函数
- OpenCV学习(6)--opencv中测量运行时间的函数
- opencv中测量运行时间的函数
- 测量程序运行时间的几个函数
- 他山之石02---opencv测量运行时间的函数
- 测量程序运行时间的几个函数
- opencv中测量运行时间的函数
- opencv中测量运行时间的函数
- opencv中测量运行时间的函数
- 测量一段函数的运行时间