CN116881195A - 面向检测计算的芯片***和面向检测计算的芯片方法 - Google Patents
面向检测计算的芯片***和面向检测计算的芯片方法 Download PDFInfo
- Publication number
- CN116881195A CN116881195A CN202311130687.6A CN202311130687A CN116881195A CN 116881195 A CN116881195 A CN 116881195A CN 202311130687 A CN202311130687 A CN 202311130687A CN 116881195 A CN116881195 A CN 116881195A
- Authority
- CN
- China
- Prior art keywords
- computing
- computing units
- units
- unit
- active state
- 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
- 238000000034 method Methods 0.000 title claims abstract description 32
- 238000001514 detection method Methods 0.000 title claims abstract description 21
- 238000004364 calculation method Methods 0.000 title abstract description 100
- 238000012549 training Methods 0.000 claims description 7
- 238000012545 processing Methods 0.000 claims description 6
- 238000003491 array Methods 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 description 17
- 238000013527 convolutional neural network Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000001276 controlling effect Effects 0.000 description 2
- 230000001105 regulatory effect Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Algebra (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Hardware Redundancy (AREA)
Abstract
本申请提供一种面向检测计算的芯片***和面向检测计算的芯片方法,包括:第一计算单元阵列,包含多个第一编号的第一计算单元,用于在第一时间段执行第一计算操作;第二计算单元阵列,包含多个第二编号的第二计算单元,用于在第二时间段执行第二计算操作,第二时间段在第一时间段之后,第一计算操作完成之后执行第二计算操作;控制单元,用于判断执行第一计算操作所需第一计算单元的数量,以及执行第二计算操作所需第二计算单元的数量,并对第一计算单元和第二计算单元编号;第一计算单元在执行完第一计算操作后继续执行第二计算操作,减少了数据搬移的过程,提高了计算效率。
Description
技术领域
本申请涉及人工智能芯片领域,具体而言,涉及一种面向检测计算的芯片***和面向检测计算的芯片方法。
背景技术
现有技术中,已有的人工智能芯片方案主要分为两类,一类是专门针对人工神经网络的加速处理器,如英伟达的图形处理器、谷歌的谷歌张量处理器等;另一类是通用处理器,如电脑的中央处理器(CPU)、可编程阵列逻辑(FPGA)等,通过软件实现人工智能计算。
现有方案中,芯片内部的计算数据之间的传输遵循原来神经网络的映射法则,顺序的规则计算方式往往会带来很多冗余的计算和不必要的时延,需要新路径解决数据调整和传输。
发明内容
本申请实施例的目的在于提供一种面向检测计算的芯片***和面向检测计算的芯片方法,用以实现提高人工智能芯片计算效率的技术效果。
第一方面,本申请实施例提供了一种面向检测计算的芯片***,包括:第一计算单元阵列,包含多个第一编号的第一计算单元,用于在第一时间段执行第一计算操作;第二计算单元阵列,包含多个第二编号的第二计算单元,用于在第二时间段执行第二计算操作,第二时间段在第一时间段之后,第一计算操作完成之后执行第二计算操作;控制单元,用于判断执行第一计算操作所需第一计算单元的数量,以及执行第二计算操作所需第二计算单元的数量,并对第一计算单元和第二计算单元编号;所述第一计算单元阵列执行完第一计算操作后,所述控制单元将所述第一编号修改为所述第二编号,并在所述控制单元内部设置显示替代操作标识,第一计算单元的输出数据作为第一计算单元的输入数据,处于活跃状态的第一计算单元在第二时间段继续执行第二计算操作。
在一种可能的实现方式中,面向检测计算的芯片***还包括:活跃计算单元追踪单元,根据第一计算单元的第一指示信号,判断第一计算单元是否处于活跃状态,以及第二计算单元的第二指示信号,判断第二计算单元是否处于活跃状态;第一计算单元阵列执行完第一计算操作后,所述活跃计算单元追踪单元检测处于活跃状态的第一计算单元数量,若执行第二计算操作所需第二计算单元的数量,与处于活跃状态的第一计算单元数量一致,所述控制单元将所述第一编号修改为所述第二编号,第一计算单元的输出数据作为第一计算单元的输入数据,处于活跃状态的第一计算单元在第二时间段继续执行第二计算操作;若执行第二计算操作所需第二计算单元的数量,低于处于活跃状态的第一计算单元数量,所述控制单元将多余的第一计算单元暂时封存,所述控制单元将所述第一编号修改为所述第二编号,第一计算单元的输出数据作为第一计算单元的输入数据,处于活跃状态的第一计算单元在第二时间段继续执行第二计算操作;若执行第二计算操作所需第二计算单元的数量,高于处于活跃状态的第一计算单元数量,所述控制单元将空闲的第一计算单元调用为活跃状态,直至执行第二计算操作所需第二计算单元的数量,与处于活跃状态的第一计算单元数量一致,所述控制单元将所述第一编号修改为所述第二编号,第一计算单元的输出数据作为第一计算单元的输入数据,处于活跃状态的第一计算单元在第二时间段继续执行第二计算操作。
在上述实现过程中,第一计算单元阵列和第二计算单元阵列分别包含第一计算单元和第二计算单元,用于分别执行第一计算操作和第二计算操作,第二时间段在第一时间段之后,第二计算操作处于第一计算操作之后,第一计算单元设置有第一编号,第二计算单元设置有第二编号。控制单元用于判断执行第一计算操作所需第一计算单元的数量,以及执行第二计算操作所需第二计算单元的数量,并对第一计算单元和第二计算单元编号。活跃计算单元追踪单元,根据第一计算单元的第一指示信号以及第二计算单元的第二指示信号,判断第一计算单元和第二计算单元是否处于活跃状态,一种可行的指示方式为通过指示连续多少个第一计算单元被占用或者不被占用来实现所有第一计算单元工作状态的指示,比如A4U4作为第一指示信号,可用于指示前四个第一计算单元被占用激活,后四个第一计算单元不被占用,A2U4A2表示前两个第一计算单元处于占用激活状态,中间四个第一计算单元处于不占用状态,最后两个第一计算单元处于激活状态。第一计算操作执行完成后,活跃计算单元追踪单元检测处于活跃状态的第一计算单元数量,若执行第二计算操作所需第二计算单元的数量,与处于活跃状态的第一计算单元数量一致,控制单元将第一编号修改为第二编号,第一计算单元的输出数据作为第一计算单元的输入数据,处于活跃状态的第一计算单元在第二时间段继续执行第二计算操作。若执行第二计算操作所需第二计算单元的数量,低于处于活跃状态的第一计算单元数量,控制单元将多余的第一计算单元暂时封存,控制单元将第一编号修改为第二编号,第一计算单元的输出数据作为第一计算单元的输入数据,处于活跃状态的第一计算单元在第二时间段继续执行第二计算操作;若执行第二计算操作所需第二计算单元的数量,高于处于活跃状态的第一计算单元数量,控制单元将空闲的第一计算单元调用为活跃状态,直至执行第二计算操作所需第二计算单元的数量,与处于活跃状态的第一计算单元数量一致,控制单元将第一编号修改为第二编号,第一计算单元的输出数据作为第一计算单元的输入数据,处于活跃状态的第一计算单元在第二时间段继续执行第二计算操作。不同层之间所使用的计算单元位置可能是不一样的,而这会导致数据无意义的搬移,因为本身多余不必要的计算数据已经被移除。传统数据传输方式为第一计算单元——总线——DRAM或SRAM——总线——第二计算单元,或者是第一计算单元——总线——第二计算单元,传输路径较长。在本方案中采取了乱序操作,第一计算单元计算完成后的输出数据作为第一计算单元的输入数据,即本方案数据传输方式为第一计算单元——第一计算单元,只在第一计算单元自身传输,通过改变对第一计算单元的虚拟编号,使得***将第一计算单元认为是第二计算单元,不对第二计算单元做数据流动,同时第一计算单元可以结合控制单元传递所需的计算参数完成计算,循环以上操作直到计算完成,减少了数据搬移的过程,提高了计算效率。
在一种可能的实现方式中,所述第一计算单元阵列执行完第一计算操作后,所述活跃计算单元追踪单元检测处于活跃状态的第一计算单元数量,若执行第二计算操作所需第二计算单元的数量,高于处于活跃状态的第一计算单元数量,所述控制单元将暂时封存的第一计算单元解封,并使第一计算单元处于活跃状态,直至处于活跃状态的第一计算单元数量与第二计算操作所需的第二计算单元数量一致,所述控制单元将所述第一编号修改为所述第二编号,第一计算单元的输出数据作为第一计算单元的输入数据,处于活跃状态的第一计算单元在第二时间段继续执行第二计算操作。
在上述实现过程中,第一计算单元阵列执行完第一计算操作后,活跃计算单元追踪单元检测处于活跃状态的第一计算单元数量,若执行第二计算操作所需第二计算单元的数量,高于处于活跃状态的第一计算单元数量,控制单元将暂时封存的第一计算单元解封,并使第一计算单元处于活跃状态,优先调用封存可以直接调用的第一计算单元,如果其原有数据可用则直接使用,如果不可用则将其与新数据的差值进行传递至第一计算单元,并在第一计算单元进行计算,直至处于活跃状态的第一计算单元数量与第二计算操作所需的第二计算单元数量一致,控制单元将第一编号修改为第二编号,第一计算单元的输出数据作为第一计算单元的输入数据,处于活跃状态的第一计算单元在第二时间段继续执行第二计算操作。优先调用可以直接使用的第一计算单元,减少调用时间,进一步提高计算效率。
在一种可能的实现方式中,还包括:活跃计算单元预判单元,内预设有数据库用于存储各类待处理数据对应所需计算单元的数量,所述活跃计算单元预判单元将第一计算单元的第一计算操作输出数据,与所述数据库中各类待处理数据比对,获取处理第一计算操作输出数据所需第二计算单元的数量。
在上述实现过程中,还包括:活跃计算单元预判单元,内部预设有数据库用于存储各类待处理数据对应所需计算单元的数量,数据库可以设置在面向检测计算的芯片***外部,活跃计算单元预判单元读取第一计算单元的第一计算操作输出数据,与数据库中各类待处理数据比对,以获得处理第一计算操作输出数据所需第二计算单元的数量,提前预判所需第二计算单元的数量,加快对第一计算单元的调控速度,提高计算效率。
在一种可能的实现方式中,当多个第一指示信号处于连续激活状态,表示多个第一计算单元处于连续激活状态,当多个第一指示信号处于连续未激活状态,表示多个第一计算单元处于连续未激活状态
在上述实现过程中,一种可行的指示方式为为每一个第一计算单元和第二计算单元均设置1bit指示,另一种可行的指示方式为通过指示连续多少个第一计算单元被占用或者不被占用来实现所有第一计算单元工作状态的指示,比如A4U4作为第一指示信号,可用于指示前四个第一计算单元被占用激活,后四个第一计算单元不被占用,A2U4A2表示前两个第一计算单元处于占用激活状态,中间四个第一计算单元处于不占用状态,最后两个第一计算单元处于激活状态。获得预判数据的方法为对已有数据进行逻辑分析,进而得到需要占用的计算单元信息,例如使用CNN网络在本计算架构进行部署,针对需要调用的计算单元进行灵活部署和协调调用,预判单元分析即将处理的计算操作,预先于计算操作部署之前得出所需的第一计算单元开销。
在一种可能的实现方式中,所述第一计算单元阵列和所述第二计算单元阵列用于执行训练任务或推理任务。
在上述实现过程中,第一计算单元阵列和第二计算单元阵列可以都用于执行训练任务,或者都用于执行推理任务,也可以训练任务和推理任务交叉进行,使用更加灵活。
第二方面,本申请实施例提供了一种面向检测计算的芯片方法,包括:
在第一计算单元阵列内设置多个第一编号的第一计算单元,用于在第一时间段执行第一计算操作,在第二计算单元阵列,设置多个第二编号的第二计算单元,用于在第二时间段执行第二计算操作,第二时间段在第一时间段之后,第一计算操作完成之后执行第二计算操作;控制单元用于判断执行第一计算操作所需第一计算单元的数量,以及执行第二计算操作所需第二计算单元的数量,并对第一计算单元和第二计算单元编号;设置活跃计算单元追踪单元,根据第一计算单元的第一指示信号,判断第一计算单元是否处于活跃状态,以及第二计算单元的第二指示信号,判断第二计算单元是否处于活跃状态;所述第一计算单元阵列执行完第一计算操作后,所述活跃计算单元追踪单元检测处于活跃状态的第一计算单元数量,若执行第二计算操作所需第二计算单元的数量,与处于活跃状态的第一计算单元数量一致,所述控制单元将所述第一编号修改为所述第二编号,第一计算单元的输出数据作为第一计算单元的输入数据,处于活跃状态的第一计算单元在第二时间段继续执行第二计算操作;若执行第二计算操作所需第二计算单元的数量,低于处于活跃状态的第一计算单元数量,所述控制单元将多余的第一计算单元暂时封存,所述控制单元将所述第一编号修改为所述第二编号,第一计算单元的输出数据作为第一计算单元的输入数据,处于活跃状态的第一计算单元在第二时间段继续执行第二计算操作;若执行第二计算操作所需第二计算单元的数量,高于处于活跃状态的第一计算单元数量,所述控制单元将空闲的第一计算单元调用为活跃状态,直至执行第二计算操作所需第二计算单元的数量,与处于活跃状态的第一计算单元数量一致,所述控制单元将所述第一编号修改为所述第二编号,第一计算单元的输出数据作为第一计算单元的输入数据,处于活跃状态的第一计算单元在第二时间段继续执行第二计算操作。
在上述实现过程中,第一计算单元阵列和第二计算单元阵列分别包含第一计算单元和第二计算单元,用于分别执行第一计算操作和第二计算操作,第二时间段在第一时间段之后,第二计算操作处于第一计算操作之后,第一计算单元设置有第一编号,第二计算单元设置有第二编号。控制单元用于判断执行第一计算操作所需第一计算单元的数量,以及执行第二计算操作所需第二计算单元的数量,并对第一计算单元和第二计算单元编号。活跃计算单元追踪单元,根据第一计算单元的第一指示信号以及第二计算单元的第二指示信号,判断第一计算单元和第二计算单元是否处于活跃状态,一种可行的指示方式为通过指示连续多少个第一计算单元被占用或者不被占用来实现所有第一计算单元工作状态的指示,比如A4U4作为第一指示信号,可用于指示前四个第一计算单元被占用激活,后四个第一计算单元不被占用,A2U4A2表示前两个第一计算单元处于占用激活状态,中间四个第一计算单元处于不占用状态,最后两个第一计算单元处于激活状态。第一计算操作执行完成后,活跃计算单元追踪单元检测处于活跃状态的第一计算单元数量,若执行第二计算操作所需第二计算单元的数量,与处于活跃状态的第一计算单元数量一致,控制单元将第一编号修改为第二编号,第一计算单元的输出数据作为第一计算单元的输入数据,处于活跃状态的第一计算单元在第二时间段继续执行第二计算操作。若执行第二计算操作所需第二计算单元的数量,低于处于活跃状态的第一计算单元数量,控制单元将多余的第一计算单元暂时封存,控制单元将第一编号修改为第二编号,第一计算单元的输出数据作为第一计算单元的输入数据,处于活跃状态的第一计算单元在第二时间段继续执行第二计算操作;若执行第二计算操作所需第二计算单元的数量,高于处于活跃状态的第一计算单元数量,控制单元将空闲的第一计算单元调用为活跃状态,直至执行第二计算操作所需第二计算单元的数量,与处于活跃状态的第一计算单元数量一致,控制单元将第一编号修改为第二编号,第一计算单元的输出数据作为第一计算单元的输入数据,处于活跃状态的第一计算单元在第二时间段继续执行第二计算操作。不同层之间所使用的计算单元位置可能是不一样的,而这会导致数据无意义的搬移,因为本身多余不必要的计算数据已经被移除。传统数据传输方式为第一计算单元——总线——DRAM或SRAM——总线——第二计算单元,或者是第一计算单元——总线——第二计算单元,传输路径较长。在本方案中采取了乱序操作,第一计算单元计算完成后的输出数据作为第一计算单元的输入数据,即本方案数据传输方式为第一计算单元——第一计算单元,只在第一计算单元自身传输,通过改变对第一计算单元的虚拟编号,使得***将第一计算单元认为是第二计算单元,不对第二计算单元做数据流动,同时第一计算单元可以结合控制单元传递所需的计算参数完成计算,循环以上操作直到计算完成,减少了数据搬移的过程,提高了计算效率。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种面向检测计算的芯片***的结构图;
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
本申请实施例提供了一种面向检测计算的芯片***和面向检测计算的芯片方法,请参考图1,包括:第一计算单元阵列,包含多个第一编号的第一计算单元,用于在第一时间段执行第一计算操作;第二计算单元阵列,包含多个第二编号的第二计算单元,用于在第二时间段执行第二计算操作,第二时间段在第一时间段之后,第一计算操作完成之后执行第二计算操作;控制单元,用于判断执行第一计算操作所需第一计算单元的数量,以及执行第二计算操作所需第二计算单元的数量,并对第一计算单元和第二计算单元编号;第一计算单元阵列执行完第一计算操作后,控制单元将第一编号修改为第二编号,并在控制单元内部设置显示替代操作标识,第一计算单元的输出数据作为第一计算单元的输入数据,处于活跃状态的第一计算单元在第二时间段继续执行第二计算操作。
在一种可能的实现方式中,面向检测计算的芯片***还包括:活跃计算单元追踪单元,根据第一计算单元的第一指示信号,判断第一计算单元是否处于活跃状态,以及第二计算单元的第二指示信号,判断第二计算单元是否处于活跃状态;第一计算单元阵列执行完第一计算操作后,活跃计算单元追踪单元检测处于活跃状态的第一计算单元数量,若执行第二计算操作所需第二计算单元的数量,与处于活跃状态的第一计算单元数量一致,控制单元将第一编号修改为第二编号,第一计算单元的输出数据作为第一计算单元的输入数据,处于活跃状态的第一计算单元在第二时间段继续执行第二计算操作;若执行第二计算操作所需第二计算单元的数量,低于处于活跃状态的第一计算单元数量,控制单元将多余的第一计算单元暂时封存,控制单元将第一编号修改为第二编号,第一计算单元的输出数据作为第一计算单元的输入数据,处于活跃状态的第一计算单元在第二时间段继续执行第二计算操作;若执行第二计算操作所需第二计算单元的数量,高于处于活跃状态的第一计算单元数量,控制单元将空闲的第一计算单元调用为活跃状态,直至执行第二计算操作所需第二计算单元的数量,与处于活跃状态的第一计算单元数量一致,控制单元将第一编号修改为第二编号,第一计算单元的输出数据作为第一计算单元的输入数据,处于活跃状态的第一计算单元在第二时间段继续执行第二计算操作。
在上述实现过程中,第一计算单元阵列和第二计算单元阵列分别包含第一计算单元和第二计算单元,用于分别执行第一计算操作和第二计算操作,第二时间段在第一时间段之后,第二计算操作处于第一计算操作之后,第一计算单元设置有第一编号,第二计算单元设置有第二编号。控制单元用于判断执行第一计算操作所需第一计算单元的数量,以及执行第二计算操作所需第二计算单元的数量,并对第一计算单元和第二计算单元编号。活跃计算单元追踪单元,根据第一计算单元的第一指示信号以及第二计算单元的第二指示信号,判断第一计算单元和第二计算单元是否处于活跃状态,一种可行的指示方式为通过指示连续多少个第一计算单元被占用或者不被占用来实现所有第一计算单元工作状态的指示,比如A4U4作为第一指示信号,可用于指示前四个第一计算单元被占用激活,后四个第一计算单元不被占用,A2U4A2表示前两个第一计算单元处于占用激活状态,中间四个第一计算单元处于不占用状态,最后两个第一计算单元处于激活状态。第一计算操作执行完成后,活跃计算单元追踪单元检测处于活跃状态的第一计算单元数量,若执行第二计算操作所需第二计算单元的数量,与处于活跃状态的第一计算单元数量一致,控制单元将第一编号修改为第二编号,第一计算单元的输出数据作为第一计算单元的输入数据,处于活跃状态的第一计算单元在第二时间段继续执行第二计算操作。若执行第二计算操作所需第二计算单元的数量,低于处于活跃状态的第一计算单元数量,控制单元将多余的第一计算单元暂时封存,控制单元将第一编号修改为第二编号,第一计算单元的输出数据作为第一计算单元的输入数据,处于活跃状态的第一计算单元在第二时间段继续执行第二计算操作;若执行第二计算操作所需第二计算单元的数量,高于处于活跃状态的第一计算单元数量,控制单元将空闲的第一计算单元调用为活跃状态,直至执行第二计算操作所需第二计算单元的数量,与处于活跃状态的第一计算单元数量一致,控制单元将第一编号修改为第二编号,第一计算单元的输出数据作为第一计算单元的输入数据,处于活跃状态的第一计算单元在第二时间段继续执行第二计算操作。不同层之间所使用的计算单元位置可能是不一样的,而这会导致数据无意义的搬移,因为本身多余不必要的计算数据已经被移除。传统数据传输方式为第一计算单元——总线——动态随机存取存储器(DRAM)或静态随机存取存储器(SRAM)——总线——第二计算单元,或者是第一计算单元——总线——第二计算单元,传输路径较长。在本方案中采取了乱序操作,第一计算单元计算完成后的输出数据作为第一计算单元的输入数据,即本方案数据传输方式为第一计算单元——第一计算单元,只在第一计算单元自身传输,通过改变对第一计算单元的虚拟编号,使得***将第一计算单元认为是第二计算单元,不对第二计算单元做数据流动,同时第一计算单元可以结合控制单元传递所需的计算参数完成计算,循环以上操作直到计算完成,减少了数据搬移的过程,提高了计算效率。
在一种可能的实现方式中,第一计算单元阵列执行完第一计算操作后,活跃计算单元追踪单元检测处于活跃状态的第一计算单元数量,若执行第二计算操作所需第二计算单元的数量,高于处于活跃状态的第一计算单元数量,控制单元将暂时封存的第一计算单元解封,并使第一计算单元处于活跃状态,直至处于活跃状态的第一计算单元数量与第二计算操作所需的第二计算单元数量一致,控制单元将第一编号修改为第二编号,第一计算单元的输出数据作为第一计算单元的输入数据,处于活跃状态的第一计算单元在第二时间段继续执行第二计算操作。
在上述实现过程中,第一计算单元阵列执行完第一计算操作后,活跃计算单元追踪单元检测处于活跃状态的第一计算单元数量,若执行第二计算操作所需第二计算单元的数量,高于处于活跃状态的第一计算单元数量,控制单元将暂时封存的第一计算单元解封,并使第一计算单元处于活跃状态,优先调用封存可以直接调用的第一计算单元,如果其原有数据可用则直接使用,如果不可用则将其与新数据的差值进行传递至第一计算单元,并在第一计算单元进行计算,直至处于活跃状态的第一计算单元数量与第二计算操作所需的第二计算单元数量一致,控制单元将第一编号修改为第二编号,第一计算单元的输出数据作为第一计算单元的输入数据,处于活跃状态的第一计算单元在第二时间段继续执行第二计算操作。优先调用可以直接使用的第一计算单元,减少调用时间,进一步提高计算效率。
在一种可能的实现方式中,还包括:活跃计算单元预判单元,内预设有数据库用于存储各类待处理数据对应所需计算单元的数量,活跃计算单元预判单元将第一计算单元的第一计算操作输出数据,与数据库中各类待处理数据比对,获取处理第一计算操作输出数据所需第二计算单元的数量。
在上述实现过程中,还包括:活跃计算单元预判单元,内部预设有数据库用于存储各类待处理数据对应所需计算单元的数量,数据库可以设置在面向检测计算的芯片***外部,活跃计算单元预判单元读取第一计算单元的第一计算操作输出数据,与数据库中各类待处理数据比对,以获得处理第一计算操作输出数据所需第二计算单元的数量,提前预判所需第二计算单元的数量,加快对第一计算单元的调控速度,提高计算效率。
在一种可能的实现方式中,当多个第一指示信号处于连续激活状态,表示多个第一计算单元处于连续激活状态,当多个第一指示信号处于连续未激活状态,表示多个第一计算单元处于连续未激活状态
在上述实现过程中,一种可行的指示方式为为每一个第一计算单元和第二计算单元均设置1bit指示,另一种可行的指示方式为通过指示连续多少个第一计算单元被占用或者不被占用来实现所有第一计算单元工作状态的指示,比如A4U4作为第一指示信号,可用于指示前四个第一计算单元被占用激活,后四个第一计算单元不被占用,A2U4A2表示前两个第一计算单元处于占用激活状态,中间四个第一计算单元处于不占用状态,最后两个第一计算单元处于激活状态。获得预判数据的方法为对已有数据进行逻辑分析,进而得到需要占用的计算单元信息,例如使用卷积神经网络(CNN网络)在本计算架构进行部署,针对需要调用的计算单元进行灵活部署和协调调用,预判单元分析即将处理的计算操作,预先于计算操作部署之前得出所需的第一计算单元开销。
在一种可能的实现方式中,第一计算单元阵列和第二计算单元阵列用于执行训练任务或推理任务。
在上述实现过程中,第一计算单元阵列和第二计算单元阵列可以都用于执行训练任务,或者都用于执行推理任务,也可以训练任务和推理任务交叉进行,使用更加灵活。
第二方面,本申请实施例提供了一种面向检测计算的芯片方法,包括:
在第一计算单元阵列内设置多个第一编号的第一计算单元,用于在第一时间段执行第一计算操作,在第二计算单元阵列,设置多个第二编号的第二计算单元,用于在第二时间段执行第二计算操作,第二时间段在第一时间段之后,第一计算操作完成之后执行第二计算操作;控制单元用于判断执行第一计算操作所需第一计算单元的数量,以及执行第二计算操作所需第二计算单元的数量,并对第一计算单元和第二计算单元编号;设置活跃计算单元追踪单元,根据第一计算单元的第一指示信号,判断第一计算单元是否处于活跃状态,以及第二计算单元的第二指示信号,判断第二计算单元是否处于活跃状态;第一计算单元阵列执行完第一计算操作后,活跃计算单元追踪单元检测处于活跃状态的第一计算单元数量,若执行第二计算操作所需第二计算单元的数量,与处于活跃状态的第一计算单元数量一致,控制单元将第一编号修改为第二编号,第一计算单元的输出数据作为第一计算单元的输入数据,处于活跃状态的第一计算单元在第二时间段继续执行第二计算操作;若执行第二计算操作所需第二计算单元的数量,低于处于活跃状态的第一计算单元数量,控制单元将多余的第一计算单元暂时封存,控制单元将第一编号修改为第二编号,第一计算单元的输出数据作为第一计算单元的输入数据,处于活跃状态的第一计算单元在第二时间段继续执行第二计算操作;若执行第二计算操作所需第二计算单元的数量,高于处于活跃状态的第一计算单元数量,控制单元将空闲的第一计算单元调用为活跃状态,直至执行第二计算操作所需第二计算单元的数量,与处于活跃状态的第一计算单元数量一致,控制单元将第一编号修改为第二编号,第一计算单元的输出数据作为第一计算单元的输入数据,处于活跃状态的第一计算单元在第二时间段继续执行第二计算操作。
在上述实现过程中,第一计算单元阵列和第二计算单元阵列分别包含第一计算单元和第二计算单元,用于分别执行第一计算操作和第二计算操作,第二时间段在第一时间段之后,第二计算操作处于第一计算操作之后,第一计算单元设置有第一编号,第二计算单元设置有第二编号。控制单元用于判断执行第一计算操作所需第一计算单元的数量,以及执行第二计算操作所需第二计算单元的数量,并对第一计算单元和第二计算单元编号。活跃计算单元追踪单元,根据第一计算单元的第一指示信号以及第二计算单元的第二指示信号,判断第一计算单元和第二计算单元是否处于活跃状态,一种可行的指示方式为通过指示连续多少个第一计算单元被占用或者不被占用来实现所有第一计算单元工作状态的指示,比如A4U4作为第一指示信号,可用于指示前四个第一计算单元被占用激活,后四个第一计算单元不被占用,A2U4A2表示前两个第一计算单元处于占用激活状态,中间四个第一计算单元处于不占用状态,最后两个第一计算单元处于激活状态。第一计算操作执行完成后,活跃计算单元追踪单元检测处于活跃状态的第一计算单元数量,若执行第二计算操作所需第二计算单元的数量,与处于活跃状态的第一计算单元数量一致,控制单元将第一编号修改为第二编号,第一计算单元的输出数据作为第一计算单元的输入数据,处于活跃状态的第一计算单元在第二时间段继续执行第二计算操作。若执行第二计算操作所需第二计算单元的数量,低于处于活跃状态的第一计算单元数量,控制单元将多余的第一计算单元暂时封存,控制单元将第一编号修改为第二编号,第一计算单元的输出数据作为第一计算单元的输入数据,处于活跃状态的第一计算单元在第二时间段继续执行第二计算操作;若执行第二计算操作所需第二计算单元的数量,高于处于活跃状态的第一计算单元数量,控制单元将空闲的第一计算单元调用为活跃状态,直至执行第二计算操作所需第二计算单元的数量,与处于活跃状态的第一计算单元数量一致,控制单元将第一编号修改为第二编号,第一计算单元的输出数据作为第一计算单元的输入数据,处于活跃状态的第一计算单元在第二时间段继续执行第二计算操作。不同层之间所使用的计算单元位置可能是不一样的,而这会导致数据无意义的搬移,因为本身多余不必要的计算数据已经被移除。传统数据传输方式为第一计算单元——总线——DRAM或SRAM——总线——第二计算单元,或者是第一计算单元——总线——第二计算单元,传输路径较长。在本方案中采取了乱序操作,第一计算单元计算完成后的输出数据作为第一计算单元的输入数据,即本方案数据传输方式为第一计算单元——第一计算单元,只在第一计算单元自身传输,通过改变对第一计算单元的虚拟编号,使得***将第一计算单元认为是第二计算单元,不对第二计算单元做数据流动,同时第一计算单元可以结合控制单元传递所需的计算参数完成计算,循环以上操作直到计算完成,减少了数据搬移的过程,提高了计算效率。
Claims (7)
1.一种面向检测计算的芯片***,其特征在于,包括:
第一计算单元阵列,包含多个第一编号的第一计算单元,用于在第一时间段执行第一计算操作;
第二计算单元阵列,包含多个第二编号的第二计算单元,用于在第二时间段执行第二计算操作,第二时间段在第一时间段之后,第一计算操作完成之后执行第二计算操作;
控制单元,用于判断执行第一计算操作所需第一计算单元的数量,以及执行第二计算操作所需第二计算单元的数量,并对第一计算单元和第二计算单元编号;
所述第一计算单元阵列执行完第一计算操作后,所述控制单元将所述第一编号修改为所述第二编号,并在所述控制单元内部设置显示替代操作标识,第一计算单元的输出数据作为第一计算单元的输入数据,处于活跃状态的第一计算单元在第二时间段继续执行第二计算操作。
2.根据权利要求1所述的面向检测计算的芯片***,其特征在于,还包括:
活跃计算单元追踪单元,根据第一计算单元的第一指示信号,判断第一计算单元是否处于活跃状态,以及第二计算单元的第二指示信号,判断第二计算单元是否处于活跃状态;
所述第一计算单元阵列执行完第一计算操作后,所述活跃计算单元追踪单元检测处于活跃状态的第一计算单元数量,若执行第二计算操作所需第二计算单元的数量,与处于活跃状态的第一计算单元数量一致,所述控制单元将所述第一编号修改为所述第二编号,第一计算单元的输出数据作为第一计算单元的输入数据,处于活跃状态的第一计算单元在第二时间段继续执行第二计算操作;
若执行第二计算操作所需第二计算单元的数量,低于处于活跃状态的第一计算单元数量,所述控制单元将多余的第一计算单元暂时封存,所述控制单元将所述第一编号修改为所述第二编号,第一计算单元的输出数据作为第一计算单元的输入数据,处于活跃状态的第一计算单元在第二时间段继续执行第二计算操作;
若执行第二计算操作所需第二计算单元的数量,高于处于活跃状态的第一计算单元数量,所述控制单元将空闲的第一计算单元调用为活跃状态,直至执行第二计算操作所需第二计算单元的数量,与处于活跃状态的第一计算单元数量一致,所述控制单元将所述第一编号修改为所述第二编号,第一计算单元的输出数据作为第一计算单元的输入数据,处于活跃状态的第一计算单元在第二时间段继续执行第二计算操作。
3.根据权利要求2所述的面向检测计算的芯片***,其特征在于,所述第一计算单元阵列执行完第一计算操作后,所述活跃计算单元追踪单元检测处于活跃状态的第一计算单元数量,若执行第二计算操作所需第二计算单元的数量,高于处于活跃状态的第一计算单元数量,所述控制单元将暂时封存的第一计算单元解封,并使第一计算单元处于活跃状态,直至处于活跃状态的第一计算单元数量与第二计算操作所需的第二计算单元数量一致,所述控制单元将所述第一编号修改为所述第二编号,第一计算单元的输出数据作为第一计算单元的输入数据,处于活跃状态的第一计算单元在第二时间段继续执行第二计算操作。
4.根据权利要求3所述的面向检测计算的芯片***,其特征在于,还包括:
活跃计算单元预判单元,内预设有数据库用于存储各类待处理数据对应所需计算单元的数量,所述活跃计算单元预判单元将第一计算单元的第一计算操作输出数据,与所述数据库中各类待处理数据比对,获取处理第一计算操作输出数据所需第二计算单元的数量。
5.根据权利要求4所述的面向检测计算的芯片***,其特征在于,当多个第一指示信号处于连续激活状态,表示多个第一计算单元处于连续激活状态,当多个第一指示信号处于连续未激活状态,表示多个第一计算单元处于连续未激活状态。
6.根据权利要求1所述的面向检测计算的芯片***,其特征在于,所述第一计算单元阵列和所述第二计算单元阵列用于执行训练任务或推理任务。
7.一种面向检测计算的芯片方法,其特征在于,包括:
在第一计算单元阵列内设置多个第一编号的第一计算单元,用于在第一时间段执行第一计算操作,在第二计算单元阵列,设置多个第二编号的第二计算单元,用于在第二时间段执行第二计算操作,第二时间段在第一时间段之后,第一计算操作完成之后执行第二计算操作;控制单元用于判断执行第一计算操作所需第一计算单元的数量,以及执行第二计算操作所需第二计算单元的数量,并对第一计算单元和第二计算单元编号;设置活跃计算单元追踪单元,根据第一计算单元的第一指示信号,判断第一计算单元是否处于活跃状态,以及第二计算单元的第二指示信号,判断第二计算单元是否处于活跃状态;
所述第一计算单元阵列执行完第一计算操作后,所述活跃计算单元追踪单元检测处于活跃状态的第一计算单元数量,若执行第二计算操作所需第二计算单元的数量,与处于活跃状态的第一计算单元数量一致,所述控制单元将所述第一编号修改为所述第二编号,第一计算单元的输出数据作为第一计算单元的输入数据,处于活跃状态的第一计算单元在第二时间段继续执行第二计算操作;
若执行第二计算操作所需第二计算单元的数量,低于处于活跃状态的第一计算单元数量,所述控制单元将多余的第一计算单元暂时封存,所述控制单元将所述第一编号修改为所述第二编号,第一计算单元的输出数据作为第一计算单元的输入数据,处于活跃状态的第一计算单元在第二时间段继续执行第二计算操作;
若执行第二计算操作所需第二计算单元的数量,高于处于活跃状态的第一计算单元数量,所述控制单元将空闲的第一计算单元调用为活跃状态,直至执行第二计算操作所需第二计算单元的数量,与处于活跃状态的第一计算单元数量一致,所述控制单元将所述第一编号修改为所述第二编号,第一计算单元的输出数据作为第一计算单元的输入数据,处于活跃状态的第一计算单元在第二时间段继续执行第二计算操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311130687.6A CN116881195B (zh) | 2023-09-04 | 2023-09-04 | 面向检测计算的芯片***和面向检测计算的芯片方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311130687.6A CN116881195B (zh) | 2023-09-04 | 2023-09-04 | 面向检测计算的芯片***和面向检测计算的芯片方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116881195A true CN116881195A (zh) | 2023-10-13 |
CN116881195B CN116881195B (zh) | 2023-11-17 |
Family
ID=88271774
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311130687.6A Active CN116881195B (zh) | 2023-09-04 | 2023-09-04 | 面向检测计算的芯片***和面向检测计算的芯片方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116881195B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140013044A1 (en) * | 2012-07-04 | 2014-01-09 | Hon Hai Precision Industry Co., Ltd. | Computer system having function of detecting working state of memory bank |
CN113517009A (zh) * | 2021-06-10 | 2021-10-19 | 上海新氦类脑智能科技有限公司 | 存算一体式智能芯片、控制方法及控制器 |
CN113792010A (zh) * | 2021-09-22 | 2021-12-14 | 清华大学 | 存算一体芯片及数据处理方法 |
CN116362312A (zh) * | 2021-12-23 | 2023-06-30 | 哲库科技(上海)有限公司 | 一种神经网络加速装置、方法、设备和计算机存储介质 |
-
2023
- 2023-09-04 CN CN202311130687.6A patent/CN116881195B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140013044A1 (en) * | 2012-07-04 | 2014-01-09 | Hon Hai Precision Industry Co., Ltd. | Computer system having function of detecting working state of memory bank |
CN113517009A (zh) * | 2021-06-10 | 2021-10-19 | 上海新氦类脑智能科技有限公司 | 存算一体式智能芯片、控制方法及控制器 |
CN113792010A (zh) * | 2021-09-22 | 2021-12-14 | 清华大学 | 存算一体芯片及数据处理方法 |
CN116362312A (zh) * | 2021-12-23 | 2023-06-30 | 哲库科技(上海)有限公司 | 一种神经网络加速装置、方法、设备和计算机存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116881195B (zh) | 2023-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110348574B (zh) | 一种基于zynq的通用卷积神经网络加速结构及设计方法 | |
US20190026626A1 (en) | Neural network accelerator and operation method thereof | |
CN111832718B (zh) | 芯片架构 | |
CN109165728B (zh) | 一种卷积神经网络的基本计算单元及计算方法 | |
US11609792B2 (en) | Maximizing resource utilization of neural network computing system | |
CN112711478B (zh) | 基于神经网络的任务处理方法、装置、服务器和存储介质 | |
US20230297819A1 (en) | Processor array for processing sparse binary neural networks | |
CN112905530B (zh) | 片上架构、池化计算加速器阵列、单元以及控制方法 | |
US20220147804A1 (en) | Computation unit, related apparatus, and method | |
CN111752879B (zh) | 一种基于卷积神经网络的加速***、方法及存储介质 | |
WO2023029632A1 (zh) | 模型训练的方法、服务器、芯片以及*** | |
US20240241808A1 (en) | Application performance test method and apparatus, and method and apparatus for establishing performance test model | |
CN111831354A (zh) | 数据精度配置方法、装置、芯片、芯片阵列、设备及介质 | |
CN116881195B (zh) | 面向检测计算的芯片***和面向检测计算的芯片方法 | |
CN110929856A (zh) | 一种npu与主cpu的数据交互方法和装置 | |
CN114239816B (zh) | 一种卷积神经网络-图卷积神经网络可重构硬件加速架构 | |
CN109272112B (zh) | 一种面向神经网络的数据重用指令映射方法、***及装置 | |
CN112862079B (zh) | 一种流水式卷积计算架构设计方法及残差网络加速*** | |
CN113836655B (zh) | 一种基于arm-fpga平台的故障检测方法、介质及*** | |
CN111340224B (zh) | 适用于低资源嵌入式芯片的cnn网络的加速设计方法 | |
CN111027682A (zh) | 神经网络处理器、电子设备及数据处理方法 | |
CN117291240B (zh) | 卷积神经网络加速器及电子设备 | |
CN118093452B (zh) | 一种内存架构映射方法、设备、存储介质及程序产品 | |
JP3564327B2 (ja) | 図形処理装置 | |
CN109948785B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |