CN112990448A - 用于计算的方法、计算系统、计算设备和介质 - Google Patents

用于计算的方法、计算系统、计算设备和介质 Download PDF

Info

Publication number
CN112990448A
CN112990448A CN202110450723.1A CN202110450723A CN112990448A CN 112990448 A CN112990448 A CN 112990448A CN 202110450723 A CN202110450723 A CN 202110450723A CN 112990448 A CN112990448 A CN 112990448A
Authority
CN
China
Prior art keywords
network layer
computing
chip
output
input
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
Application number
CN202110450723.1A
Other languages
English (en)
Other versions
CN112990448B (zh
Inventor
马恺声
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tsinghua University
Original Assignee
Tsinghua University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tsinghua University filed Critical Tsinghua University
Priority to CN202110450723.1A priority Critical patent/CN112990448B/zh
Publication of CN112990448A publication Critical patent/CN112990448A/zh
Application granted granted Critical
Publication of CN112990448B publication Critical patent/CN112990448B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Neurology (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本公开涉及一种用于计算的方法、计算系统、计算设备和计算机可读存储介质。该方法包括:确定第一网络层分支和第二网络层分支是否为并行网络分支,第二网络层分支所包括的卷积层层数大于第一网络层分支所包括的卷积层层数;响应于确定第一网络层分支和第二网络层分支为并行网络分支,基于输入输出芯片与第一计算芯片组之间的距离以及输入输出芯片所配置的静态随机存取存储器的空闲存储空间,确定目标输入输出芯片;以及将第一网络层分支的最后一网络层的输出数据缓存至目标输入输出芯片所配置的静态随机存取存储器中,直至确认第二网络层分支的最后一网络层输出数据。本公开能够有效解决并行网络分支所导致的数据不平衡的问题。

Description

用于计算的方法、计算系统、计算设备和介质
技术领域
本公开总体上涉及数据处理技术,具体地,涉及用于计算的方法、计算系统、计算设备和计算机可读存储介质。
背景技术
机器学习相关技术(特别是深度神经网络技术)被日益广泛地应用于图像识别、对象检测、语言翻译、自动驾驶等各种应用场景。由于深度神经网络(deep neural networks,DNNs)需要密集的计算和内存访问,越来越复杂的应用场景也使得DNN配置更深和更复杂的网络,例如包括:数十亿次操作、以及大量的网络分支。不同网络分支所包括的卷积层的层数通常是不同的。
传统的用于计算的方案主要是:以流水线的方式在大规模的芯片系统中映射神经网络,例如,每个计算芯片组(集群)负责计算一层网络层的特征数据,并且根据网络的依赖性,数据流从一个计算芯片组的片上缓冲区流向另一个计算芯片组。由于每个卷积层的计算时间几乎相同,因此,包括更少卷积层层数的网络分支将比包括更多卷积层层数的网络分支更早地生成输出特征图,因此,对于传统的用于计算的方案,当上述卷积层层数不等的不同网络分支的输出特征图被输入同一网络层时,容易因不同网络分支所生成的输出特征图在时间上不同步而导致的不平衡的问题。
因此,传统的用于计算的方案存在无法解决上述并行网络层导致的数据不平衡的不足之处。
发明内容
本公开提供了一种用于计算的方法、计算系统、计算设备和计算机可读存储介质,能够有效解决并行网络分支所导致的数据不平衡的问题。
根据本公开的第一方面,提供了一种用于计算的方法,该方法包括:确定第一网络层分支和第二网络层分支是否为并行网络分支,第二网络层分支所包括的卷积层层数大于第一网络层分支所包括的卷积层层数;响应于确定第一网络层分支和第二网络层分支为并行网络分支,基于输入输出芯片与第一计算芯片组之间的距离以及输入输出芯片所配置的静态随机存取存储器的空闲存储空间,确定目标输入输出芯片,第一计算芯片组用于计算第一网络层分支的最后一网络层;以及将第一网络层分支的最后一网络层的输出数据缓存至目标输入输出芯片所配置的静态随机存取存储器中,直至确认第二网络层分支的最后一网络层输出数据。
根据本发明的第二方面,还提供了一种计算系统,该计算系统包括:编译器,编译器被配置为执行本公开的第一方面的方法,以用于生成用于控制芯片系统进行神经网络计算的指令;芯片系统,用于基于指令执行关于神经网络的计算,芯片系统包括:多个计算芯片,计算芯片至少包括通信模块、控制逻辑模块、缓冲区和计算单元阵列,计算芯片的尺寸小于预定尺寸阈值;多个输入输出芯片,输入输出芯片被配置在与计算芯片的边缘相邻,以便与计算芯片直接互连,多个输入输出芯片中的至少部分输入输出芯片被配置在芯片系统的边缘区域以用于实现与动态随机存取存储器之间的通信,输入输出芯片配置有静态随机存取存储器。
根据本公开的第三方面,还提供了一种计算设备。该计算设备包括一个或多个处理器;以及存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得设备执行本公开的第一方面的方法。
根据本公开的第四方面,还提供了一种计算机可读存储介质。该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现本公开的第一方面的方法。
在一些实施例中,直至确认第二网络层分支的最后一网络层输出数据包括:确认第二网络层分支的最后一网络层是否输出数据;以及响应于确认第二网络层分支的最后一网络层输出数据,将在目标输入输出芯片所配置的静态随机存取存储器中所缓存的第一网络层分支的最后一网络层的输出数据发送至第二计算芯片组,第二计算芯片组用于计算并行网络分支之后的共享收敛网络层。
在一些实施例中,确定目标输入输出芯片包括:确定与第一计算芯片组的距离符合第一预定条件的输入输出芯片;
确定符合第一预定条件的输入输出芯片所配置的静态随机存取存储器的空闲存储空间是否大于或者等于待缓存数据量;响应于确定符合第一预定条件的输入输出芯片所配置的静态随机存取存储器的空闲存储空间大于或者等于待缓存数据量,将符合第一预定条件的输入输出芯片确定为目标输入输出芯片;以及响应于确定符合第一预定条件的输入输出芯片所配置的静态随机存取存储器的空闲存储空间小于待缓存数据量,将与第一计算芯片组的距离符合第二预定条件的输入输出芯片确定为目标输入输出芯片。
在一些实施例中,确定与第一计算芯片组的距离符合第一预定条件的输入输出芯片包括:计算输入输出芯片与第一计算芯片组之间的第一平均距离;计算输入输出芯片与第二计算芯片组之间的第二平均距离;比较多个输入输出芯片所分别对应的第一平均距离和第二平均距离之和;以及响应于确定当前输入输出芯片所对应的第一平均距离和第二平均距离之和最小,确定当前输入输出芯片为符合第一预定条件的输入输出芯片。
在一些实施例中,符合第一预定条件的输入输出芯片为与第一计算芯片组的重心的距离最小的输入输出芯片,符合第二预定条件的输入输出芯片为与第一计算芯片组的重心的距离第二小的输入输出芯片。
在一些实施例中,用于计算的方法还包括:响应于确定多个网络层的输入数据分别来源于同一个在前网络层,确定多个网络层的步长和卷积核尺寸是否相匹配;响应于确定多个网络层的步长和卷积核尺寸相匹配,将多个网络层分成一个或者多个组,每个组中包括至少两个网络层;以及融合每个组所包括的至少两个网络层的数据流,以用于对应的计算芯片组将经数据流融合的至少两个网络层作为一层网络层进行计算。
在一些实施例中,融合每个组所包括的至少两个网络层的数据流包括以下一项:直接将每个组所包括的至少两个网络层的整个权重和输出特征图以顺序的方式融合在一起;或者将每个组所包括的至少两个网络层的各权重和输出特征图以交替的方式融合在一起。
在一些实施例中,用于计算的方法还包括:基于预定的逻辑条带宽度,针对计算芯片组进行逻辑分区;以列的方式分配多个计算芯片,以便由所分配的多个计算芯片组成用于计算对应网络层的计算芯片组,列被配置为具有物理条带宽度;以及将逻辑分区映射至计算芯片的物理资源。
在一些实施例中,将逻辑分区映射至计算芯片的物理资源包括:将计算芯片组中的计算芯片自下而上以之字形的方式进行映射,以便逻辑分区映射至计算芯片的物理资源,计算芯片的数量是物理条带宽度的倍数,并且逻辑条带宽度与物理条带宽度相同。
在一些实施例中,响应于确定第一网络层分支和第二网络层分支为并行网络分支包括:响应于确定第一网络层分支和第二网络层分支的第一网络层的输入特征图分别来源于同一个在前网络层,并且第一网络层分支和第二网络层分支的最后一网络层的输出特征图分别去向于同一个在后网络层,确定第一网络层分支和第二网络层分支为并行网络分支。
在一些实施例中,多个输入输出芯片中的部分被配置在芯片系统的内部区域。
在一些实施例中,缓冲区包括第一缓冲区和第二缓冲区,以用于使得计算芯片的数据通信时间和计算时间重叠。
在一些实施例中,输入输出芯片还包括用于实现与动态随机存取存储器之间的通信的接口,接口被配置在输入输出芯片的边缘区域。
在一些实施例中,计算芯片的第一边缘区域和第二边缘区域分别配置有通信模块,第一边缘区域和第二边缘区域分别位于计算单元阵列的两侧。
提供发明内容部分是为了以简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。发明内容部分无意标识本公开的关键特征或主要特征,也无意限制本公开的范围。
附图说明
图1示出了根据本公开的实施例的用于实施计算的方法的计算系统的示意图。
图2示出了根据本公开的实施例的用于实施计算的芯片系统的示意图。
图3示出了根据本公开的实施例的用于计算的方法的流程图。
图4示出了根据本公开的实施例的确定目标输入输出芯片的方法的流程图。
图5示出了根据本公开的实施例的用于融合并行网络层的方法的流程图。
图6示出了根据本公开的实施例的用于融合两个网络层的权重和输出特征图的方法的示意图。
图7示出了根据本公开的实施例的用于流水线映射的方法的示意图。
图8示出了根据本公开的实施例的用于流水线映射的方法的流程图。
图9示出了根据本公开的实施例的用于计算的方法的示意图。
图10示出了根据本公开的实施例的用于缓存待缓存数据的方法的示意图。
在各个附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施例。虽然附图中显示了本公开的优选实施例,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。
如前文所描述,在传统的用于计算的方法中,通常以流水线的方式在大规模的芯片系统中映射神经网络,因此,当卷积层层数不等的多个并行网络分支的所生成的输出特征图输入同一网络层时,容易因不同网络分支所生成的输出特征图(或称输出数据)在时间上不同步而导致的数据不平衡的问题。
为了至少部分地解决上述问题以及其他潜在问题中的一个或者多个,本公开的示例实施例提出了一种用于计算的方法。该方案通过确定卷积层层数不等的第一网络层分支和第二网络层分支为并行网络分支,基于输入输出芯片与用于计算较短(即,卷积层层数较少)的最后一网络层的第一计算芯片组之间的距离和输入输出芯片所配置的静态随机存取存储器(SRAM)的空闲存储空间来确定目标输入输出芯片,并利用目标输入输出芯片静态随机存取存储器来缓存第一网络层分支的最后一网络层的输出数据(获,输出特征图),直至确认第二网络层分支的最后一层网络的最后一网络层生成输出特征图,本公开可以使得并行的较短网络层分支的最后一网络层所生成的输出特征图和较长网络层分支的最后一网络层所生成的输出特征图在向下一共享网络层(例如收敛网络层)传递时实现时间上的同步,进而解决因不同网络分支所生成的输出特征图在时间上不同步而导致的数据不平衡的问题。
图1示出了根据本公开的实施例的用于实施计算的方法的计算系统100的示意图。如图1所示,计算系统100包括:计算设备110、芯片系统130、动态随机存取存储器140。芯片系统130例如包括多个计算芯片132和多个输入输出芯片134。例如,芯片系统130包含136个计算芯片和8个输入输出芯片(图1仅示意性示出了部分计算芯片和输入输出芯片)。每个输入输出芯片例如通过12×12网格网上封装(network on package, NoP)连接所有计算芯片。每个计算芯片通过例如4个通信通道与周围的芯片进行D2D链接。因此,每个计算芯片都可以自由地向其他输入输出芯片发送数据或从其他输入输出芯片接收数据。芯片系统130中的计算芯片需要同步。考虑到DNN映射是静态的,这意味着可以在编译时确定对内存中每个位置的数据访问顺序,计算芯片和输入输出芯片可以同步集群内和集群间的计算和通信。
关于计算设备110,其至少包括编译器。编译器用于生成用以控制芯片系统130的指令。换言之,编译器用于接收待编译的程序112,经由编译模块114针对所接收的待编译的程序112进行转换,以便生成经编译的程序116,经编译的程序116中所包括的对应程序段配置有用于控制芯片系统的指令。具体而言,计算设备110例如用于确定第一网络层分支和第二网络层分支是否为并行网络分支;如果确定第一网络层分支和第二网络层分支为并行网络分支,基于输入输出芯片与第一计算芯片组(用于计算第一网络层分支的最后一网络层)之间的距离和输入输出芯片所配置的静态随机存取存储器的空闲存储空间,确定目标输入输出芯片;以及将第一网络层分支的最后一网络层的输出数据缓存至目标输入输出芯片所配置的静态随机存取存储器中,直至确认第二网络层分支的最后一网络层生成输出数据。编译模块114例如至少包括:并行网络分支确定单元120、目标输入输出芯片确定单元122、以及第一网络分支输出数据缓存单元124。
关于并行网络分支确定单元120,其用于确定第一网络层分支和第二网络层分支是否为并行网络分支,第二网络层分支所包括的卷积层层数大于第一网络层分支所包括的卷积层层数。
关于目标输入输出芯片确定单元122,其用于如果确定第一网络层分支和第二网络层分支为并行网络分支,基于输入输出芯片与第一计算芯片组之间的距离以及输入输出芯片所配置的静态随机存取存储器的空闲存储空间,确定目标输入输出芯片,第一计算芯片组用于计算第一网络层分支的最后一网络层。
关于第一网络分支输出数据缓存单元124,其用于将第一网络层分支的最后一网络层的输出数据缓存至目标输入输出芯片所配置的静态随机存取存储器中,直至确认第二网络层分支的最后一网络层输出数据。
关于芯片系统130,其用于执行神经网络的相关计算。以下结合图2介绍芯片系统200。图2示出了根据本公开的实施例的用于实施计算的芯片系统200的示意图。芯片系统200包括多个计算芯片212(例如图2中被标记为浅色的芯片)和多个输入输出芯片214(例如图2中被标记为深色的芯片)。计算芯片212至少包括通信模块、控制逻辑模块、缓冲区234和计算单元阵列232。图2中右侧部分所指示放大的计算芯片212。如图2右侧部分所示,通信模块例如包括第一接收模块、第二发射模块、第二接收模块、第二发射模块、第三接收模块、第三发射模块、第四接收模块、第四发射模块。通信模块被配置在计算芯片的第一边缘区域(例如上边缘区域)和第二边缘区域(例如下边缘区域),第一边缘区域和第二边缘区域分别位于计算单元阵列232的两侧。关于缓冲区234,其例如被配置为双缓冲区,即包括第一缓冲区和第二缓冲区,以用于使得计算芯片212的数据通信时间和计算时间重叠。在一些实施例中,计算芯片例如是小尺寸的计算芯片,其尺寸小于预定尺寸阈值。
关于输入输出芯片214,其例如配置有静态随机存取存储器(SRAM)222、通信模块、高速总线接口(peripheral component interconnect express,Pcle)、GDD接口(例如而不限于是图像处理双倍数据速率内存接口 GDDR6 PHY)。该静态随机存取存储器222可以用作大型缓冲区,以用于缓存并行网络分支的不平衡数据。通信模块、GDD 接口例如被配置在输入输出芯片的三个边缘区域。
在一些实施例中,GDDR6 PHY的尺寸例如是5940µm×1100µm、通信模块(例如而不限于为GRS模块)的尺寸是686µm×565µm,二者被配置在输入输出芯片214的三个边缘区域(例如如图2左侧部分所示),输入输出芯片214剩下约9.76mm2的未使用的中央区域。例如可以利用cacti 6.5仿真一个32nm下的6MB 的SRAM,然后放缩到12nm工艺下,以填充上述未使用的中央区域,并为其他模块留出了足够的面积。
在一些实施例中,输入输出芯片214被配置在与计算芯片的边缘相邻,以便与计算芯片直接互连。另外,多个输入输出芯片中的至少部分被配置在芯片系统210的边缘区域以用于实现与动态随机存取存储器之间的通信。应当理解,如图2所示,输入输出芯片可以位于芯片系统210的边缘区域,例如标记214所指示,输入输出芯片也可以位于芯片系统210的内部区域,例如标记216所指示。由于芯片系统和动态随机存取存储器通常被配置中不同的封装中,通过将输入输出芯片配置在芯片系统210的边缘区域,便于实现与动态随机存取存储器之间的电气连接与数据通信。
以下将结合图3描述根据本公开的实施例的用于计算的方法300。图3示出了根据本公开的实施例的用于计算的方法300的流程图。图9示出了根据本公开的实施例的用于计算的方法900的示意图。应当理解,方法300例如可以在图1所描述的计算设备110处执行。应当理解,方法300还可以包括未示出的附加动作和/或可以省略所示出的动作,本公开的范围在此方面不受限制。
在步骤302处,计算设备110(例如经由编译器)确定第一网络层分支和第二网络层分支是否为并行网络分支,第二网络层分支所包括的卷积层层数大于第一网络层分支所包括的卷积层层数。如图9所示,第一网络层分支例如至少由卷积层5至卷积层6组成,第二网络层分支例如由卷积层1至卷积层4组成,第二网络层分支所包括的卷积层层数大于第一网络层分支所包括的卷积层层数。应当理解,上文提及的“第二网络层分支所包括的卷积层层数大于第一网络层分支所包括的卷积层层数”的含义也包括:第一网络层分支未包括卷积层(即所包括的卷积层层数为0),而第二网络层分支包括有卷积层的情形。另外,图3中仅是示意性示出两个网络分支,并行网络可以具有更多网络层分支,第一网络层分支和第二网络层分支可以是多个网络层分支中较短的网络分支和较长的网络分支。
关于计算设备110,其例如至少包括编译器和芯片系统。芯片系统例如至少包括多个可用于神经网络相关计算的计算芯片和输入输出芯片。计算芯片至少包括通信模块、控制逻辑模块、缓冲区和计算单元阵列。输入输出芯片配置有静态随机存取存储器。在一些实施例中计算芯片的尺寸小于预定尺寸阈值。例如,计算芯片的尺寸为几个平方毫米。
关于并行网络分支,其例如是共享发散网络层和收敛层的多个网络分支。发散网络层例如是其输出特征图去向多个网络分支,例如,第一网络层分支和第二网络层分支。收敛层例如是其输入特征图来源于多个网络分支,例如,第一网络层分支和第二网络层分支。如图9所示,标记910指示发散网络层,标记940指示收敛网络层。应当理解并行网络分支也可以包括两个以上的网络分支。并行网络分支的不同分支分别包括的网络层通常是不相等的。例如,第一网络层分支所包括的卷积层层数小于第二网络层分支所包括的卷积层层数。
在步骤304处,如果计算设备110确定第一网络层分支和第二网络层分支为并行网络分支,基于输入输出芯片与第一计算芯片组之间的距离以及输入输出芯片所配置的静态随机存取存储器的空闲存储空间,确定目标输入输出芯片,第一计算芯片组用于计算第一网络层分支的最后一网络层。如果计算设备110确定第一网络层分支和第二网络层分支并非是并行网络分支,跳转至步骤302。例如,图9中的输入输出芯片952被确定为目标输入输出芯片,该输入输出芯片952配置有SRAM 950。
关于确定第一网络层分支和第二网络层分支为并行网络分支的方式例如包括:如果确认第二网络层分支的最后一网络层是否输出数据;以及如果确认第二网络层分支的最后一网络层输出数据,将在目标输入输出芯片所配置的静态随机存取存储器中所缓存的第一网络层分支的最后一网络层的输出数据发送至第二计算芯片组,第二计算芯片组用于计算并行网络分支之后的共享收敛网络层。
关于确定目标输入输出芯片的方式例如包括:确定与第一计算芯片组的距离符合第一预定条件的输入输出芯片;确定符合第一预定条件的输入输出芯片所配置的静态随机存取存储器的空闲存储空间是否大于或者等于待缓存数据量;响应于确定符合第一预定条件的输入输出芯片所配置的静态随机存取存储器的空闲存储空间大于或者等于待缓存数据量,将符合第一预定条件的输入输出芯片确定为目标输入输出芯片;以及响应于确定符合第一预定条件的输入输出芯片所配置的静态随机存取存储器的空闲存储空间小于待缓存数据量,将与第一计算芯片组的距离符合第二预定条件的输入输出芯片确定为目标输入输出芯片。
在一些实施例中,符合第一预定条件的输入输出芯片的方法包括多种。例如包括:计算输入输出芯片与第一计算芯片组之间的第一平均距离;计算输入输出芯片与第二计算芯片组之间的第二平均距离;比较多个输入输出芯片所分别对应的第一平均距离和第二平均距离之和;以及响应于确定当前输入输出芯片所对应的第一平均距离和第二平均距离之和最小,确定当前输入输出芯片为符合第一预定条件的输入输出芯片。以下结合如下公式(1)来说明符合第一预定条件的输入输出芯片的方法。
Figure DEST_PATH_IMAGE001
(1)
在上述公式(1)中,Cuse代表符合第一预定条件的输入输出芯片。
Figure 671459DEST_PATH_IMAGE002
代表从用于计算源网络层(即,并行网络分支中的较短网络分支的最后一网络层)的计算芯片组到输入输出芯片c的第一平均距离,即从第一计算芯片组中的各个计算芯片到输入输出芯片C的距离之和的平均值。
Figure DEST_PATH_IMAGE003
代表从用于计算目的网络层(即,并行网络分支之后的共享收敛网络层)的计算芯片组到输入输出芯片C的第二平均距离,即从第二计算芯片组中的各个计算芯片到输入输出芯片C的距离之和的平均值。C代表输入输出芯片。c代表关于输入输出芯片的变量。S代表用于计算源网络层的计算芯片组(即,第一计算芯片组)。Di代表用于计算目的网络层的第i个计算芯片组(即,第二计算芯片组)。
Figure 339332DEST_PATH_IMAGE004
代表取第一平均距离与第二平均距离之和的最小值。
下文将结合图4详细说明用于确定目标输入输出芯片的方法,在此,不再赘述。
关于待缓存数据量的确定方式包括多种。在一些实施例中,待缓存数据量取决于不同并行网络分支之间的卷积层数的差异和源网络层(即,并行网络分支中的较短网络分支的最后一网络层)的输出特征图数据量。例如,假设存在三个并行网络分支所包括的卷积层数分别为L、M和N,其中(L> M> N),上述三个并行网络分支共享相同的收敛网络层和发散网络层,则卷积层数为M和N的两个网络分支(第二长网络分支和最短网络分支)的最后一层的输出特征图需分别缓存在输入输出芯片的SRAM中,直到卷积层数为L的网络分支(最长网络分支)的最后一网络层生成输出特征图,其中待缓存数据量例如可以根据以下公式(2)来计算。
Y=(L-M + 1)*XM+(L-N + 1)*XN (2)
在上述公式(1)中,Y代表待缓存数据量,L、M和N分别代表三个并行网络分支所包括的卷积层数,其中,L> M> N。XM代表卷积层数为M的网络分支的最后一网络层所映射的输出特征图的大小。XN代表卷积层数为N的网络分支的最后一网络层所映射的输出特征图的大小。
关于待缓存数据量的其他计算方式,下文将结合图4以及公式(3)和(4)具体说明,在此不再赘述。
在步骤306处,计算设备110将第一网络层分支的最后一网络层的输出数据缓存至目标输入输出芯片所配置的静态随机存取存储器中,直至确认第二网络层分支的最后一网络层输出数据。如图9所示,较短的网络层分支的最后一网络层(即,标记930指示的卷积层6)所生成的输出特征图被缓存在输入输出芯片952的SRAM 950中,直到较长的网络分支的最后一网络层(即,标记920指示卷积层4)生成的输出特征图。然后,被缓存在输入输出芯片952的SRAM中卷积层6所生成的输出特征图被发送至用于计算收敛网络层940的第二计算芯片组。关于将第一网络层分支的最后一网络层的输出数据缓存在目标输入输出芯片所配置的静态随机存取存储器中的方式例如是:使用NoP将第一网络层分支的最后一网络层所生成的输出特征图映射至所确定的目标输入输出芯片所配置的静态随机存取存储器中。
关于直至确认第二网络层分支的最后一网络层输出特征图的方法例如包括:计算设备110经由编译器确认第二网络层分支的最后一网络层是否输出数据;以及响应于确认第二网络层分支的最后一网络层输出数据,将在目标输入输出芯片所配置的静态随机存取存储器中所缓存的第一网络层分支的最后一网络层的输出数据发送至第二计算芯片组,第二计算芯片组用于计算并行网络分支之后的共享收敛网络层。应当理解,每一网络层的计算会由对应计算芯片组所负责,如果确定较长的网络分支的最后一网络层生成输出特征图时,会将缓存在目标输入输出芯片中的SRAM中的数据(即较短的网络分支最后一网络层的输出特征图)发送至负责计算两个并行网络分支的下一网络层的计算芯片组。籍此,较短网络分支最后一网络层的输出特征图与较长网络分支的最后一网络层的输出特征图被同步地传递至用于计算下一网络层的计算芯片组。
在上述方案中,通过确定卷积层层数不等的第一网络层分支和第二网络层分支为并行网络分支,基于输入输出芯片与用于计算较短(即,卷积层层数较少)的最后一网络层的第一计算芯片组之间的距离和输入输出芯片所配置的静态随机存取存储器(SRAM)的空闲存储空间来确定目标输入输出芯片,并利用目标输入输出芯片静态随机存取存储器来缓存第一网络层分支的最后一网络层的输出数据(获,输出特征图),直至确认第二网络层分支的最后一层网络的最后一网络层生成输出特征图,本公开可以使得并行的较短网络层分支的最后一网络层所生成的输出特征图和较长网络层分支的最后一网络层所生成的输出特征图在向下一共享网络层(例如收敛网络层)传递时实现时间上的同步,进而解决因不同网络分支所生成的输出特征图在时间上不同步而导致的数据不平衡的问题。
以下将结合图4描述用于确定目标输入输出芯片的方法。图4示出了根据本公开的实施例的确定目标输入输出芯片的方法400的流程图。应当理解,方法400例如可以在图1所描述的计算设备110处执行。
在步骤402处,计算设备110确定与第一计算芯片组的距离符合第一预定条件的输入输出芯片。
关于确定与第一计算芯片组的距离符合第一预定条件的输入输出芯片的方法包括多种。在一些实施例中,确定符合第一预定条件的输入输出芯片的方法包括:计算输入输出芯片与第一计算芯片组之间的第一平均距离;计算输入输出芯片与第二计算芯片组之间的第二平均距离;比较多个输入输出芯片所分别对应的第一平均距离和第二平均距离之和;以及响应于确定当前输入输出芯片所对应的第一平均距离和第二平均距离之和最小,确定当前输入输出芯片为符合第一预定条件的输入输出芯片。
在另一些实施例中,确定符合第一预定条件的输入输出芯片的方法包括:分别计算多个输入输出芯片中的每个输入输出芯片与第一计算芯片组的重心的距离;比较所计算的距离,如果确定当前输入输出芯片与第一计算芯片组之间的重心的距离最小,则确定当前输入输出芯片符合第一预定条件的输入输出芯片。
在步骤404处,确定符合第一预定条件的输入输出芯片所配置的静态随机存取存储器的空闲存储空间是否大于或者等于待缓存数据量。
关于待缓存数据量的计算方式,下文结合公式(3)和(4)以及图10加以说明。图10示出了根据本公开的实施例的用于缓存待缓存数据的方法1000的示意图。
假设在并行网络分支所共享的相同的收敛网络层和发散网络层之间分别存在n个网络分支,n个网络分支分别具有a1、a2…an个卷积层。例如,每个网络分支的最后一网络层每次生成的输出特征图的数据量例如分别是v1、v2…vn。然后,对于第i个网络分支而言(i例如是相对较短的网络分支),其缓存数据量可以通过以下公式(3)进行计算。
Figure DEST_PATH_IMAGE005
(3)
在上述公式(3)中,Vei 代表第i个网络分支的缓存数据量。ai代表第i个网络分支所具有的卷积层层数,max{}代表n个网络分支中最长的网络分支所包括的卷积层层数。vi代表第i个网络分支的最后一网络层每次生成的输出特征图的数据量。
例如,将从最短网络分支的最后一网络层至收敛网络层之间的称为“SRAM缓存边界”。当多个“SRAM缓存边界”开始于相同的网络层时,例如图10中的标记1002所指示“SRAM缓存边界”的和标记1004所指示的“SRAM缓存边界”均是从卷积层1开始缓存。应当理解,相同的网络层的输出特征图可以存储在一起。同时缓存的数据量是所有 “SRAM缓存边界”中的数据量的最大值。例如,第l层网络层的待缓存数据量例如可以通过以下公式(4)加以计算。
Figure 869802DEST_PATH_IMAGE006
(4)
在上述公式(4)中,e(l,l’) 代表从第l层网络层至第l’层网络层的“SRAM缓存边界”。Ve代表“SRAM缓存边界”的数据量。C l 代表第l层网络层的输出特征图的待缓存数据量。当e不是“SRAM缓存边界”时,Ve为“0”。
在步骤406处,如果确定符合第一预定条件的输入输出芯片所配置的静态随机存取存储器的空闲存储空间大于或者等于待缓存数据量,将符合第一预定条件的输入输出芯片确定为目标输入输出芯片。例如,第一平均距离和第二平均距离的和最小的输入输出芯片的静态随机存取存储器的空闲存储空间大于或者等于待缓存数据量,则将该输入输出芯片确定为目标输入输出芯片。然后,最短的网络分支最后一网络层的输出特征图被发送到所确定的目标输入输出芯片的SRAM,以便在时间上进行缓存。当最长的网络分支产生相应的输出特征图时,该缓存在SRAM中的输出特征图将被发送至用于计算并行网络分支的共享收敛网络层的第二计算芯片组。
在步骤408处,如果确定符合第一预定条件的输入输出芯片所配置的静态随机存取存储器的空闲存储空间小于待缓存数据量,将与第一计算芯片组的距离符合第二预定条件的输入输出芯片确定为目标输入输出芯片。
第一平均距离和第二平均距离的和如果第一平均距离和第二平均距离的和最小的输入输出芯片的静态随机存取存储器的空闲存储空间小于待缓存数据量,则将第一平均距离和第二平均距离之和第二小的输入输出芯片、并且其静态随机存取存储器空闲存储空间大于或者等于待缓存数据量的输入输出芯片作为目标输入输出芯片。然后,将较短网络分支的最后一层的输出特征图分别缓存至发送到该目标输入输出芯片的SRAM中,依此类推。
通过采用上述技术手段,本公开能够使得目标输入输出芯片与接收和发送缓存输出特征图相关的计算芯片组进行短距离链路,以减少通信能量、误码率。
在传统的用于计算的方法中,并行的网络层并作为两个或者多个网络层分别由不同的计算芯片组进行计算。在一些实施例中,方法200还包括用于融合并行网络层的方法500。下文将结合图5和图6说明用于融合并行网络层的方法500。图5示出了根据本公开的实施例的用于融合并行网络层的方法500的流程图。图6示出了根据本公开的实施例的用于融合两个网络层的权重和输出特征图的方法600的示意图。应当理解,方法500例如可以在图1所描述的计算设备110处执行。
在步骤502处,计算设备11确定多个网络层的输入特征(或输入特征图)是否分别来源于同一个在前网络层。如果确定多个网络层的输入特征分别来源于不同在前网络层,返回步骤502处。
在步骤504处,如果计算设备110确定多个网络层的输入特征(或输入特征图)分别来源于同一个在前网络层,确定多个网络层的步长和卷积核尺寸是否相匹配。如果确定多个网络层的步长和卷积核尺寸不相匹配,返回步骤502处。
在步骤506处,计算设备110确定多个网络层的步长和卷积核尺寸相匹配,将多个网络层分成一个或者多个组,每个组中包括至少两个网络层。
确定多个网络层的步长和卷积核尺寸相匹配的方式例如包括:如果确定多个网络层的步长和卷积核尺寸相同,则确定多个网络层的步长和卷积核尺寸相匹配。关于确定分组的方式例如是:以因式分解的方式确定步长和卷积核尺寸相同的多个网络层的多个组合方式,针对每个组合方式计算延时和框架得能量损耗,以便确定最佳的组合方式。
在步骤508处,计算设备110融合每个组所包括的至少两个网络层的数据流,以用于对应的计算芯片组将经数据流融合的至少两个网络层作为一层网络层进行计算。
通过采用上述技术手段,本公开可以通过仅从上一层或DRAM中获取一副本来消除输入数据重复,从而节省数据通信和内存访问成本。同时,经融合的更大的网络层提供了更多的空间以利用和优化,提高了计算芯片内的PE阵列的利用率,并且利于充分利用片上存储器。并且,通过将并行网络层融合到具有较大操作数的较大层中,可以优化芯片的资源分配。相比较而言,如果未采用上述并行网络层融合方式,由于复制输入数据(即输入特征图)需要充分缓冲,分配给并行网络层(例如在DNN的网络结构中)的芯片集群的芯片数量将被增加。这将进一步导致在同一段的所有芯片集群需要更多的芯片资源。如果将并行网络层融合到具有较大操作数的较大网络层中,则可以增加段中每个芯片的操作数,成比例地减少段中芯片集群的芯片资源需求。
关于融合每个组所包括的至少两个网络层的数据流的方法例如包括:直接将每个组所包括的至少两个网络层的整个权重和输出特征图以顺序的方式融合在一起;或者将每个组所包括的至少两个网络层的各权重和输出特征图以交替的方式融合在一起。
图6示出了两种用于融合两个网络层的权重和输出特征图的不同的方法。例如,650指示共享的输入特征图。图6中的小立方体代表权重内核。两个需要融合的并行的网络层的权重内核数例如分别为K2和K1(例如,K2 = 2K1)。标记610所指示的图6的上层部分示意直接将每个组所包括的两个网络层的整个内核以顺序的方式融合在一起的融合方式(即顺序融合方式)。标记620所指示的图6的下层部分示意将每个组所包括的两个网络层的内核以交替的方式融合在一起的融合方式(即,交替融合方式)。标记630指示经由顺序融合方式所融合的输出特征图V1。标记640指示经由交替融合方式所融合的输出特征图V2。顺序融合方式可以直接将并行网络层的层的整个内核融合在一起,使得融合后的输出可以更有序地映射到计算芯片组上。交替融合方式可以以交替的方式将并行网络层的内核和输出特征图融合在一起,使得不同的后续网络层所要求的输出特征图随时间分布更为均匀。交替融合方式与现有的串行层流水线数据流ALLO兼容。ALLO 可以沿着通道切割输出并且及时将经切割的输出特征图发送至下一网络层。
交替融合方式所融合的输出特征图沿计算芯片组的分布更为均匀。可以根据系统和映射策略来选择匹配的融合方式。
通过采用上述技术手段,神经网络中的并行的网络层被融合成一层网络层以由对应的计算芯片组进行计算,进而优化了神经网络中的并行网络层,使其像单层网络层一样进行计算,从而消除了过多的输入特征图的重复,减少了内存访问开销并优化了芯片资源的分配。
在一些实施例中,方法200还包括用于流水线映射的方法800。下文将结合图7和8说明用于流水线映射的方法。图7示出了根据本公开的实施例的用于流水线映射的方法700的示意图。图8示出了根据本公开的实施例的用于流水线映射的方法800的流程图。应当理解,方法800例如可以在图1所描述的计算设备110处执行。
传统的用于流水线空间映射的方法例如是:将计算芯片的分配过程(即,分配哪些计算芯片来组成计算芯片组用以计算对应的网络层)以及针对芯片组进行逻辑分区过程(即,网络层如何映射至计算芯片组中的各计算芯片)耦合在一起。例如传统的计算芯片组的确定过程例如是:基于矩形分区策略确定各计算芯片组。传统的针对芯片组进行逻辑分区过程例如是:基于该矩形的物理计算芯片组物理形状进行逻辑分区。即逻辑分区策略与计算芯片组的物理形状是绑定的,无法解耦合。例如,如果计算芯片组的物理形状是2*4的矩形,逻辑分区所基于的维度也必须是是2*4的矩形。
本公开所提供的用于流水线映射的方法800能够使得逻辑分区策略与计算芯片组的物理形状解耦合。例如,如图7所示,由于芯片集群中包括计算芯片和输入输出芯片,因此由计算芯片和输入输出芯片所组成的芯片集群其物理形状是非矩形的。应当理解,传统的针对计算芯片组进行逻辑分区的方式例如是基于矩形的芯片集群物理轮廓,因此,传统的逻辑分区的方式无法针对非矩形物理轮廓的芯片集群进行逻辑分区。因此,有必要将逻辑分区与计算芯片的分配解耦合。
在步骤802处,计算设备110基于预定的逻辑条带宽度,针对计算芯片组进行逻辑分区。例如,通过灵活地调整逻辑条带宽度,针对计算芯片组进行逻辑分区。如图7所示,预定逻辑条带宽度为4,基于该预定的逻辑条带宽度针对芯片集群710进行逻辑分区,以生成标记720所指示的1至8的逻辑分区。
在步骤804处,以列的方式分配多个计算芯片,以便由所分配的多个计算芯片组成用于计算对应网络层的计算芯片组,列被配置为具有物理条带宽度。应当理解,步骤804和步骤802可以并行。物理计算芯片的数量是物理条带宽度的倍数,并且逻辑分区逻辑条带宽度与物理芯片组的物理条带宽度相同。由于允许列的部分未被分配该计算芯片组的计算芯片,芯片组可以是任何形状。例如,确定物理条带宽度为3,则以3个芯片为一列地逐列进行布置芯片集群730,例如分配了4列,共计10个芯片,其中包括8个计算芯片(例如计算芯片740)和2个输入输出芯片(例如,输入输出芯片742)。芯片集群730的最后一列(第4列)分配了1个计算芯片。
在步骤806处,将逻辑分区映射至计算芯片的物理资源。逻辑分区的维度和分配芯片组的维度是不同的。因此需要以物理映射作为桥梁将逻辑分区映射至计算芯片的物理资源。如图7所示,芯片集群750中,逻辑分区1至8被映射至8个计算芯片的物理资源。
关于将所进行的逻辑分区映射至计算芯片的物理资源的方式例如包括:将计算芯片组中的计算芯片自下而上以之字形的方式进行映射,以便逻辑分区映射至计算芯片的物理资源,计算芯片的数量是物理条带宽度的倍数,并且逻辑条带宽度与物理条带宽度相同。例如,芯片集群750中,最下一排自左向右的逻辑分区1至3分别物理映射到3个计算芯片的物理资源上。第二排排自右向左的分区4至5分别物理映射到2个计算芯片的物理资源上,之后跳过输入输出芯片,分区6至8自左向右分别被映射到第三排的3个计算芯片的物理资源上。
通过采用上述手段,本公开能够解耦物理芯片集群形状与逻辑分区形状之间的耦合,使逻辑分区避免受到芯片集群的物理形状的限制,实现更小细粒度的芯片分配和分区策略,以便更好地映射具有不规则形状的计算资源,更加充分地利用片上存储器的位置。
上文所描述的各个过程和处理,例如方法300、400、500和800,可由计算设备处执行。该计算设备例如包括:至少一个处理器(至少一个图形处理器和至少一个中央处理器);以及与至少一个处理器通信连接的存储器;其中存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行。在一些实施例中,300、400、500和800,可被实现为计算机软件程序,其被有形地包含于机器可读介质。在一些实施例中,计算机程序的部分或者全部可以经由ROM和/或通信单元而被载入和/或安装到计算设备上。当计算机程序被加载到RAM并由GPU和CPU执行时,可以执行上文描述的方法300、400、500和800,的一个或多个动作。
本公开可以是方法、装置、系统和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的中央处理单元,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的中央处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改。

Claims (17)

1.一种用于计算的方法,包括:
确定第一网络层分支和第二网络层分支是否为并行网络分支,所述第二网络层分支所包括的卷积层层数大于所述第一网络层分支所包括的卷积层层数;
响应于确定第一网络层分支和第二网络层分支为并行网络分支,基于输入输出芯片与第一计算芯片组之间的距离以及输入输出芯片所配置的静态随机存取存储器的空闲存储空间,确定目标输入输出芯片,所述第一计算芯片组用于计算所述第一网络层分支的最后一网络层;以及
将所述第一网络层分支的最后一网络层的输出数据缓存至所述目标输入输出芯片所配置的静态随机存取存储器中,直至确认所述第二网络层分支的最后一网络层输出数据。
2.根据权利要求1所述的方法,其中直至确认所述第二网络层分支的最后一网络层输出数据包括:
确认所述第二网络层分支的最后一网络层是否输出数据;以及
响应于确认所述第二网络层分支的最后一网络层输出数据,将在所述目标输入输出芯片所配置的静态随机存取存储器中所缓存的所述第一网络层分支的最后一网络层的输出数据发送至第二计算芯片组,所述第二计算芯片组用于计算所述并行网络分支之后的共享收敛网络层。
3.根据权利要求1所述的方法,其中确定目标输入输出芯片包括:
确定与所述第一计算芯片组的距离符合第一预定条件的输入输出芯片;
确定符合第一预定条件的输入输出芯片所配置的静态随机存取存储器的空闲存储空间是否大于或者等于待缓存数据量;
响应于确定符合第一预定条件的输入输出芯片所配置的静态随机存取存储器的空闲存储空间大于或者等于待缓存数据量,将符合第一预定条件的输入输出芯片确定为目标输入输出芯片;以及
响应于确定符合第一预定条件的输入输出芯片所配置的静态随机存取存储器的空闲存储空间小于待缓存数据量,将与所述第一计算芯片组的距离符合第二预定条件的输入输出芯片确定为目标输入输出芯片。
4.根据权利要求3所述的方法,其中确定与所述第一计算芯片组的距离符合第一预定条件的输入输出芯片包括:
计算输入输出芯片与所述第一计算芯片组之间的第一平均距离;
计算输入输出芯片与所述第二计算芯片组之间的第二平均距离;
比较多个输入输出芯片所分别对应的所述第一平均距离和所述第二平均距离之和;以及
响应于确定当前输入输出芯片所对应的第一平均距离和所述第二平均距离之和最小,确定所述当前输入输出芯片为符合第一预定条件的输入输出芯片。
5.根据权利要求3所述的方法,其中符合第一预定条件的输入输出芯片为与所述第一计算芯片组的重心的距离最小的输入输出芯片,符合第二预定条件的输入输出芯片为与所述第一计算芯片组的重心的距离第二小的输入输出芯片。
6.根据权利要求1所述的方法,还包括:
响应于确定多个网络层的输入数据分别来源于同一个在前网络层,确定所述多个网络层的步长和卷积核尺寸是否相匹配;
响应于确定所述多个网络层的步长和卷积核尺寸相匹配,将所述多个网络层分成一个或者多个组,每个组中包括至少两个网络层;以及
融合每个组所包括的至少两个网络层的数据流,以用于对应的计算芯片组将经数据流融合的所述至少两个网络层作为一层网络层进行计算。
7.根据权利要求6所述的方法,其中融合每个组所包括的至少两个网络层的数据流包括以下一项:
直接将每个组所包括的至少两个网络层的整个权重和输出特征图以顺序的方式融合在一起;或者
将每个组所包括的至少两个网络层的各权重和输出特征图以交替的方式融合在一起。
8.根据权利要求1所述的方法,还包括:
基于预定的逻辑条带宽度,对计算芯片组进行逻辑分区;
以列的方式分配多个计算芯片,以便由所分配的多个计算芯片组成用于计算对应网络层的计算芯片组,所述列被配置为具有物理条带宽度;以及
将逻辑分区映射至计算芯片的物理资源。
9.根据权利要求8所述的方法,其中将逻辑分区映射至计算芯片的物理资源包括:
将计算芯片组中的计算芯片自下而上以之字形的方式进行映射,以便逻辑分区映射至计算芯片的物理资源,所述计算芯片的数量是物理条带宽度的倍数,并且所述逻辑条带宽度与所述物理条带宽度相同。
10.根据权利要求1所述的方法,其中响应于确定第一网络层分支和第二网络层分支为并行网络分支包括:
响应于确定所述第一网络层分支和第二网络层分支的第一网络层的输入特征图分别来源于同一个在前网络层,并且所述第一网络层分支和第二网络层分支的最后一网络层的输出特征图分别去向于同一个在后网络层,确定所述第一网络层分支和第二网络层分支为并行网络分支。
11.一种计算系统,包括:
编译器,所述编译器被配置为执行权利要求1-10中任一项所述的方法,以用于生成用于控制芯片系统进行神经网络计算的指令;
芯片系统,用于基于所述指令执行关于神经网络的计算,所述芯片系统包括:
多个计算芯片,所述计算芯片至少包括通信模块、控制逻辑模块、缓冲区和计算单元阵列,所述计算芯片的尺寸小于预定尺寸阈值;
多个输入输出芯片,所述输入输出芯片被配置在与所述计算芯片的边缘相邻,以便与所述计算芯片直接互连,所述多个输入输出芯片中的至少部分输入输出芯片被配置在所述芯片系统的边缘区域以用于实现与动态随机存取存储器之间的通信,所述输入输出芯片配置有静态随机存取存储器。
12.根据权利要求11所述的计算系统,其中所述多个输入输出芯片中的部分被配置在所述芯片系统的内部区域。
13.根据权利要求11所述的计算系统,其中所述缓冲区包括第一缓冲区和第二缓冲区,以用于使所述计算芯片的数据通信时间和计算时间重叠。
14.根据权利要求11所述的计算系统,其中所述输入输出芯片还包括用于实现与动态随机存取存储器之间的通信的接口,所述接口被配置在所述输入输出芯片的边缘区域。
15.根据权利要求11所述的计算系统,其中所述计算芯片的第一边缘区域和第二边缘区域分别配置有通信模块,所述第一边缘区域和第二边缘区域分别位于所述计算单元阵列的两侧。
16.一种计算设备,包括:
一个或多个处理器;以及
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述计算设备实现权利要求1-10中任一项所述的方法。
17.一种计算机可读存储介质,其上存储有计算机程序,所述程序被机器执行时实现权利要求1-10任一项所述的方法。
CN202110450723.1A 2021-04-26 2021-04-26 用于计算的方法、计算系统、计算设备和介质 Active CN112990448B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110450723.1A CN112990448B (zh) 2021-04-26 2021-04-26 用于计算的方法、计算系统、计算设备和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110450723.1A CN112990448B (zh) 2021-04-26 2021-04-26 用于计算的方法、计算系统、计算设备和介质

Publications (2)

Publication Number Publication Date
CN112990448A true CN112990448A (zh) 2021-06-18
CN112990448B CN112990448B (zh) 2021-08-03

Family

ID=76340202

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110450723.1A Active CN112990448B (zh) 2021-04-26 2021-04-26 用于计算的方法、计算系统、计算设备和介质

Country Status (1)

Country Link
CN (1) CN112990448B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108229519A (zh) * 2017-02-17 2018-06-29 北京市商汤科技开发有限公司 图像分类的方法、装置及系统
US20180314926A1 (en) * 2017-04-28 2018-11-01 Intel Corporation Smart memory handling and data management for machine learning networks
CN109740739A (zh) * 2018-12-29 2019-05-10 北京中科寒武纪科技有限公司 神经网络计算装置、神经网络计算方法及相关产品
CN110211111A (zh) * 2019-05-31 2019-09-06 上海联影医疗科技有限公司 一种血管提取的方法、装置、图像处理设备及存储介质
CN111797983A (zh) * 2020-05-25 2020-10-20 华为技术有限公司 一种神经网络构建方法以及装置
CN112561057A (zh) * 2020-12-09 2021-03-26 清华大学 一种状态控制方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108229519A (zh) * 2017-02-17 2018-06-29 北京市商汤科技开发有限公司 图像分类的方法、装置及系统
US20180314926A1 (en) * 2017-04-28 2018-11-01 Intel Corporation Smart memory handling and data management for machine learning networks
CN109740739A (zh) * 2018-12-29 2019-05-10 北京中科寒武纪科技有限公司 神经网络计算装置、神经网络计算方法及相关产品
CN110211111A (zh) * 2019-05-31 2019-09-06 上海联影医疗科技有限公司 一种血管提取的方法、装置、图像处理设备及存储介质
CN111797983A (zh) * 2020-05-25 2020-10-20 华为技术有限公司 一种神经网络构建方法以及装置
CN112561057A (zh) * 2020-12-09 2021-03-26 清华大学 一种状态控制方法及装置

Also Published As

Publication number Publication date
CN112990448B (zh) 2021-08-03

Similar Documents

Publication Publication Date Title
US10282338B1 (en) Configuring routing in mesh networks
US10783310B2 (en) Method and apparatus for performing parallel routing using a multi-threaded routing procedure
US9054977B2 (en) Automatic NoC topology generation
US8050256B1 (en) Configuring routing in mesh networks
US8151088B1 (en) Configuring routing in mesh networks
US20110314255A1 (en) Message broadcast with router bypassing
US20210271630A1 (en) Compiler Flow Logic for Reconfigurable Architectures
US9405712B2 (en) On-chip traffic prioritization in memory
CN114008586A (zh) 使用处理元件阵列的转置运算
CN114580653A (zh) 机器学习计算优化方法和编译器
KR20210108749A (ko) 가속기, 가속기의 동작 방법 및 이를 포함한 가속기 시스템
US20190236444A1 (en) Functional synthesis of networks of neurosynaptic cores on neuromorphic substrates
KR20210148586A (ko) 스케줄러, 스케줄러의 동작 방법 및 이를 포함한 가속기 시스템
US11941528B2 (en) Neural network training in a distributed system
CN103914412A (zh) 用于存储设备中的流量优先化的方法,存储设备以及存储系统
US11372752B2 (en) Topological scheduling
Lee et al. Task parallelism-aware deep neural network scheduling on multiple hybrid memory cube-based processing-in-memory
JP2022137247A (ja) 複数の入力データセットのための処理
US11704270B2 (en) Networked computer with multiple embedded rings
CN112990448B (zh) 用于计算的方法、计算系统、计算设备和介质
CN115244909A (zh) 机器学习加速器中的队列分配
US20230094933A1 (en) Connecting processors using twisted torus configurations
GB2617114A (en) Multicore master/slave communications
US9600446B2 (en) Parallel multicolor incomplete LU factorization preconditioning processor and method of use thereof
CN112153147A (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