软硬件协同仿真加速——SIMD

一、什么是SIMD?

SIMD全称Single Instruction Multiple Data,单指令多数据流,即一条指令处理多条数据,帮助CPU实现数据并⾏,提⾼运算效率,是对CPU基本指令集的扩展。

二、SIMD指令类别

  • MMX,Multi-Media Extension, 即多媒体扩展,为了支持MPEG视频解码。MMX将64位寄存当作2X32或8X8来用,只能处理整型计算。64位的寄存器不是单独设置的,借用FPU寄存器,因此MMX指令不能与浮点数操作同时工作。
  • SSE,有专属16个128位长的寄存器,被称为XMM0-XMM15,其中XMM8-XMM15只有系统是64位模式时才有效。SSE指令要求数据是16byte对齐的。
  • SSE2,进一步支持双精度浮点数,由于寄存器长度没有变长,所以只能支持2个双精度浮点计算或是4个单精度浮点计算。另外,它在这组寄存器上实现了整型计算,从而代替了MMX。
  • SSE3,支持一些更加复杂的算术计算。
  • SSE4,增加了更多指令,并且在数据搬移上下了一番工夫,支持不对齐的数据迁移。
  • AVX2,同时执行256位数据
  • AVX512,同时执行512位数据

三、SIMD指令使用

1、gcc编译器使用

创建4个int数据同时处理的数据类型,typedef定义v4si数据类型,16代表16个字节

<

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值