如何在霓虹灯中进行交叉乘法?

Posted

技术标签:

【中文标题】如何在霓虹灯中进行交叉乘法?【英文标题】:How to do cross multiplication in neon? 【发布时间】:2018-10-12 04:17:35 【问题描述】:

现在,我有两个 8 位数组

一个是

A[8] = 1,2,3,4,5,6,7,8  

另一个是

B[2] = 1,2 

我要计算的是:

C = A x B = 1,2,3,4,5,6,7,8 x 1, 2, 1, 2, 1, 2, 1, 2 = 1,4,3,8,5,12,7,16 

如何使用 armv7 simd 执行此操作 有效率的?

【问题讨论】:

【参考方案1】:

将 B 定义为 B[8] = 1,2,1,2,1,2,1,2 并使用 vld1_u8 和 vmul_u8。

【讨论】:

如何定义B为1,2,1,2,1,2,1,2?这里我需要交叉加载和复制,这就是重点。

以上是关于如何在霓虹灯中进行交叉乘法?的主要内容,如果未能解决你的问题,请参考以下文章

霓虹灯:作为 IP 和 OP 的 64 位乘法和累加

为啥乘法、加法的霓虹内在函数比运算符慢?

如何在具有霓虹内在函数的多核处理器中有效地使用所有霓虹灯单元

如何在霓虹灯中执行 8 路去交错

如何编程霓虹灯寄存器索引

在霓虹灯寄存器中添加