1

英伟达首席科学家:5nm实验芯片用INT4达到INT8的精度,每瓦运算速度可达H100的十倍

 1 year ago
source link: https://www.qbitai.com/2022/12/40325.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

英伟达首席科学家:5nm实验芯片用INT4达到INT8的精度,每瓦运算速度可达H100的十倍

head.jpg梦晨 2022-12-10 14:46:33 来源:量子位

IEEE计算机运算研讨会

梦晨 发自 凹非寺
量子位 | 公众号 QbitAI

32位与16位格式的混合精度训练,正是当前深度学习的主流。

最新的英伟达核弹GPU H100,刚刚添加上对8位浮点数格式FP8的支持。

英伟达首席科学家Bill Dally现在又表示,他们还有一个“秘密武器”

在IEEE计算机运算研讨会上,他介绍了一种实验性5nm芯片,可以混合使用8位与4位格式,并且在4位上得到近似8位的精度。

目前这种芯片还在开发中,主要用于深度学习推理所用的INT4和INT8格式,对于如何应用在训练中也在研究了。

相关论文已发表在2022 IEEE Symposium on VLSI Technology上。

8156beefbdb342e6aafa6d3e81cca199~noop.image?_iz=58558&from=article.pc_detail&x-expires=1671259235&x-signature=cQUXf5Lpa5y4FHR6Mv1AaG3hW34%3D

新的量化技术

降低数字格式而不造成重大精度损失,要归功于按矢量缩放量化(per-vector scaled quantization,VSQ)的技术。

具体来说,一个INT4数字只能精确表示从-8到7的16个整数。

其他数字都会四舍五入到这16个值上,中间产生的精度损失被称为量化噪声。

传统的量化方法给每个矩阵添加一个缩放因子来减少噪声,VSQ则在这基础之上给每个向量都添加缩放因子,进一步减少噪声。

f4f2ded2a35342c0a11bb1f0c8289eaa~noop.image?_iz=58558&from=article.pc_detail&x-expires=1671259235&x-signature=SIDokgMN2BGn6whmU1GgfpDGyGY%3D

关键之处在于,缩放因子的值要匹配在神经网络中实际需要表示的数字范围。

英伟达研究人员发现,每64个数字为一组赋予独立调整过的缩放因子可以最小化量化误差。

计算缩放因子的开销可以忽略不计,从INT8降为INT4则让能量效率增加了一倍。

ef465eddeee44e718e03f4298706cdef~noop.image?_iz=58558&from=article.pc_detail&x-expires=1671259235&x-signature=tXC93yflkv%2FDtRL5av8986ANGT0%3D

Bill Dally认为,结合上INT4计算、VSQ技术和其他优化方法后,新型芯片可以达到Hopper架构每瓦运算速度的10倍

还有哪些降低计算量的努力

除了英伟达之外,业界还有更多降低计算量的工作也在这次IEEE研讨会上亮相。

马德里康普顿斯大学的一组研究人员设计出基于Posits格式的处理器核心,与Float浮点数相比准确性提高了多达4个数量级。

Posits与Float相比,增加了一个可变长度的Regime区域,用来表示指数的指数。

对于0附近的较小数字只需要占用两个位,而这类数字正是在神经网络中大量使用的。

适用Posits格式的新硬件基于FPGA开发,研究人员发现可以用芯片的面积和功耗来提高精度,而不用增加计算时间。

96c86f50f3054deaa7af7383ad8d4e22~noop.image?_iz=58558&from=article.pc_detail&x-expires=1671259235&x-signature=wqqbZWUkvQSyIcY3T6LI%2FQQJzJk%3D

ETH Zurich一个团队的研究基于RISC-V,他们把两次混合精度的积和熔加计算(fused multiply-add,FMA)放在一起平行计算。

这样可以防止两次计算之间的精度损失,还可以提高内存利用率。

FMA指的是d = a * b + c这样的操作,一般情况下输入中的a和b会使用较低精度,而c和输出的d使用较高精度。

研究人员模拟了新方法可以使计算时间减少几乎一半,同时输出精度有所提高,特别是对于大矢量的计算。

相应的硬件实现正在开发中。

60346b47f27b4c739318718604c79a34~noop.image?_iz=58558&from=article.pc_detail&x-expires=1671259235&x-signature=cLdOQwjJkQ0Xl2mbwu2OrOmfEoY%3D

巴塞罗那超算中心和英特尔团队的研究也和FMA相关,致力于神经网络训练可以完全使用BF16格式完成。

BF16格式已在DALL·E 2等大型网络训练中得到应用,不过还需要与更高精度的FP32结合,并且在两者之间来回转换。

这是因为神经网络训练中只有一部分计算不会因BF16而降低精度。

最新解决办法开发了一个扩展的格式BF16-N,将几个BF16数字组合起来表示一个数,可以在不显著牺牲精度的情况下更有效进行FMA计算

e7332718fac84b55a2b69d2e4de1d106~noop.image?_iz=58558&from=article.pc_detail&x-expires=1671259235&x-signature=bxoJ53P3DyKB7Bw7VuK601xJXB0%3D

关键之处在于,FMA计算单元的面积只受尾数位影响。

比如FP32有23个尾数位,需要576个单位的面积,而BF16-2只需要192个,减少了2/3。

另外这项工作的论文题目也很有意思,BF16 is All You Need。

d1e582321c7f4ad6a989024380b46393~noop.image?_iz=58558&from=article.pc_detail&x-expires=1671259235&x-signature=xv4ajDFuCakQPNVdoyUivwBrWy8%3D

参考链接:
[1]https://spectrum.ieee.org/number-representation
[2]https://ieeexplore.ieee.org/document/9830277
[3]https://ieeexplore.ieee.org/document/9823406

版权所有,未经授权不得以任何形式转载及使用,违者必究。

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK