CN109739703A - 调错方法及相关产品 - Google Patents
调错方法及相关产品 Download PDFInfo
- Publication number
- CN109739703A CN109739703A CN201811619245.7A CN201811619245A CN109739703A CN 109739703 A CN109739703 A CN 109739703A CN 201811619245 A CN201811619245 A CN 201811619245A CN 109739703 A CN109739703 A CN 109739703A
- Authority
- CN
- China
- Prior art keywords
- layer
- fusion
- neural net
- operation result
- section
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Image Analysis (AREA)
Abstract
本申请实施例公开了一种调错方法及相关产品,用于对神经网络运算过程进行优化和调错。其中调错装置通过对神经网络运算过程进行优化,提升了神经网络运算的速度,对于优化运算获得的结果进行调错,确定运算结果的正确性,提升了运算结果的可靠性。
Description
技术领域
本申请涉及信息处理技术领域,尤其涉及一种调错方法及相关产品。
背景技术
人工神经网络(Artificial Neural Network,即ANN),是20世纪80年代以来人工智能领域兴起的研究热点。它从信息处理角度对人脑神经元网络进行抽象,建立某种简单模型,按不同的连接方式组成不同的网络。在工程与学术界也常直接简称为神经网络或类神经网络。神经网络是一种运算模型,由大量的节点(或称神经元)之间相互联接构成。
现有的神经网络的运算基于CPU(Central Processing Unit,中央处理器)或GPU(英文:Graphics Processing Unit,图形处理器)来实现神经网络的运算,在运算的过程中,需要逐层运算,导致运算结果缓慢,造成大量时间消耗。
发明内容
本申请实施例提供了一种调错方法及相关产品,通过层融合运算可提升神经网络的运算速度,提高效率,同时通过不断划分层融合段和非层融合段排除运算结果中的错误,提升运算结果的正确率和可靠性。
本发明实施例第一方面提供了一种调错装置,所述装置包括相互连接的协处理器和主处理器,其中:
所述协处理器用于对神经网络层的输入数据进行层融合运算,获得层融合运算结果;
所述主处理器用于获取所述层融合运算结果,并对所述层融合运算结果和主运算结果进行一致性对比,所述主运算结果为所述主处理器对所述神经网络层的输入数据进行神经网络运算获得;根据对比结果对所述层融合网络进行调错。
本发明实施例第二方面提供了一种调错方法,应用于调错装置,所述装置包括相互连接的协处理器和主处理器,所述方法包括:
所述协处理器对神经网络层的输入数据进行层融合运算,获得层融合运算结果;
所述主处理器获取所述层融合运算结果,并对所述层融合运算结果和主运算结果进行一致性对比,所述主运算结果为所述主处理器对所述神经网络层的输入数据进行神经网络运算获得;
所述主处理器根据对比结果对所述层融合网络进行调错。
本发明实施例第三方面提供了一种芯片,包括第一方面提供的调错装置。
本发明实施例第四方面提供了一种芯片封装结构,该封装结构包括上述第三方面所述的芯片;
本发明实施例第五方面提供了一种板卡,该板卡包括上述第四方面所述的芯片封装结构。
第六方面,本申请实施例提供了一种电子装置,该电子装置包括上述第四方面所述的芯片封装结构或者上述第五方面所述的板卡。
本发明实施例第七方面提供了一种存储介质,用于存储用于电子数据交换的计算机程序,其中,所述计算机程序使得计算机执行第二方面任一方法所述的步骤的指令。
可以看出,本申请实施例通过对神经网络层的输入数据进行层融合运算,提升了运算速率,通过将层融合运算结果与主运算结果进行一致性对比,对层融合运算结果的正确性进行判定,当层融合运算发生错误时,对层融合网络进行调错,发现层融合过程中的错误算子,进行对错误算子进行调整,提升了层融合运算的正确率和可靠性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1A是本申请实施例提供的一种调错装置结构示意图。
图1B为本申请实施例提供的一种神经网络运算结构示意图。
图1C为本申请实施例同的一种融合运算结构示意图。
图1D为本申请实施例提供的一种主处理器的结构示意图。
图1E为本申请实施例提供的一种划分融合段和非融合段的示意图。
图1F为本申请实施例提供的一种确定神经网络层中的融合起始层和融合终点层的示意图。
图2为本申请实施例提供的一种调错方法流程示意图。
图3A是本申请实施例提供的一种组合处理装置的示意图。
图3B是本申请实施例提供的另一种组合处理装置的结构图。
图3C是本申请实施例提供的一种板卡的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
首先介绍本申请涉及的调错装置,所述装置包括相互连接的协处理器和主处理器,请参阅图1A,图1A为本申请实施例提供的一种调错装置结构示意图,如图1A所示,该调错装置10包括协处理器120和主处理器100,其中协处理器120可以是嵌入式神经网络处理器(Neural-network Processing Unit,NPU),或者图像处理单元(Image ProcessingUnit,IPU)等,用于对神经网络层的输入数据进行层融合运算,获得层融合运算结果;主处理器100可以是CPU或者GPU等,用于对神经网络层的输入数据进行神经网络运算,获得主运算结果,然后获取层融合运算结果,并将层融合运算结果和主运算结果进行一致性对比,根据两种运算结果是否一致的对比结果对层融合网络进行调错。
人工神经网络(artificial neural network,ANN),简称神经网络,是由大量处理单元互连组成的非线性、自适应的系统,处理单元(即神经元)按照层结构进行布局,在CPU或GPU上进行神经网络运算时,包括输入层、输出层和隐藏层,请参阅图1B,图1B为本申请实施例提供的一种神经网络运算结构示意图,如图1B所示,该神经网络为全连接神经网络,输入层在隐藏层1进行运算,获得第一组运算结果,然后将第一组运算结果输入隐藏层2,获得第二组运算结果,以此类推,直到输出层输出最后的运算结果。神经网络的运算结果的可靠性高,可以作为正确的运算结果,用于与层融合运算结果进行比对,确定层融合运算结果是否正确。
层融合运算与神经网络运算有所不同,它包括输入层和输出层,但是中间的层信息隐藏,请参阅图1C,图1C为本申请实施例同的一种融合运算结构示意图,如图1C所示,中间层可作为一个黑盒,在层融合运算过程中,不关心中间层的运算结果,直接根据输入层数据获得输出结果。这样可以提升运算效率。但是层融合中间过程的不可监控性,使得当层融合运算过程出错时,无法定位出错的神经网络层,也就无法对神经网络层中的算子进行调错。因此,将主处理器运算获得的主运算结果作为对比结果,可对层融合网络进行调错。
请参阅图1D,为本申请实施例提供的一种协处理器的结构示意图,用于进行层融合运算。该协处理器包括:控制器单元11和运算单元12,其中,控制器单元11与运算单元12连接,该运算单元12包括:一个主处理电路和多个从处理电路;
控制器单元11,用于获取输入数据以及计算指令;在一种可选方案中,具体的,获取输入数据以及计算指令方式可以通过数据输入输出单元得到,该数据输入输出单元具体可以为一个或多个数据I/O接口或I/O引脚。
上述计算指令包括但不限于:正向运算指令或反向训练指令,或其他神经网络运算指令等等,例如卷积运算指令,本申请具体实施方式并不限制上述计算指令的具体表现形式。
控制器单元11,还用于解析该计算指令得到多个运算指令,将该多个运算指令以及所述输入数据发送给所述主处理电路;
主处理电路101,用于对所述输入数据执行前序处理以及与所述多个从处理电路之间传输数据以及运算指令;
多个从处理电路102,用于依据从所述主处理电路传输的数据以及运算指令并行执行中间运算得到多个中间结果,并将多个中间结果传输给所述主处理电路;
主处理电路101,用于对所述多个中间结果执行后续处理得到所述计算指令的计算结果。
本申请提供的技术方案将运算单元设置成一主多从结构,对于正向运算的计算指令,其可以将依据正向运算的计算指令将数据进行拆分,这样通过多个从处理电路即能够对计算量较大的部分进行并行运算,从而提高运算速度,节省运算时间,进而降低功耗。
可选的,上述协处理器还可以包括:存储单元20和直接内存访问单元50,存储单元20可以包括:寄存器、缓存中的一个或任意组合,具体的,所述缓存,用于存储所述计算指令;所述寄存器,用于存储所述输入数据和标量;所述缓存为高速暂存缓存。直接内存访问单元50用于从存储单元20读取或存储数据。
可选的,该控制器单元包括:指令存储单元110、指令处理单元111和存储队列单元113;
指令存储单元110,用于存储所述人工神经网络运算关联的计算指令;
所述指令处理单元111,用于对所述计算指令解析得到多个运算指令;
存储队列单元113,用于存储指令队列,该指令队列包括:按该队列的前后顺序待执行的多个运算指令或计算指令。
举例说明,在一个可选的技术方案中,主运算处理电路也可以包括一个控制器单元,该控制器单元可以包括主指令处理单元,具体用于将指令译码成微指令。当然在另一种可选方案中,从运算处理电路也可以包括另一个控制器单元,该另一个控制器单元包括从指令处理单元,具体用于接收并处理微指令。上述微指令可以为指令的下一级指令,该微指令可以通过对指令的拆分或解码后获得,能被进一步解码为各部件、各单元或各处理电路的控制信号。
在一种可选方案中,该计算指令的结构可以如下表所示。
操作码 | 寄存器或立即数 | 寄存器/立即数 | ... |
上表中的省略号表示可以包括多个寄存器或立即数。
可选的,所述协处理器对神经网络层的输入数据进行层融合运算,包括对整个神经网络层的输入数据进行层融合运算,或者对部分神经网络层的输入数据进行层融合运算。
神经网络层可以在不同的硬件设备上进行异构计算,因此可以将一部分神经网络层计算任务分配到协处理器上,另一部分神经网络层计算任务分配到主处理器上,然后对分配到协处理器上的计算任务进行调错。
可选的,所述主处理器根据对比结果对所述层融合网络进行调错,包括:当所述层融合运算结果与所述主运算结果不一致时,判定所述层融合运算中包括错误算子;
对进行层融合运算的神经网络层重新划分融合段和非融合段,并指示所述协处理器对所述融合段的输入数据进行层融合运算,获得第一融合运算结果;
对所述非融合段的输入数据进行神经网络运算,获得第一主运算结果;
将所述第一主运算结果与所述第一融合运算结果结合获得新的层融合运算结果,并将所述层融合运算结果与所述主运算结果进行对比;
当所述层融合运算结果与所述主运算结果不一致时,重复上述对所述神经网络层重新划分融合段、计算获得第一融合运算结果和第一主运算结果,以及将第一融合运算结果和第一主运算结果结合获得的新的层融合运算结果与所述主运算结果进行对比的过程,直到所述层融合运算结果与所述主运算结果一致时,判定所述错误算子在最后一次划分的非融合段中。
具体地,层融合运结果与主运算结果不一致,说明进行神经网路运算的融合层中包含错误算子,需要对融合层中的错误算子进行定位。定位的方法是通过对进行层融合运算的神经网络层不断划分融合段和非融合段,对融合层进行层融合运算,对非融合层进行神经网络运算,然后将两者的运算结果结合,与主运算结果对比,主运算结果是最初进行层融合运算的神经网络层进行神经网络运算对应的运算结果,是一个确定正确且不变的值,如果对比结果不一致,说明错误算子还在融合段,继续对融合段进行新的融合段和非融合段的划分,直到融合段与非融合段运算结果结合后与主运算结果一致,说明运算错误的算子在最后一次被划分到非融合段中,它在主处理器中被正确运算以致最后的层融合运算结果正确,定位最后一次被划分的非融合段,即可定位该错误算子,完成对层融合网络的调错过程。
可选的,所述对进行层融合运算的神经网络层重新划分融合段和非融合段,包括:将进行层融合运算的神经网络层中的指定层划分为非融合段,将所述神经网络层中除所述非融合段之外的层划分为融合段,所述指定层可以是一个神经网络层,也可以是多个神经网络层。
具体地,将神经网络层中的指定层划分为非融合段,指定层可以是一个或多个神经网络层,获取指定层的方法可以是随机获取,或者按照某种规律获取,包括按照查找算法获取,按照神经网络层的算子类型获取等。例如请参阅图1E,图1E为本申请实施例提供的一种划分融合段和非融合段的示意图,如图1E所示,图1E中的(a)指定Op3作为非融合段,其余神经网络层都作为融合段在协处理器上进行层融合运算,且Op1~Op2组成一个融合段,Op4~Op6组成另一个融合段;图1E中的(b)指定Op3和Op5为非融合段,那么剩余的Op1~Op2组成一个融合段,Op4为第二个融合段,Op6为第三个融合段。
可选的,所述将所述神经网络层中的指定层划分为非融合段,包括:获取所述神经网络层中指定算子对应的层作为指定层,并将所述指定层划分为非融合段。
可选的,所述指定算子为在所述神经网络层中的重复次数大于第一预设阈值的算子。
具体地,神经网络中可能包括层数很多,但是算子数量不多的情况,同一个算子会被重复使用。那么在确定指定层作为非融合段时,可以获取算子相同的神经网络层作为指定层并划分为非融合段,进而发现运算出错的算子。并且,在进行算子选择的时候,首先选择在神经网络层中重复次数大于第一预设阈值的算子,可以优先完成对重复次数高的重要算子的错误排查。例如MobileNet,是一个典型的深度神经网络,该网络包括100多层,但是其中使用的算子数量不多,包括activation、batchnorm、convolution、pooling、softMaxoutput这5个算子,可以首先获取pooling算子对应的神经网络层作为指定层并划分为融合段,确定发生运算错误的算子是否为pooling,如果不是,再依次对其他算子对应的层进行非融合段划分,直到确定融合出错的算子。
可见,在本申请实施例中,通过选择进行层融合运算的神经网络层中的指定层划分为非融合段,剩余层划分为融合段,可以逐步缩小错误算子的区间,最终确定错误算子的位置,以便完成对层融合网络的调错。其中,通过指定算子确定指定层,可以以算子为单位对层融合运算结果进行调错,减少了划分融合层和非融合层的次数,提升了调错效率。
可选的,所述对进行层融合运算的神经网络层重新划分融合段和非融合段,包括:确定所述神经网络层中的融合起始层和融合终点层,并将所述融合起始层和所述融合终点层及其中间的神经网络层划分为融合段,将除所述融合段之外的神经网络层划分为非融合段。
具体地,神经网络层中的融合段和非融合段的划分,可以直接进行区间划分。请参阅图1F,图1F为本申请实施例提供的一种确定神经网络层中的融合起始层和融合终点层的示意图,如图1F中的(c)所示,确定融合起始层为Op3,融合终点层为Op5,那么包括融合起始层、融合终点层和两者中间层的神经网络层Op3~Op5即为融合段,其他神经网络层即为非融合段。
可选的,所述确定所述神经网络层中的融合起始层和融合终点层包括:根据查找算法确定所述神经网络层中的融合起始层或融合终点层。
查找算法用于在大量的信息中查找一个特定元素,通过查找算法能够定位到大量神经网络层中具体的层。典型的查找算法包括二分法、顺序查找法、哈希表查找法等,根据查找算法确定神经网路层中的融合起始层或融合终点层,可以根据一定的规律对神经网络层中的层融合段进行排查,进而发现错误算子的位置。
可选的,所述根据查找算法确定所述神经网络层中的融合起始层或融合终点层包括:采用二分法确定所述神经网络层中的融合起始层或融合终点层。
可选的,所述根据查找算法确定所述神经网络层中的融合起始层或融合终点层之后,还包括:
根据查找算法确定所述神经网络层中的融合起始层后,将所述神经网络层中的最后一层作为融合终点层;或
根据查找算法确定所述神经网络层中的融合终点层后,将所述神经网络层中的起始层作为融合起始层。
二分法是一个典型的查找算法,在对神经网络层划分融合段时,可以多次迭代地使用二分法确定融合起始层或融合终点层。当神经网络层中的总层数为S层时,如果S为偶数,那么融合起始层可以是第S/2+1层,如果S为奇数,那么融合起始层可以是第(S+1)/2+1层。请参阅图1F,如图1F中的(d)所示,S为6,那么融合起始层为第4层,在确定融合起始层后,将神经网络层中的最后一层作为融合终点层,那么S/2+1~S层即为融合段。如果对融合段和非融合段进行运算后,运算结果仍然错误,则说明错误算子还在融合段中,再次对融合段进行划分,将S/2+1~S层继续采用二分法划分,新的融合起始层计算公式为:S’=(S/2+1+S)/2,如果S’为整数,则新的融合起始层即为第S’层,如果S’不为整数,则S’向上取整。继续迭代,直到运算结果正确,定位错误算子在最后一次从融合段中划分为非融合段的神经网络层中。
同样地,可以采用二分法确定神经网络层中的融合终点层,然后将神经网络层中的起始层作为融合起始层,多次迭代,直到确定错误算子的位置。
可见,在本申请实施例中,通过确定神经网络层中的融合起始层和融合终点层,并将包括融合起始层、融合终点层和两者之间的层作为融合段,可以采用分块的方式同时对一个区间内的神经网络层进行调错,提升了调错效率,另外,采用搜索算法对进行层融合运算的神经网络层进行多次融合段和非融合段的划分,可以有规律地逐步缩小错误算子的区间,最终定位到错误算子的位置,进一步提升了调错效率。
本申请实施例的调错装置通过对神经网络层的输入数据进行层融合运算,提升了运算速率,通过将层融合运算结果与主运算结果进行一致性对比,对层融合运算结果的正确性进行判定,当层融合运算发生错误时,对层融合网络进行调错,发现层融合过程中的错误算子,进行对错误算子进行调整,提升了层融合运算的正确率和可靠性。
请参阅图2,图2为本申请实施例提供的一种调错方法流程示意图,应用于上述实施例中的调错装置,如图2所示,本方法包括如下步骤:
S211、所述协处理器对神经网络层的输入数据进行层融合运算,获得层融合运算结果;
S212、所述主处理器获取所述层融合运算结果,并对所述层融合运算结果和主运算结果进行一致性对比,所述主运算结果为所述主处理器对所述神经网络层的输入数据进行神经网络运算获得;
S213、所述主处理器根据对比结果对所述层融合网络进行调错。
可见,在本申请实施例中,通过对神经网络层的输入数据进行层融合运算,提升了运算速率,通过将层融合运算结果与主运算结果进行一致性对比,对层融合运算结果的正确性进行判定,当层融合运算发生错误时,对层融合网络进行调错,发现层融合过程中的错误算子,进行对错误算子进行调整,提升了层融合运算的正确率和可靠性。
在一个可选的示例中,所述协处理器对神经网络层的输入数据进行层融合运算,包括对整个神经网络层的输入数据进行层融合运算,或者对部分神经网络层的输入数据进行层融合运算。
在一个可选的示例中,所述主处理器根据对比结果对所述层融合网络进行调错,包括:
当所述层融合运算结果与所述主运算结果不一致时,判定所述层融合运算中包括错误算子;
对进行层融合运算的神经网络层重新划分融合段和非融合段,并指示所述协处理器对所述融合段的输入数据进行层融合运算,获得第一融合运算结果;
对所述非融合段的输入数据进行神经网络运算,获得第一主运算结果;
将所述第一主运算结果与所述第一融合运算结果结合获得新的层融合运算结果,并将所述层融合运算结果与所述主运算结果进行对比;
当所述层融合运算结果与所述主运算结果不一致时,重复上述对所述神经网络层重新划分融合段、计算获得第一融合运算结果和第一主运算结果,以及将第一融合运算结果和第一主运算结果结合获得的新的层融合运算结果与所述主运算结果进行对比的过程,直到所述层融合运算结果与所述主运算结果一致时,判定所述错误算子在最后一次划分的非融合段中。
在一个可选的示例中,所述对所述神经网络层重新划分融合段和非融合段,包括:
将所述神经网络层中的指定层划分为非融合段,将所述神经网络层中除所述非融合段之外的层划分为融合段,所述指定层可以是一个神经网络层,也可以是多个神经网络层。
在一个可选的示例中,所述将所述神经网络层中的指定层划分为非融合段,包括:
获取所述神经网络层中指定算子对应的层作为指定层,并将所述指定层划分为非融合段。
在一个可选的示例中,所述指定算子为在所述神经网络层中的重复次数大于第一预设阈值的算子。
在一个可选的示例中,所述对所述神经网络层重新划分融合段和非融合段,包括:
确定所述神经网络层中的融合起始层和融合终点层,并将所述融合起始层和所述融合终点层及其中间的神经网络层划分为融合段,将除所述融合段之外的神经网络层划分为非融合段。
在一个可选的示例中,所述确定所述神经网络层中的融合起始层和融合终点层包括:
根据查找算法确定所述神经网络层中的融合起始层或融合终点层。
在一个可选的示例中,所述根据查找算法确定所述神经网络层中的融合起始层或融合终点层包括:
采用二分法确定所述神经网络层中的融合起始层或融合终点层。
在一个可选的示例中,所述根据查找算法确定所述神经网络层中的融合起始层或融合终点层之后,还包括:
根据查找算法确定所述神经网络层中的融合起始层后,将所述神经网络层中的最后一层作为融合终点层;或
根据查找算法确定所述神经网络层中的融合终点层后,将所述神经网络层中的起始层作为融合起始层。
本申请还揭露了一个组合处理装置,其包括上述调错装置,通用互联接口,和其他处理装置。调错装置与其他处理装置进行交互,共同完成用户指定的操作。图3A为组合处理装置的示意图。
其他处理装置,包括中央处理器CPU、图形处理器GPU、嵌入式神经网络处理器NPU等通用/专用处理器中的一种或以上的处理器类型。其他处理装置所包括的处理器数量不做限制。其他处理装置作为计算装置与外部数据和控制的接口,包括数据搬运,完成对本计算装置的开启、停止等基本控制;其他处理装置也可以和计算装置协作共同完成运算任务。
通用互联接口,用于在所述计算装置与其他处理装置间传输数据和控制指令。该计算装置从其他处理装置中获取所需的输入数据,写入计算装置片上的存储装置;可以从其他处理装置中获取控制指令,写入计算装置片上的控制缓存;也可以读取计算装置的存储模块中的数据并传输给其他处理装置。
可选的,该结构如图3B所示,还可以包括存储装置,存储装置分别与所述调错装置和所述其他处理装置连接。存储装置用于保存在所述计算装置和所述其他处理装置的数据,尤其适用于所需要运算的数据在本计算装置或其他处理装置的内部存储中无法全部保存的数据。
该组合处理装置可以作为手机、机器人、无人机、视频监控设备等设备的SOC片上系统,有效降低控制部分的核心面积,提高处理速度,降低整体功耗。此情况时,该组合处理装置的通用互联接口与设备的某些部件相连接。某些部件譬如摄像头,显示器,鼠标,键盘,网卡,wifi接口。
在一些实施例里,还申请了一种芯片,其包括了上述计算装置或组合处理装置。
在一些实施例里,申请了一种芯片封装结构,其包括了上述芯片。
在一些实施例里,申请了一种板卡,其包括了上述芯片封装结构。参阅图3C,图3C提供了一种板卡,上述板卡除了包括上述芯片389以外,还可以包括其他的配套部件,该配套部件包括但不限于:存储器件390、接口装置391和控制器件392;
所述存储器件390与所述芯片封装结构内的芯片通过总线连接,用于存储数据。所述存储器件可以包括多组存储单元393。每一组所述存储单元与所述芯片通过总线连接。可以理解,每一组所述存储单元可以是DDR SDRAM(英文:Double Data Rate SDRAM,双倍速率同步动态随机存储器)。
DDR不需要提高时钟频率就能加倍提高SDRAM的速度。DDR允许在时钟脉冲的上升沿和下降沿读出数据。DDR的速度是标准SDRAM的两倍。在一个实施例中,所述存储装置可以包括4组所述存储单元。每一组所述存储单元可以包括多个DDR4颗粒(芯片)。在一个实施例中,所述芯片内部可以包括4个72位DDR4控制器,上述72位DDR4控制器中64bit用于传输数据,8bit用于ECC校验。可以理解,当每一组所述存储单元中采用DDR4-3200颗粒时,数据传输的理论带宽可达到25600MB/s。
在一个实施例中,每一组所述存储单元包括多个并联设置的双倍速率同步动态随机存储器。DDR在一个时钟周期内可以传输两次数据。在所述芯片中设置控制DDR的控制器,用于对每个所述存储单元的数据传输与数据存储的控制。
所述接口装置与所述芯片封装结构内的芯片电连接。所述接口装置用于实现所述芯片与外部设备(例如服务器或计算机)之间的数据传输。例如在一个实施例中,所述接口装置可以为标准PCIE接口。比如,待处理的数据由服务器通过标准PCIE接口传递至所述芯片,实现数据转移。优选的,当采用PCIE 3.0X 16接口传输时,理论带宽可达到16000MB/s。在另一个实施例中,所述接口装置还可以是其他的接口,本申请并不限制上述其他的接口的具体表现形式,所述接口单元能够实现转接功能即可。另外,所述芯片的计算结果仍由所述接口装置传送回外部设备(例如服务器)。
所述控制器件与所述芯片电连接。所述控制器件用于对所述芯片的状态进行监控。具体的,所述芯片与所述控制器件可以通过SPI接口电连接。所述控制器件可以包括单片机(Micro Controller Unit,MCU)。如所述芯片可以包括多个处理芯片、多个处理核或多个处理电路,可以带动多个负载。因此,所述芯片可以处于多负载和轻负载等不同的工作状态。通过所述控制装置可以实现对所述芯片中多个处理芯片、多个处理和或多个处理电路的工作状态的调控。
在一些实施例里,申请了一种电子设备,其包括了上述板卡。
电子设备包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。
所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
需要说明的是,对于前述的各装置实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
所述集成的单元如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述装置的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种装置中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取器(英文:Random Access Memory,简称:RAM)、磁盘或光盘等。
以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的装置及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (23)
1.一种调错装置,其特征在于,所述装置包括相互连接的协处理器和主处理器,其中:
所述协处理器用于对神经网络层的输入数据进行层融合运算,获得层融合运算结果;
所述主处理器用于获取所述层融合运算结果,并对所述层融合运算结果和主运算结果进行一致性对比,根据对比结果对所述层融合网络进行调错,所述主运算结果为所述主处理器对所述神经网络层的输入数据进行神经网络运算获得。
2.根据权利要求1所述的装置,其特征在于,所述协处理器包括:运算单元以及控制器单元;所述运算单元包括:一个主处理电路和多个从处理电路;
所述控制器单元,用于获取输入数据以及计算指令;
所述控制器单元,还用于解析该计算指令得到多个运算指令,将该多个运算指令以及所述输入数据发送给所述主处理电路;
所述主处理电路,用于对所述输入数据执行前序处理以及与所述多个从处理电路之间传输数据和运算指令;
所述多个从处理电路,用于依据从所述主处理电路传输的数据以及运算指令并行执行中间运算得到多个中间结果,并将多个中间结果传输给所述主处理电路;
所述主处理电路,用于对所述多个中间结果执行后续处理得到所述计算指令的计算结果。
3.根据权利要求2所述的装置,其特征在于,所述协处理器还包括:存储单元和直接内存访问单元,所述存储单元包括:寄存器、缓存中任意组合;
所述缓存,用于存储所述输入数据;
所述寄存器,用于存储所述输入数据中标量数据;
所述缓存包括高速暂存缓存。
4.根据权利要求2所述的装置,其特征在于,所述控制器单元包括:指令存储单元、指令存储单元和存储队列单元;
所述指令存储单元,用于存储所述人工神经网络运算关联的计算指令;
所述指令处理单元,用于对所述计算指令解析得到多个运算指令;
所述存储队列单元,用于存储指令队列,该指令队列包括:按该队列的前后顺序待执行的多个运算指令或计算指令。
5.根据权利要求1-4任一项所述的装置,其特征在于,所述协处理器对神经网络层的输入数据进行层融合运算,包括对整个神经网络层的输入数据进行层融合运算,或者对部分神经网络层的输入数据进行层融合运算。
6.根据权利要求1或5所述的装置,其特征在于,所述主处理器根据对比结果对所述层融合网络进行调错,包括:
所述层融合运算结果与所述主运算结果不一致时,判定所述层融合运算中包括融合错误算子;
对进行层融合运算的神经网络层重新划分融合段和非融合段,并指示所述协处理器对所述融合段的输入数据进行层融合运算,获得第一融合运算结果;
对所述非融合段的输入数据进行神经网络运算,获得第一主运算结果;
将所述第一主运算结果与所述第一融合运算结果结合获得新的层融合运算结果,并将所述层融合运算结果与所述主运算结果进行对比;
当所述层融合运算结果与所述主运算结果不一致时,重复上述对所述神经网络层重新划分融合段、计算获得第一融合运算结果和第一主运算结果,以及将第一融合运算结果和第一主运算结果结合获得的新的层融合运算结果与所述主运算结果进行对比的过程,直到所述层融合运算结果与所述主运算结果一致时,判定所述错误算子在最后一次划分的非融合段中。
7.根据权利要求6所述的装置,其特征在于,所述对进行层融合运算的神经网络层重新划分融合段和非融合段,包括:
将进行层融合运算的神经网络层中的指定层划分为非融合段,将所述神经网络层中除所述非融合段之外的层划分为融合段,所述指定层可以是一个神经网络层,也可以是多个神经网络层。
8.根据权利要求7所述的装置,其特征在于,所述将所述神经网络层中的指定层划分为非融合段,包括:
获取所述神经网络层中指定算子对应的层作为指定层,并将所述指定层划分为非融合段。
9.根据权利要求8所述的装置,其特征在于,所述指定算子为在所述神经网络层中的重复次数大于第一预设阈值的算子。
10.根据权利要求6所述的装置,其特征在于,所述对进行层融合运算的神经网络层重新划分融合段和非融合段,包括:
确定进行层融合运算的神经网络层中的融合起始层和融合终点层,并将所述融合起始层和所述融合终点层及其中间的神经网络层划分为融合段,将除所述融合段之外的神经网络层划分为非融合段。
11.根据权利要求10所述的装置,其特征在于,所述确定所述神经网络层中的融合起始层和融合终点层包括:
根据查找算法确定所述神经网络层中的融合起始层或融合终点层。
12.根据权利要求11所述的装置,其特征在于,所述根据查找算法确定所述神经网络层中的融合起始层或融合终点层包括:
采用二分法确定所述神经网络层中的融合起始层或融合终点层。
13.根据权利要求11所述的装置,其特征在于,所述根据查找算法确定所述神经网络层中的融合起始层或融合终点层之后,还包括:
根据查找算法确定所述神经网络层中的融合起始层后,将所述神经网络层中的最后一层作为融合终点层;或
根据查找算法确定所述神经网络层中的融合终点层后,将所述神经网络层中的起始层作为融合起始层。
14.一种调错方法,应用于调错装置,其特征在于,所述装置包括相互连接的协处理器和主处理器,所述方法包括:
所述协处理器对神经网络层的输入数据进行层融合运算,获得层融合运算结果;
所述主处理器获取所述层融合运算结果,并对所述层融合运算结果和主运算结果进行一致性对比,所述主运算结果为所述主处理器对所述神经网络层的输入数据进行神经网络运算获得;
所述主处理器根据对比结果对所述层融合网络进行调错。
15.根据权利要求14所述的方法,其特征在于,所述协处理器对神经网络层的输入数据进行层融合运算,包括对整个神经网络层的输入数据进行层融合运算,或者对部分神经网络层的输入数据进行层融合运算。
16.根据权利要求14或15所述的方法,其特征在于,所述主处理器根据对比结果对所述层融合网络进行调错,包括:
当所述层融合运算结果与所述主运算结果不一致时,判定所述层融合运算中包括错误算子;
对进行层融合运算的神经网络层重新划分融合段和非融合段,并指示所述协处理器对所述融合段的输入数据进行层融合运算,获得第一融合运算结果;
对所述非融合段的输入数据进行神经网络运算,获得第一主运算结果;
将所述第一主运算结果与所述第一融合运算结果结合获得新的层融合运算结果,并将所述层融合运算结果与所述主运算结果进行对比;
当所述层融合运算结果与所述主运算结果不一致时,重复上述对所述神经网络层重新划分融合段、计算获得第一融合运算结果和第一主运算结果,以及将第一融合运算结果和第一主运算结果结合获得的新的层融合运算结果与所述主运算结果进行对比的过程,直到所述层融合运算结果与所述主运算结果一致时,判定所述错误算子在最后一次划分的非融合段中。
17.根据权利要求16所述的方法,其特征在于,所述对所述神经网络层重新划分融合段和非融合段,包括:
将所述神经网络层中的指定层划分为非融合段,将所述神经网络层中除所述非融合段之外的层划分为融合段,所述指定层可以是一个神经网络层,也可以是多个神经网络层。
18.根据权利要求17所述的方法,其特征在于,所述将所述神经网络层中的指定层划分为非融合段,包括:
获取所述神经网络层中指定算子对应的层作为指定层,并将所述指定层划分为非融合段。
19.根据权利要求18所述的方法,其特征在于,所述指定算子为在所述神经网络层中的重复次数大于第一预设阈值的算子。
20.根据权利要求16所述的方法,其特征在于,所述对所述神经网络层重新划分融合段和非融合段,包括:
确定所述神经网络层中的融合起始层和融合终点层,并将所述融合起始层和所述融合终点层及其中间的神经网络层划分为融合段,将除所述融合段之外的神经网络层划分为非融合段。
21.根据权利要求20所述的装置,其特征在于,所述确定所述神经网络层中的融合起始层和融合终点层包括:
根据查找算法确定所述神经网络层中的融合起始层或融合终点层。
22.根据权利要求21所述的装置,其特征在于,所述根据查找算法确定所述神经网络层中的融合起始层或融合终点层包括:
采用二分法确定所述神经网络层中的融合起始层或融合终点层。
23.根据权利要求21所述的装置,其特征在于,所述根据查找算法确定所述神经网络层中的融合起始层或融合终点层之后,还包括:
根据查找算法确定所述神经网络层中的融合起始层后,将所述神经网络层中的最后一层作为融合终点层;或
根据查找算法确定所述神经网络层中的融合终点层后,将所述神经网络层中的起始层作为融合起始层。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811619245.7A CN109739703B (zh) | 2018-12-28 | 2018-12-28 | 调错方法及相关产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811619245.7A CN109739703B (zh) | 2018-12-28 | 2018-12-28 | 调错方法及相关产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109739703A true CN109739703A (zh) | 2019-05-10 |
CN109739703B CN109739703B (zh) | 2020-01-17 |
Family
ID=66361734
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811619245.7A Active CN109739703B (zh) | 2018-12-28 | 2018-12-28 | 调错方法及相关产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109739703B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110309918A (zh) * | 2019-07-05 | 2019-10-08 | 北京中科寒武纪科技有限公司 | 神经网络在线模型的验证方法、装置和计算机设备 |
CN110377472A (zh) * | 2019-07-25 | 2019-10-25 | 北京中星微电子有限公司 | 定位芯片运行错误的方法及装置 |
CN110751272A (zh) * | 2019-10-30 | 2020-02-04 | 珠海格力电器股份有限公司 | 卷积神经网络模型中数据定位的方法、装置及存储介质 |
CN113821396A (zh) * | 2020-06-18 | 2021-12-21 | 中车株洲电力机车研究所有限公司 | 处理器运行状态监视诊断方法及装置 |
CN114064331A (zh) * | 2020-07-29 | 2022-02-18 | 中国科学院深圳先进技术研究院 | 容错计算方法及其容错计算装置、存储介质和计算机设备 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101681450A (zh) * | 2007-06-13 | 2010-03-24 | 佳能株式会社 | 计算处理装置及其控制方法 |
US20160110643A1 (en) * | 2014-10-16 | 2016-04-21 | Nanyang Technological University | Systems and methods for classifying electrical signals |
US20160171346A1 (en) * | 2014-12-15 | 2016-06-16 | Samsung Electronics Co., Ltd. | Image recognition method and apparatus, image verification method and apparatus, learning method and apparatus to recognize image, and learning method and apparatus to verify image |
CN106909971A (zh) * | 2017-02-10 | 2017-06-30 | 华南理工大学 | 一种面向多核计算环境的bp神经网络并行化方法 |
CN107729998A (zh) * | 2017-10-31 | 2018-02-23 | 中国科学院计算技术研究所 | 一种用于神经网络处理器的方法 |
CN107748914A (zh) * | 2017-10-19 | 2018-03-02 | 珠海格力电器股份有限公司 | 人工神经网络运算电路 |
CN108470190A (zh) * | 2018-03-09 | 2018-08-31 | 北京大学 | 基于fpga定制脉冲神经网络的图像识别方法 |
US20180373985A1 (en) * | 2017-06-23 | 2018-12-27 | Nvidia Corporation | Transforming convolutional neural networks for visual sequence learning |
-
2018
- 2018-12-28 CN CN201811619245.7A patent/CN109739703B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101681450A (zh) * | 2007-06-13 | 2010-03-24 | 佳能株式会社 | 计算处理装置及其控制方法 |
US20160110643A1 (en) * | 2014-10-16 | 2016-04-21 | Nanyang Technological University | Systems and methods for classifying electrical signals |
US20160171346A1 (en) * | 2014-12-15 | 2016-06-16 | Samsung Electronics Co., Ltd. | Image recognition method and apparatus, image verification method and apparatus, learning method and apparatus to recognize image, and learning method and apparatus to verify image |
CN106909971A (zh) * | 2017-02-10 | 2017-06-30 | 华南理工大学 | 一种面向多核计算环境的bp神经网络并行化方法 |
US20180373985A1 (en) * | 2017-06-23 | 2018-12-27 | Nvidia Corporation | Transforming convolutional neural networks for visual sequence learning |
CN107748914A (zh) * | 2017-10-19 | 2018-03-02 | 珠海格力电器股份有限公司 | 人工神经网络运算电路 |
CN107729998A (zh) * | 2017-10-31 | 2018-02-23 | 中国科学院计算技术研究所 | 一种用于神经网络处理器的方法 |
CN108470190A (zh) * | 2018-03-09 | 2018-08-31 | 北京大学 | 基于fpga定制脉冲神经网络的图像识别方法 |
Non-Patent Citations (3)
Title |
---|
D.U.EKONG ET AL: "Fault-tolerant neural network with concurrent error detection and correction capability", 《CANADIAN JOURNAL OF ELECTRICAL AND COMPUTER ENGINEERING》 * |
大连海事大学等: "《第二届海峡两岸航运科技学术研讨会论文集》", 31 August 2003, 大连:大连海事大学出版社 * |
谢珺: "二进制粒神经网络研究及其在故障诊断中的应用", 《中国博士学位论文全文数据库(电子期刊)》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110309918A (zh) * | 2019-07-05 | 2019-10-08 | 北京中科寒武纪科技有限公司 | 神经网络在线模型的验证方法、装置和计算机设备 |
CN110309918B (zh) * | 2019-07-05 | 2020-12-18 | 安徽寒武纪信息科技有限公司 | 神经网络在线模型的验证方法、装置和计算机设备 |
CN110377472A (zh) * | 2019-07-25 | 2019-10-25 | 北京中星微电子有限公司 | 定位芯片运行错误的方法及装置 |
CN110377472B (zh) * | 2019-07-25 | 2021-05-18 | 重庆中星微人工智能芯片技术有限公司 | 定位芯片运行错误的方法及装置 |
CN110751272A (zh) * | 2019-10-30 | 2020-02-04 | 珠海格力电器股份有限公司 | 卷积神经网络模型中数据定位的方法、装置及存储介质 |
CN113821396A (zh) * | 2020-06-18 | 2021-12-21 | 中车株洲电力机车研究所有限公司 | 处理器运行状态监视诊断方法及装置 |
CN114064331A (zh) * | 2020-07-29 | 2022-02-18 | 中国科学院深圳先进技术研究院 | 容错计算方法及其容错计算装置、存储介质和计算机设备 |
CN114064331B (zh) * | 2020-07-29 | 2023-01-03 | 中国科学院深圳先进技术研究院 | 容错计算方法及其容错计算装置、存储介质和计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
CN109739703B (zh) | 2020-01-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109739703A (zh) | 调错方法及相关产品 | |
CN109522052A (zh) | 一种计算装置及板卡 | |
CN109543832A (zh) | 一种计算装置及板卡 | |
CN110096310A (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN109754011B (zh) | 基于Caffe的数据处理方法、装置和相关产品 | |
CN108694441B (zh) | 一种网络处理器和网络运算方法 | |
CN110119807A (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN110163360A (zh) | 一种计算装置及方法 | |
CN109543825A (zh) | 神经网络模型算法编译方法、装置及相关产品 | |
CN110059797A (zh) | 一种计算装置及相关产品 | |
CN110147249A (zh) | 一种网络模型的计算方法及装置 | |
CN109670581A (zh) | 一种计算装置及板卡 | |
CN109754084A (zh) | 网络结构的处理方法、装置及相关产品 | |
CN111767995B (zh) | 运算方法、装置及相关产品 | |
CN110059809A (zh) | 一种计算装置及相关产品 | |
CN109711540A (zh) | 一种计算装置及板卡 | |
CN109726800B (zh) | 运算方法、装置及相关产品 | |
CN109740746B (zh) | 运算方法、装置及相关产品 | |
CN110083532B (zh) | 基于深度学习框架的融合模式下运行错误定位方法及装置 | |
CN109740730A (zh) | 运算方法、装置及相关产品 | |
CN111723920B (zh) | 人工智能计算装置及相关产品 | |
CN111949317B (zh) | 指令处理方法、装置及相关产品 | |
CN110472734A (zh) | 一种计算装置及相关产品 | |
CN111209230B (zh) | 数据处理装置、方法及相关产品 | |
CN111723921B (zh) | 人工智能计算装置及相关产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 100000 room 644, No. 6, No. 6, South Road, Beijing Academy of Sciences Applicant after: Zhongke Cambrian Technology Co., Ltd Address before: 100000 room 644, No. 6, No. 6, South Road, Beijing Academy of Sciences Applicant before: Beijing Zhongke Cambrian Technology Co., Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |