【记录一个问题】运算迁移到gpu后的计时问题

摘要: 我把部分计算迁移到GPU后,发现以帧率计算的程序,帧率下降;但是看各个函数的时间,又比之前减少了。 很奇怪,既然各个函数的时间减少,为什么帧率反而下降? 原来计算帧率使用了 gettimeofday() , 而计算函数调用时间用了 clock_gettime(CLOCK_THREAD_CPUTIME 阅读全文
posted @ 2019-07-20 13:02 ahfuzhang 阅读(293) 评论(0) 推荐(0)

【记录一个问题】opencv中 cv::dft()与cv::ocl_dft()计算的结果相差较大

摘要: 以一个跟踪算法来测试: 使用cv::dft(), 矩阵未按照2次幂对齐,最终跟踪平均准确率 84.3% 使用cv::dft(),矩阵使用cv::copyMakeBorder对齐,最终跟踪平均准确率 88.5%, 但中间有7帧完全没跟准 使用cv::ocl_dft(),矩阵使用cv::copyMake 阅读全文
posted @ 2019-07-18 12:27 ahfuzhang 阅读(589) 评论(0) 推荐(0)

cv::copyMakeBorder()中用0值对齐矩阵,方便后续加速傅里叶变换

摘要: 原来的矩阵为 33 30 1, 数据类型为float32 填充后的矩阵为 36 30 1, 数据类型为float32 每行多了3列,最后三列的数据都是0.0 阅读全文
posted @ 2019-07-07 21:38 ahfuzhang 阅读(929) 评论(0) 推荐(0)

【记录一个问题】android下opencl中的event.getProfilingInfo()测速时间并不准确

摘要: 使用了类似的代码来做android下opencl的时间测试: 打印出来: end start:119.574272ms end queue:323.316224ms end submit:323.314176ms 而整个函数的执行时间只有 79.248ms 这个profile统计出来的时间完全不准。 阅读全文
posted @ 2019-07-03 16:57 ahfuzhang 阅读(555) 评论(1) 推荐(0)

【记录一个问题】opencl enqueueWriteBuffer()中,cl_bool blocking参数设置无效

摘要: err = queue.enqueueWriteBuffer(in_buf, true, 0, bmp_size, bmp_data, NULL, &event); 以上代码中,第二个参数设置为false,执行时间为:6.119ms 第二个参数为true,执行时间为:6.277ms 只能理解为and 阅读全文
posted @ 2019-07-02 14:50 ahfuzhang 阅读(545) 评论(0) 推荐(0)

android+opencv+opencl: cv::dft()的opencl版本的性能分析

摘要: 在小米mix 2s + 高通骁龙 845 + Adreno 630 上测试了opencl版本的cv::dft()。 测试数据 先看表格里面的描述: | 名称 | 函数名 | 最大时间(ms) | 平均时间(ms) | 说明 | | | | | | | | cpu版本dft | cv::dft() | 阅读全文
posted @ 2019-06-27 15:11 ahfuzhang 阅读(758) 评论(0) 推荐(0)

【失败经验分享】android下使用支持opencl的cv::dft()

摘要: 1.使用了UMat,但是并未使用GPU计算 cv::dft()函数的定义是: dft()函数中这样调用opencl的版本: 2.opencl核函数编译失败 继续往后执行,debug版本opencv输出以下信息: 出错的代码是: bool enqueueTransform(InputArray _sr 阅读全文
posted @ 2019-06-26 16:15 ahfuzhang 阅读(625) 评论(0) 推荐(0)

【源码阅读】opencv中opencl版本的dft函数的实现细节

摘要: 1.函数声明 opencv 3.4.3\modules\core\include\opencv2\core.hpp:2157 2.函数实现 opencv 3.4.3\modules\core\src\dxt.cpp:3315 3. opencl的调用 4.ocl_dft()里面的row/col的调用 阅读全文
posted @ 2019-06-25 16:11 ahfuzhang 阅读(1984) 评论(0) 推荐(0)

【小记录】android下opencv的cv::dft()函数,CPU版本与opencl版本的性能相差16倍

摘要: cv::dft 相差15.9倍 cpu版本 单次调用 0.029448 毫秒 opencl版本 单次调用 0.468688 毫秒 差别仅仅只是参数的Mat类型和UMat类型的,其中还不包括 mat.copyTo(umat) 的时间。 手机类型小米mix 2s, 高通 845 阅读全文
posted @ 2019-06-24 06:18 ahfuzhang 阅读(339) 评论(0) 推荐(0)

linux下编译支持opencl的opencv for android

摘要: 主要的步骤其他人已经写过,请参考这篇:https://www.cnblogs.com/hrlnw/p/4720977.html 操作的细节请参考附件的pdf: https://files.cnblogs.com/files/ahfuzhang/opencvwithopencl4androidndk- 阅读全文
posted @ 2019-06-23 09:27 ahfuzhang 阅读(757) 评论(0) 推荐(0)