博客
关于我
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实现binomial coefficient二项式系数算法(附完整源码)
    查看>>
    Objective-C实现bisection二分法算法(附完整源码)
    查看>>
    Objective-C实现bisection二等分算法(附完整源码)
    查看>>
    Objective-C实现BitMap算法(附完整源码)
    查看>>
    Objective-C实现bitonic sort双调排序算法(附完整源码)
    查看>>
    Objective-C实现BloomFilter布隆过滤器的算法(附完整源码)
    查看>>
    Objective-C实现BMP图像旋转180度(附完整源码)
    查看>>
    Objective-C实现bogo sort排序算法(附完整源码)
    查看>>
    Objective-C实现boruvka博鲁夫卡算法(附完整源码)
    查看>>
    Objective-C实现Boyer-Moore字符串搜索算法(附完整源码)
    查看>>
    Objective-C实现BP误差逆传播算法(附完整源码)
    查看>>
    Objective-C实现breadth First Search广度优先搜索算法(附完整源码))
    查看>>
    Objective-C实现BreadthFirstSearch广度优先搜索算法(附完整源码)
    查看>>
    Objective-C实现BreadthFirstShortestPath广度优先最短路径算法(附完整源码)
    查看>>
    Objective-C实现bubble sort冒泡排序算法(附完整源码)
    查看>>
    Objective-C实现bucket sort桶排序算法(附完整源码)
    查看>>
    Objective-C实现Burke 抖动算法(附完整源码)
    查看>>
    Objective-C实现Burrows-Wheeler 算法(附完整源码)
    查看>>
    Objective-C实现CaesarsCiphe凯撒密码算法(附完整源码)
    查看>>
    Objective-C实现calloc函数功能(附完整源码)
    查看>>