至强秘笈 | AVX-512,加速密集型计算任务的“专用车道”

计算需求的增速,正快得让人有些出乎意料。毕竟,年增长率高达50%的数据总量[1], 渴求有更强的数据处理能力与之相匹配;不断发展和演变的应用场景,如仿真模拟、金融分析、深度学习等,也形成了更多、更大的密集型计算负载,所有这些,都对处理器的算力提出了严峻的挑战。

要应战,处理器就要练好“内功”,即在硬件层面上做出特定的优化或革新,其中最为关键的举措,就是特定加速指令集或运算单元的持续引入及改进。

早期通用处理器的工作模式,一般都是基于SISD(单指令单数据流)指令,即每个核心中,一个指令单次操作一条数据。如图一所示,这就如同一条繁忙的道路上,每辆车(指令)都只装载一件货物(数据),并按照时钟周期前进。处理器主频越高,时钟周期越短,单个核心(道路)的工作效率(车速)就越快。

图一 SISD指令工作模式图示

随着算力需求的不断提升,人们发现上述方式在某些场景中效率很低。例如图二所展示的,在图像处理、游戏、AI应用中常见的数组运算,其数组乘操作在SISD指令下,需要分解为3个运算指令,但这些乘法操作实际都是相同的。

图二 数组运算分解图示

为此,处理器开始引入新的SIMD(单指令多数据流)指令来提升运算效率,这种技术革新让一个指令能够单次操作多条数据(如图二中,数组乘可通过一条指令完成),这就仿佛道路上的车(指令)可以同时装载多份相同的货物(数据)。

英特尔在1996年就推出了MMX指令集,率先加入了对SIMD指令的支持,同时英特尔还为其配备了专门的64位寄存器。如图三所示,这意味着在主道路之外,还为繁忙的交通(计算需求)开辟了更宽畅的专用通道(寄存器)。不仅如此,英特尔还加入了FMA (融合乘加)指令集,让处理器一次能同时完成加法和乘法两种基本操作,效率再次翻番。

图三 英特尔® 架构处理器中集成的SIMD指令工作模式

在此后的二十多年中,如图四所示,英特尔一直在不断更新升级SIMD指令集,从MMX到SSE,再到SSE2、SSE3和SSE4,直到2008年,英特尔在其Sandy Bridge微架构中引入了全新的高级矢量扩展(Advanced Vector Extensions,AVX)指令集,不仅使矢量计算能力扩展到256位,也加入了数据重排等新的数据处理增强型功能。

而今,在英特尔® 至强® 可扩展处理器家族中集成的AVX-512指令集,寄存器已由最初的64位升级到了512位,且具备两个512位的FMA单元,这意味着应用程序可同时执行32 次双精度、64次单精度浮点运算,或操作八个64位和十六个32位整数。

图四 英特尔SIMD指令集发展历程

正是由于AVX-512指令集的加入,让英特尔® 至强® 可扩展处理器家族在音视频处理、游戏、科学计算、数据加密压缩及深度学习等场景中都有出色的表现。

例如在视频编解码、转码等处理流程中,应用程序需要执行大规模的重复性浮点计算,AVX-512指令集正可尽显所长。腾讯视频云的服务场景就曾采用集成AVX-512指令集的英特尔® 至强® 可扩展处理器来替代原来使用的英特尔® 至强® E5-2699 v4处理器(集成AVX-2)。如图五所示,在单任务延迟上,这个处理器的升级换代带来了高达2倍的性能提升;而在全吞吐量上,转码性能也借此实现了高达1.4-1.5倍的提升[2]。

图五 腾讯视频云利用AVX-512实现的性能提升

国外知名的云服务提供商Synesis也选择了英特尔AVX-512指令集与Aleph压缩算法的优化组合,来提升云平台中处理器、内存和存储资源的利用效率,以更低的总体拥有成本(TCO)帮助客户在智慧城市、公共安全等领域高效部署其云服务。据Synesis评估,在相同需求下,英特尔AVX-512指令集的引入,可帮助他们将平台的处理器节点数在上一代AVX2指令集的基础上再减少50%[3]。

[1] 数据引自新浪财经新闻报道:

http://finance.sina.com.cn/7x24/2018-05-26/doc-ihcaqueu3264721.shtml

[2] 案例链接:

https://www.intel.cn/content/www/cn/zh/cloud-computing/cloud-service-provider-resources-intel-offer-tencent-cloud-innovative-and-efficient-live-video-cloud-platform-solutions.html

[3] 案例链接:

https://www.intel.cn/content/www/cn/zh/cloud-computing/synesis-builds-massive-ai-based-smart-city-video-applications.html

* 本文内容及配图均为“英特尔商用频道”的原创内容。该公众号的运营主体拥有上述内容的著作权或相应许可。未经该运营主体书面同意,请勿转载、转帖或以其他任何方式复制、发表或发布上述内容。如需转载上述内容或其中任何部分,请留言联系。

英特尔、英特尔标识、以及其他英特尔商标是英特尔公司或其子公司在美国和/或其他国家的商标。

©英特尔公司版权所有。

* 文中涉及的其它名称及商标属于各自所有者资产。