Toybrick

RK3399Pro开发板cpu不满载的问题。

52ps2

注册会员

积分
78
楼主
发表于 2019-2-20 09:55:00    查看: 5977|回复: 8 | [复制链接]    打印 | 只看该作者
我正在使用toybrick开发板来做一个深度人脸相机产品,目前在通过DCS计算图片深度与幅度时,我发现了出来的帧率有点低,在13~18帧左右,但是同一份代码我在其他平台能稳定30~40帧,我在树莓派3上测试为32帧,骁龙820的手机平台为36帧,联发科MT8788上38帧。我们在计算图片深度时候,使用了openmp进行多线程多核计算加速,线程数目等于cpu的核心数目,也就是6个线程。当在计算的时候,我在后台查看cpu占用情况时候,发现cpu的占用一直很低,cpu0~cpu3基本在30~50之间,而且cpu4与cpu5不进入工作。

我在其他平台测试发现,其他平台在跑我这个工程的时候都是cpu满负载运行的,所有核心均占用接近100%。由此可知道,应该不是芯片性能问题,应该是系统限制了cpu的调度。请问这个问题该如何解决?


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

qiu

版主

积分
1130
沙发
发表于 2019-2-20 11:24:55 | 只看该作者
是不是代码中只开了4个线程
回复

使用道具 举报

52ps2

注册会员

积分
78
板凳
 楼主| 发表于 2019-2-20 11:29:41 | 只看该作者
qiu 发表于 2019-2-20 11:24
是不是代码中只开了4个线程

确实开了6个,就算开了12个,最后的两个大核也不会进入工作,除非我手动把前面的4个小核关闭了,才是大核工作。而且问题不仅是这个,按之前的平台测试,应该所有cpu核心占用都均满载的,这个并没有,都在30~50浮动
回复

使用道具 举报

qiu

版主

积分
1130
地板
发表于 2019-2-20 11:34:01 | 只看该作者
52ps2 发表于 2019-2-20 11:29
确实开了6个,就算开了12个,最后的两个大核也不会进入工作,除非我手动把前面的4个小核关闭了,才是大核 ...

这个代码只用CPU在跑吗?还没用NPU是吗
回复

使用道具 举报

52ps2

注册会员

积分
78
5#
 楼主| 发表于 2019-2-20 11:37:03 | 只看该作者
qiu 发表于 2019-2-20 11:34
这个代码只用CPU在跑吗?还没用NPU是吗

这个深度图计算纯用cpu,人脸用npu
回复

使用道具 举报

qiu

版主

积分
1130
6#
发表于 2019-2-20 11:51:30 | 只看该作者
52ps2 发表于 2019-2-20 11:37
这个深度图计算纯用cpu,人脸用npu

把CPU部分处理的代码贴出来看下。
回复

使用道具 举报

52ps2

注册会员

积分
78
7#
 楼主| 发表于 2019-2-20 17:08:39 | 只看该作者
qiu 发表于 2019-2-20 11:51
把CPU部分处理的代码贴出来看下。

和代码无关,我把相同的工程通过ndk编译成动态库,用安卓app调用动态库,将开发板改为安卓系统,跑起来有30多帧,而且查看cpu占用为550%左右,6个核心都用上了,而且是满载
回复

使用道具 举报

qiu

版主

积分
1130
8#
发表于 2019-2-21 10:37:13 | 只看该作者
52ps2 发表于 2019-2-20 17:08
和代码无关,我把相同的工程通过ndk编译成动态库,用安卓app调用动态库,将开发板改为安卓系统,跑起来有 ...

安卓和linux用的kernel是一样的,所以我认为你还是得看下代码,你可以试试在Linux可以调用多核的写多线程的sample,看下能不能正常。
回复

使用道具 举报

52ps2

注册会员

积分
78
9#
 楼主| 发表于 2019-2-28 10:07:09 | 只看该作者
qiu 发表于 2019-2-21 10:37
安卓和linux用的kernel是一样的,所以我认为你还是得看下代码,你可以试试在Linux可以调用多核的写多线程 ...

我改用opencl用gpu加速了,速度达到要求了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

产品中心 购买渠道 开源社区 Wiki教程 资料下载 关于Toybrick


快速回复 返回顶部 返回列表