人工智能芯片以及用于人工智能芯片的指令执行方法技术

技术编号:23399700 阅读:31 留言:0更新日期:2020-02-22 12:00
本申请实施例公开了人工智能芯片以及用于人工智能芯片的指令执行方法。该人工智能芯片的一具体实施方式包括:指令存储器、数据存储器、至少一个通用执行部件和至少一个专用执行部件;指令存储器被配置成:接收包括至少一个代码块的内核代码;通用执行部件被配置成:接收代码块,锁定与所接收的代码块相关联的专用执行部件,以及将所接收的代码块中的指令发送到所锁定的专用执行部件;专用执行部件被配置成:执行所接收的指令,以及将执行结果存储在数据存储器中;数据存储器被配置成存储专用执行部件发送的执行结果。该实施方式避免在内核代码执行期间与CPU频繁通信,并且避免频繁加锁/解锁专用执行部件,提高了人工智能芯片的性能。

AI chip and instruction execution method for AI chip

【技术实现步骤摘要】
人工智能芯片以及用于人工智能芯片的指令执行方法
本申请实施例涉及计算机
,具体涉及人工智能芯片以及用于人工智能芯片的指令执行方法。
技术介绍
随着人工智能技术的快速发展,神经网络模型的规模也越来越大、训练数据也越来越多,从而使得利用专用的神经网络加速器来进行神经网络的训练与预测计算成为主流趋势。并且因此开发出了各种神经网络加速器,诸如,GPU(GraphicsProcessingUnit,图形处理器)、FPGA(Field-ProgrammableGateArray,现场可编程门阵列)、ASIC(ApplicationSpecificIntegratedCircuits,专用集成电路)等神经网络加速器。这些神经网络加速器可以针对神经网络中典型的、高计算密集型的计算任务(例如矩阵计算(或矩阵计算中涉及到的乘累加)、激活运算、向量运算等)进行特殊的优化。一般而言,神经网络加速器可以内置若干不同的执行单元,每个执行单元可以执行不同的计算任务,并且由主机的CPU(CentralProcessingUnit,中央处理单元)负责调度执行。现有技术中,可以由GPU负责神经网络模型中计算密集型的计算任务,而由CPU负责控制GPU的运行。作为示例,CPU负责解析用户定义的静态计算图描述的深度学习模型,获得运算任务序列,将一个运算任务发送到GPU,然后等待GPU执行完运算任务,再将下一个运算任务发送GPU,……,以此类推。
技术实现思路
本申请实施例提出了人工智能芯片以及用于人工智能芯片的指令执行方法。第一方面,本申请实施例提供了一种人工智能芯片,该人工智能芯片包括:指令存储器、数据存储器、至少一个通用执行部件和至少一个专用执行部件;指令存储器被配置成:接收中央处理单元发送的内核代码,内核代码包括至少一个代码块,至少一个代码块中的代码块与通用执行部件和专用执行部件相关联;通用执行部件被配置成:接收代码块,锁定与所接收的代码块相关联的专用执行部件,以及将所接收的代码块中的指令发送到所锁定的专用执行部件;专用执行部件被配置成:接收通用执行部件发送的指令,执行所接收的指令,以及将执行结果存储在数据存储器中;数据存储器被配置成存储专用执行部件发送的执行结果。在一些实施例中,至少一个代码块中的代码块包括第一指令和第二指令集合;以及通用执行部件具体被配置成:响应于接收到代码块,执行第一指令,以锁定与所接收的代码块相关联的专用执行部件;将第二指令集合中的第二指令依次发送到所锁定的专用执行部件。在一些实施例中,至少一个代码块中的代码块包括第一指令和第二指令集合;以及通用执行部件具体被配置成:响应于接收到代码块,执行第一指令,以锁定与所接收的代码块相关联的至少一个专用执行部件;对于第二指令集合中的第二指令,从所锁定的专用执行部件中确定执行该第二指令的专用执行部件,将该第二指令发送到所确定的专用执行部件。在一些实施例中,人工智能芯片还包括存储有至少一个局部变量的值的局部控制存储器,局部控制存储器被配置成:接收通用执行部件发送的局部变量更新请求,局部变量更新请求包括预定局部变量的目标值;将预定局部变量的值更新为目标值。在一些实施例中,局部控制存储器还被配置成向至少一个通用执行部件发送预定局部变量更新的通知;以及等待预定局部变量更新的通用执行部件还被配置成响应于接收到通知,继续执行所接收的代码块中的指令。在一些实施例中,通用执行部件还被配置成:以轮询方式检测目标局部变量的值是否更新;响应于检测到目标局部变量的值更新,继续执行所接收的代码块中的指令。在一些实施例中,人工智能芯片还包括至少一个计算集群,至少一个计算集群中的计算集群包括数据存储器、至少一个通用执行部件和至少一个专用执行部件。在一些实施例中,人工智能芯片还包括全局控制存储器,计算集群还包括局部控制存储器,全局控制存储器存储有至少一个全局变量的值,局部控制存储器存储有至少一个局部变量的值;以及全局控制存储器被配置成:接收计算集群发送的全局变量更新请求,全局变量更新请求包括预定全局变量的目标值;将预定全局变量的值更新为目标值。在一些实施例中,全局控制存储器还被配置成向至少一个局部控制存储器发送预定全局变量更新的通知;以及等待预定全局变量更新的局部控制存储器还被配置成响应于接收到通知,更新与预定全局变量关联的局部变量的值。在一些实施例中,局部控制存储器还被配置成:以轮询方式检测目标全局变量的值是否更新;响应于检测到目标全局变量的值更新,更新与预定全局变量关联的局部变量的值。在一些实施例中,在内核代码被执行期间,被通用执行部件锁定的专用执行部件不被解锁。在一些实施例中,通用执行部件还被配置成:在执行第一指令之后,循环执行第二指令集合。在一些实施例中,内核代码由中央处理单元对输入的数据流图进行解析获得,数据流图通过对神经网络模型的静态图进行映射获得。第二方面,本申请实施例提供了一种用于人工智能芯片的指令执行方法,人工智能芯片包括指令存储器、数据存储器、至少一个通用执行部件和至少一个专用执行部件,指令存储器与中央处理单元通信连接,该方法包括:接收来自指令存储器的代码块,代码块是指令存储器从中央处理单元发送的内核代码中获取的,代码块与专用执行部件相关联;锁定与代码块相关联的专用执行部件;将代码块中的指令发送到所锁定的专用执行部件,专用执行部件被配置成执行所接收的指令以及将执行结果存储在数据存储器中。在一些实施例中,代码块包括第一指令和第二指令集合;以及锁定与代码块相关联的专用执行部件,包括:执行第一指令,以锁定与代码块相关联的专用执行部件;将代码块中的指令发送到所锁定的专用执行部件,包括:将第二指令集合中的第二指令依次发送到所锁定的专用执行部件。在一些实施例中,代码块包括第一指令和第二指令集合;以及锁定与代码块相关联的专用执行部件,包括:执行第一指令,以锁定与代码块相关联的至少一个专用执行部件;将代码块中的指令发送到所锁定的专用执行部件,包括:对于第二指令集合中的第二指令,从所锁定的专用执行部件中确定执行该第二指令的专用执行部件,将该第二指令发送到所确定的专用执行部件。在一些实施例中,人工智能芯片还包括存储有至少一个局部变量的值的局部控制存储器,局部控制存储器被配置成:接收通用执行部件发送的局部变量更新请求,局部变量更新请求包括预定局部变量的目标值;将预定局部变量的值更新为目标值。在一些实施例中,人工智能芯片还包括存储有至少一个局部变量的值的局部控制存储器;以及该方法还包括:响应于接收到目标局部变量更新的通知,继续执行代码块中的指令。在一些实施例中,人工智能芯片还包括存储有至少一个局部变量的值的局部控制存储器;以及该方法还包括:以轮询方式检测目标局部变量的值是否更新;响应于检测到目标局部变量的值更新,继续执行代码块中的指令。在一些实施例中,人工智能芯片还包括至少一个计算集群,至少一个计算集群中的计算集群包括数据存储器、至少一个通用执行部件和本文档来自技高网...

【技术保护点】
1.一种人工智能芯片,包括指令存储器、数据存储器、至少一个通用执行部件和至少一个专用执行部件;/n指令存储器被配置成:接收中央处理单元发送的内核代码,所述内核代码包括至少一个代码块,所述至少一个代码块中的代码块与通用执行部件和专用执行部件相关联;/n通用执行部件被配置成:接收代码块,锁定与所接收的代码块相关联的专用执行部件,以及将所接收的代码块中的指令发送到所锁定的专用执行部件;/n专用执行部件被配置成:接收通用执行部件发送的指令,执行所接收的指令,以及将执行结果存储在数据存储器中;/n数据存储器被配置成存储专用执行部件发送的执行结果。/n

【技术特征摘要】
1.一种人工智能芯片,包括指令存储器、数据存储器、至少一个通用执行部件和至少一个专用执行部件;
指令存储器被配置成:接收中央处理单元发送的内核代码,所述内核代码包括至少一个代码块,所述至少一个代码块中的代码块与通用执行部件和专用执行部件相关联;
通用执行部件被配置成:接收代码块,锁定与所接收的代码块相关联的专用执行部件,以及将所接收的代码块中的指令发送到所锁定的专用执行部件;
专用执行部件被配置成:接收通用执行部件发送的指令,执行所接收的指令,以及将执行结果存储在数据存储器中;
数据存储器被配置成存储专用执行部件发送的执行结果。


2.根据权利要求1所述的人工智能芯片,其中,所述至少一个代码块中的代码块包括第一指令和第二指令集合;以及
通用执行部件具体被配置成:
响应于接收到代码块,执行第一指令,以锁定与所接收的代码块相关联的专用执行部件;
将第二指令集合中的第二指令依次发送到所锁定的专用执行部件。


3.根据权利要求1所述的人工智能芯片,其中,所述至少一个代码块中的代码块包括第一指令和第二指令集合;以及
通用执行部件具体被配置成:
响应于接收到代码块,执行第一指令,以锁定与所接收的代码块相关联的至少一个专用执行部件;
对于第二指令集合中的第二指令,从所锁定的专用执行部件中确定执行该第二指令的专用执行部件,将该第二指令发送到所确定的专用执行部件。


4.根据权利要求1所述的人工智能芯片,其中,所述人工智能芯片还包括存储有至少一个局部变量的值的局部控制存储器,局部控制存储器被配置成:
接收通用执行部件发送的局部变量更新请求,所述局部变量更新请求包括预定局部变量的目标值;
将所述预定局部变量的值更新为所述目标值。


5.根据权利要求4所述的人工智能芯片,其中,局部控制存储器还被配置成向所述至少一个通用执行部件发送所述预定局部变量更新的通知;以及
等待所述预定局部变量更新的通用执行部件还被配置成响应于接收到所述通知,继续执行所接收的代码块中的指令。


6.根据权利要求4所述的人工智能芯片,其中,通用执行部件还被配置成:
以轮询方式检测目标局部变量的值是否更新;
响应于检测到所述目标局部变量的值更新,继续执行所接收的代码块中的指令。


7.根据权利要求1所述的人工智能芯片,其中,所述人工智能芯片还包括至少一个计算集群,所述至少一个计算集群中的计算集群包括数据存储器、至少一个通用执行部件和至少一个专用执行部件。


8.根据权利要求7所述的人工智能芯片,其中,所述人工智能芯片还包括全局控制存储器,计算集群还包括局部控制存储器,所述全局控制存储器存储有至少一个全局变量的值,局部控制存储器存储有至少一个局部变量的值;以及
所述全局控制存储器被配置成:
接收计算集群发送的全局变量更新请求,所述全局变量更新请求包括预定全局变量的目标值;
将所述预定全局变量的值更新为所述目标值。


9.根据权利要求8所述的人工智能芯片,其中,所述全局控制存储器还被配置成向所述至...

【专利技术属性】
技术研发人员:徐宁仪黄龑韩金宸吴鹏施佳鑫
申请(专利权)人:北京百度网讯科技有限公司
类型:发明
国别省市:北京;11

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

1