0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

英特尔AVX-512VNNI技术解析

科技见闻网 来源:科技见闻网 作者:科技见闻网 2022-03-31 14:08 次阅读

英特尔AVX-512VNNI技术解析

高级矢量扩展指令集(AdvancedVector ExtensionsAVX)是x86架构微处理器中的SIMD指令集。英特尔AVX-512顾名思义寄存器位宽是512b,可以支持16路32b单精度浮点数或64路8b整型数。

英特尔至强可扩展处理器通过英特尔深度学习加速(英特尔DLBoost)进一步提升了AI计算性能。英特尔深度学习加速包含英特尔AVX-512VNNI(VectorNeural Network Instructions),是对标准英特尔AVX-512指令集的扩展。

如何理解英特尔AVX-512技术,还要从SIMD指令集说起。SIMD是单指令流多数据流操作(SingleInstruction Stream, Multiple Data Stream)的缩写,相对应的是SISD单指令流单数据流(SingleInstruction Stream, Single Data Stream)。相较于传统的单指令单数据指令,SIMD指令使得一条指令可以完成多组数据的操作。单指令单数据流和单指令多数据流区别如下图所示:

英特尔AVX-512VNNI技术解析

英特尔AVX指令集的前世今生

英特尔AVX-512VNNI技术解析

英特尔最早发布的SIMD指令集是MMX指令集:

1996年,英特尔发布了基于新版P55C架构的PentiumMMX系列处理器,其中引入了新的MMX指令集,开始支持SIMD。PentiumMMX系列处理器上新引入的MMX指令集开创了x86处理器支持SIMD操作的先河,该指令集定义了8个64-bit宽度的寄存器,每个寄存器的64-bit容量中可以放入八个8-bit长度的整数或四个16-bit长度整数或两个32-bit整数,CPU在识别到MMX指令集的新指令时会自动将寄存器中的数据进行分割计算,这样一来,单个指令就成功操作了多个数据,实现了SIMD。

英特尔AVX-512指令集实际上分成不同的扩展,用来实现不同的操作。具体的扩展如下:

AVX-512 Foundation

AVX-512 Conflict Detection Instructions (CD)

AVX-512 Exponential and Reciprocal Instructions (ER)

AVX-512 Prefetch Instructions (PF)

AVX-512 Vector Length Extensions (VL)

AVX-512 Byte and Word Instructions (BW)

AVX-512 Doubleword and Quadword Instructions (DQ)

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)

VPOPCNTDQ

VPCLMULQDQ

AVX-512 Vector Neural Network Instructions (VNNI)

AVX-512 Galois Field New Instructions (GFNI)

AVX-512 Vector AES instructions (VAES)

AVX-512 Vector Byte Manipulation Instructions 2 (VBMI2)

AVX-512 Bit Algorithms (BITALG)

AVX-512 Bfloat16 Floating-Point Instructions (BF16)

AVX-512 Half-Precision Floating-Point Instructions (FP16)

通过以上这些指令集扩展,让英特尔至强可扩展处理器家族在音视频处理、游戏、科学计算、数据加密压缩以及深度学习等场景中拥有了出色的表现。

英特尔AVX-512VNNI(VectorNeural Network Instructions)

英特尔AVX-512VNNI(VectorNeural NetworkInstructions)是英特尔深度学习加速一项重要的内容,也是对标准英特尔AVX-512指令集的扩展。可以将三条指令合并成一条指令执行,更进一步的发挥新一代英特尔至强可扩展处理器的计算潜能,提升INT8模型的推理性能。目前第2代和第3代英特尔至强可扩展处理器均支持英特尔VNNI。

未使用VNNI的平台需要vpmaddubsw、vpmaddwd和vpaddd指令才能完成INT8卷积运算中的乘累加:

英特尔AVX-512VNNI技术解析

而拥有VNNI的平台上则可以使用一条指令vpdpbusd完成INT8卷积操作:

英特尔AVX-512VNNI技术解析

英特尔深度学习加速VNNI加速推荐系统中的矢量召回

下面介绍一个具体的使用场景:英特尔深度学习加速VNNI加速推荐系统中的矢量召回。

众所周知,推荐系统需要解决的问题是:如何为既定用户生成一个长度为K的推荐列表,并使该推荐列表尽量(高准确性)、尽快(低延迟)地满足用户的兴趣和需求?常规的推荐系统包含两部分:矢量召回(vectorrecall)和重排(ranking)。前者从庞大的推荐池里粗筛出当前用户最可能感兴趣的几百或几千条内容,并将结果交由后者的排序模块进一步排序,得到最终推荐结果。

英特尔AVX-512VNNI技术解析

矢量召回可以转换成高纬度的矢量相似性搜索问题。HNSW(HierarchicalNavigable Small World)算法是基于图结构的ANN(ApproximateNearest Neighbor)矢量相似度搜索算法之一,也是速度最快精度最高的算法之一。

英特尔AVX-512VNNI技术解析

矢量原始数据的数据类型常常是FP32。对于很多业务(如图片检索),矢量数据是可以用INT8/INT16表示而且量化误差对最终搜集结果影响有限。这时可以使用VNNI intrinsic 指令实现矢量INT8/INT16 的内积计算。大量实验表明QPS性能有较大的提升,而且召回率几乎不变。QPS提升的原因一方面是 INT8/INT16访问带宽比 FP32少很多,另一方面距离计算部分由于使用 VNNI指令得以加速。

当数据集比较大时(如1亿到10亿数据量级范围),传统的做法是将数据集切片,变成几个较小的数据集,每个数据集单独获取topK,最后再合并。由于增加了多个机器之间的通信,增加延迟的同时降低了QPS。在大数据集上使用HNSW方案的最佳实践是:尽量不切片,在完整的数据集上建立索引和执行搜索,可获得最佳性能。当数据集过大,内存空间不够时,可以考虑使用英特尔傲腾持久内存解决。

Super-FusedBERT技术解析

BERT介绍

BERT(BidirectionalEncoder Representations fromTransformers,基于变换器的双向编码器表示技术)是2018年谷歌公司提出的NLP(Naturallanguageprocessing,自然语言处理)学科的新技术。谷歌正在利用BERT来更好地理解用户搜索语句的语义。2020年的一项文献调查得出结论:“在一年多一点的时间里,BERT已经成为NLP实验中无处不在的基线”,算上分析和改进模型的研究出版物超过150篇。

BERT的创新点在于它将双向Transformer用于语言模型,之前的模型是从左向右输入一个文本序列,或者将left-to-right和right-to-left的训练结合起来。实验的结果表明,双向训练的语言模型对语境的理解会比单向的语言模型更深刻,BERT使用了一种新技术叫做MaskedLM(MLM),在这个技术出现之前是无法进行双向语言模型训练的。

英特尔AVX-512技术加速新浪广告业务

通过使用英特尔AVX-512实现Super-FusedBert优化方案

一、利用Intel MKL高性能数学库

MKL是Intel发布的高性能数学库,适用于科学计算,工程和金融领域。经过多年的打磨,MKL已经是x86平台上性能最好的数学库之一。借助MKL可以最大限度的发挥出Xeon处理器的硬件性能,帮助加速Bert模型的推理。

英特尔AVX-512VNNI技术解析

图 MKL高性能数学库

深度学习模型中存在大量矩阵乘法(GEMM)这种计算密集操作,可以直接使用MKL的cblas_sgemm接口

此外,MKL还提供了一种新的GEMM接口,叫PackedAPI。这种API可以对输入的矩阵进行预处理(Pack),进一步提高GEMM的效率。

英特尔AVX-512VNNI技术解析

图 MKLPacked API性能曲线

对于Bert模型,在其推理时权重是固定的,因此可以对权重进行重排,使用MKL的PackedAPI进行模型推理加速。

二、利用Intel oneDNN开源深度学习加速库

oneDNN是Intel开源的深度学习加速库,同样可以支持不同的计算设备,如CPU,GPU等。oneDNN抽象了以下几个概念:

Primitive:一种DNN算子的底层原语,支持matmul,convolution等。

Memory:对Primitive使用的内存的抽象,存在多种布局,不同的内存布局也会影响

Primitive:的执行效率。

Engine:底层计算设备抽象,可支持 CPU, GPU。

Stream:Engine中Primitive的队列。

英特尔AVX-512VNNI技术解析

图 oneDNN结构

oneDNN中支持了大量常用的深度学习算子。Bert中使用的softmax,layernorm,gelu也都在oneDNN的Primitive中找到相应的实现。

三、使用AVX-512技术进行算子融合

在深度学习框架中,一个模型由多个算子组成,这些算子执行都服从深度学习中调度器的调度。冗余的算子会增加调度开销,进而影响执行效率。并且算子实现中可能还有很多不必要的访存和内存分配。因此在针对推理的优化中,减少算子数量非常必要。

英特尔AVX-512VNNI技术解析

图 算子融合示意图

除此之外,深度学习模型中,计算密集的算子(matmul,conv)后面会跟一个element-wise的操作(激活函数relu)。这些element-wise的操作可以在计算密集算子计算的过程中完成,而不必等到计算密集算子完全计算完后再进行。这种优化也叫算子融合。

在Bert模型中,matmul,biasadd,gelu的组合可以使用oneDNN的matmulprimitive算子结合追加post_op来完成。

oneDNN的matmulprimitive可以进行多维tensor的乘法操作,并附加融合bias加法。

四、访存优化

由于CPU架构的特点,越靠近CPU的存储越快,体积越小。因此高效利用缓存对程序性能非常重要。

英特尔AVX-512VNNI技术解析

图 CPUcache结构示意图

这就要求算子在实现的过程中能够尽可能减少内存占用,进而减少cache的换出,提高cache利用率。

在Bert的self-attention中,对于q、k、v的计算中存在转置操作。通过下图可以清楚的看到,每一个q、k、v在经过一个线性层后,都会按照head进行split并转置。在self-attention最后和v进行点积后,还需要一个转置来摆放数据。

英特尔AVX-512VNNI技术解析

图self-attention图结构

其实通过分析图结构的计算流程,我们可以将上面的转置消除。如下图,原来的数据是按红色方框的方式存放,但是BatchMatmul需要用到的数据位于绿色方块中。因此我们可以使用MKL的batch_sgemm接口,将参数stride指定为64*12。这样就可以避免转置带来的内存占用和访存开销。

英特尔AVX-512VNNI技术解析

图消除self-attention转置

性能优化数据

在Intel第三代Xeon处理器IceLake8358P上,我们对Super-FusedBert进行了性能测试:

Bertbase model 参数:

英特尔AVX-512VNNI技术解析

数据对比:

英特尔AVX-512VNNI技术解析

通过数据对比分析,经过优化后的Bert-base模型在第三代Xeon处理器IceLake8358P比优化前节省了大约四分之三的时长,分别从40ms优化到10.5ms、43ms优化到9.2ms。

这种优化对于满足实时在线服务推理的延迟要求有着十分显著的作用,有利于业务部门搭建基于Bert模型的业务,提高了集群中CPU利用率。

*实际性能受使用情况、配置和其他因素的差异影响。更多信息请见www.Intel.com/PerformanceIndex性能测试结果基于配置信息中显示的日期进行测试,且可能并未反映所有公开可用的更新。

详情请参阅配置信息披露。没有任何产品或组件是绝对安全的。

英特尔技术可能需要启用硬件、软件或激活服务。

具体成本和结果可能不同。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 英特尔
    +关注

    关注

    61

    文章

    9959

    浏览量

    171733
  • 微处理器
    +关注

    关注

    11

    文章

    2262

    浏览量

    82435
  • 指令集
    +关注

    关注

    0

    文章

    224

    浏览量

    23381
收藏 人收藏

    评论

    相关推荐

    世纪大并购!传高通有意整体收购英特尔英特尔最新回应

    电子发烧友网报道(文/吴子鹏)9月21日,《华尔街日报》发布博文称,高通公司有意整体收购英特尔公司,而不是仅仅收购芯片设计部门。“最近几天,高通已经接触了芯片制造商英特尔。”报道称,这笔交易还远未
    的头像 发表于 09-22 05:21 2941次阅读
    世纪大并购!传高通有意整体收购<b class='flag-5'>英特尔</b>,<b class='flag-5'>英特尔</b>最新回应

    英特尔推出全新英特尔锐炫B系列显卡

    备受玩家青睐的价格提供卓越的性能与价值1,很好地满足现代游戏需求,并为AI工作负载提供加速。其配备的英特尔Xe矩阵计算引擎(XMX),为新推出的XeSS 2提供强大支持。XeSS 2的三项核心技术协同工作,共同提高性能表现、增强视觉流畅性并加快响应速度。 “   全新
    的头像 发表于 12-07 10:16 716次阅读
    <b class='flag-5'>英特尔</b>推出全新<b class='flag-5'>英特尔</b>锐炫B系列显卡

    英特尔CEO Gelsinger宣布退休

    联席首席执行官,以确保公司的平稳过渡。目前,英特尔的董事会正在积极寻找合适的人选,以填补这一重要职位的空缺。 Pat Gelsinger在英特尔度过了超过四十年的职业生涯,他的成长历程堪称传奇。从最初的一名普通员工,他凭借出色的才华和不懈的努力,逐步晋升为首席
    的头像 发表于 12-03 10:55 222次阅读

    英特尔考虑出售Altera股权

    近日,英特尔(Intel)正积极寻求出售其可编程芯片制造子公司Altera的股权,并考虑引入战略投资或PE投资。据悉,英特尔对Altera的估值约为170亿美元,而英特尔于2015年以167亿美元的价格收购了这家公司。
    的头像 发表于 10-21 15:42 441次阅读

    英特尔是如何实现玻璃基板的?

    。 虽然玻璃基板对整个半导体行业而言并不陌生,但凭借庞大的制造规模和优秀的技术人才,英特尔将其提升到了一个新的水平。近日,英特尔封装测试技术开发(Assembly Test Techn
    的头像 发表于 07-22 16:37 322次阅读

    英特尔携手日企加码先进封装技术

    英特尔公司近日在半导体技术领域再有大动作,加码先进封装技术,并与14家日本企业达成深度合作。此次合作中,英特尔创新性地租用夏普闲置的LCD面板厂,将其作为先进半导体
    的头像 发表于 06-11 09:43 411次阅读

    英特尔CEO:AI时代英特尔动力不减

    英特尔CEO帕特·基辛格坚信,在AI技术的飞速发展之下,英特尔的处理器仍能保持其核心地位。基辛格公开表示,摩尔定律仍然有效,而英特尔在处理器和芯片
    的头像 发表于 06-06 10:04 424次阅读

    英特尔加大玻璃基板技术布局力度

    近日,全球领先的半导体制造商英特尔宣布,将大幅增加对多家设备和材料供应商的订单,旨在生产基于玻璃基板技术的下一代先进封装产品。这一战略举措预示着英特尔对于未来封装技术的深度布局和坚定信
    的头像 发表于 05-20 11:10 525次阅读

    借助英特尔DLB技术优化网络性能

    英特尔® DLB技术的出现,无疑为数据处理和网络传输领域带来了一场革命性的变革。通过其独特的负载均衡、数据包调度优先排序以及降低网络流量时延的能力,英特尔® DLB显著提升了高数据包速率应用的性能,为各行各业注入了新的活力。
    的头像 发表于 03-11 09:52 651次阅读

    英特尔:2025年全球AIPC将超1亿台占比20%

    英特尔行业资讯
    北京中科同志科技股份有限公司
    发布于 :2024年02月29日 09:15:26

    英特尔1nm投产时间曝光!领先于台积电

    英特尔行业芯事
    深圳市浮思特科技有限公司
    发布于 :2024年02月28日 16:28:32

    第五代英特尔至强,以卓越性能为多元化工作负载“保驾护航”

    型号上的三级缓存容量增大了三倍 · 在AI工作负载中具备领先性能 · 在多线程和轻线程工作负载中均有出色表现 · 支持英特尔AMX、AVX-512VNNI和BFloat 16 · 支持CXL Type 3存储设备
    的头像 发表于 02-28 09:50 488次阅读

    英特尔首推面向AI时代的系统级代工—英特尔代工

    英特尔首推面向AI时代的系统级代工——英特尔代工(Intel Foundry),在技术、韧性和可持续性方面均处于领先地位。
    的头像 发表于 02-25 10:38 546次阅读
    <b class='flag-5'>英特尔</b>首推面向AI时代的系统级代工—<b class='flag-5'>英特尔</b>代工

    英特尔登顶2023年全球半导体榜单之首

    英特尔行业芯事
    深圳市浮思特科技有限公司
    发布于 :2024年02月01日 11:55:16

    英特尔量产3D Foveros封装技术

    英特尔在封装技术方面取得了重大突破,并已经开始大规模生产基于3D Foveros技术的产品。这项技术使得英特尔能够在单个封装中整合多个小芯片
    的头像 发表于 01-26 16:04 652次阅读