DL Boost是英特尔为x86-64平台上的一组指令集架构(ISA)特性所使用的营销名称,旨在提升深度学习任务(如训练和推理)的性能。这些特性随Cascade Lake架构引入,该架构接替了Skylake-SP系列服务器处理器。DL Boost针对人工智能应用中常见的工作负载,包括卷积神经网络和基于Transformer的模型,通过为特定数学运算提供硬件级加速来实现这一目标。
这一举措反映了芯片制造商为机器学习工作负载添加专用指令的更广泛趋势,补充了通用计算能力。英特尔将DL Boost定位为一种在标准x86服务器上降低AI推理和训练成本及延迟的方式,无需依赖GPU等专用加速器。
指令集特性
DL Boost包含两组主要指令。第一组为AVX-512 VNNI(矢量神经网络指令),也称为4VNNIW或AVX-VNNI,提供快速乘累加运算,主要针对依赖卷积的神经网络,如图像识别模型。这些指令在512位矢量上操作,允许每个时钟周期执行多次运算。
第二组为AVX-512 BF16,引入了对bfloat16浮点格式的支持,这是一种16位表示,保留了标准float32的指数范围,但降低了尾数精度。该格式专为低精度计算设计,可在保持可接受模型精度的同时加速训练和推理。这些指令包括float32与bfloat16之间的转换,以及高效组合多个值的点积运算。
这两组特性在Cascade Lake处理器及后续世代中可用,包括Ice Lake及后续服务器和客户端产品。这些指令通过标准编译器和运行时支持暴露给软件,使TensorFlow和PyTorch等框架能够自动利用它们。
性能与基准测试
一项基于TensorFlow的基准测试,在谷歌云平台计算引擎上运行,表明DL Boost相比没有这些指令的先前英特尔CPU,可以提升性能并降低成本。该基准测试显示,对于小批量大小尤其有益,这在实时推理场景中很常见,因为延迟比吞吐量更重要。
与GPU相比,该基准测试表明,配备DL Boost的CPU在某些工作负载下可以提供有竞争力或更优的成本效率,尤其是当模型较小或批量大小有限时。这是因为CPU避免了在分离内存空间之间传输数据的开销,而使用独立GPU时需要这种传输。结果发表在英特尔白皮书中,作者为Andres Rodrigues及其同事,标题为“Lower Numerical Precision Deep Learning Inference and Training”。
软件生态系统与采用
对DL Boost的支持已集成到主要深度学习框架和编译器工具链中。英特尔自己的OpenVINO工具包和oneAPI深度神经网络库(oneDNN)为这些指令提供了优化路径。第三方框架,包括TensorFlow和PyTorch,添加了对AVX-512 VNNI和BF16的后端支持,使开发者无需修改模型即可受益。
bfloat16格式最初由谷歌大脑开发,在业界获得了更广泛的采用,其他硬件供应商也实现了该格式。英特尔在DL Boost中包含BF16有助于标准化x86平台上的该格式,促进了训练和推理系统之间的互操作性。
与其他加速器的比较
DL Boost与专用AI加速器竞争,如AWS Trainium、Groq的张量流处理器和Graphcore的IPU。与这些专用芯片不同,DL Boost在通用CPU内运行,避免了额外硬件或复杂系统集成的需求。这使得它对已经运行x86服务器的现有数据中心具有吸引力。
然而,对于大型语言模型的大规模训练,专用加速器通常提供更高的原始吞吐量和内存带宽。DL Boost更常用于推理和较小的训练任务,在这些场景中CPU的灵活性具有优势。精度与速度之间的权衡通过bfloat16格式进行管理,该格式在许多情况下减少了内存使用和计算时间,同时保持了模型质量。
未来方向
英特尔在后续处理器世代中继续发展DL Boost,添加了更高级的指令并改善了对新兴AI工作负载的支持。该公司还将DL Boost与其Xeon可扩展处理器集成,这些处理器广泛部署在云环境中。随着AI模型复杂性的增长,基于CPU的加速作用仍然重要,特别是在边缘计算和实时应用中,功率效率和低延迟至关重要。
这种方法与x86其他供应商的努力相呼应,如AMD的类似指令扩展,并反映了向异构计算发展的更广泛行业趋势。DL Boost是英特尔维持其在AI硬件市场相关性战略的一部分,该市场日益被NVIDIA和高通等公司的专用加速器所主导。