[发明专利]加速器执行的方法和电子设备有效
申请号: | 202210247720.2 | 申请日: | 2022-03-14 |
公开(公告)号: | CN114579929B | 公开(公告)日: | 2023-08-08 |
发明(设计)人: | 杨经纬;葛建明;李甲;桑永奇;谢钢锋;姚飞;仇小钢 | 申请(专利权)人: | 海飞科(南京)信息技术有限公司 |
主分类号: | G06F17/16 | 分类号: | G06F17/16;G06F7/523 |
代理公司: | 北京市金杜律师事务所 11256 | 代理人: | 张宁 |
地址: | 210000 江苏省南京市建*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 加速器 执行 方法 电子设备 | ||
本文描述了一种提供了一种由加速器执行的方法和电子设备。该方法包括:接收针对加速器的第一线程的第一张量乘法指令;第一线程集基于针对第二张量的存储器逻辑地址将第二张量中的第二因数集广播至第二线程集;第二线程集中的第一线程基于所述第一因数寄存器表示将第一因数集和所述第二因数集进行点积运算,以生成第三张量的第一行中的第一点积集。通过将矩阵分解,并且按行分配线程,这样多个线程可以并行处理矩阵张量的多个行,从而加快矩阵乘法的处理效率。此外,由于编程人员在编程时知晓矩阵张量的行列结构以及加速器中的线程状况,因此可以灵活使用线程来并行处理矩阵乘法,从而提高编程的灵活性。
技术领域
本公开的实施例一般地涉及电子领域,更具体而言涉及一种由加速器执行的方法和加速器。
背景技术
诸如图形处理器(GPU)之类的并行高性能多线程多核处理系统处理数据的速度比过去快得多。这些处理系统可以将复杂的计算分解为较小的任务,并且由多核并行处理以增加处理效率并且减少处理时间。
在一些情形下,诸如GPU之类的多核处理器对具有大量相同或相似形式的数据的张量的处理尤为有利。张量数据在计算机领域通常表示一维或多维数组的数据,例如图像数据就是一种常规的二维张量数据,其可以由二维数组表示。再例如,彩色图像是一种三维数组数据,除了包括宽和高的二维像素阵列之外,彩色图像还包括红绿蓝(RGB)通道维度。对诸如二维数组之类的张量进行处理例如可以包括矩阵乘法。基于GPU之类内部加速器的常规矩阵乘法对于程序编程人员通常不可获知,因此编程人员通常不了解硬件执行矩阵乘法的过程,因而也无法针对硬件对矩阵乘法的计算进行优化,这导致了程序的执行效率以及张量处理的效率通常较低。
发明内容
本公开的实施例提供了一种用于由加速器执行的方法和电子设备。
在第一方面,提供了一种由加速器执行的方法。该方法包括:接收针对加速器的第一线程集的第一张量乘法指令,第一张量乘法指令包括针对第一线程集的第一线程指示、针对第一张量的第一因数寄存器表示、针对第二张量的存储器逻辑地址、以及针对第三张量的第一乘积寄存器表示;第一线程集基于针对第二张量的存储器逻辑地址将第二张量中的第二因数集广播至第二线程集,第二线程集不同于第一线程集;第二线程集中的第一线程基于第一因数寄存器表示将第一张量中的第一行中的第一因数集和第二因数集进行点积运算,以生成第三张量的第一行中的第一点积集;以及由第一线程将第一点积集累加到与第一乘积寄存器表示对应的第一组乘积寄存器中。通过将矩阵分解,并且按行分配线程,这样多个线程可以并行处理矩阵张量的多个行,从而加快矩阵乘法的处理速度。此外,由于编程人员在编程时知晓矩阵张量的行列结构以及加速器中的线程状况,因此可以灵活使用线程来并行处理矩阵乘法,从而提高编程的灵活性。
在一种可能的实现方式中,第一因数集包括第一张量的第一行中的至少一部分因数数据。第二因数集包括第二张量中的至少一部分的因数数据。第一点积集包括第三张量的第一行中的至少一部分乘积数据。
在一种可能的实现方式中,每个线程包括第一组寄存器和第二组寄存器,其中第一组寄存器用于存储第一因数矩阵的一行中数据的至少一部分,第二组寄存器用于存储乘积矩阵中的一行的数据。第二因数矩阵的一列中的数据可以存储于片上存储器、一级高速缓存或片外存储器。这样,在矩阵乘法执行过程中,第一线程的执行单元可以仅从第一组寄存器读取第一因数矩阵的一行中的数据一次,并且在后续针对第二因数矩阵各列的点积运算过程中重复使用。此外,第二因数矩阵的一列中的数据可以被并行广播至多个(例如与第一因数矩阵的行相同数目或其一半数目)线程中的执行单元,并且重复使用。以此方式,可以减少数据在不同存储装置之间的传送,从而减少矩阵乘法计算过程中因数据传输引起的时间延迟。
在一种可能的实现方式中,该方法还包括响应于接收到第二因数集,第二线程集中的第二线程基于第一因数寄存器表示将第一张量的第二行中的第三因数集和第二因数集进行点积运算,以生成第三张量的第二行中的第二点积集;以及由第二线程将第二点积集累加到与第一乘积寄存器表示对应的第二组乘积寄存器中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于海飞科(南京)信息技术有限公司,未经海飞科(南京)信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210247720.2/2.html,转载请声明来源钻瓜专利网。