1.*.cl文件编写语法错误

编写cl文件的时候总有粗心的时候,可能写错了有语法错误。

在cl::program build之后做判断

if (!isSuccess)

{

std::string logs;

program.getBuildInfo(devices_[0], CL_PROGRAM_BUILD_LOG, &logs);

std::cout << "" << logs << std::endl;

}

2.测试运算时间

使用 cl::event 对象 获取四个时间值,通常用来调试优化时,某一次kernel的运行时间调优,要的就是速度

//开始执行该命令的时间

cl_ulong start = oneEvent.getProfilingInfo<CL_PROFILING_COMMAND_START>();

//结束执行该命令的时间

cl_ulong end = oneEvent.getProfilingInfo<CL_PROFILING_COMMAND_END>();

//设置队列的时间

cl_ulong queue = oneEvent.getProfilingInfo<CL_PROFILING_COMMAND_QUEUED>();

//把命令提交到设备端(GPU)的时间

cl_ulong submit = oneEvent.getProfilingInfo<CL_PROFILING_COMMAND_SUBMIT>();

废话不多说,直接上代码具体步骤:

1.在创建cl::CommandQueue时,需要把第三个参数设为:CL_QUEUE_PROFILING_ENABLE

queue_ = cl::CommandQueue(context_, clDevice_, CL_QUEUE_PROFILING_ENABL, &err);

2.发起运行kernel时,把event链接上

oclManager->getQueue().enqueueNDRangeKernel(
            testKernel,
            cl::NullRange,
            cl::NDRange(16), // 数据维度参数
            cl::NDRange(8),
            NULL,
            &testevet

);

3.等待所有运算任务结束:

queue.finish();// 对应C语言API clFinish(queue);

4.获取时间值:

cl_ulong nseconds(0);
cl_ulong start = oneEvent.getProfilingInfo<CL_PROFILING_COMMAND_START>();
cl_ulong end = oneEvent.getProfilingInfo<CL_PROFILING_COMMAND_END>();

nseconds += end - start;

std::cout << "运算时间(ms):" << nseconds *1e-6 << std::endl;

OpenCL 调试 方法相关推荐

  1. Linux环境下段错误的产生原因及调试方法小结

    From:http://www.cnblogs.com/panfeng412/archive/2011/11/06/2237857.html 最近在Linux环境下做C语言项目,由于是在一个原有项目基 ...

  2. Web开发常规调试方法与常见问题分析

    一.Web项目基本原理 现在的web项目大都已经前后端独立开发与部署. 前后端独立开发,一般是前端与后端通过web接口(常见的有RESTful与websocket)文档进行交流.前端开发人员先更具业务 ...

  3. smc数显压力表设定方法_SMC压力表使用注意与调试方法

    SMC压力表使用注意与调试方法 SMC压力表使用注意: 1.仪表必须垂直:安装时应使用17mm扳手旋紧,不应强扭表壳:运输时应避免碰撞: 2.仪表使用宜在周围环境温度为-25~55℃: 3.使用工作环 ...

  4. 几种Linux段错误调试方法

    一.产生段错误的原因 段错误就是指某一进程访问了不属于它权限范围的内存空间,比如:访问了不存在的内存,访问了受系统保护的内存,访问了只读的内存等.下面是一段会产生段错误的实例代码:main.c #in ...

  5. (五)stm32工程代码HardFault异常查错调试方法

    (五)stm32工程代码HardFault异常查错调试方法 参考文章: (1)(五)stm32工程代码HardFault异常查错调试方法 (2)https://www.cnblogs.com/zhan ...

  6. [Linux]core文件调试方法

    来源: shaovey的专栏 在程序不寻常退出时,内核会在当前工作目录下生成一个core文件(是一个内存映像,同时加上调试信息).使用gdb来查看core文件,可以指示出导致程序出错的代码所在文件和行 ...

  7. 转Linux环境下段错误的产生原因及调试方法小结

    Linux环境下段错误的产生原因及调试方法小结 转载于:https://www.cnblogs.com/objectDetect/p/7575659.html

  8. 7 php程序的调试方法_php程序调试方法总结

    相信很多朋友们都有调试程序的经历,然而很多时候调试程序是痛苦而又漫长的过程:它不仅需要细心,更需要耐心,切忌心浮气躁.但是当找出问题并顺利 解决它时,又会给人无比激动的喜悦.这里总结一下笔者在程序调试 ...

  9. python pdb_python pdb调试方法分享

    复制代码 代码如下: import pdb def pdb_test(arg): for i in range(arg): print(i) return arg pdb.run("pdb_ ...

最新文章

  1. IP包的生成和发送接口(1)
  2. 图像拼接(二):OpenCV同时打开两个摄像头捕获视频
  3. NOIP2007 树网的核
  4. HAProxy负载均衡代理
  5. redis---安全设置
  6. (21)pandas.drop与dropna方法
  7. 随便一个人就能干预大选?
  8. ISO50001认证辅导,ISO 50001的能源管理允许组织对自己内部的节能潜力进行系统开发
  9. 【动手撸深度学习】不吹不黑一份代码即可进Kaggle排行榜!
  10. 【JS】利用JS给删除按钮添加提示框
  11. python计算正数,负数和复数的平方根
  12. python电脑怎么运行_如何运行python文件
  13. 9月25日百度大脑开放日人像特效专场火热报名中!
  14. 关于Xsell共享文件输入网络凭据的解决办法
  15. 2月28日 赵神牛打BOSS
  16. 2008ESRI用户大会问答之ArcGIS部分
  17. 使用css弹性布局,让页面footer底部固定
  18. 还在买鲜花送女神?手把手教你搭建3D立体相册网站,包女神稀饭
  19. MySQL的几个图形化界面工具
  20. h5页面在微信中打开,字体显示不正常

热门文章

  1. 使用ESX主机环境搭建Oracle RAC
  2. 通过“商品”图片查找“商店”信息
  3. Predictive Attention Transformer 理解
  4. oracle连接种类,oracle连接种类整理
  5. 7-176 找最小的字符串 (15 分)
  6. JAVA网络编程 【子】
  7. 还在愁追不到女朋友吗?点开看这里。
  8. SPSS教程:信度分析之克朗巴哈系数(Cronbach‘s α)
  9. java剧情游戏模拟器_java游戏模拟器-戎囤谆
  10. 轨道列车自动驾驶和汽车自动驾驶的区别