CN116187434A - 面向深度学习的粗粒度可重构阵列仿真器系统和计算方法 - Google Patents

面向深度学习的粗粒度可重构阵列仿真器系统和计算方法 Download PDF

Info

Publication number
CN116187434A
CN116187434A CN202310103775.0A CN202310103775A CN116187434A CN 116187434 A CN116187434 A CN 116187434A CN 202310103775 A CN202310103775 A CN 202310103775A CN 116187434 A CN116187434 A CN 116187434A
Authority
CN
China
Prior art keywords
data
initial
deep learning
output result
reconfigurable array
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.)
Pending
Application number
CN202310103775.0A
Other languages
English (en)
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.)
University of Science and Technology of China USTC
Original Assignee
University of Science and Technology of China USTC
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 University of Science and Technology of China USTC filed Critical University of Science and Technology of China USTC
Priority to CN202310103775.0A priority Critical patent/CN116187434A/zh
Publication of CN116187434A publication Critical patent/CN116187434A/zh
Pending legal-status Critical Current

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/10Interfaces, programming languages or software development kits, e.g. for simulating neural networks
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Logic Circuits (AREA)

Abstract

本公开提供了一种面向深度学习的粗粒度可重构阵列仿真器系统和计算方法,可以应用于深度学习技术领域以及可重构阵列技术领域。该面向深度学习的粗粒度可重构阵列仿真器系统包括:存储模块,用于存储初始图数据;数据调度模块,用于存储包括多个指令的指令集,以及使存储模块根据指令集将初始图数据传输至可重构阵列中;可重构阵列,用于接收初始图数据,以及根据深度学习模型的网络层的计算类型,调用图形处理器对初始图数据进行并行计算得到输出结果。

Description

面向深度学习的粗粒度可重构阵列仿真器系统和计算方法
技术领域
本公开涉及深度学习技术领域以及可重构阵列技术领域,更具体地,涉及一种面向深度学习的粗粒度可重构阵列仿真器系统和计算方法。
背景技术
粗粒度可重构阵列具有较好的灵活性和计算能效。在大规模片上系统((Systemon Chip,SOC)设计的前期,利用粗粒度可重构阵列仿真器进行设计能够降低芯片开发成本,并且可以减少芯片开发周期,后期可以与寄存器转换级(Register Transfer Level,RTL)模型进行联合仿真,验证仿真结果正确性。
在实现本公开构思的过程中,发明人发现相关技术中至少存在如下问题:相关技术中,在面对大规模数据处理的情况下,需要耗费大量时间,导致数据处理的效率较低。
发明内容
有鉴于此,本公开提供了一种面向深度学习的粗粒度可重构阵列仿真器系统和计算方法。
本公开的一个方面提供了一种面向深度学习的粗粒度可重构阵列仿真器系统,包括:
存储模块,用于存储初始图数据;
数据调度模块,用于存储包括多个指令的指令集,以及使存储模块根据指令集将初始图数据传输至可重构阵列中;
可重构阵列,用于接收初始图数据,以及根据深度学习模型的网络层的计算类型,调用图形处理器对初始图数据进行并行计算得到输出结果。
根据本公开的实施例,其中,可重构阵列包括:
第一处理单元,用于在深度学习模型的网络层的计算类型为线性计算类型的情况下,接收初始图数据以及调用图形处理器对初始图数据进行并行计算得到第一子输出结果;
第二处理单元,用于在深度学习模型的网络层的计算类型为非线性类型的的情况下,接收初始图数据以及对初始图数据进行计算得到第二子输出结果,以及基于第一子输出结果和第二子输出结果,得到输出结果。
根据本公开的实施例,其中,第一处理单元包括:
第一子处理单元,用于在深度学习模型的网络层的计算类型为线性计算类型的情况下,接收初始图数据,将初始图数据传输至中央处理器;
第二子处理单元,用于利用中央处理器将初始图数据传输至图形处理器,以及利用图形处理器根据初始图数据调用指定数量的线程对初始图数据进行并行计算得到第一子输出结果。
根据本公开的实施例,其中,存储模块包括:
第一存储单元,用于存储特征图数据;
第二存储单元,用于根据可重构阵列的容量,对特征图数据从多个维度进行切分,得到初始图数据。
根据本公开的实施例,其中,第二存储单元包括:
第一子存储单元,用于根据可重构阵列的容量,按照高维度和宽维度对特征图数据进行切分,得到初始图数据;或
第二存储子单元,用于根据可重构阵列的容量,按照高维度、宽维度和通道维度对特征图数据进行切分,得到初始图数据。
根据本公开的实施例,其中,第一处理单元还包括:
第三处理子单元,用于根据初始图数据在存储单元中的第一存储位置,确定初始图数据在图形处理器的第二存储位置;
第四处理子单元,用于根据第二存储位置,调用指定数量的线程对初始图数据进行并行计算得到第一子输出结果。
根据本公开的实施例,其中,存储模块还用于接收输出结果,在确定深度学习模型的网络层未计算完的情况下,将输出结果作为特征图数据。
根据本公开的实施例,其中,存储模块还用于接收输出结果,在确定深度学习模型的网络层均计算完的情况下,输出输出结果。
根据本公开的实施例,上述系统还包括:
接口模块,用于在系统包括多个的情况下,在多个系统之间传输输出结果。
本公开的另一方面提供了一种面向深度学习的粗粒度可重构阵列仿真器计算方法,包括:
利用存储模块存储初始图数据;
利用数据调度模块存储包括多个指令的指令集,以及使存储模块根据指令集将初始图数据传输至可重构阵列中;
利用可重构阵列接收初始图数据,以及根据深度学习模型的网络层的计算类型,调用图形处理器对初始图数据进行并行计算得到输出结果。
根据本公开的实施例,通过在面向深度学习的粗粒度可重构阵列仿真器系统中,利用存储模块存储初始图数据;利用数据调度模块存储包括多个指令的指令集,以及使存储模块根据指令集将初始图数据传输至可重构阵列中,利用可重构阵列接收初始图数据,以及根据深度学习模型的网络层的计算类型,调用图形处理器对初始图数据进行并行计算得到输出结果。由于数据的计算过程所消耗的时间远大于传输数据的时间,因此调用图形处理器进行并行计算可以显著加快整体神经网络的计算速度,缩短计算时间。所以至少部分地克服了相关技术中,在面对大规模数据处理的情况下,需要耗费大量时间,导致数据处理的效率较低的技术问题,进而达到了提升数据处理效率的技术效果。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了根据本公开实施例的面向深度学习的粗粒度可重构阵列仿真器系统的框图;
图2示意性示出了示意性示出了根据本公开实施例的切分特征图数据的示意图;
图3示意性示出了根据本公开实施例的初始图数据传输至图形处理器的示意图;
图4示意性示出了根据本公开实施例的面向深度学习的粗粒度可重构阵列仿真器计算系统的结构图;以及
图5示意性示出了根据本公开实施例的面向深度学习的粗粒度可重构阵列仿真器计算方法的流程图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
在本公开的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,采取了必要保密措施,且不违背公序良俗。
在本公开的技术方案中,在获取或采集用户个人信息之前,均获取了用户的授权或同意。
在相关技术中,现有的可重构计算(Coarse-grained ReconfigurableArchitecture,CGRA)仿真器在其相对于RTL模型进行仿真时,虽然速度有所提高,但是面对大规模的完全嵌套计算密集型的数据处理时,所耗费的时间代价是巨大的。
有鉴于此,本公开的实施例提供了一种面向深度学习的粗粒度可重构阵列仿真器系统。该系统包括存储模块,用于存储初始图数据;数据调度模块,用于存储包括多个指令的指令集,以及使存储模块根据指令集将初始图数据传输至可重构阵列中;可重构阵列,用于接收初始图数据,以及根据深度学习模型的网络层的计算类型,调用图形处理器对初始图数据进行并行计算得到输出结果。因此,需要加快仿真速度,缩短芯片的仿真时间。由于数据的计算过程所消耗的时间远大于传输数据的时间,因此调用图形处理器进行并行计算可以显著加快整体神经网络的计算速度,缩短计算时间。所以至少部分地克服了相关技术中,在面对大规模数据处理的情况下,需要耗费大量时间,导致数据处理的效率较低的技术问题,进而达到了提升数据处理效率的技术效果。
图1示意性示出了根据本公开实施例的面向深度学习的粗粒度可重构阵列仿真器系统的框图。
如图1所示,该面向深度学习的粗粒度可重构阵列仿真器系统100包括存储模块101、数据调度模块102和可重构阵列103。
存储模块101,用于存储初始图数据;
数据调度模块102,用于存储包括多个指令的指令集,以及使存储模块根据指令集将初始图数据传输至可重构阵列中;
可重构阵列103,用于接收初始图数据,以及根据深度学习模型的网络层的计算类型,调用图形处理器对初始图数据进行并行计算得到输出结果。
根据本公开的实施例,初始图数据可以是对从需要进行处理的目标图片进行预处理得到的数据,也可以是根据需要进行处理的目标图片在深度学习模型的其中一层网络层计算后输出的输出结果进行预处理得到的数据,目标图片可以是需要进行目标检测的图片,还可以是需要恢复清晰度的图片,在此不做限定。
根据本公开的实施例,存储模块可以是具有存储功能的存储器。
根据本公开的实施例,指令集中可以包括多个指令,例如,用于将初始图数据从存储模块传输至可重构阵列的传输指令,对初始图数据进行存储的存储指令。
根据本公开的实施例,数据调度模块(Data Engine,DE)中可以存储指令集,可以由数据调度模块发送传输指令,初始图数据由存储模块传输到可重构阵列进行计算,完成计算之后可以将输出结果数据再传输到存储模块。
根据本公开的实施例,深度学习模型的网络层的计算类型可以是加法类型、乘法类型等等,可以网络层的具体计算确定。
根据本公开的实施例,图形处理器(graphics processing unit,GPU)是专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上做图像和图形相关运算工作的微处理器,并且,图形处理器可以进行并行计算。由于初始图数据的传输过程是串行,无法提高其速度,而深度学习模型的网络层中的计算过程是完全嵌套,多重循环,并且大量的时间都消耗在计算过程,因此,可以调用图形处理器进行并行计算以提高计算效率。
根据本公开的实施例,通过在面向深度学习的粗粒度可重构阵列仿真器系统中,利用存储模块存储初始图数据;利用数据调度模块存储包括多个指令的指令集,以及使存储模块根据指令集将初始图数据传输至可重构阵列中,利用可重构阵列接收初始图数据,以及根据深度学习模型的网络层的计算类型,调用图形处理器对初始图数据进行并行计算得到输出结果。由于数据的计算过程所消耗的时间远大于传输数据的时间,因此调用图形处理器进行并行计算可以显著加快整体神经网络的计算速度,缩短计算时间。所以至少部分地克服了相关技术中,在面对大规模数据处理的情况下,需要耗费大量时间,导致数据处理的效率较低的技术问题,进而达到了提升数据处理效率的技术效果。
根据本公开的实施例,其中,可重构阵列包括:
第一处理单元,用于在深度学习模型的网络层的计算类型为线性计算类型的情况下,接收初始图数据以及调用图形处理器对初始图数据进行并行计算得到第一子输出结果;
第二处理单元,用于在深度学习模型的网络层的计算类型为非线性类型的的情况下,接收初始图数据以及对初始图数据进行计算得到第二子输出结果,以及基于第一子输出结果和第二子输出结果,得到输出结果。
根据本公开的实施例,第一处理单元可以是处理单元阵列(process elementarray,PEA),主要进行线性计算,例如深度学习模型中的卷积计算;第二处理单元可以是超级处理单元阵列(Super PE,SPE),主要进行非线性计算,例如,例如深度学习模型中的池化和激活计算。
根据本公开的实施例,可以根据深度学习模型的网络层的计算类型,确定初始图数据传输至第一处理单元或者第二处理单元。
根据本公开的实施例,在深度学习模型的网络层的计算类型为线性计算类型的情况下,即可以将初始图数据传输至进行线性计算的第一处理单元,第一处理单元调用图形处理器对初始图数据进行并行计算得到第一子输出结果,由于卷积计算中会存在加法等一些非线性计算,因此,可以将第一子输出结果传输至第二处理单元。
根据本公开的实施例,在深度学习模型的网络层的计算类型为非线性类型的的情况下,即可以将初始图数据传输至进行非线性计算的第二处理单元,利用第二处理单元对初始图数据进行非线性计算得到第二子计算结果,最终得到输出结果。
根据本公开的实施例,利用第一处理单元调用图形处理器进行并行计算以及利用第二处理单元继续非线性计算,使得对初始图数据的中不同的数据区分计算,进一步提升了计算效率。
根据本公开的实施例,其中,存储模块包括:
第一存储单元,用于存储特征图数据;
第二存储单元,用于根据可重构阵列的容量,对特征图数据从多个维度进行切分,得到初始图数据。
根据本公开的实施例,第一存储单元可以是动态随机存取存储器(DynamicRandom Access Memory,DRAM),第二存储单元可以是静态随机存取存储器(StaticRandom-Access Memory,SRAM)。
根据本公开的实施例,第一存储单元可以仅用于存储特征图数据,第二存储单元可以通过C++AMP标准,创建array_view对象对特征图数据从多个维度切分。
根据本公开的实施例,特征图数据可以是要进行处理的目标图片中的数据,还可以是从需要进行处理的目标图片在深度学习模型的第一层网络层计算后输出的数据。
根据本公开的实施例,由于输入图是三维数组数据,其维度顺序是:高(Height,H)维度,宽(Width,W)维度,通道(Channel,C)维度,因此可以对特征图数据进行切分的预处理得到多个数组的初始图数据。
根据本公开的实施例,由可重构阵列的容量大小对特征图数据进行切分可以将数据划分为更小的计算,以便对初始图数据能够传输至可重构阵列中。
根据本公开的实施例,其中,第二存储单元包括:
第一子存储单元,用于根据可重构阵列的容量,按照高维度和宽维度对特征图数据进行切分,得到初始图数据;或
第二存储子单元,用于根据可重构阵列的容量,按照高维度、宽维度和通道维度对特征图数据进行切分,得到初始图数据。
根据本公开的实施例,可重构阵列的容量是不同的,在可重构阵列的容量较大的情况下,可以按照高维度和宽维度对特征图数据进行切分,在在可重构阵列的容量较小的情况下,可以按照高维度、宽维度和通道维度对特征图数据进行切分。
图2示意性示出了示意性示出了根据本公开实施例的切分特征图数据的示意图。
如图2所示,第一子存储单元可以是按照高维度和宽维度对特征图数据进行切分,以H*W*C的特征图数据为例,先将通道C维度进行切分,再以高度H维度进行切分,宽度W维度不进行切分,得到包括多个w*h数组的初始图数据,可重构阵列的最大容量为MAX_CGRA_SIZE,满足size<=MAX_CGRA_SIZE,为一次数据输入。
根据本公开的实施例,第二子存储单元还可以是按照高维度、宽维度和通道维度对特征图数据进行切分,以H*W*C的特征图数据为例,先将通道C维度进行切分,再以高度H维度进行切分,最后以宽度W维度进行切分。
根据本公开的实施例,由可重构阵列的容量对特征图数据进行多维度的切分,可以使初始图数据更好的传输至可重构阵列中。
根据本公开的实施例,其中,第一处理单元包括:
第一子处理单元,用于在深度学习模型的网络层的计算类型为线性计算类型的情况下,接收初始图数据,将初始图数据传输至中央处理器;
第二子处理单元,用于利用中央处理器将初始图数据传输至图形处理器,以及利用图形处理器根据初始图数据调用指定数量的线程对初始图数据进行并行计算得到第一子输出结果。
根据本公开的实施例,第一处理单元可以通过第一子处理单元将初始图数据传输至中央处理器,再由第二子处理单元利用中央处理器将初始图数据传输至图形处理器。
图3示意性示出了根据本公开实施例的初始图数据传输至图形处理器的示意图。
如图3所示,由于初始图数据中是划分后的数据,中央处理器在传输过程中是串行传输,假设此时的初始图数据的数量为size大小,size满足size=h*w*c,size个8bit整数通过array_view对象从可重构阵列中复制到图形处理器中进行并行计算,图形处理器产生size个线程对应每个h*w*c数组,size个h*w*c数组与卷积核的对应位置上的数据进行卷积计算,产生的结果由图形处理器再返回到可重构阵列中。
根据本公开的实施例,在图形处理器进行并行计算的过程中,可以通过编程parallel_for_each()接收的数据在图形处理器中默认的加速器上进行加速,加速器对范围内的每个h*w*c数组都会启动一个线程,线程要执行内核函数,因此可通过extent类对h*w*c数组调用指定数量的线程进行计算。
根据本公开的实施例,通过调用指定数量的线程对初始图数据进行并行计算,能够使图形处理器对初始图数据的并行计算更加有序,从而进一步提升了图形处理器的计算效率。
根据本公开的实施例,其中,第一处理单元还包括:
第三处理子单元,用于根据初始图数据在存储单元中的第一存储位置,确定初始图数据在图形处理器的第二存储位置;
第四处理子单元,用于根据第二存储位置,调用指定数量的线程对初始图数据进行并行计算得到第一子输出结果。
根据本公开的实施例,第一存储位置即初始图数据在存储单元的存储位置,第一存储位置可以反映初始图数据在存储单元中的存储顺序,第三处理子单元可以根据存储顺序确定初始图数据在图形处理器中的第二存储位置,第二存储位置反映的初始图数据的存储顺序可以与初始图数据在存储单元中的存储顺序相同。
根据本公开的实施例,第四处理子单元可以根据第二存储位置确定初始图数据的存储顺序,按照存储顺序访问初始图数据,根据初始图数据的数据量,调用指定数量的线程对初始图数据进行并行计算得到第一子输出结果。
根据本公开的实施例,通过初始图数据在存储单元中的第一存储位置,将初始图数据存储在图形处理器的第二存储位置,可以使初始图数据的传输更加有序,从而进一步提升了图形处理器的计算效率。
根据本公开的实施例,其中,存储模块还用于接收输出结果,在确定深度学习模型的网络层未计算完的情况下,将输出结果作为特征图数据。
根据本公开的实施例,输出结果可以是深度学习模型的其中一层网络层的计算结果,因此在确定深度学习模型的网络层未计算完的情况下,可以将输出结果作为特征图数据,继续进行下一层网络层的计算,具体计算过程可以参见本公开其他实施例的描述,在此不再赘述。
根据本公开的实施例,其中,存储模块还用于接收输出结果,在确定深度学习模型的网络层均计算完的情况下,输出输出结果。
根据本公开的实施例,在确定深度学习模型的网络层均计算完的情况下,即深度学习模型的计算结束,可以将输出结果输出。
根据本公开的实施例,上述系统还包括:
接口模块,用于在系统包括多个的情况下,在多个系统之间传输输出结果。
根据本公开的实施例,在初始图数据的数据量很大的情况下,可以利用多个面向深度学习的粗粒度可重构阵列仿真器系统进行计算,在面向深度学习的粗粒度可重构阵列仿真器系统有多个的情况下,多个系统之间需要进行数据交互,因此可以利用接口(Network Interface,NI)模块在多个系统之间传输输出结果。
图4示意性示出了根据本公开实施例的面向深度学习的粗粒度可重构阵列仿真器计算系统的结构图。
如图4所示,该系统包括第一存储单元401、第二存储单元402、数据调度模块102、第一处理单元403、第二处理单元404和接口模块405。
根据本公开的实施例,存储单元中包括第一存储单元401和第二存储单元402,第一存储单元401即DRAM,第二存储单元402即SRAM,数据调度模块102即DE,第一处理单元403即PEA、第二处理单元404即SPE,接口模块405即NI,各部分的作用见本公开其他实施例中的描述,在此不再赘述。
根据本公开的实施例,基于图4中的结构,给出部分指令。系统之间的数据传输通过指令驱使,指令由函数封装,对于Ld_dram_sram表示从DRAM传输num次size大小的初始图数据到SRAM中。Ld_sram_pea表示在深度学习网络的计算层是线性类型的情况下,将SRAM中的数据,从SRAM传输num次size大小的数据到PEA中进行线性计算,此时的初始图数据是经过排布之后的初始图数据。Ld_sram_spe表示在深度学习网络的计算层是非线性类型的情况下,进行如:池化、激活操作,直接将size大小的数据传输num次到SPE中进行计算。St_spe_dram表示将计算完成的输出结果传输到DRAM中,作为下一次深度学习模型的网络层的输入。MPI_send表示给其他节点的数据发送数据,第i个节点给第j个节点发送num次size大小的数据。MPI_recv接收其他节点传送的数据,第i个节点接收第j个节点发送的num次size大小的数据。
图5示意性示出了根据本公开实施例的面向深度学习的粗粒度可重构阵列仿真器计算方法的流程图。
如图5所示,该方法包括操作S501-操作S503。
在操作S501,利用存储模块存储初始图数据。
在操作S502,利用数据调度模块存储包括多个指令的指令集,以及使存储模块根据指令集将初始图数据传输至可重构阵列中。
在操作S503,利用可重构阵列接收初始图数据,以及根据深度学习模型的网络层的计算类型,调用图形处理器对初始图数据进行并行计算得到输出结果。
根据本公开的实施例,面向深度学习的粗粒度可重构阵列仿真器计算方法的描述可以参考面向深度学习的粗粒度可重构阵列仿真器计算系统的描述,在此不再赘述。
根据本公开的实施例,面向深度学习的粗粒度可重构阵列仿真器计算方法的计算过程如下:
Figure BDA0004074124300000131
根据本公开的实施例,整体的大致循环如上述过程所示,第一个loop按照通道维度切分,第二个loop按照高维度切分,第三个loop按照宽维度切分。以上三层loop在调用图形处理器之前已经完成,即对初始图数据的排布。利用Parallel_for_each进行并行计算,图形处理器为其分配指定数量的线程进行计算。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。

Claims (10)

1.一种面向深度学习的粗粒度可重构阵列仿真器系统,包括:
存储模块,用于存储初始图数据;
数据调度模块,用于存储包括多个指令的指令集,以及使所述存储模块根据所述指令集将所述初始图数据传输至可重构阵列中;
可重构阵列,用于接收所述初始图数据,以及根据深度学习模型的网络层的计算类型,调用图形处理器对所述初始图数据进行并行计算得到输出结果。
2.根据权利要求1所述的系统,其中,所述可重构阵列包括:
第一处理单元,用于在所述深度学习模型的所述网络层的计算类型为线性计算类型的情况下,接收所述初始图数据以及调用所述图形处理器对所述初始图数据进行并行计算得到第一子输出结果;
第二处理单元,用于在所述深度学习模型的所述网络层的计算类型为非线性类型的的情况下,接收所述初始图数据以及对所述初始图数据进行计算得到第二子输出结果,以及基于所述第一子输出结果和所述第二子输出结果,得到所述输出结果。
3.根据权利要求2所述的系统,其中,所述第一处理单元包括:
第一子处理单元,用于在所述深度学习模型的网络层的计算类型为线性计算类型的情况下,接收所述初始图数据,将所述初始图数据传输至中央处理器;
第二子处理单元,用于利用所述中央处理器将所述初始图数据传输至所述图形处理器,以及利用所述图形处理器根据所述初始图数据调用指定数量的线程对所述初始图数据进行并行计算得到第一子输出结果。
4.根据权利要求1所述的系统,其中,所述存储模块包括:
第一存储单元,用于存储特征图数据;
第二存储单元,用于根据所述可重构阵列的容量,对所述特征图数据从多个维度进行切分,得到所述初始图数据。
5.根据权利要求4所述的系统,其中,所述第二存储单元包括:
第一子存储单元,用于根据所述可重构阵列的容量,按照高维度和宽维度对所述特征图数据进行切分,得到初始图数据;或
第二存储子单元,用于根据所述可重构阵列的容量,按照高维度、宽维度和通道维度对所述特征图数据进行切分,得到初始图数据。
6.根据权利要求5所述的系统,其中,所述第一处理单元还包括:
第三处理子单元,用于根据所述初始图数据在所述存储单元中的第一存储位置,确定所述初始图数据在所述图形处理器的第二存储位置;
第四处理子单元,用于根据所述第二存储位置,调用指定数量的线程对所述初始图数据进行并行计算得到第一子输出结果。
7.根据权利要求1所述的系统,其中,所述存储模块还用于接收所述输出结果,在确定所述深度学习模型的网络层未计算完的情况下,将所述输出结果作为特征图数据。
8.根据权利要求1所述的系统,其中,所述存储模块还用于接收所述输出结果,在确定所述深度学习模型的网络层均计算完的情况下,输出所述输出结果。
9.根据权利要求1所述的系统,还包括:
接口模块,用于在所述系统包括多个的情况下,在多个所述系统之间传输所述输出结果。
10.一种面向深度学习的粗粒度可重构阵列仿真器计算方法,包括:
利用存储模块存储初始图数据;
利用数据调度模块存储包括多个指令的指令集,以及使所述存储模块根据所述指令集将所述初始图数据传输至可重构阵列中;
利用可重构阵列接收所述初始图数据,以及根据深度学习模型的网络层的计算类型,调用图形处理器对所述初始图数据进行并行计算得到输出结果。
CN202310103775.0A 2023-01-28 2023-01-28 面向深度学习的粗粒度可重构阵列仿真器系统和计算方法 Pending CN116187434A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310103775.0A CN116187434A (zh) 2023-01-28 2023-01-28 面向深度学习的粗粒度可重构阵列仿真器系统和计算方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310103775.0A CN116187434A (zh) 2023-01-28 2023-01-28 面向深度学习的粗粒度可重构阵列仿真器系统和计算方法

Publications (1)

Publication Number Publication Date
CN116187434A true CN116187434A (zh) 2023-05-30

Family

ID=86451869

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310103775.0A Pending CN116187434A (zh) 2023-01-28 2023-01-28 面向深度学习的粗粒度可重构阵列仿真器系统和计算方法

Country Status (1)

Country Link
CN (1) CN116187434A (zh)

Similar Documents

Publication Publication Date Title
US11755895B2 (en) Rotating data for neural network computations
WO2020073211A1 (zh) 运算加速器、处理方法及相关设备
CN111898733B (zh) 一种深度可分离卷积神经网络加速器架构
GB2600290A (en) Vector computation unit in a neural network processor
US20230026006A1 (en) Convolution computation engine, artificial intelligence chip, and data processing method
CN114995782B (zh) 数据处理方法、装置、设备和可读存储介质
Motamedi et al. Fast and energy-efficient CNN inference on IoT devices
EP4004826A1 (en) Vector reductions using shared scratchpad memory
CN112799599B (zh) 一种数据存储方法、计算核、芯片和电子设备
CN112686379A (zh) 集成电路装置、电子设备、板卡和计算方法
WO2023045446A1 (zh) 计算装置、数据处理方法及相关产品
CN114461978B (zh) 数据处理方法、装置、电子设备及可读存储介质
US20240095522A1 (en) Neural network generation device, neural network computing device, edge device, neural network control method, and software generation program
CN105531602B (zh) 利用多个加速处理部件(apc)实现时域有限差分模型的系统和方法
CN110490308B (zh) 加速库的设计方法、终端设备及存储介质
CN113301221A (zh) 一种深度网络相机图像处理方法、系统及应用
CN116187434A (zh) 面向深度学习的粗粒度可重构阵列仿真器系统和计算方法
CN116090518A (zh) 基于脉动运算阵列的特征图处理方法、装置以及存储介质
WO2010002626A2 (en) Vectorized parallel collision detection pipeline
CN116415100A (zh) 业务处理方法、装置、处理器及计算设备
CN117940934A (zh) 数据处理装置及方法
CN116781484B (zh) 数据处理方法、装置、计算机设备及存储介质
Sergienko et al. Image buffering in application specific processors
US20240037412A1 (en) Neural network generation device, neural network control method, and software generation program
US11544213B2 (en) Neural processor

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