Toybrick

RK3399的RGA使用问题

18922203168

新手上路

积分
9
楼主
发表于 2020-7-13 14:27:15    查看: 8343|回复: 2 | [复制链接]    打印 | 只看该作者
大家好,我对RGA模块有点没搞明白啊。
按照我的理解,RGA实际上是一块协处理器,能够分担一部分运算量,降低CPU的负荷。
但RGA的API接口都是阻塞式的,代码调用RGA函数之后就等在那里,那和用CPU来计算有何不同呢?CPU不是在空转吗?负荷也没有降低啊。
是否应该提供一些非阻塞式的接口,通过中断或者回调来通知应用层计算完成呢?
这一点我确实没有搞明白,望技术人员释疑,谢谢!
回复

使用道具 举报

jefferyzhang

版主

积分
12983
沙发
发表于 2020-7-13 15:29:54 | 只看该作者
库是给小白用的,所以是最简单阻塞的,实际上rga是可以异步的,
但意义不大,你总得等结果才能进行下一步。

RGA的优势是:
1.速度极快,4k转码、旋转、缩放,仅需要几ms,你用cpu这里至少要大几十ms
2. 多线程来弥补RGA使用空闲,同时来10路试试?CPU这情况下毫无优势。
3. RGA不占用CPU资源,是把当前线程阻塞了,但是他并不占用cpu,当前线程只是被hangup了而已。其他线程依然在运行。
4. 功耗极低,同一个运算类型 RGA肯定是比CPU通用计算功耗发热都低的。

好不好用看你自己怎么用了,多一个处理器多一种用法,多分担了cpu一份工作
回复

使用道具 举报

18922203168

新手上路

积分
9
板凳
 楼主| 发表于 2020-7-13 17:31:13 | 只看该作者
明白了,谢谢解答!
回复

使用道具 举报

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

本版积分规则

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


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