技术解读:英特尔 x86 平台上,AI 能力是如何进行演进的?

本文介绍了英特尔x86平台上AI能力的演进,包括从AVX256到AVX512的升级,以及DL Boost技术如VNNI和BF16对深度学习训练和推理性能的提升。文章强调了软件生态系统在AI性能优化中的作用,提到了英特尔的深度学习加速技术,并详细讨论了如何通过oneDNN库和Intel Optimization for TensorFlow、PyTorch进行优化。此外,文章还探讨了Intel Neural Compressor(INC)在模型压缩中的应用,展示了性能优化的案例,如Bfloat16在BERT模型性能提升中的作用。
摘要由CSDN通过智能技术生成

AI 计算力的指数增长意味着,为了解决越来越复杂的用例,即使是 1000 倍的计算性能增长也很容易被消耗。因此,需要通过软件生态系统的助力,才能达到更好的性能。我们相信,构建 AI 软件生态系统,是将人工智能和数据科学项目推向生产的关键。本文整理自龙蜥大讲堂技术直播第四期,由龙蜥社区AI SIG核心成员、英特尔 AI 软件开发⼯程师黄文欢分享——用技术和实例讲解英特尔 x86 平台 AI 能力演进的关键。

以下是本期龙蜥大讲堂技术直播回顾文:

人工智能的发展为社会各个领域带来了无限可能,但这些应用都需要很强的计算性能和优化来提供准确、及时的结果。人工智能模型复杂性的增长速度是飞速的,大约三年前,像 ELMo 这样的自然语言模型只有 9400 万个参数,而今年最大的模型达到了超过 1 万亿个参数。

一、英特尔 x86 平台 AI 能力演进

自 Skylake 以来,英特尔通过从 AVX256 升级到 AVX512,将 AVX 的能力提高了一倍,这极大地提高了深度学习训练和推理能力。一年后,在 Cascade Lake 中引入 DL Boost VNNI,大大提高 INT8 乘加吞吐量。自 Cooper Lake 之后,英特尔将BFloat16(BF16) 添加到 DL Boost 指令集中,以进一步提高深度学习训练和推理性能。硬件一直在向前发展,AMX 自 Sapphire Rapids 开始推出,将会进一步提高 VNNI 和 BF16 从 1 维-向量到 2 维-矩阵的能力。英特尔可扩展处理器通过英特尔

Deep Learning Boost (Intel®DL Boost) 将嵌入式 AI 性能提升到一个新的水平。英特尔的 Deep Learning Boost ( DL Boost ) 是 x86-64 上指令集架构功能的名称,旨在提高深度学习任务(例如训练和推理)的性能。DL Boost 包含两组关键技术:

  • AVX-512 VNNI:主要用于卷积神经网络的快速乘法累加。
  • AVX-512 BF16:用于更快计算的低精度 BFloat16 浮点数。

图1. 英特尔x86平台AI能力演进

Intel® DL Boost – VNNI

英特尔深度学习加速包括 AVX512 VNNI,VNNI 代表向量神经网络指令,是对标准英特尔指令集 AVX512 的扩展。AVX512 VNNI 旨在加速基于卷积神经网络的算法。AVX512 通过引入 4 个新指令加快内部卷积神经网络环路。AVX512 VNNI 扩展背后的主要动机是观察到许多紧密的循环需要两个 16 位值或两个 8 位值的重复乘法,并将结果累加到 32 位累加器。

图2. 利用基础AVX 512 vs. 利用AVX512 VNNI 做向量乘加

深度学习的核心计算可以简化为乘加运算。在 VNNI 之前,我们需要做图 1 中这样的向量乘加,使用基础 AVX-512,对于 16 位,这可以使用两条指令实现 VPMADDWD用于将两个 16 位对相乘并将它们加在一起,然后将 VPADDD 添加累加值。利用基础 AVX512 需要 3 条指令,而 VNNI 只需要 1 个周期就可以完成。通过将三条指令融合为一条,可以最大化利用计算资源,提升 cache 利用率及避免潜在的带宽瓶颈。因此,在这个意义上,VNNI 通过与非 VNNI 比较,将为 INT8 带来 3x 峰值计算的提升。此外,由于在一个 AVX512 寄存器中,与 FP32 相比可以容纳 4 倍 INT8 数据,如果与 FP32 相比又可以带来 4x 峰值计算的提升。

Intel® DL Boost – BFloat16

BFloat16(BF16) 主要思想是提供 16 位浮点格式,其动态范围与标准 IEEE-FP32 相同,但精度较 FP32 变低。相当于指数区和 FP32 保持了相同的 8 位,并将 FP32 分数字段的小数区缩减到到了 7 位。大多数情况下,用户在进行神经网络计算时,BF16 格式与 FP32 一样准确,但是以一半的位数完成任务。因此,与 32 位相比,采用 BF16 吞吐量可以翻倍,内存需求可以减半。此外,fp32 到 bf16 的转化,相对于 fp32 到 fp16 的转化更加简单。

图3. BFloat16数据类型介绍

英特尔® 深度学习加速技术包括以下 BFloat16 指令:

二、英特尔AI 软件开发及部署生态系统

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值