博客
关于我
CPU指令集——AVX2
阅读量:283 次
发布时间:2019-03-01

本文共 1312 字,大约阅读时间需要 4 分钟。

查看CPU支持的指令集与技术指南

1. 查看CPU支持的指令集

了解当前CPU支持的指令集对于优化计算性能至关重要。以下是查看CPU指令集的方法和相关信息:

方法总结

  • Windows 系统:可借助工具查看CPU指令集信息。
  • Linux 系统:通过命令 cat /proc/cpuinfo | grep flags 查看CPU指令集。

具体信息

Intel i7-7700 CPU 支持 AVX2 指令集,但不支持 AVX-512。AVX512-IFMA 为 Intel AVX512 指令集的一个扩展集,主要用于加速整数运算。基于 AVX512-IFMA 的实现可将速度提升至 AVX2 的 1.5 倍。

目前支持 AVX512-IFMA 的 CPU 主要包括 Cannon Lake(如 Intel® Core™ i3-8121U Processor)和 Ice Lake 系列处理器。

2. SIMD(单指令流多数据流)

SIMD 是并行计算中的重要技术。Flynn 分类法基于指令流和数据流的并发数量将计算机架构分为四类:

  • SISD(单指令单数据流):典型的串行机。
  • SIMD(单指令多数据流):单指令可同时操作多个数据流,支持 pipeline 和并行执行。
  • MISD(多指令单数据流):多条指令对应一个数据流,主要用于容错。
  • MIMD(多指令多数据流):多核超标量处理器和分布式系统。
  • 3. AVX(高级向量扩展)

    AVX 是 CPU 指令集的扩展,主要衍化包括:

    核心特性

    • AVX:支持 256 位宽 SIMD寄存器(YMM0-YMM7 在 32 位模式,YMM0-YMM15 在 64 位模式),低 128 位与 SSE 的 XMM 寄存器复用。
    • AVX2:引入 256 位宽整数运算指令,支持 Fused Multiply-Add(FMA)操作。
    • AVX-512:通过 EVEX 编码扩展至 512 位运算,提升性能。

    性能优势

    AVX 指令集遵循 IEEE-754 规范,支持 32 位单精度浮点数和 64 位双精度浮点数。YMM 寄存器可存储 8 个单精度浮点数或 4 个双精度浮点数,内存对齐建议为 16 字节或 32 字节。

    MXCSR 寄存器用于状态报告,除非使用 LDMXCSR 或 FXRSTOR 清理,否则会保持不变。

    4. AVX2 指令集详解

    根据《Intel® Advanced Vector Extensions Programming Reference.pdf》,AVX2 指令集包含以下新增指令:

    核心指令

  • PMULUDQ:乘法指令,可同时处理多个 unsigned doubleword 整数。
  • vpunpckldq:解密数据,支持低数据和高数据存取。
  • vpunpckhdq:类似于 vunpckldq,但处理高数据。
  • VPSHUFD:重组打包整数。
  • VPBLENDD:混合操作,用于数据混合。
  • VPERMD:全双精度元素置换。
  • VPSRLVD:变量位逻辑右移。
  • 这些指令延伸了 AVX 的功能,提升了计算效率。

    参考资料

  • CPU-Z 工具
  • Medium 文章
  • AVX-512
  • 转载地址:http://hqmx.baihongyu.com/

    你可能感兴趣的文章
    Objective-C实现max subarray sum最大子数组和算法(附完整源码)
    查看>>
    Objective-C实现md5算法(附完整源码)
    查看>>
    Objective-C实现miller rabin米勒-拉宾素性检验算法(附完整源码)
    查看>>
    Objective-C实现not gate非门算法(附完整源码)
    查看>>
    Objective-C实现segment tree段树算法(附完整源码)
    查看>>
    Objective-C实现SinglyLinkedList单链表算法(附完整源码)
    查看>>
    Objective-C实现二进制补码算法(附完整源码)
    查看>>
    Objective-C实现删除重复的字母字符算法(附完整源码)
    查看>>
    Objective-C实现单例模式(附完整源码)
    查看>>
    Objective-C实现单向链表的反转(附完整源码)
    查看>>
    Objective-C实现压缩文件夹(附完整源码)
    查看>>
    Objective-C实现图书借阅系统(附完整源码)
    查看>>
    Objective-C实现图片的放大缩小(附完整源码)
    查看>>
    Objective-C实现均值滤波(附完整源码)
    查看>>
    Objective-C实现域名转IP(附完整源码)
    查看>>
    Objective-C实现基于 LIFO的堆栈算法(附完整源码)
    查看>>
    Objective-C实现基于事件对象实现线程同步(附完整源码)
    查看>>
    Objective-C实现基于文件流拷贝文件(附完整源码)
    查看>>
    Objective-C实现多组输入(附完整源码)
    查看>>
    Objective-C实现字符串manacher马拉车算法(附完整源码)
    查看>>