AVX-512指令的前世今生
AVX-512指令的前世今生
作者: yanyun
- 时间: September 18, 2017
- 分类: Intel CPU
- 转自:http://linuxperformance.top/index.php/archives/94/
AVX指令集介绍
AVX指令集(英语:Advanced Vector Extensions,即高级向量扩展指令集)是x86架构处理器中的指令集,被英特尔和AMD的处理器所支持。AVX指令集由英特尔在2008年3月提出,并在2011年第一季度出品的Sandy Bridge系列处理器首获支持。
AVX-512 是一组新的指令集,和之前的 SSE/AVX-128/AVX-256一样,都属于向量运算指令,支持的数据宽度更大了。更大数据宽度的向量指令一直(在深度学习流行起来以前) 被用于加速各种实际运算,例如多媒体编解码、加密解密和数值运算等。
官方如Intel描述:
Intel® AVX-512 is a set of new instructions that can accelerate performance for workloads and usages such as scientific simulations, financial analytics, artificial intelligence (AI)/deep learning, 3D modeling and analysis, image and audio/video processing, cryptography and data compression.
比较巧的是深度学习也刚好需要这类运算和需求,所以 AVX-512 被冠以深度学习就是水到渠成的事情了。
Intel 在最新的桌面和 Xeon 处理器中也开始支持 AVX-512,但是并不意味可以替代现在的专用加速卡 (如 FPGA 和 GPU) 在深度学习中的地位。毕竟核数太少。针对深度学习Intel将会推出新的指令集AVX512_4VNNIW 和 AVX512_4FMAPS。
AVX架构演进
架构演进如下图,最早从SSE指令集开始,到现在AVX512指令集,理论上行应该叫AVX3才对,当然INTEL最早也是这么计划的,后来画风变量就直接成AVX-512了。
AVX是X86指令集的SSE延伸架构,类似IA16至IA32演进,AVX把暂存器XMM 128bit提升至YMM 256bit,以增加一倍的运算效率。此架构支持了三运算指令(3-Operand Instructions),减少在编码上需要先复制才能运算的动作。在微码部分使用了LES LDS这两少用的指令作为延伸指令Prefix。
AVX2指令集将整数操作扩展到了256位,并引入了FMA指令集作为扩充。AVX-512则将指令进一步扩展到了512位。
详细的如下图,从64位到512位,AMD曾经企图率先发布SSE5来夺权,结果Intel将指令集的名称改成了AVX,而AMD只能宣布支持AVX指令集,夺权失败。:
AVX-512特性分析
AVX-512指令集由独立的指令集组成,他们有唯一的CPUID特性位。各种指令集如下:
F,CD,ER,PF
F,CD,ER,PF在Xeon Phi x200 (Knights Landing)和Xeon V5中支持,其中ER和PF只有Knights Landing。分别是如下指令集。
• AVX-512 Foundation (F)
• AVX-512 Conflict Detection Instructions (CD)
• AVX-512 Exponential and Reciprocal Instructions (ER)
• AVX-512 Prefetch Instructions (PF)BW, DQ, VL
在Skylake中引入,可见架构演进图。
• AVX-512 Byte and Word Instructions (BW) 扩展AVX512能覆盖8位和16位整形操作。
• AVX-512 Doubleword and Quadword Instructions (DQ) – 增加32位和64位AVX-512指令。
• AVX-512 Vector Length Extensions (VL) – 扩展大部分AVX-512操作同样可以在XMM(128)和YMM(256)寄存器。IFMA, VBMI,4VNNIW, 4FMAPS
后续计划的指令集
• AVX-512 Integer Fused Multiply Add (IFMA)
• AVX-512 Vector Byte Manipulation Instructions (VBMI)
• AVX-512 Vector Neural Network Instructions Word variable precision (4VNNIW)
• AVX-512 Fused Multiply Accumulation Packed Single precision (4FMAPS) -
其中4VNNIW和4FMAPS是专门用来深度学习的,Intel是不会放弃这块大蛋糕的。参考
Intel will add deep-learning instructions to its processors:
https://lemire.me/blog/2016/10/14/intel-will-add-deep-learning-instructions-to-its-processors/
AVX架构研发及支持:
https://llvm.org/devmtg/2014-10/Slides/Nis-AVX-512ArchPoster.pdf
Intel® AVX-512 Instructions and Their Use in the Implementation of Math Functions
http://arith22.gforge.inria.fr/slides/s1-cornea.pdf
AVX-512指令的前世今生相关推荐
- 英特尔全部cpu列表_程序员大神Linus转投AMD:我希望英特尔的AVX 512指令集「去死」...
机器之心报道 参与:泽南 「去死吧,AVX 512 指令集.」Linux 提出者林纳斯 · 托瓦兹(Linus Torvalds)说道. Linux 首席架构师,当今全球最著名程序员之一 Linus ...
- 单指令多数据SIMD的SSE/AVX指令集和API
https://software.intel.com/sites/landingpage/IntrinsicsGuide/# Technologies MMX SSE SSE2 SSE3 SSSE3 ...
- SIMD 编程的优势与SIMD指令:SSE/AVX 与编程demo
资源:https://download.csdn.net/download/Rong_Toa/18745608 <Benefits of SIMD Programming | SIMD的优势&g ...
- ARM_NEON_CNN编程 SIMD单指令多数据流 intrinsics指令 内联汇编 CNN卷积网络优化 深度学习优化
ARM_NEON_CNN编程 SIMD单指令多数据流 intrinsics指令 内联汇编 CNN卷积网络优化 深度学习优化 博文末尾支持二维码赞赏哦 _ 本文github 神经网络arm neon加速 ...
- 英特尔AVX指令集解析
Sandy Bridge和Larrabee架构新指令集 Intel的微架构也进入了全速发展的时期,在刚刚结束的IDF峰会上Intel公司就发布了2010年的RoadMap.2010年Intel也将发布 ...
- ncnn 框架分析 openmp多核加速 缓存 仿存 cache 快速矩阵乘法 单指令多数据指令SIMD
ncnn 框架分析 本文github链接 博文末尾支持二维码赞赏哦 _ 在ncnn中建立新层 ncnn 下载编译使用 参考1 参考2 1. param 和 bin 文件分析 param 7767517 ...
- Linux下的last指令详解
Linux下的last指令是解析登录记录与审计轨迹的利器 简介: 在Linux系统中,了解用户登录记录和审计轨迹是一项重要的任务.而last指令是一个强大的工具,用于检索和展示系统中用户的登录信息.本 ...
- Linux下的Telnet指令详解
简介: Telnet指令是一种常用的远程登录工具,可用于与远程主机建立连接并执行命令.本篇博客将以通俗易懂的方式,详细解析Telnet指令的前世今生.功能.用法和应用场景,帮助读者全面了解Telnet ...
- Linux下的SCP指令详解
Linux下的SCP指令是一个安全文件传输利器 简介: 在Linux系统中,文件传输是一项常见的任务.而SCP(Secure Copy)指令作为一种安全的文件传输工具,可以在网络环境中快速.安全地传输 ...
最新文章
- 设计模式在外卖营销业务中的实践
- 【转】[C# 基础知识系列]专题四:事件揭秘
- python os方法-Python os.lchflags() 方法
- 云计算重头戏:可信计算技术
- 真·干货!这套深度学习教程整理走红,从理论到实践的带你系统学习 | 资源...
- 【SQL Server】CONVERT() 函数
- PSP模块Tensorflow/Pytorch实现小结
- Linux系统管理.Samba配置文件
- python运维都做些什么,Python运维工程师主要做什么?岗位职责!
- C++判断是否为一个凹多边形
- Excel技巧——从身份证号码里提取员工性别
- nrg文件是什么?nrg文件格式详细介绍
- pyecharts绘制地图(Geo and Map)(细节更丰富)
- UFS学习一:UTP层和UPIU
- misc类设备驱动1——板载蜂鸣器驱动测试
- python允许无止境的循环_python基础课程 第6章 循环(无尽的未来)
- 品读《你不努力,谁也给不了你想要的生活》
- 数字信号处理FFT快速傅立叶变换MATLAB实现——实例
- 视频伪原创工具 苹果手机视频md5值修改
- 常见的无法上网故障原因和解决方法