当前位置:网站首页>将SSE指令转换为ARM NEON指令
将SSE指令转换为ARM NEON指令
2022-08-02 14:09:00 【虹夭】
相关资料
● sse指令集:sse指令解释
● sse2neon仓库:可以在sse2neon.h中寻找对应的neon指令转换方法
注意事项
● 将sse指令转换为arm neon指令往往很难起到优化作用,甚至可能产生负优化,因此该部分优化仅供参考。
__mm_shuffle_ps转换
__mm_shuffle_ps的作用是将m1中取出两个元素放到m3的低位,根据的是_MM_SHUFFLE(i3,i2,i1,i0)的后两个数组,从m2中取出两个元素放到m3的高位,根据的是_MM_SHUFFLE(i3,i2,i1,i0)的前两个数字。

针对__mm_shuffle_ps的转换,sse2neon中大多使用load and store指令和type conversion操作进行组合,比如下面这个代码,对应__mm_shuffle_ps(a,b,__MM_SHUFFLE(2,2,0,0))。
FORCE_INLINE __m128 _mm_shuffle_ps_2200(__m128 a, __m128 b)
{
float32x2_t a00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(a)), 0);
float32x2_t b22 =
vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(b)), 0);
return vreinterpretq_m128_f32(vcombine_f32(a00, b22));
}
直接使用类似上面的转换一定会造成性能的不升反降,最好的方法是在neon中寻找类似的操作,这部分操作主要集中在permutation,比如vtrn,vrev,vzip,vuzp等
比如上面的例子中:如果需要同时获取__mm_shuffle_ps(a,a,__MM_SHUFFLE(2,2,0,0))和__mm_shuffle_ps(a,a,__MM_SHUFFLE(3,3,1,1))时,可以使用vtrnq_32f(a,a)来获取,结果为float32x4x2_t类型,val[0]对应2200,val[1]对应3311。
边栏推荐
- Win10安装了固态硬盘还是有明显卡顿怎么办?
- FP7195转模拟调光技术解决智能家居调光频闪和电感噪音的原理
- The overlapping effect of the two surfaceviews is similar to the video and handout practice in the live effect
- win10系统更新错误代码0x80244022怎么办
- Win10电脑不能读取U盘怎么办?不识别U盘怎么解决?
- Publish module to NPM should be how to operate?Solutions to problems and mistake
- 小T成长记-网络篇-1-什么是网络?
- Tensorflow张量生成
- 系统线性、时不变、因果判断
- 基于GPT的隐变量表征解码结构
猜你喜欢
随机推荐
Actual combat Meituan Nuxt +Vue family bucket, server-side rendering, mailbox verification, passport authentication service, map API reference, mongodb, redis and other technical points
2022TI杯D题混沌信号产生实验装置
FP6296锂电池升压 5V9V12V内置 MOS 大功率方案原理图
TypeScript 快速进阶
LORA芯片ASR6505无线远距离传输8位MCU
FP5139电池与适配器供电DC-DC隔离升降压电路反激电路电荷泵电路原理图
日常-笔记
The overlapping effect of the two surfaceviews is similar to the video and handout practice in the live effect
【目标检测】YOLO v5 吸烟行为识别检测
DP1332E刷卡芯片支持NFC内置mcu智能楼宇/终端poss机/智能门锁
PyTorch(14)---使用现有的模型及其修改
还是别看学位论文
使用预训练语言模型进行文本生成的常用微调策略
【深度学习中的损失函数整理与总结】
6. How to use the CardView production card layout effect
LLVM系列第七章:函数参数Function Arguments
PyTorch②---transforms结构及用法、常见的Transforms
Win7遇到错误无法正常开机进桌面怎么解决?
PHY6222蓝牙5.2支持MESH组网M0内核超低功耗
让深度学习歇一会吧









