【头部导读】
「购物狂欢的背后竟是一场数学活动?新一代深度学习加速技术前来解题」
双十一的余温尚存,双十二的预热就已经开始了。
大脑告诉我:不能再买了,而手却忍不住加满购物车。
都怪这些购物软件太了解我的喜好,我脑子里想什么大聪明们就给我推什么、“引诱”我“剁手”,更何况各类折扣活动算得人云里雾里,如何才能占到最大的便宜将资金进行合理支配。
(图源:网络)
看来这是一场复杂的数学活动,参与其中不止是把心里算盘打得火星都能听到的我,还有那背后摸准我们消费者行为偏好的AI推荐算法。
推荐和搜索模型是AI重要的工作负载,事实上,从数据分析和经典机器学习到语言处理和图像识别,到处可见AI的身影。而深究其中,AI真的就是数学,但却是很多很多的数学。
海量数学计算是每个 AI 任务和运行的核心,这些具体的“数学题”是何种难度?“算珠”又该如何拨弄得更快才能追得上不断增长的计算需求呢?
大规模推理时代,深度学习加速的天花板在哪?
人工智能迎来第三次浪潮后,以深度学习为代表的AI已经进入应用阶段。而深度学习 AI 需要进行大量矩阵乘法以训练神经网络模型,并利用推理将这些模型应用于实际任务。
也就是说,深度学习分为训练和推理两个阶段,而推理则是推动AI大规模走向落地的关键。
训练深度学习模型可能需要数小时或数天的算力。而深度学习推理可能需要几分之一秒到几分钟,具体取决于模型的复杂程度和对结果的准确度的要求。在推理过程中,计算机将输入数据与模型进行比较,然后推断数据的含义。
让人工智能落地更多是推理层面的工作,无论是推荐引擎、图像识别、媒体分析、语言翻译 、自然语言处理、强化学习等负载中推理性能的大幅提升对落地应用的贡献都十分重要。
在此背景下,硬件架构将成为AI落地的重中之重。
而做大规模推理,CPU平台具有较大优势——用户学习门槛低、部署速度快等,在类似推荐系统的应用中,CPU也担当着算力支撑,那么如何提升CPU的AI算力?
CPU的算力取决于 CPU 特定加速指令集或运算单元的持续引入及改进,那么通过强化算力单元和增加算力单元数量并举,即Scale-Up与Scale-Out相结合,提升CPU的AI算力。
回望英特尔历代至强® 可扩展处理器的深度学习加速技术(即DL Boost),已经将这一提升路径充分实践并拉高优化天花板:从第一代至强可扩展处理器引入的AVX-512——中低端型号每核心配备1个FMA单元、高端型号每核心配备2个FMA单元,到代号Ice Lake-SP的双路第三代至强可扩展处理器将此类配置扩展到全系列产品,并将最高核心数从28增加至40个,CPU的向量处理能力得以大幅提升。
指令优化方面,第二代英特尔至强® 可扩展处理器引入了简称VNNI(Vector Neural Network Instruction,矢量神经网络指令)的扩展,提高了数据格式INT8推理的效率;代号Cooper Lake的第三代英特尔至强可扩展处理器又引入了数据格式bfloat16(BF16)加速功能,可以用于推理和训练。
目前,前三代英特尔至强® 可扩展处理器的加速路径,主要依靠现有的计算单元,即AVX-512,配合指令集、算法和数据上的优化,输出AI算力。
但加速的天花板就到此为止了吗?
还有别的思路——内置硬件加速器,且与本就高性能的CPU内核无缝配合,叠加buff推高天花板。
硬件直接“贴贴”加速,第四代至强内置多种专用加速器
在今年11月,英特尔宣布将在2023年1月11日发布代号为Sapphire Rapids的全新第四代英特尔至强® 可扩展处理器。
Sapphire Rapids将为广泛的标量和并行工作负载提供跨越式的性能提升,更重要的是,它的基本架构旨在实现弹性计算模型(如容器化微服务)的突破性性能,以及在所有形式的以数据为中心的计算中快速扩展 AI 的使用。
第四代英特尔至强可扩展处理器的核心数量有显著增长,并支持DDR5、PCIe 5.0和CXL 1.1等下一代内存和接口标准,在内置硬件加速上,Sapphire Rapids也集成了5项加速器:
- 用于AI的高级矩阵扩展(Advanced Matrix Extensions),简称AMX;
- 用于数据分析的存内分析加速器(In-Memory Analytics Accelerator),简称IAA;
- 用于5G/网络的数据流加速器(Data Streaming Accelerator),简称DSA;
- 用于存储的动态负载均衡器(Dynamic Load Balancer),简称DLB;
- 用于数据压缩和加解密的QuickAssist技术,英特尔®数据保护与压缩加速技术,简称QAT。
首先,内置加速器可以消除在将数据从 CPU 移至协处理器加速器时产生的大部分开销。
同时,Sapphire Rapids还引入了加速器接口架构 (AIA) ,解决了无缝集成加速引擎和高性能核心时面临的关键挑战——能够处理 CPU 内核与内置加速器之间的数据高效调度、同步和信令传递,而不是高开销内核模式。
内置的硬件加速器也易获得更出色的性能,而不必将时间浪费在进行片外传输设置上。
AMX与上述其他4个加速器的一大区别,就是它本身就集成在了CPU核心内,与AVX-512一样,随核心数同步增长,线性提升处理能力。
开启全新计算单元,AMX升维加速深度学习工作负载
AMX与AVX-512又有什么区别?
AMX是全新的计算单元,有自己的存储和操作电路,并行度高,以便为AI工作负载加速Tensor运算,支持bfloat16和INT8两种数据类型。
Tensor处理是深度学习算法的核心,AMX功能可以实现每个循环2000次int8运算和1000次bfloat16运算。
同时,AMX的寄存器(名为Tile)是二维的,寄存器组是三维的,均比AVX-512高一个维度,寄存器组存储的数据相当于一个小型矩阵,这样AMX 能够在每个时钟周期执行更多矩阵乘法以每时钟周期来看。
理论上,AMX的TMUL(矩阵乘法运算)对AVX-512的2个FMA(融合乘加操作)单元,INT8性能高达8倍;处理浮点数据,AMX使用动态范围与FP32相当的BF16,性能可达AVX-512的16倍。
如此,有全新可扩展二维寄存器文件和全新矩阵乘法指令,可增强各种深度学习工作负载中推理及训练性能,也就代表着计算能力的大幅提升,这些计算能力可以通过行业标准框架和运行时无缝访问。
据今年1月数据表明,基于TensorFlow框架,INT8 精度下每秒检测的图像的数量增幅以及高达 6 倍多 BF16 精度下进行对象检测时每秒检测的图像的数量增幅明显增加:
56核的第四代英特尔® 至强可扩展处理器全新的AMX,对比40核的第三代英特尔® 至强可扩展处理器,在SSD-ResNet34上进行实时推理时,每秒处理的图像数量增加高达4.5倍。(注:实际性能受使用情况、配置和其他因素的差异影响,且性能测试结果基于配置信息中显示的日期进行的测试[1])
当然AVX-512本身就以FP32、FP64等高精度浮点数据的运算见长,依然可以专注于如数据分析、科学计算、经典机器学习等高精度计算。
如今第三代人工智能浪潮是以深度学习为代表,并非只有深度学习,AI的范围正在不断扩大,计算需求也在多元化,当人工智能的工作负载出现混合精度计算需求,AMX和AVX-512就可搭配使用,发展各自长处。
对于数据精度不高但要求高准确度的推理场景,如图像识别、推荐引擎、媒体分析、语言翻译、自然语言处理(NLP)、强化学习等典型AI应用场景,AMX其实属于降维打击,可发挥空间很大。
根据预告,英特尔第四代至强可扩展处理器是处理AI等更现代化、更新兴并行工作负载的基础设施,在进行整体设计时也考虑到了未来技术发展趋势——绝大多数新的可扩展服务将采用容器化微服务等弹性计算模型进行开发。
新版Windows、Linux Kernel和虚拟化软件也确实都具备支持AMX指令集的条件,所谓“引领”就是要更先一步到达未来。
参考链接:
[1]https://edc.intel.com/content/www/cn/zh/products/performance/benchmarks/vision-2022/