生成基于芯片的计算功能的方法、装置、设备和存储介质制造方法及图纸

技术编号:26890347 阅读:18 留言:0更新日期:2020-12-29 16:06
根据本公开的实施例,提供了一种用于生成基于芯片的计算功能的方法、装置、设备和存储介质。该方法包括获取与芯片支持的计算功能相关联的输入参数值;基于输入参数值,确定与计算功能对应的至少一个候选计算功能模板,候选计算功能模板具有与候选计算功能模板的执行性能相关联的可配置参数,可配置参数具有至少一个候选取值;以及根据输入参数值以及候选计算功能模板的可配置参数的候选取值,确定目标计算功能模板以及目标计算功能模板的可配置参数的目标取值,以实现基于芯片的所述计算功能。该方法能够使得芯片的设计可以动态地适应不同的应用场景/运算规模,并且实现可配置参数动态配置,大大简化了人工实现计算功能模板的难度,提高了芯片设计尤其是芯片软件开发的效率。

【技术实现步骤摘要】
生成基于芯片的计算功能的方法、装置、设备和存储介质
本公开的实施例主要涉及芯片领域,并且更具体地,涉及用于生成基于芯片的计算功能的方法、装置、设备和计算机可读存储介质。
技术介绍
近年来,以深度学习技术为代表的人工智能(ArtificialIntelligence,AI)已经被广泛地应用于各个领域(诸如,语音处理、图像处理、自然语言处理、视频处理、自动控制,等等),并对人们的生活方式产生了深远的影响。随着人工智能技术的进一步发展,人们对于人工智能的水平的期待越来越高。人工智能的水平主要依赖于深度学习的发展,而深度学习技术对计算能力有非常高的要求。由于性能、成本和功耗等各方面的限制,传统的处理器很难满足深度学习的要求。因此,如何设计软件和硬件深度结合的高性能AI芯片,例如,图形处理器(GPU)、专用集成电路(ASIC)等,以满足深度学习技术的要求,是当前所需要解决的一个关键的问题。
技术实现思路
根据本公开的示例实施例,提供了一种用于生成基于芯片的计算功能的方案。在本公开的第一方面中,提供了一种用于生成基于芯片的计算功能的方法。该方法包括获取与芯片支持的计算功能相关联的输入参数值;基于输入参数值,确定与计算功能对应的至少一个候选计算功能模板,候选计算功能模板具有与候选计算功能模板的执行性能相关联的可配置参数,可配置参数具有至少一个候选取值;以及根据输入参数值以及候选计算功能模板的可配置参数的候选取值,确定目标计算功能模板以及目标计算功能模板的可配置参数的目标取值,以实现基于芯片的所述计算功能。>在本公开的第一方面中,提供了一种用于生成基于芯片的计算功能的装置。该方法包括输入参数值获取模块,被配置为获取与芯片支持的计算功能相关联的输入参数值;候选计算功能模板确定模块,被配置为基于输入参数值,确定与计算功能对应的至少一个候选计算功能模板,候选计算功能模板具有与候选计算功能模板的执行性能相关联的可配置参数,可配置参数具有至少一个候选取值;目标计算功能模板确定模块,被配置为根据输入参数值以及候选计算功能模板的可配置参数的候选取值,确定目标计算功能模板以及目标计算功能模板的可配置参数的目标取值,以实现基于芯片的所述计算功能。在本公开的第三方面中,提供了一种电子设备,包括一个或多个处理器;以及存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现根据本公开的第一方面的方法。在本公开的第四方面中,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现根据本公开的第一方面的方法。应当理解,
技术实现思路
部分中所描述的内容并非旨在限定本公开的实施例的关键或重要特征,亦非用于限制本公开的范围。本公开的其它特征将通过以下的描述变得容易理解。附图说明结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标注表示相同或相似的元素,其中:图1示出了根据本公开的多个实施例的用于生成基于芯片的计算功能的方案的示例环境的示意图;图2示出了根据本公开的一些示例实施例的用于生成基于芯片的计算功能的方法的流程图;图3示出了根据本公开的实施例的用于生成基于芯片的计算功能的装置的示意框图;以及图4示出了能够实施本公开的多个实施例的计算设备的框图。具体实施方式下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。在本公开的实施例的描述中,术语“包括”及其类似用语应当理解为开放性包含,即“包括但不限于”。术语“基于”应当理解为“至少部分地基于”。术语“一个实施例”或“该实施例”应当理解为“至少一个实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。如本文中所使用的,术语“芯片”指代通过任何已有的或将来开发的软件或硬件技术实现的可以实现一定功能的载体。在某些应用场景下,其包括但不限于,“晶块”、“晶元”、“裸片”、“集成电路”、“单片器件”、“半导体器件”、“微电子器件”,等等。如本文中所使用的,本文使用的术语“算子”指代芯片中的实现基本运算算法或功能的单元,其可以通过任何已有的或将来开发的软件或硬件技术实现。通过算子可以实现芯片中的各种基本运算,例如,卷积、各种数值运算、各种向量运算、各种矩阵运算、各种字符运算,等等。如本文中所使用的,本文使用的术语“计算功能”指代芯片中实现任意计算/运算/算法的逻辑单元,其可以由单独的算子实现,也可以由多个算子实现,多个算子之间可以通过预定的或动态指定的逻辑关系进行组合。如上所讨论的,提供针对深度学习技术的高性能芯片的是当前所要解决的一个关键问题。传统的深度学习用户,主要使用一些深度学习的框架,例如tensorflow,caffe,mxnet,pytorch,paddlepaddle,等等。将AI芯片应用到深度学习领域,必须要集成到框架中,而其中一个核心的工作就是要实现框架中各种算子(operator),通过算子实现芯片中的基本运算,例如,卷积、各种数值运算、各种向量运算、各种矩阵运算、各种字符运算,等等,同时通过单独的算子或算子的组合芯片的一个或多个计算功能。芯片的各种计算功能的执行性能直接决定了AI芯片的性能。各大AI芯片制造商均基于各自的框架研发了相应的AI芯片,例如nvidiaGPU、googleTPU、百度昆仑芯片,等等,上述AI芯片带有各自的指令集,并有自己的编程框架,例如,CUDA,OPENCL等等,能够用程序设计语言(例如,C/C++、C#、Python,等等)进行编程。虽然可以通过编程的方式实现AI芯片的各个算子或本公开所述计算功能,但是底层芯片框架的可配置参数众多,例如,如何进行分块,如何高效的使用各种存储空间(例如,寄存器、缓冲器、存储器、共享存储器,等等),如何调度程序(例如,调度线程、调度进程,等等)。合理地配置众多参数需要研发人员对底层芯片架构非常熟悉,即使如此,配置出高性能AI芯片所需要的研发周期是非常长的,尤其导致AI芯片软件开发效率非常低。此外,应用场景/运算规模丰富,针对一种具体应用场景/运算规模设计的芯片很难实现在不同的运算规模下下性能都是最优的。专利技术人注意到,一种生成基于芯片的计算功能可能的方案为,由人工实现一些通用的算子库,在算子中实现芯片底层参数的配置。正如之前所分析的,通过这种方案生成基于芯片的计算功能,难度较大且效率低下,并且无法灵活地适应多种应用场景/运算规模。另外一种可能的芯片设计方案为,通过高层次的语言来生成原语,同时通过人工的方式编码实现一些优化的算子模板,这种半自动的生成基于芯片的计算功能方案提高了芯片设计过本文档来自技高网...

【技术保护点】
1.一种用于生成基于芯片的计算功能的方法,包括:/n获取与所述芯片支持的计算功能相关联的输入参数值;/n基于所述输入参数值,确定与所述计算功能对应的至少一个候选计算功能模板,所述候选计算功能模板具有与所述候选计算功能模板的执行性能相关联的可配置参数,所述可配置参数具有至少一个候选取值;以及/n根据所述输入参数值以及所述候选计算功能模板的所述可配置参数的所述候选取值,确定目标计算功能模板以及所述目标计算功能模板的可配置参数的目标取值,以实现基于芯片的所述计算功能。/n

【技术特征摘要】
1.一种用于生成基于芯片的计算功能的方法,包括:
获取与所述芯片支持的计算功能相关联的输入参数值;
基于所述输入参数值,确定与所述计算功能对应的至少一个候选计算功能模板,所述候选计算功能模板具有与所述候选计算功能模板的执行性能相关联的可配置参数,所述可配置参数具有至少一个候选取值;以及
根据所述输入参数值以及所述候选计算功能模板的所述可配置参数的所述候选取值,确定目标计算功能模板以及所述目标计算功能模板的可配置参数的目标取值,以实现基于芯片的所述计算功能。


2.根据权利要求1所述的方法,其中根据所述输入参数值以及所述候选计算功能模板的所述可配置参数的所述候选取值,确定目标计算功能模板以及所述目标计算功能模板的可配置参数的目标取值包括:
采用机器学习的方式,根据所述输入参数值以及所述候选计算功能模板的所述可配置参数的多个不同所述候选取值,确定所述目标计算功能模板以及所述目标计算功能模板的所述可配置参数的所述目标取值。


3.根据权利要求1所述的方法,其中根据所述输入参数值以及所述候选计算功能模板的所述可配置参数的所述候选取值,确定目标计算功能模板以及所述目标计算功能模板的可配置参数的目标取值包括:
估计所述候选计算功能模板在所述候选计算功能模板的所述可配置参数的不同所述候选取值下的执行性能;以及
基于估计的所述执行性能,确定所述目标计算功能模板以及所述目标计算功能模板的所述可配置参数的所述目标取值。


4.根据权利要求3所述的方法,其中基于估计的所述执行性能,确定所述目标计算功能模板以及所述目标计算功能模板的所述可配置参数的所述目标取值包括:
确定所述估计的所述执行性能是否优于执行性能阈值;以及
响应于所述估计的所述执行性能优于执行性能阈值,将与所述估计的所述执行性能对应的所述候选计算功能模板和所述候选计算功能模板的所述可配置参数的所述候选取值确定为所述目标计算功能模板以及所述目标计算功能模板的所述可配置参数的所述目标取值。


5.根据权利要求4所述的方法,其中所述执行性能阈值是用户输入的或芯片设计装置预先配置的。


6.根据权利要求3所述的方法,其中估计所述候选计算功能模板在所述候选计算功能模板的所述可配置参数的不同所述候选取值下的执行性能包括:
将所述输入参数值以及至少一个所述可配置参数的至少一个所述候选取值应用于所述至少一个候选计算功能模板;以及
通过即时编译的方式生成所述至少一个候选计算功能模板的代码并估计所述至少一个候选计算功能模板的所述执行性能。


7.根据权利要求1所述的方法,其中,所述候选计算功能模板还具有与所述输入参数值和/或与所述候选计算功能模板的执行性能相关联的可配置参数相关联的约束条件;
其中确定与所述计算功能对应的至少一个计算功能模板包括:
基于所述输入参数值和所述约束条件确定与所述计算功能对应的所述至少一个候选计算功能模板。


8.根据权利要求1所述的方法,还包括:
存储所述输入参数值与所确定的与所述输入参数值相对应的所述目标计算功能模板以及所述目标计算功能模板对应的所述可配置参数的所述目标取值的对应关系。


9.根据权利要求8所述的方法,还包括:
在基于所述输入参数值,确定与所述计算功能对应的至少一个候选计算功能模板之前,确定在已存储的所述对应关系中,是否存在与所述输入参数值相对应的对应关系;以及
其中确定目标计算功能模板以及所述目标计算功能模板的可配置参数的目标取值包括:
响应于确定存在与所述输入参数值相对应的对应关系,基于所述对应关系确定与所述输入参数值相对应的目标计算功能模板以及所述目标计算功能模板对应的所述可配置参数的所述目标取值。


10.根据权利要求1所述的方法,其中确定目标计算功能模板以及所述目标计算功能模板的可配置参数的目标取值包括:
在预定时段内,确定所述目标计算功能模板以及所述目标计算功能模板的所述可配置参数的所述目标取值。


11.根据权利要求10所述的方法,其中所述预定时段基于以下中的至少一项而被确定:
用户输入的与所述芯片的设计时间相关联的时段;
所述输入参数值;以及
芯片设计装置预先配置的与所述芯片的设计时间相关联的时段。


12.根据权利要求1所述的方法,其中每个所述计算功能对应多个所述候选计算功能模板,并且所述多个候选计算功能模板对应于不同的应用场景,其中所述输入参数值与应用场景相关联。


13.一种用于芯片设计的装置,包括:
输入参数值获取模块,被配置为获取与所述芯片支持的计算功能相关联的输入参数值;
候选计算功能模板确定模块,...

【专利技术属性】
技术研发人员:王勇施佳鑫
申请(专利权)人:北京百度网讯科技有限公司
类型:发明
国别省市:北京;11

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

1