用于软件定义芯片的算子处理方法、装置、设备及介质

文档序号:34932776发布日期:2023-07-28 08:17阅读:26来源:国知局
用于软件定义芯片的算子处理方法、装置、设备及介质与流程

本发明涉及计算机,尤其涉及一种用于软件定义芯片的算子处理方法、装置、电子设备及存储介质。


背景技术:

1、随着现代社会向数字化、自动化、智能化的方向转型发展,人们对计算服务的需求与日俱增。效率、灵活性和易用性已成为新硬件架构设计中最关键的三个评价指标。软件定义芯片是一种芯片架构设计的新范式,达成软件直接定义硬件运行时功能和规则的目的,使硬件随着软件变化而进行动态、实时的功能重构,以此敏捷且高效的实现多领域应用。

2、因此,如何实现用纯软件思维就能对软件定义芯片进行高效编程,以降低使用门槛、拓展使用范围、加快应用的迭代与部署速度,即提高软件定义芯片的易用性是一个艰巨的挑战且是一个亟待解决的问题。


技术实现思路

1、本发明的主要目的在于提供一种用于软件定义芯片的算子处理方法、装置、电子设备及存储介质。

2、为实现上述目的,本发明实施例第一方面提供一种用于软件定义芯片的算子处理方法,包括:

3、获取待处理逻辑表达式对应的原始数据流图、软件定义芯片支持的基本算子模板库和聚合算子模板库,所述基本算子模板库包括至少一个基本算子对应的数据流图,所述聚合算子模板库包括至少一个聚合算子对应的数据流图,所述聚合算子由至少一个所述基本算子聚合而成;

4、使用所述基本算子模板库对所述原始数据流图进行第一图匹配操作,生成中间数据流图,所述中间数据流图的逻辑算子为所述基本算子;

5、使用所述聚合算子模板库对所述中间数据流图进行第二图匹配操作,生成目标数据流图,所述目标数据流图的逻辑算子为所述聚合算子。

6、在本发明一实施例中,所述使用所述基本算子模板库对所述原始数据流图进行第一图匹配操作,生成中间数据流图包括:

7、遍历所述原始数据流图中的每一节点;

8、针对所述每一节点,从所述基本算子模板库中依次取出所述基本算子对应的数据流图与所述原始数据流图进行图匹配操作,直至所述图匹配操作成功或取出所有所述基本算子对应的数据流图,生成所述中间数据流图。

9、在本发明一实施例中,针对每一所述基本算子对应的数据流图,所述方法还包括:

10、获取所述基本算子对应的数据流图的输入节点集合;

11、遍历所述输入节点集合中的节点与所述原始数据流图中的节点配对为起始节点而进行所述图匹配操作。

12、在本发明一实施例中,所述从所述基本算子模板库中依次取出所述基本算子对应的数据流图与所述原始数据流图进行所述图匹配操作包括:

13、从所述基本算子模板库中按随机次序取出每一所述基本算子对应的数据流图;或者,

14、从所述基本算子模板库中按预先设定的图匹配优先级序列依次取出每一所述基本算子对应的数据流图。

15、在本发明一实施例中,所述图匹配优先级序列中优先级高的基本算子对应的数据流图中的逻辑算子的数量大于优先级低的基本算子对应的数据流图中的逻辑算子的数量。

16、在本发明一实施例中,所述使用所述聚合算子模板库对所述中间数据流图进行第二图匹配操作,生成目标数据流图包括:

17、遍历所述中间数据流图中的每一节点;

18、针对所述每一节点,从所述聚合算子模板库中依次取出所述聚合算子对应的数据流图与所述中间数据流图进行图匹配操作,直至取出所有所述聚合算子对应的数据流图,并记录所述图匹配操作成功情况下取出的聚合算子集合;

19、根据所述聚合算子集合,生成所述目标数据流图。

20、在本发明一实施例中,所述根据所述聚合算子集合,生成所述目标数据流图包括:

21、利用整数线性规划,从所述聚合算子集合中确定目标聚合算子;

22、基于所述目标聚合算种子,生成所述目标数据流图。

23、本发明实施例第二方面提供一种用于软件定义芯片的算子处理装置,包括:

24、获取模块,用于获取待处理逻辑表达式对应的原始数据流图、软件定义芯片支持的基本算子模板库和聚合算子模板库,所述基本算子模板库包括至少一个基本算子对应的数据流图,所述聚合算子模板库包括至少一个聚合算子对应的数据流图,所述聚合算子由至少一个所述基本算子聚合而成。

25、第一图匹配模块,用于使用所述基本算子模板库对所述原始数据流图进行第一图匹配操作,生成中间数据流图,所述中间数据流图的逻辑算子为所述基本算子。

26、第二图匹配模块,用于使用所述聚合算子模板库对所述中间数据流图进行第二图匹配操作,生成目标数据流图,所述目标数据流图的逻辑算子为所述聚合算子。

27、在本发明一实施例中,所述第一图匹配模块包括:

28、第一遍历模块,用于遍历所述原始数据流图中的每一节点;

29、第一取出模块,用于针对所述每一节点,从所述基本算子模板库中依次取出所述基本算子对应的数据流图与所述原始数据流图进行图匹配操作,直至所述图匹配操作成功或取出所有所述基本算子对应的数据流图,生成所述中间数据流图。

30、在本发明一实施例中,针对每一所述基本算子对应的数据流图,所述装置还包括:

31、节点集合获取模块,用于获取所述基本算子对应的数据流图的输入节点集合;

32、配对模块,用于遍历所述输入节点集合中的节点与所述原始数据流图中的节点配对为起始节点而进行所述图匹配操作。

33、在本发明一实施例中,所述从所述基本算子模板库中依次取出所述基本算子对应的数据流图与所述原始数据流图进行所述图匹配操作包括:

34、从所述基本算子模板库中按随机次序取出每一所述基本算子对应的数据流图;或者,

35、从所述基本算子模板库中按预先设定的图匹配优先级序列依次取出每一所述基本算子对应的数据流图。

36、在本发明一实施例中,所述图匹配优先级序列中优先级高的基本算子对应的数据流图中的逻辑算子的数量大于优先级低的基本算子对应的数据流图中的逻辑算子的数量。

37、在本发明一实施例中,所述第二图匹配模块包括:

38、第二遍历模块,用于遍历所述中间数据流图中的每一节点;

39、第二取出模块,用于针对所述每一节点,从所述聚合算子模板库中依次取出所述聚合算子对应的数据流图与所述中间数据流图进行图匹配操作,直至取出所有所述聚合算子对应的数据流图,并记录所述图匹配操作成功情况下取出的聚合算子集合。

40、生成模块,用于根据所述聚合算子集合,生成所述目标数据流图。

41、在本发明一实施例中,所述生成模块包括:

42、确定子模块,用于利用整数线性规划,从所述聚合算子集合中确定目标聚合算子;

43、生成子模块,用于基于所述目标聚合算种子,生成所述目标数据流图。

44、本发明实施例第三方面提供了一种电子设备,包括:

45、存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现本发明实施例第一方面提供的用于粗粒度可重构架构的映射方法。

46、本发明实施例第四方面提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例第一方面提供的用于粗粒度可重构架构的映射方法。

47、根据本发明实施例,本发明提供了一种用于软件定义芯片的算子处理方法、装置、电子设备及存储介质,该方法包括:获取待处理逻辑表达式对应的原始数据流图、软件定义芯片支持的基本算子模板库和聚合算子模板库,该基本算子模板库包括至少一个基本算子对应的数据流图,该聚合算子模板库包括至少一个聚合算子对应的数据流图,该聚合算子由至少一个该基本算子聚合而成,使用该基本算子模板库对该原始数据流图进行第一图匹配操作,生成中间数据流图,该中间数据流图的逻辑算子为该基本算子,使用该聚合算子模板库对该中间数据流图进行第二图匹配操作,生成目标数据流图,该目标数据流图的逻辑算子为该聚合算子。本发明以通用编译器针对高级语言程序编译生成的原始数据流图为输入,输出为软件定义芯片支持的逻辑算子构成的目标数据流图,目标数据流图可被高效映射到软件定义芯片上,显著提高软件定义芯片的易用性和计算效率。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1