OpenCL 调试 方法
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 调试 方法相关推荐
- Linux环境下段错误的产生原因及调试方法小结
From:http://www.cnblogs.com/panfeng412/archive/2011/11/06/2237857.html 最近在Linux环境下做C语言项目,由于是在一个原有项目基 ...
- Web开发常规调试方法与常见问题分析
一.Web项目基本原理 现在的web项目大都已经前后端独立开发与部署. 前后端独立开发,一般是前端与后端通过web接口(常见的有RESTful与websocket)文档进行交流.前端开发人员先更具业务 ...
- smc数显压力表设定方法_SMC压力表使用注意与调试方法
SMC压力表使用注意与调试方法 SMC压力表使用注意: 1.仪表必须垂直:安装时应使用17mm扳手旋紧,不应强扭表壳:运输时应避免碰撞: 2.仪表使用宜在周围环境温度为-25~55℃: 3.使用工作环 ...
- 几种Linux段错误调试方法
一.产生段错误的原因 段错误就是指某一进程访问了不属于它权限范围的内存空间,比如:访问了不存在的内存,访问了受系统保护的内存,访问了只读的内存等.下面是一段会产生段错误的实例代码:main.c #in ...
- (五)stm32工程代码HardFault异常查错调试方法
(五)stm32工程代码HardFault异常查错调试方法 参考文章: (1)(五)stm32工程代码HardFault异常查错调试方法 (2)https://www.cnblogs.com/zhan ...
- [Linux]core文件调试方法
来源: shaovey的专栏 在程序不寻常退出时,内核会在当前工作目录下生成一个core文件(是一个内存映像,同时加上调试信息).使用gdb来查看core文件,可以指示出导致程序出错的代码所在文件和行 ...
- 转Linux环境下段错误的产生原因及调试方法小结
Linux环境下段错误的产生原因及调试方法小结 转载于:https://www.cnblogs.com/objectDetect/p/7575659.html
- 7 php程序的调试方法_php程序调试方法总结
相信很多朋友们都有调试程序的经历,然而很多时候调试程序是痛苦而又漫长的过程:它不仅需要细心,更需要耐心,切忌心浮气躁.但是当找出问题并顺利 解决它时,又会给人无比激动的喜悦.这里总结一下笔者在程序调试 ...
- python pdb_python pdb调试方法分享
复制代码 代码如下: import pdb def pdb_test(arg): for i in range(arg): print(i) return arg pdb.run("pdb_ ...
最新文章
- IP包的生成和发送接口(1)
- 图像拼接(二):OpenCV同时打开两个摄像头捕获视频
- NOIP2007 树网的核
- HAProxy负载均衡代理
- redis---安全设置
- (21)pandas.drop与dropna方法
- 随便一个人就能干预大选?
- ISO50001认证辅导,ISO 50001的能源管理允许组织对自己内部的节能潜力进行系统开发
- 【动手撸深度学习】不吹不黑一份代码即可进Kaggle排行榜!
- 【JS】利用JS给删除按钮添加提示框
- python计算正数,负数和复数的平方根
- python电脑怎么运行_如何运行python文件
- 9月25日百度大脑开放日人像特效专场火热报名中!
- 关于Xsell共享文件输入网络凭据的解决办法
- 2月28日 赵神牛打BOSS
- 2008ESRI用户大会问答之ArcGIS部分
- 使用css弹性布局,让页面footer底部固定
- 还在买鲜花送女神?手把手教你搭建3D立体相册网站,包女神稀饭
- MySQL的几个图形化界面工具
- h5页面在微信中打开,字体显示不正常
热门文章
- 使用ESX主机环境搭建Oracle RAC
- 通过“商品”图片查找“商店”信息
- Predictive Attention Transformer 理解
- oracle连接种类,oracle连接种类整理
- 7-176 找最小的字符串 (15 分)
- JAVA网络编程 【子】
- 还在愁追不到女朋友吗?点开看这里。
- SPSS教程:信度分析之克朗巴哈系数(Cronbach‘s α)
- java剧情游戏模拟器_java游戏模拟器-戎囤谆
- 轨道列车自动驾驶和汽车自动驾驶的区别