6116
- 收藏
- 点赞
- 分享
- 举报
hi3559 opencv gpu加速
目的:测试canny算子有无GPU情况下的性能
问题:程序卡死在opencv调用opencl加速的地方
硬件:Hi3559a官方开发板
软件:Hi3559AV100_SDK_V2.0.3.1
操作步骤:
1.移植最新的opencv4.5.1(跑过很多其他测试程序了,移植没得什么大问题,打开了了opencl的宏的)
2.编译GPU的内核驱动,最终我的加载驱动的脚本为如下:
insmod hi_osal.ko anony=1 mmz_allocator=hisi mmz=anonymous,0,$mmz_start,$mmz_size:window,0,0x100100000,7M || report_error
insmod hi3559av100_base.ko
insmod hi3559av100_sys.ko
insmod hifb.ko video="hifb:vram0_size:32400,vram1_size:16200,vram2_size:256" # default fb0:4k,fb1:1080p,fb2:256x256
insmod hi_dbe.ko
insmod mali_kbase.ko
加载过程无报错。
3.添加gpu应用层驱动到LD_LIBRARY_PATH
4.编写测试程序链接
编译无任何警告,最终测试程序如下:
#include <opencv2/opencv.hpp>
#include <iostream>
#include <opencv2/core.hpp>
#include <opencv2/core/ocl.hpp>
using namespace std;
using namespace cv;
void test_canny_opencl(void){
ocl::setUseOpenCL(true);
UMat src, bw, blur, edge;
src = imread("girl.jpg").getUMat(ACCESS_RW);
cvtColor(src, bw, COLOR_BGR2GRAY);
GaussianBlur(bw, blur, Size(3, 3), 0);
Canny(blur, edge, 50, 100, 3);
//ocl::setUseOpenCL(false);
}
void test_canny_normal(void){
Mat src, bw, blur, edge;
src = imread("girl.jpg");
cvtColor(src, bw, COLOR_BGR2GRAY);
GaussianBlur(bw, blur, Size(3, 3), 0);
Canny(blur, edge, 50, 100, 3);
}
int main()
{
double start,duration;
start = static_cast<double>(getTickCount());
test_canny_normal();
duration = ((double)getTickCount() - start) / getTickFrequency();
cout << "test_canny_normal cost time is: " << duration * 1000 << "ms" << endl;
start = static_cast<double>(getTickCount());
test_canny_opencl();
duration = ((double)getTickCount() - start) / getTickFrequency();
cout << "test_canny_opencl cost time is: " << duration * 1000 << "ms" << endl;
return 0;
}
执行时卡死在 canny_opencl_test的cvtColor函数,发出如下警告信息:
getCacheDirectory Using world accessible cache directory. This may be not secure: /var/tmp/
我来回答
回答4个
时间排序
认可量排序
认可0
认可0
认可0
认可0
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币
Markdown 语法
- 加粗**内容**
- 斜体*内容*
- 删除线~~内容~~
- 引用> 引用内容
- 代码`代码`
- 代码块```编程语言↵代码```
- 链接[链接标题](url)
- 无序列表- 内容
- 有序列表1. 内容
- 缩进内容
- 图片![alt](url)
相关问答
-
2019-01-11 14:30:48
-
2022-10-12 10:20:53
-
102017-08-03 08:34:15
-
12022-06-17 09:36:32
-
2023-08-14 11:28:07
-
02018-01-31 17:36:56
-
2019-04-08 16:10:36
-
2019-06-12 21:20:14
-
2020-10-27 10:41:16
-
2018-05-11 10:53:30
-
2023-11-01 10:36:24
-
2018-10-27 17:18:53
-
2018-07-18 21:28:06
-
2016-12-12 13:37:13
-
2019-07-23 17:37:56
-
2017-08-23 13:25:52
-
2019-02-25 10:31:29
-
2020-06-15 18:50:57
-
2018-07-26 13:05:57
无更多相似问答 去提问
点击登录
-- 积分
-- E币
提问
—
收益
—
被采纳
—
我要提问
切换马甲
上一页
下一页
悬赏问答
-
5Hi3516CV610 如何使用SD卡升级固件
-
5cat /dev/logmpp 报错 <3>[ vi] [func]:vi_send_frame_node [line]:99 [info]:vi pic queue is full!
-
50如何获取vpss chn的图像修改后发送至vo
-
5FPGA通过Bt1120传YUV422数据过来,vi接收不到数据——3516dv500
-
50SS928 运行PQtools 拼接 推到设备里有一半画面会异常
-
53536AV100的sample_vdec输出到CVBS显示
-
10海思板子mpp怎么在vi阶段改变视频数据尺寸
-
10HI3559AV100 多摄像头同步模式
-
9海思ss928单路摄像头vio中加入opencv处理并显示
-
10EB-RV1126-BC-191板子运行自己编码的程序
举报反馈
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明
提醒
你的问题还没有最佳答案,是否结题,结题后将扣除20%的悬赏金
取消
确认
提醒
你的问题还没有最佳答案,是否结题,结题后将根据回答情况扣除相应悬赏金(1回答=1E币)
取消
确认