混合输入矩阵乘法的性能优化

AI驱动的技术正逐渐融入人们日常生活的各个角落,有望提高人们获取知识的能力,并提升整体生产效率。语言大模型(LLM)正是这些应用的核心。LLM对内存的需求很高,通常需要专用的硬件加速器,以高效地提供数百亿亿次浮点运算(Exaflops级别)的计算能力。本文将展示如何通过更有效地利用内存来解决计算方面的挑战。

LLM中的大部分内存和计算资源都消耗在了矩阵乘法操作中的权重上。使用范围更小的数据类型可以降低内存消耗,例如,将权重存储为8位整数(即U8或S8)的数据类型,相对于单精度(F32)能够减少4倍的内存占用,相对于半精度(F16)或bfloat16(BF16)能够减少2倍的内存占用。

此外,先前的研究表明,LLM模型采用S8格式的权重和F16格式的输入进行矩阵乘法运算,能够在保持可接受的准确性的同时提高效率。这一技术被称为仅权重量化(weight-onlyquantization),需要对带有混合输入的矩阵乘法进行高效实现,例如半精度输入与8位整数相乘。因为硬件加速器(包括GPU)支持一组固定的数据类型,因此,混合输入矩阵乘法需要通过软件转换来映射到硬件操作。

175亿参数的LLM模型在不同数据类型格式下的内存占用。

1

张量核心的mma运算通过指定两个输入矩阵(如下图所示的A和B)来计算生成结果矩阵C。mma运算本身支持混合精度。混合精度张量核心允许混合输入(A和B)数据类型与结果(C)数据类型。相比之下,混合输入矩阵乘法涉及混合输入数据类型,这在硬件上不受支持,因此需要通过软件实现。

对M乘K的输入矩阵A和K乘N的输入矩阵B进行的M乘N乘K的张量核心操作,

得到M乘N的输出矩阵C。

2

为简化讨论,我们选择了混合输入矩阵乘法的一个具体示例:用户输入采用F16,模型权重采用U8(表示为F16*U8)。本文讨论的技术适用于各种混合输入数据类型组合。

GPU程序员可以访问一系列内存,包括全局内存、共享内存和寄存器,这些内存按容量递减但速度递增的顺序排列。NVIDIAAmpereTensorCore的mma操作从寄存器中获取输入矩阵。此外,输入和输出矩阵需要符合在一个名为warp的32个线程组内的数据布局。对于mma操作,warp内支持的数据类型和布局是固定的,因此要高效实现混合输入乘法,就需要在软件中解决数据类型转换和布局一致性问题。

mma操作要求两个输入矩阵具有相同的数据类型。因此,在混合输入矩阵乘法中,当一个操作数以U8存储在全局内存中,而另一个以F16存储时,就需要进行从U8到F16的数据类型转换。这种转换将两个操作数转换为F16,从而将混合输入矩阵乘法映射到硬件支持的混合精度张量核心。鉴于权重的数量庞大,因此需要大量的转换操作,我们的技术展示了如何降低其时延并提高性能。

mma操作还要求两个输入矩阵的布局(即在一个warp的寄存器中的布局)符合硬件规范。在混合输入矩阵乘法(F16*U8)中,U8数据类型的输入矩阵B的布局需要符合转换后的F16数据类型。这被称为布局一致性(layoutconformance),需要通过软件实现。

下图展示了一个mma操作,它从寄存器中提取矩阵A和矩阵B,然后在寄存器中生成矩阵C,这个过程分布在一个warp中。其中,线程T0被突出显示,并对其进行了放大,以展示权重矩阵B经过数据类型转换,需要符合布局一致性才能映射到硬件支持的张量核心操作。

2应对计算挑战的软件策略

典型的数据类型转换涉及对32位寄存器的一系列操作,如下图所示。每个矩形块代表一个寄存器,相邻文本则表示相应的操作。整个序列展示了从4个U8转换为2个(2个F16)的过程。该序列大约包含10个操作。

在32位寄存器中,将4个U8转换为2x(2个F16)的NumericArrayConvertor。

实现布局一致性的方法有很多,两种现有解决方案如下:

1.较窄位宽的共享内存加载:在这种方法中,线程发出较窄位宽的内存加载操作,将U8数据从共享内存移动到寄存器。这会导致两个32位寄存器,每个寄存器包含2个F16值(如上所示,对于矩阵B的线程T0)。较窄的共享内存加载直接实现了布局一致性,使其存入寄存器,而无需任何移动(shuffles)操作;然而,这种方法未充分利用共享内存带宽。

2.全局内存中的预处理:另一种策略是,在全局内存中重新排列数据(在内存层次结构中位于共享内存的上一级),允许更宽的共享内存加载。这种方法最大程度地利用了共享内存带宽,并确保数据以一致的布局直接加载到寄存器中。虽然重新排列过程可以在LLM部署之前离线执行,确保不影响应用程序的性能,但它引入了一个额外的、有意义的硬件特定的预处理步骤,需要额外的程序来重新排列数据。

NVIDIA/FasterTransformer采用这种方法有效地解决了布局一致性的挑战。

为进一步优化并减少数据类型转换和布局一致性的计算开销,我们分别实现了FastNumericArrayConvertor和FragmentShuffler。

FastNumericArrayConvertor在32位寄存器中直接处理4xU8,而无需拆解单个1xU8值。此外,它使用的算术操作成本较低,减少了指令数量,提高了转换速度。

U8到F16的转换序列如下图所示。这些运算使用打包的32位寄存器,避免了显式的解包和打包。FastNumericArrayConvertor使用置换字节来重新排列4xU8的字节,将其放入两个寄存器中。此外,FastNumericArrayConvertor不使用开销较大的整数到浮点数转换指令,并采用矢量化操作,在两个32位寄存器中获取包含2x(2xF16)值的打包结果。相对于上述方法,U8到F16的FastNumericArrayConvertor大约使用了六个操作,相对上文提到的方式,其性能有约1.6倍的提升。

FastNumericArrayConvertor利用permute字节和packed计算,减少了数据类型转换中的指令数量。

FragmentShuffler通过对数据进行重新排列,可以使用更宽的位宽加载操作,实现了布局一致性,增加了共享内存带宽利用率,并减少了总操作数。

我们在NVIDIAA100SXM芯片上测量了该方法的八种混合输入变体的性能(如下图中的蓝色和红色所示;根据矩阵A和B的数据类型不同而变化)以及两种混合精度数据类型(绿色显示)的性能。性能结果以FLOPS(数值越高表示性能越好))显示。

值得注意的是,相对于最后两个矩阵乘法,前八个需要额外的操作,因为混合精度变体直接针对硬件加速的张量核心操作,无需数据类型转换和布局一致性。即便如此,在混合输入矩阵乘法性能上,我们的方法仅略低于或与混合精度相当。

在NVIDIAA10040GBSMX4芯片上,针对一个计算受限的矩阵问题,测试混合输入矩阵乘法的性能,其矩阵大小为m=3456,n=4096,k=2048。

试用图片/视频生成加速引擎OneDiff:github.com/siliconflow/onediff

THE END
1.高标清混合矩阵单卡单路4K无缝混插矩阵【讯维】? 奥运会、亚运会、世博会视音处理设备提供商,专业研发生产高清混合矩阵、中控系统、LED视频处理器、信号传输等设备。热线:400-6269-808https://www.xunwei.tm/matrix/mixed.html
2.27统计计算中的矩阵计算统计计算有许多编程语言有成熟的矩阵计算软件包, 比如FORTRAN和C语言的LAPACK程序包(E. and others 1999)、IMSL(Inc. 1985)程序包。 在常用统计软件系统一般内建了高等矩阵计算功能, 比如R软件(见A)、Julia(见B)、Python的scipy模块、SAS软件中的IML模块、MATLAB软件,等等。 我们可能不需要再去自己编写矩阵乘法、解线性方https://www.math.pku.edu.cn/teachers/lidf/docs/statcomp/html/_statcompbook/matrix-intro.html
3.数字矩阵数字矩阵批发促销价格产地货源无缝拼接矩阵切换器12进16出 网络数字高清混合监控视频服务主机 深圳市互联天下智能设备有限公司6年 月均发货速度:暂无记录 广东 深圳市 ¥2000.00成交1个 HDMI矩阵切换器一体机数字高清视频矩阵服务器4进4/8/16出 类型数字矩阵 深圳市安泰宏业科技有限公司5年 https://www.1688.com/chanpin/-CAFDD7D6BED8D5F3.html
4.混淆矩阵混淆矩阵 数据可以是连续数据、分类数据或有序数据(有序分类)。 混淆矩阵是评估分类模型执行情况的一种方法。 若要了解混淆矩阵的工作原理,首先应熟悉有关连续数据的知识。 熟悉之后,我们就会发现,混淆矩阵为何就只是我们已知的直方图的延伸。 连续数据分布https://docs.microsoft.com/zh-cn/training/modules/machine-learning-confusion-matrix/2-confusion-matrices
5.混合矩阵视频矩阵混合矩阵力弘HLEEHAM矩阵切换器HDMI矩阵DVI矩阵大屏拼接控制器网络中控 力弘(HLEEHAM)品牌厂家主要生产智慧互动教室终端、录播主机、教学触控终端、多媒体网络中控、HDMI/VGA/DVI混合矩阵切换器、网络高清数字矩阵、视频矩阵、音视频管理中心主机、大屏拼接处理器、无缝拼接矩阵等。 https://www.80wzbk.com/siteinfo/5102.html
6.混合矩阵产品参数:带宽 ( 速率 ) 12.80Gbps通道间隔离度 >65dBzui大传播延时 5ns(±1ns)切换速度 ≤ 100ns支持信号格式输 入 CVBS、YPBPR、VGA、DVI、DVI PLUS、DVI HDCP、3G-SDI、HDMI、Fiber、HDBaseT输 出 CVBS、YPBPR、VGA、DVI、3G-SDI、HDMI、Fiber、HDBaseT控制类型R控制方式https://www.qpeit.com/product/40-cn.html
7.混合矩阵SCP7系列大容量混合矩阵 SCP9平台 SCP9无缝矩阵应用:会议室音频及视频切换 SCP9无缝矩阵应用:大型拼接系统 SDI矩阵在安防监控系统中的应用 中帝威SCP9016(DVI 16X16无缝矩阵) 中帝威SCP9矩阵、光端机在互动直播项目应用案例 中帝威SCP9视频综合管理平台无缝切换混合矩阵应用 http://devicewell.com/index.php/zh/component/tags/tag/18-mixed-matrix
8.混合矩阵高清混合矩阵VMM系列 1 热点新闻 NEWS CENTER LED会议智慧屏 XD-216/S 智能超薄圆轴式升降显示器XI-8030-17.3 LOCUSFS两分频舞台返送全频音箱LDA-15M LOCUSFS有线触控会议系统 HT170 希映XhiYung 便携幕 联系方式 CONTACT US 电话:15901160753 邮箱:3406098991@qq.com http://huaeps.com/zh/productlist.aspx?classid=01010801
9.混合矩阵切换矩阵系列 > 混合矩阵混合无缝矩阵 混合无缝矩阵 可选多种接口插卡式结构,可选主备冗余电源。 查看详情>> 总数:1条 当前页数:1/1首页 上一页 1 下一页 尾页网站首页 | 关于我们 | 人才招聘 | 网站地图 | 订阅RSS Copyright 2007 北京纵横天成科技有限公司 版权所有 All Rights Reserved 公司地址:http://www.zhtckj.com/Product/483592/972360/
10.混合矩阵混合矩阵:多屏处理器又称图像处理器,多屏拼接器等,主要功能是将一个完整的图像信号划分成多个信号,分配给多个显示单元,同时组成一个大的显示屏幕来显示动态画面。https://www.njlofty.com/products/hhjz.html
11.混合矩阵北京广电音视科技DAVSE EMX16 混合插卡矩阵 产品特性: ●模块化设计,支持HDMI、DVI、VGA、SDI、HDBT、4Kx2K信号卡(HDMI/HDBT 远传/光纤OPTICAL)中的任意输入/输出信号卡,并可随意搭配,提高系统灵活性。 ●控制方式灵活,具有按键操作,RS232控制功能和红外控制功能,还可根据用户需求,定制网络控制端口,方便客户与各种控制设备配合使用https://www.brtv.com.cn/DAVSE/hunhejz/1214.html
12.混合矩阵长沙秦湘智能科技有限公司混合矩阵 产品描述: 对输入的各组(CVBS复合视频和S-Video超级视频)经切换后,转换成计算机视频信号,并可以设置三种分辨率:SVGA 800×600 @60Hz,XVA 1024×768 @60Hz, SXGA 1280×1024 @60Hz; 能适应各种制式(包括NTST、PAL、SECAM)的CVBS(复合视频)和S-VIDEO的信号源;http://www.csqxzn.com/Home/Detailed/72/1
13.混合矩阵用户手册.PDF混合矩阵用户手册.PDF,User s manual 用户手册 高清混合矩阵切换器 Programmable DVI/HDMI Matrix System Professional Matrix Series Rev.1.0 注意 在使用本设备前请详细阅读本说明书 《高清混合矩阵切换系统用户手册》以HDMI1616、混合矩阵3232为例说明,可 作为其它型号https://max.book118.com/html/2017/1111/139689029.shtm
14.汉光36进36出高清混合混插矩阵新闻动态支持TCP/IP网络或者RS232端口进行控制。将混合矩阵接入现有网络的交换机,用户通过网络工作站可对多台矩阵实现独立管理和协同管理,还可通过串口进行级联控制。混合矩阵开放控制协议,支持第三方设备对其进行控制。支持通过专用键盘进行控制,完成信号切换上屏、重点信号放大等常规操作。(网络和IPAD直接控制为选配)http://www.idfhg.com/show.asp?id=563
15.M5超高清无缝混合切换矩阵通过视频演示 快速了解M5无缝混合矩阵的操作与介绍 your browser does not support the video tag 信号切换演示 暂无视频 your browser does not support the video tag 模拟滚动横幅 暂无视频 your browser does not support the video tag 高清回显演示 暂无视频 https://www.vissonic.cn/products/qhjz/
16.MDX系列高清混合信号矩阵矩阵新闻高清混合矩阵是矩阵的一个分支,输出信号全为高清信号,输入信号可以为数模,之所以为混合是因为一台矩阵同时可接受多种信号接口和格式.混合矩阵是一款高性能的高清视频信号交换设备,支持多路信号输入,多路信号输出。该矩阵用于多个高清数字信号输入、输出交换,任何一路信号的输出可以自由选择任何一路信号源而不会干扰其它的http://www.audio160.com/news/2012/4/2012_29_16887.htm
17.会议室中的混合矩阵主要有哪些作用呢?公司新闻在召开会议、进行演示时常常要及时地切换播放内容资料,这就涉及到多个电脑信号或音/视频信号的切换问题。为提高效率,保证会议的正常举行及保护好设备减少工作人员的工作量系统需要配置相应的混合矩阵切换器和HDMI矩阵切换器。混合矩阵切换器和音/视频切换器在系统中,负责将不同的电脑信号和音视频信号按用户的意愿进行调控https://www.gson-audio.com/news/444.html
18.拼接屏hdmi混合插卡矩阵切换器会议音视频信号展示设备24小时服务热线:18613182080,专业生产销售混合矩阵,hdmi矩阵,矩阵切换器,vga矩阵,音视频矩阵切换器。专业矩阵厂家,其矩阵产品广泛应用于政府及企事业单位、酒店、展厅、多功能会议大屏工程。需要混合矩阵,hdmi矩阵,矩阵切换器,vga矩阵,音视频矩阵切换器请来电咨https://www.mcznst.com/
19.矩阵分解1.3 非对称SVD 1.4 混合矩阵分解 2参考文献 1 技术编辑 矩阵分解背后的思想是在较低维度的隐空间中表示用户和物品。自从Funk在2006年的第一次工作以来,业界已经为推荐系统提出了许多矩阵分解方法。下面列出了一些最常用和最简单的方法。 1.1 Funk SVD 西蒙·芬克(Simon Funk)在其博客帖子 [2] 中提出的原始算法https://wuli.wiki/assets/sogou/726.%E7%9F%A9%E9%98%B5%E5%88%86%E8%A7%A3%20-%20%E6%90%9C%E7%8B%97%E7%A7%91%E5%AD%A6%E7%99%BE%E7%A7%91.html
20.无缝矩阵无缝混合插卡矩阵多格式输入输出麦森特高清无缝混合插卡式矩阵切换器,无缝混合插卡矩阵多格式输入-输出;HDMI输入输出板卡,VGA接口,DVI接口,DP接口,SDI输入输出板卡,CVBS接口,hdbaset接口,video输入输出板卡,多种控制方式,多种板块可选,任意拼接方式.http://www.chinajifang.cn/hdmiwu.html
21.青象信息视频处理设备厂家视频矩阵HDMI矩阵拼接处理器混合C8S系列混合无缝矩阵 一卡两路设计 无缝切换 丰富的接口配置 4K超高清输入输出 音视频同步切换 电源冗余备份 查看详情 CH-6000系列网络解码矩阵 查看详情 为什么选择青象? 专注 团队核心成员12年视频处理行业从业经验;青象8年只做视频处理领域产品。 齐全 http://www.cyaninfo.com/
22.矩阵类型—Wolfram语言参考资料在Wolfram 语言中,矩阵可以由各种不同类型的对象构建. 它们可以包含机器精度的实数和复数浮点数,任意精度的实数和复数浮点数,整数,有理数和一般的符号值. 这一教程考察的是 Wolfram 语言所支持的各种不同类型的矩阵. 对 Wolfram 语言所支持的不同数值类型进行概述将有https://reference.wolfram.com/language/tutorial/LinearAlgebraMatrixTypes.html.zh