neon浮点运算_NEON固定点编码和固定浮点运算性能比较

正如我们在这里看到的“arm integer NEON operations cycles”和手臂浮动NEON运算周期一样,整数乘法运算似乎没有浮点乘法运算的确定优势。当我将浮点代码转换为固定点时,我必须在定点乘法/除法指令后添加额外的“移位”指令。由于指令的增加,程序所需的周期实际上增加了。由于固定点,我的计划表现恶化。 (浮点代码14000周期,定点代码26000周期)。NEON固定点编码和固定浮点运算性能比较

是否有专门的NEON指令专门用于定点操作(乘法和除法)?我只找到一条只是转换Fixed -float的指令。 在NEON中编写定点程序是否有效?

我为浮点代码编写了下面的示例代码。

VMUL Q14.F32,Q8.F32,Q2.F32

VMUL Q15.F32,Q8.F32,Q3.F32

VLD2 {Q10.F32,Q11.F32},[[email protected]],TwdStep

VLD2 {Q4.F32,Q5.F32},[[email protected]],fftSize

VMLA Q14.F32,Q9.F32,Q3.F32

VMLS Q15.F32,Q9.F32,Q2.F32

以下代码通过在VMUL A指令后面插入移位操作转换为定点代码。

VMUL Q14.S32,Q8.S32,Q2.S32

VMUL Q15.S32,Q8.S32,Q3.S32

VLD2 {Q10.S32,Q11.S32},[[email protected]],TwdStep

VLD2 {Q4.S32,Q5.S32},[[email protected]],fftSize

VMLA Q14.S32,Q9.S32,Q3.S32

VMLS Q15.S32,Q9.S32,Q2.S32

VRSHR Q14.S32,Q14.S32,#12 ;Shift instructions to account for fixed point

VRSHR Q15.S32,Q15.S32,#12 ;

2013-04-04

Wolfrum

+0

这些天定点通常只使在其上浮点挑战的CPU,如低端微控制器感,并在具有明确固定点支撑的CPU(各种DSP家庭,一些SIMD架构) 。否则,只需使用浮点。 –

2013-04-04 16:23:56

+0

如果可能,您可以通过组合管道获得优势。你正在使用32位值还是SIMD正在进行?只有普通的ARM有'MLA','MUL'等,它们在32位值上执行。您可以在NEON核心中执行一次浮点计算,并使用ARM进行另一次修正。 –

2013-04-04 18:20:26

+0

@artlessnoise我只是想看看NEON的功能。做并行真的有帮助! –

2013-04-05 04:32:14

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值