CUDA计时
来源:互联网 发布:从零开始写python爬虫 编辑:程序博客网 时间:2024/05/29 18:35
from:http://blog.sina.com.cn/s/blog_45209f340101341e.html
<1>使用cutil.h中的函数
unsigned int timer=0;
//创建计时器
cutCreateTimer(&timer);
//开始计时
cutStartTimer(timer);
{
}
//停止计时
cutStopTimer(timer);
//获得从开始计时到停止之间的时间
cutGetTimerValue( timer);
//删除timer值
cutDeleteTimer( timer);
不知道在这种情况下,统计精度。
<2>time.h中的clock函数
clock_t start, finish;
float costtime;
start = clock();
{
}
finish = clock();
//得到两次记录之间的时间差
costtime
时钟计时单元的长度为1毫秒,那么计时的精度也为1毫秒。
<3>事件event
cudaEvent_t start,stop;
cudaEventCreate(&start);
cudaEventCreate(&stop);
cudaEventRecord(start,0);
{
}
cudaEventRecord(stop,0);
float costtime;
cudaEventElapsedTime(&costtime,start,stop);
cudaError_t cudaEventCreate( cudaEvent_t* event )---创建事件对象;
cudaError_t cudaEventRecord( cudaEvent_t event,CUstream stream )---
cudaError_t cudaEventElapsedTime( float* time,cudaEvent_t start,cudaEvent_t end )---计算两次事件之间相差的时间;
cudaError_t cudaEventDestroy( cudaEvent_t event )---销毁事件对象。
计算两次事件之间相差的时间(以毫秒为单位,精度为0.5微秒)。如果尚未记录其中任何一个事件,此函数将返回cudaErrorInvalidValue。如果记录其中任何一个事件使用了非零流,则结果不确定。
该例子是CUDA_C_Best_Practices_Guide中的例子:
cudaEvent_t start, stop;
float time;
cudaEventCreate(&start);
cudaEventCreate(&stop);
cudaEventRecord( start, 0 );
kernel<<>> ( d_odata, d_idata, size_x, size_y, NUM_REPS);
cudaEventRecord( stop, 0 );
cudaEventSynchronize( stop );
cudaEventElapsedTime( &time, start, stop );
cudaEventDestroy( start );
cudaEventDestroy( stop );
需要注意的是函数cudaEventSynchronize() 不可或缺,因为CUDA的kernel函数是以异步方式执行的,调用后立刻返回,这会导致计时不准确。cudaEventSynchronize(stop)会使得直到GPU执行完cudaEventRecord(stop, 0)之前的所有语句时,事件stop才会被记录下来,即起到同步的作用。
- CUDA计时
- CUDA计时
- CUDA-计时
- CUDA计时
- CUDA的计时方法
- CUDA中的计时函数
- CUDA-事件计时
- cuda的计时技术
- CUDA计时差别
- CUDA 计时问题
- cuda计时⌛️
- CUDA进阶第三篇:CUDA计时方式
- CUDA学习笔记(4) CUDA计时函数
- cuda及常用计时方式
- CUDA:使用nvprof工具计时
- CUDA中的两种计时方式
- cuda中计时程序 cutCreatTimer& clock
- cuda编程入门示例4---数组元素求和+计时
- 关于SSE指令集
- 商业英语句型13
- 单例模式的例子
- 在mac下通过Terminal修改host文件
- C++中this指针存放在哪里
- CUDA计时
- LaTeX中绘图工具包PGFPlots(1.13)的安装
- Angular JS select 下拉框设置value
- 莫比乌斯反演的学习(HDU1695)
- pigctf期末测评
- Msql入门实战之下
- 一键生成mvc各个类之全局替换
- 如何使用CUDA达到加速程序
- Memcache 基础原理