融合计算内核编译方法、装置、电子设备及存储介质与流程
本公开涉及人工智能编译,特别是涉及一种融合计算内核编译方法、装置、电子设备及存储介质。
背景技术:
1、人工智能编译器用于将人工智能计算任务转换为目标芯片能够执行的目标代码。人工智能计算任务通常包括控制流、矩阵运算、数据搬运及向量计算等多种类型的操作。编译器将多个操作融合至同一计算内核后,能够得到融合计算内核。
2、相关技术中,同一融合计算内核通常采用全局统一的线程束数量。融合计算内核中的不同计算阶段、不同指令类型及不同执行单元共享同一线程束配置。
3、然而,融合计算内核采用统一线程束配置时,编译器需要将整个融合计算内核的线程束数量设置为1,以满足主控线程部分的单线程束运行要求。此时,工作函数部分也按照单线程束方式运行,工作函数部分的多线程束并行能力受到限制。
技术实现思路
1、本公开实施例提供了一种融合计算内核编译方法、装置、电子设备及存储介质,它能够减少主控线程部分的单线程束运行要求对工作函数部分并行度的限制,释放工作函数部分的多线程束并行能力,减少计算资源闲置。
2、根据本公开的一方面,提供了一种融合计算内核编译方法,所述融合计算内核包括用于执行控制和调度的主控线程部分,以及用于在所述主控线程部分的调度下执行向量计算的工作函数部分,所述方法包括:确定用于所述主控线程部分的第一线程束配置,所述第一线程束配置为单线程束配置;基于编译期线程束数量,确定用于所述工作函数部分的第二线程束配置,所述第二线程束配置为多线程束配置;基于所述第一线程束配置编译所述主控线程部分,得到主控代码;基于所述第二线程束配置编译所述工作函数部分,得到工作代码;生成包括所述主控代码和所述工作代码的编译结果;其中,所述编译结果用于在所述融合计算内核运行时,使所述主控代码按照所述第一线程束配置执行控制和调度,并使所述工作代码在所述主控代码的调度下按照所述第二线程束配置执行向量计算。
3、可选地,所述基于编译期线程束数量,确定用于所述工作函数部分的第二线程束配置,包括:将所述编译期线程束数量写入所述融合计算内核对应的模块级属性;基于所述模块级属性中记录的所述编译期线程束数量,确定所述第二线程束配置对应的线程束数量;其中,所述第一线程束配置独立于所述模块级属性中记录的编译期线程束数量。
4、可选地,所述工作函数部分包括多个工作函数,所述多个工作函数对应于同一所述模块级属性;所述基于所述第二线程束配置编译所述工作函数部分,得到工作代码,包括:使所述多个工作函数分别读取所述模块级属性中记录的同一编译期线程束数量;采用所述编译期线程束数量,分别对所述多个工作函数进行目标代码生成,得到各所述工作函数对应的工作函数代码;基于各所述工作函数对应的工作函数代码,生成所述工作代码。
5、可选地,所述工作函数部分包括面向张量数据的向量处理操作;所述基于所述第二线程束配置编译所述工作函数部分,得到工作代码,包括:获取所述向量处理操作对应的张量编码信息,所述张量编码信息用于表征张量元素在线程和线程束之间的分布;基于所述张量编码信息和所述第二线程束配置对应的线程束数量,确定所述张量元素与多个线程束之间的映射关系;基于所述张量元素与多个线程束之间的映射关系生成向量化访存指令和向量化计算指令;基于所述向量化访存指令和所述向量化计算指令,生成所述向量处理操作对应的目标代码。
6、可选地,所述向量处理操作包括布局转换操作、向量算术操作、向量逻辑操作、规约操作和特殊函数操作中的至少一种。
7、可选地,所述基于所述第一线程束配置编译所述主控线程部分,得到主控代码,包括:按照所述第一线程束配置,对所述主控线程部分中的标量控制流操作、硬件调度操作和工作函数调用操作中的至少一种操作进行编译处理,得到与所述至少一种操作对应的代码;按照所述融合计算内核的控制关系,将与所述至少一种操作对应的代码编入所述主控代码;其中,与所述标量控制流操作对应的标量控制代码、与所述硬件调度操作对应的设备调度代码以及与所述工作函数调用操作对应的工作函数调用代码,均按照单线程束执行语义生成。
8、可选地,在所述至少一种操作包括所述硬件调度操作的情况下,对所述硬件调度操作进行编译处理,包括:将所述硬件调度操作降低为按照所述第一线程束配置执行的设备调度代码;确定所述设备调度代码的调度接口信息,其中,所述调度接口信息包括源操作数地址、目标地址和设备描述信息;其中,所述设备调度代码用于使所述主控代码基于所述调度接口信息调度目标硬件执行单元,所述目标硬件执行单元包括矩阵运算执行单元和数据搬运执行单元中的至少一种。
9、可选地,在所述至少一种操作包括所述工作函数调用操作的情况下,对所述工作函数调用操作进行编译处理,包括:确定所述工作函数调用操作对应的目标工作函数;生成用于调用所述目标工作函数的工作函数调用指令;其中,所述工作函数调用指令用于使按照所述第一线程束配置运行的所述主控代码,调度按照所述第二线程束配置生成的所述目标工作函数对应的工作函数代码。
10、可选地,所述主控代码被配置为由主控执行单元执行,所述主控执行单元用于按照所述第一线程束配置执行标量控制和硬件调度;所述工作代码被配置为由工作执行单元执行,所述工作执行单元支持多个线程束并行执行,并用于按照所述第二线程束配置执行所述向量计算;所述主控执行单元还用于基于所述主控代码调度所述工作执行单元执行所述工作代码。
11、根据本公开的一方面,提供一种融合计算内核编译装置,所述融合计算内核包括用于执行控制和调度的主控线程部分,以及用于在所述主控线程部分的调度下执行向量计算的工作函数部分,所述装置包括:第一线程束配置确定模块,用于确定用于所述主控线程部分的第一线程束配置;所述第一线程束配置为单线程束配置;第二线程束配置确定模块,用于基于编译期线程束数量,确定用于所述工作函数部分的第二线程束配置;所述第二线程束配置为多线程束配置;主控代码编译模块,用于基于所述第一线程束配置,编译所述主控线程部分,得到主控代码;工作代码编译模块,用于基于所述第二线程束配置,编译所述工作函数部分,得到工作代码;编译结果生成模块,用于生成包括所述主控代码和所述工作代码的编译结果;所述编译结果用于:在所述融合计算内核运行时,使所述主控代码按照所述第一线程束配置执行控制和调度,并使所述工作代码在所述主控代码的调度下按照所述第二线程束配置执行向量计算。
12、根据本公开的一方面,提出一种电子设备,所述电子设备包括存储器、处理器、存储在所述存储器上并可在所述处理器上运行的程序以及用于实现所述处理器和所述存储器之间的连接通信的数据总线,所述程序被所述处理器运行时实现如上所述的融合计算内核编译方法。
13、根据本公开的一方面,提出一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器运行,以实现如上所述的融合计算内核编译方法。
14、本公开提出一种融合计算内核编译方法、装置、电子设备及存储介质。融合计算内核包括用于执行控制和调度的主控线程部分,以及用于在主控线程部分的调度下执行向量计算的工作函数部分。主控线程部分采用单线程束配置,工作函数部分采用多线程束配置,两部分分别编译为主控代码和工作代码。运行融合计算内核时,主控代码执行控制和调度,工作代码在主控代码的调度下执行向量计算。由此,能够在保证主控侧稳定调度的同时释放工作函数部分的多线程束并行能力,减少计算资源闲置。
15、进一步地,将编译期线程束数量写入融合计算内核对应的模块级属性,并基于该模块级属性确定第二线程束配置对应的线程束数量;第一线程束配置独立于该模块级属性中记录的编译期线程束数量。由此,主控侧的单线程束配置与工作侧的模块级多线程束配置相互独立,并为工作函数部分提供统一的配置来源。
16、进一步地,在工作函数部分包括多个工作函数的情况下,使多个工作函数分别读取同一模块级属性中记录的编译期线程束数量,并采用该数量分别生成各工作函数对应的工作函数代码。由此,多个工作函数共享同一模块级多线程束配置,避免配置分散或者因逐函数重复设置而产生不一致。
17、进一步地,在工作函数部分包括面向张量数据的向量处理操作的情况下,获取用于表征张量元素在线程和线程束之间分布的张量编码信息,结合第二线程束配置确定张量元素与多个线程束之间的映射关系,并据此生成向量化访存指令和向量化计算指令。向量处理操作可以包括布局转换操作、向量算术操作、向量逻辑操作、规约操作和特殊函数操作中的至少一种,从而使相应操作适配多线程束并行执行。
18、进一步地,按照第一线程束配置对标量控制流操作、硬件调度操作和工作函数调用操作中的至少一种操作进行编译处理,并按照融合计算内核的控制关系将相应代码编入主控代码;其中,标量控制代码、设备调度代码和工作函数调用代码均按照单线程束执行语义生成,从而保证主控代码稳定执行控制和调度。
19、进一步地,在主控线程部分包括硬件调度操作的情况下,将硬件调度操作降低为按照第一线程束配置执行的设备调度代码,并以源操作数地址、目标地址和设备描述信息作为调度接口信息,使主控代码能够据此调度矩阵运算执行单元和数据搬运执行单元中的至少一种,从而将单线程束调度与多线程束向量计算解耦。
20、进一步地,在主控线程部分包括工作函数调用操作的情况下,确定工作函数调用操作对应的目标工作函数,并生成用于调用目标工作函数的工作函数调用指令,使按照第一线程束配置运行的主控代码能够调度按照第二线程束配置生成的目标工作函数代码,从而建立单线程束控制调度与多线程束向量计算之间的执行衔接。
21、进一步地,主控代码被配置为由主控执行单元执行,工作代码被配置为由支持多个线程束并行执行的工作执行单元执行,且主控执行单元基于主控代码调度工作执行单元执行工作代码,从而使差异化线程束配置落实至异构的目标硬件执行单元。
22、本公开的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本公开而了解。本公开的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com