Toybrick

标题: RK3399Pro开发板cpu不满载的问题。 [打印本页]

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

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



作者: qiu    时间: 2019-2-20 11:24
是不是代码中只开了4个线程
作者: 52ps2    时间: 2019-2-20 11:29
qiu 发表于 2019-2-20 11:24
是不是代码中只开了4个线程

确实开了6个,就算开了12个,最后的两个大核也不会进入工作,除非我手动把前面的4个小核关闭了,才是大核工作。而且问题不仅是这个,按之前的平台测试,应该所有cpu核心占用都均满载的,这个并没有,都在30~50浮动
作者: qiu    时间: 2019-2-20 11:34
52ps2 发表于 2019-2-20 11:29
确实开了6个,就算开了12个,最后的两个大核也不会进入工作,除非我手动把前面的4个小核关闭了,才是大核 ...

这个代码只用CPU在跑吗?还没用NPU是吗
作者: 52ps2    时间: 2019-2-20 11:37
qiu 发表于 2019-2-20 11:34
这个代码只用CPU在跑吗?还没用NPU是吗

这个深度图计算纯用cpu,人脸用npu
作者: qiu    时间: 2019-2-20 11:51
52ps2 发表于 2019-2-20 11:37
这个深度图计算纯用cpu,人脸用npu

把CPU部分处理的代码贴出来看下。
作者: 52ps2    时间: 2019-2-20 17:08
qiu 发表于 2019-2-20 11:51
把CPU部分处理的代码贴出来看下。

和代码无关,我把相同的工程通过ndk编译成动态库,用安卓app调用动态库,将开发板改为安卓系统,跑起来有30多帧,而且查看cpu占用为550%左右,6个核心都用上了,而且是满载
作者: qiu    时间: 2019-2-21 10:37
52ps2 发表于 2019-2-20 17:08
和代码无关,我把相同的工程通过ndk编译成动态库,用安卓app调用动态库,将开发板改为安卓系统,跑起来有 ...

安卓和linux用的kernel是一样的,所以我认为你还是得看下代码,你可以试试在Linux可以调用多核的写多线程的sample,看下能不能正常。
作者: 52ps2    时间: 2019-2-28 10:07
qiu 发表于 2019-2-21 10:37
安卓和linux用的kernel是一样的,所以我认为你还是得看下代码,你可以试试在Linux可以调用多核的写多线程 ...

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




欢迎光临 Toybrick (https://t.rock-chips.com/) Powered by Discuz! X3.3