当前位置:首页 > 智能硬件 > 人工智能AI
[导读] 深度学习、AI人工智能等技术正在成为各大处理器的热点,虽然目前的主流是通过专用的NPU单元来加速AI指令,但在CPU中集成相应的指令集也会带来很大的改变,Intel在Cascade Lake及1

深度学习AI人工智能等技术正在成为各大处理器的热点,虽然目前的主流是通过专用的NPU单元来加速AI指令,但在CPU中集成相应的指令集也会带来很大的改变,Intel在Cascade Lake及10nm Ice Lake处理器中就加入了BFlota16指令集(简称BF16),AI性能达到了前代的2.5倍以上。

BF16是为深度学习而优化的新数字格式,它保证了计算能力和计算量的节省,而预测精度的降低幅度最小。

BF16,有时也被称为BFloat16或Brain Float16,是一种针对人工智能/深度学习应用程序进行优化的新数字格式。它在谷歌Brain上获得了广泛的应用,包括谷歌、英特尔Arm和许多其他公司的人工智能加速器。

BF16背后的想法是通过降低数字的精度来减少计算能力和将张量相乘所需的能源消耗。张量是一个三维的数字矩阵;张量的乘法是计算人工智能所需的关键数学运算。

现在大多数人工智能训练都使用FP32, 32位浮点数。虽然这意味着计算非常准确,但它需要强大的硬件和大量的电力。推理通常使用INT8, 8位整数(整数)。虽然使用诸如INT8这样的较低精度的数字系统可以在相同的硬件上提供更高的吞吐量,从而节省电力,但是计算(预测)的结果却不那么准确。

BF16的目的是优化精度和预测精度之间的权衡,以增加吞吐量。

解剖FP

计算中的二进制数表示为:

底数是2,尾数是x的基指数,

在FP32中,每个数字都表示为:

1位表示符号(+或-),后跟8位的指数,在后面是23位的尾数(总共32位)。

对于BF16,谷歌Brain提出通过将FP32的尾数截断为7位来降低精度。

因此,BF16数字表示为:

1个符号位+ 8个指数位+7个尾数位(总共16位)。

这些16位数字提供了谷歌所追求的高吞吐量需求,同时保留了FP32的近似动态范围(该系统可以表示的数字的整个范围),因为指数是相同的大小。

使用BF16算法的预测精度与FP32相似,但不如FP32精确(谷歌曾说过,这是因为神经网络对指数的大小比尾数敏感得多)。对于大多数应用程序,这种折衷还是被认为可以接受。

为什么不用FP16?

现有的FP16格式(在移动图形应用程序中很流行)也是16位浮点数格式。为什么不用它呢?

FP16包括:

1个符号位,5个指数位,10个尾数位(共16位)。

使用这种格式,指数比FP32小,因此动态范围大大缩小。此外,将FP32数字转换成FP16比转换成BF16要困难得多——这比直接截断尾数要多得多,而尾数截断是一个相对简单的操作。

另一个重点是计算所需的硅物理面积。由于硬件乘法器的物理大小随尾数宽度的平方而增加,因此从FP32切换到BF16可以显著节省硅面积(这足以说服谷歌在其张量处理单元(TPU)芯片中使用BF16)。BF16乘法器比FP32乘法器小8倍,但仍然是FP16的一半。

DL还有哪些格式?

BF16并不是为深度学习提出的唯一新数字格式。在2017年Nervana提出了一个名为Flexpoint的格式。这个想法是通过结合点和浮点数系统的优点来减少计算和内存需求。

定点数使用固定的位来表示整数(整数)和分数(小数点后的部分)—与上面描述的浮点格式相比,用定点数计算通常更简单、更快。但是,对于给定位数,定点数的动态范围要比浮点数小得多。

Flexpoint数字共享相同的指数,使张量更容易相乘

Flexpoint张量中的(浮点数)数使用相同的指数(不仅仅是相同的指数大小,而是完全相同的指数值)。这个指数是由张量中的所有数字共享的,所以指数的传递可以在整个张量中平摊。

张量相乘可以作为一个定点运算,因为每个计算的指数是相同的——这比浮点数所需的数学运算要简单。这些计算代表了深度学习数学的绝大部分,因此节省了相当大的费用。然而,由于所有数字都有相同的指数,所以导致管理指数很复杂,动态范围(可以表示的数字范围)很低。

可惜的是,Flexpoint从未成功,甚至Nervana自己的芯片在消亡前也使用了BF16。

延伸阅读——ARM下代处理器架构将支持BFloat16指令集 AI性能突飞猛进

ARM宣布将在下一版ARMv8架构中加入新的Non及SVE指令,以便支持BFloat16运算。

BF16运算还不是IEEE的标准,但与标准的FP32浮点、FP16半精度相比,BF16运算优点多多,它可以轻松取代FP32,而且还能保持正确的NN神经网络操作,这点是FP16做不到的,而且它占用的内存及带宽只有FP32一半,所以性能更高,而且不需要复杂的架构改变。

总之,支持BF16运算优点多多,根据ARM做的模拟,不同类型的运算中BF16带来的性能提升不等,少的有1.6倍性能,多的可达4倍性能,所以在AI方面性能变化是非常大的,是前代的数倍之多。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭