【高通hexagon dsp 内的Q6 hvx hmx算力关系的通俗解释】

高通hexagon dsp 内的Q6 hvx hmx算力关系的通俗解释

前言

hexagon dsp的所有指令都要依靠hw硬件线程来执行,靠标量核取址,译码,然后判断指令类型,如果是hvx指令,则hw线程绑定hvx核进行执行,如果是hmx指令则hw线程绑定hmx核进行执行。

hexagon dsp中的N个hw线程可以认为是N车道的公路,算法任务可以理解为很多不同尺寸形状的箱子货品,要合理的打包装到对应的车上,然后利用仅有的运力(对v69来说有6辆小汽车,4辆小货车,1量集装箱货车),往返多次,完成将所有货物从起点运输到终点的运输任务,最快运完所有货物的车辆调度方式是最优的。

Q6、hvx、hmx算力关系的类比

在这里插入图片描述

Q6标量核:
可以认为是小汽车,每次装/运一个箱子,不挑形状尺寸,使用起来最灵活,但运力低。小汽车Q6 scale core最喜欢单打独斗,从不拼车,上客就走,啥都能拉。

hvx向量核
可以认为是小货车,每次装/运箱子的尺寸、形状必须统一,但每趟之间互不影响,比如这一趟装32个尺寸为32的大箱子,下一趟可以装128个尺寸为8的小箱子,再下一趟可以装16个64尺寸的特大箱子,但每趟装的箱子的尺寸必须一致。小货车hvx最喜欢blas-level2向量计算。

hmx矩阵核:
可以认为是集装箱货车,每次装/运的箱子的尺寸、形状必须统一,但每趟之间互不影响,运力比小货车更大,但装卸车比较费劲,对货物比较挑剔,因为比较难一次找到非常规整的众多同尺寸箱子,可能会导致车装不满造成浪费。集装箱货车hmx最喜欢blas-level3矩阵计算。集装箱车装货最费劲,货也比较难找,但如果我们的货物,我们的算法恰有大块头同类型的计算,比如矩阵乘法/加,则是最合适不过的。

不优化的代码相当于是跑标量代码,只用小汽车拉货,一辆车跑一趟一次一个箱子,有6个车道,6量小汽车全部用起来跑,需要往返非常多次才能完成全部货物的运输。

中级的优化是优先凑小货车,找到同尺寸的箱子,装满一车就走,最多4个小货车在4车道跑,剩下两个车道仍然可以跑小汽车。

高级的优化是优先装集装箱车,然后在装小货车,剩下一个车道灵活安排小汽车扫尾。

总结:

本文以三种车辆货物运输的例子形象地解释了Q6、hvx、hmx三个算力的关系。
Q6、hvx这两个是用户可编程的,hvx有部分高算力指令高通隐藏不暴露,hmx更加封闭,但我研究发现hmx也是有方法不依托qnn独立使用的,这个后面再说。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值