为编译器提供多面体调度器的数据处理装置和方法制造方法及图纸

技术编号:39740172 阅读:12 留言:0更新日期:2023-12-17 23:41
本发明专利技术公开了一种数据处理装置

【技术实现步骤摘要】
【国外来华专利技术】为编译器提供多面体调度器的数据处理装置和方法


[0001]本专利技术涉及数据处理

更具体地,本专利技术涉及一种为编译器实现多面体调度器的数据处理装置和方法


技术介绍

[0002]在大数据的可用性

强大的处理能力和便捷的高级抽象的支持下,深度学习
(Deep Learning

DL)
的发展速度非常快

为了高效地开发和优化
DL
算法,编译器需要支持快速的高级原型设计和高效的低级并行代码生成

在编译器中,调度用于负责各种各样的关键优化动作和决策,即处理可能相互冲突的调度约束,例如,并行性提取
(
即定位并行块和循环,包括外部并行循环和
/
或内部并行循环
)
,置换性提取
(
即定位可以划分成较小块的循环,即“平铺”变换
)、
融合和
/
或分裂
(
即将计算组合在一起或不组合在一起
)、
数据局部性优化
(
即执行重用相互更靠近的相同数据的计算
)
,并且强制执行特定的数据访问模式

根据输入问题和目标架构,一些调度约束通常可能会比其它约束更关键

[0003]十多年前,多面体调度器是为了解决多核
CPU
架构的线性代数和科学计算内核而开发的

随着最近人工智能和机器学习框架的出现,我们面临着越来越多的运算符要在各种目标架构上执行的多种情况
。“一刀切
(one

size

fits

all)”的调度算法无法为每种情况都找到最佳优化

例如,传统的自动调度器可能无法以最佳方式为期望的目标架构优化
DL
运算符,即软件功能或模块

图1示出了一个计算内核,它是现实生活中融合运算符的简化版本,在本文中以它作为运行示例

传统的多面体调度器可以处理图1所示的计算内核,即,将该计算内核进行分析

并行化,并优化到图2所示的最终版本

虽然传统的多面体调度器能够成功提取由“forall”关键字表示的并行循环,但图2所示的最终代码远非最佳,尤其是在
DL
优化方面

这是因为,图2所示的最终代码首先不是一个完全嵌套的循环,其次,由于在最内层循环的每次迭代时内存空间中都存在长跳,访问主张量
D[k][i][j]的效率低下


技术实现思路

[0004]本专利技术的目的是提供一种为编译器实现灵活高效多面体调度器的数据处理装置和方法于

[0005]上述和其它目的通过独立权利要求请求保护的主题来实现

其它实现方式在从属权利要求

说明书和附图中是显而易见的

[0006]根据第一方面,提供了一种数据处理装置

所述数据处理装置包括处理电路,所述处理电路用于实现调度约束注入实体
(
在本文中也称为调度约束注入引擎
)
,所述调度约束注入实体用于根据一个或多个调度约束,适配输入代码
(
即源代码
)
的多面体中间表示,以获取所述输入代码的适配的多面体中间表示

此外,所述处理电路用于实现约束优先多面体调度器,所述约束优先多面体调度器用于根据所述输入代码的所述适配的多面体中间表示,生成所述输入代码的已调度多面体中间表示

所述调度约束注入实体还用于根据所述一个或多个调度约束,调整所述约束优先多面体调度器

因此,有利地提供了一种为编译器
实现灵活和高效多面体调度器的编译器的数据处理装置

[0007]在所述第一方面的一种可能的实现方式中,所述调度约束注入实体还用于根据所述输入代码的所述多面体中间表示,调整所述约束优先多面体调度器

换句话说,所述调度约束注入实体可以用于根据所述一个或多个调度约束和所述输入代码的所述多面体中间表示,调整所述约束优先多面体调度器

[0008]在所述第一方面的另一种可能的实现方式中,所述输入代码的所述多面体中间表示包括限定关于所述输入代码的迭代域信息

数据访问信息和
/
或排序信息的一个或多个仿射集合和
/
或函数

[0009]在所述第一方面的又一种可能的实现方式中,所述处理电路还用于根据所述输入代码的所述已调度多面体中间表示,将所述输入代码处理
(
即编译
)
成可执行输出代码

[0010]在所述第一方面的又一种可能的实现方式中,所述数据处理装置还包括通信接口和
/
或用户接口,所述通信接口和
/
或用户接口用于接收所述一个或多个调度约束,并且将所述一个或多个调度约束提供给所述调度约束注入实体

[0011]在所述第一方面的又一种可能的实现方式中,所述一个或多个调度约束由一个或多个文本文件

二进制文件和
/
或编码文件限定

[0012]在所述第一方面的又一种可能的实现方式中,所述调度约束注入实体包括约束分配器,所述约束分配器用于从所述一个或多个调度约束中的每个调度约束中提取用于限定迭代域信息的域信息部分和用于限定约束的优先调度信息部分

[0013]在所述第一方面的又一种可能的实现方式中,所述调度约束注入实体还包括数据依赖分析单元,所述数据依赖分析单元用于根据所述一个或多个调度约束
(
具体是从所述约束分配器接收到的所述域信息部分
)
,适配所述输入代码的所述多面体中间表示,以获取所述输入代码的所述适配的多面体中间表示

[0014]在所述第一方面的又一种可能的实现方式中,所述数据依赖分析单元还用于在所述输入代码的所述多面体中间表示内定位受数据依赖关系影响的一个或多个迭代对,并且根据所述一个或多个调度约束
(
具体是从所述约束分配器接收到的所述域信息部分
)
,生成所述一个或多个迭代对的一个或多个仿射集合

[0015]在所述第一方面的又一种可能的实现方式中,所述调度约束注入实体还包括有效性约束构建器,所述有效性约束构建器用于根据从所述数据依赖分析单元接收到的所述一个或多个迭代对的所述一个或多个仿射集合,为与所述输入代码的所述已调度多面体中间表示相关联
(
即所述已调度多面体中间表示的一部分或由所述已调度多面体中间表示限本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.
一种数据处理装置
(020)
,其特征在于,所述数据处理装置
(020)
包括处理电路
(021)
,所述处理电路
(021)
用于实现:调度约束注入实体
(011)
,用于根据一个或多个调度约束
(001)
,适配输入代码的多面体中间表示
(000)
,以获取所述输入代码的适配的多面体中间表示;多面体调度器
(012)
,用于根据所述输入代码的所述适配的多面体中间表示,生成所述输入代码的已调度多面体中间表示
(010)
,其中,所述调度约束注入实体
(011)
还用于根据所述一个或多个调度约束
(001)
,调整所述多面体调度器
(012)。2.
根据权利要求1所述的数据处理装置
(020)
,其特征在于,所述调度约束注入实体
(011)
用于根据所述一个或多个调度约束
(001)
和所述输入代码的所述多面体中间表示
(000)
,调整所述多面体调度器
(012)。3.
根据上述权利要求中任一项所述的数据处理装置
(020)
,其特征在于,所述处理电路
(021)
还用于根据所述输入代码的所述已调度多面体中间表示
(010)
,将所述输入代码处理成可执行输出代码
。4.
根据上述权利要求中任一项所述的数据处理装置
(020)
,其特征在于,所述数据处理装置
(020)
还包括通信接口
(022)

/
或用户接口,所述通信接口
(022)

/
或用户接口用于接收所述一个或多个调度约束
(001)
,并且将所述一个或多个调度约束
(001)
提供给所述调度约束注入实体
(011)。5.
根据上述权利要求中任一项所述的数据处理装置
(020)
,其特征在于,所述一个或多个调度约束
(001)
由一个或多个文本文件

二进制文件和
/
或编码文件限定
。6.
根据上述权利要求中任一项所述的数据处理装置
(020)
,其特征在于,所述调度约束注入实体
(011)
包括约束分配器
(002)
,所述约束分配器
(002)
用于从所述一个或多个调度约束
(001)
中的每个调度约束中提取域信息部分和优先调度信息部分
。7.
根据上述权利要求中任一项所述的数据处理装置
(020)
,其特征在于,所述调度约束注入实体
(011)
还包括数据依赖分析单元
(003)
,所述数据依赖分析单元
(003)
用于根据所述一个或多个调度约束
(001)
,适配所述输入代码的所述多面体中间表示
(000)
,以获取所述输入代码的所述适配的多面体中间表示
。8.
根据权利要求7所述的数据处理装置
(020)
,其特征在于,所述数据依赖分析单元
(003)
还用于在所述输入代码的所述多面体中间表示
(000)
内定位受数据依赖关系影响的一个或多个迭代对,并且根据所述一个或多个调度约束
(001)
,生成所述一个或多个迭代对的一个或多个仿射集合
。9.
根据权利要求8所述的数据处理装置
(020)
,其特征在于,所述调度约束注入实体
(011)
还包括有效性约束构建器
(004)
,所述有效性约束构建器
(004)
用于根据所述一个或多个迭代对的所述一个或多个仿射集合,为与所述输入代码的所述已调度多面体中间表示
(010)
相关联的一个或多个调度系数生成一个或多个仿射约束,并且根据所述一个或多个仿射约束,调整所述多面体调度器
(012)。10.
根据权利要求8或9所述的数据处理装置
(020)
,其特征在于,所述调度约束注入实体
(011)
还包括内置优化约束实体
(005)
,所述内置优化约束实体
(005)
用于根据所述一个或多个迭代对的所述一个或多个仿射集合,生成一个或多个成本函数,并且将所述一个或
多个成本函数提供给所述多面体调度器
(012)
,以根据所述一个或多个成本函数调整所述多面体调度...

【专利技术属性】
技术研发人员:塞德里克
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1