CN109992198A - 神经网络的数据传输方法及相关产品 - Google Patents
神经网络的数据传输方法及相关产品 Download PDFInfo
- Publication number
- CN109992198A CN109992198A CN201711484341.0A CN201711484341A CN109992198A CN 109992198 A CN109992198 A CN 109992198A CN 201711484341 A CN201711484341 A CN 201711484341A CN 109992198 A CN109992198 A CN 109992198A
- Authority
- CN
- China
- Prior art keywords
- memory
- write
- weight
- multiplexing
- written
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0634—Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- 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)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Human Computer Interaction (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Memory System (AREA)
Abstract
本公开提供一种神经网络的数据传输方法及相关产品,所述方法包括如下步骤:获取存储器存储的权值数据的权值规格,比较权值规格与写入存储器规格的大小确定比较结果;依据所述比较结果将写入存储器划分成先入先出写入存储器和复用写入存储器;依据该比较结果确定该先入先出写入存储器和复用写入存储器的数据读取策略;依据该数据读取策略从先入先出写入存储器和复用写入存储器内读取权值加载至计算电路。本申请提供的技术方案具有功耗低,计算时间短的优点。
Description
技术领域
本申请涉及人工智能技术领域,具体涉及一种神经网络的数据传输方法及相关产品。
背景技术
随着人工智能技术的日益成熟,各行各业的应用场景和产品需求爆发式增长;基于深度学习算法的人工智能应用得到广泛应用,而深度学习算法在硬件以及芯片实现过程中,普遍遇到一个关键问题:网络模型参数值即权值(WEIGHT)的大小一般为几十千比特到兆比特级别,如何有效的将权值加载到计算电路内进行计算成为当前急需解决的问题;现有技术方案无法实现对权值数据进行快速的传输,影响计算性能,延长计算时间,用户体验度低。
申请内容
本申请实施例提供了一种神经网络的数据传输方法及相关产品,可以多次复用权值数据,减少权值加载的次数,节省数据传输带宽,节省计算时间的优点。
第一方面,本申请实施例提供一种神经网络的数据传输方法,所述方法包括如下步骤:
获取存储器存储的权值数据的权值规格,比较权值规格与写入存储器规格的大小确定比较结果;
依据所述比较结果将写入存储器划分成先入先出写入存储器和复用写入存储器;
依据该比较结果确定该先入先出写入存储器和复用写入存储器的数据读取策略;
依据该数据读取策略从先入先出写入存储器和复用写入存储器内读取权值加载至计算电路。
可选的,先入先出模式或先入先出与重复读取组合模式。
可选的,所述依据所述比较结果将写入存储器划分成先入先出写入存储器和复用写入存储器,依据该比较结果确定该先入先出写入存储器和复用写入存储器的数据读取策略,包括:
如比较结果为:权值规格<=写入存储器规格,
配置所述先入先出写入存储器的起始地址为零,结束地址为写入存储器的最大地址值;
确定第一直接存储器以及第二直接存储器均为先入先出模式;
第一直接存储器将权值写入到存储器,第二直接存储器启动后,检测先入先出工作电平的电平,如先入先出工作电平的电平从高电平变化成低电平第二直接存储器从写入存储器内读取权值传输给计算电路。
可选的,所述依据所述比较结果将写入存储器划分成先入先出写入存储器和复用写入存储器,依据该比较结果确定该先入先出写入存储器和复用写入存储器的数据读取策略,包括:
权值规格>写入存储器规格,将权值划分成第一部分权值以及第二部分权值;
将第一部分权值放置在复用写入存储器区域,所述复用写入存储器区域为能被第二直接存储器重复读取使用的写入存储器区域;
第二直接存储器启动第一任务和第二任务,第一任务用于从复用写入存储器区域重复获取第一部分权值;所述第二任务用于通过先入先出方式通过先入先出写入存储器区域动态从存储器加载该第二部分权值;
计算电路先利用第一部分权值进行运算,然后利用第二部分权值进行运算。
第二方面,提供一种计算装置,所述计算装置包括:存储器、第一直接存储器、写入存储器、第二直接存储器、计算电路和控制电路;
所述第一直接存储器,用于将存储器内存储的权值写入到写入存储器;
所述控制电路,用于获取存储器存储的权值数据的权值规格,比较权值规格与写入存储器规格的大小确定比较结果;依据所述比较结果将写入存储器划分成先入先出写入存储器和复用写入存储器,依据该比较结果确定该先入先出写入存储器和复用写入存储器的数据读取策略;
所述第二直接存储器,用于依据该数据读取策略从先入先出写入存储器和复用写入存储器内读取权值加载至计算电路。
可选的,所述读取策略包括:
先入先出模式或先入先出与重复读取组合模式。
可选的,所述控制电路,还用于如比较结果为:权值规格<=写入存储器规格,配置所述先入先出写入存储器的起始地址为零,结束地址为写入存储器的最大地址值;确定第一直接存储器以及第二直接存储器均为先入先出模式;
所述第二直接存储器,用于在启动后,检测先入先出工作电平的电平,如先入先出工作电平的电平从高电平变化成低电平第二直接存储器从写入存储器内读取权值传输给计算电路。
可选的,所述控制电路,还用于如权值规格>写入存储器规格,将权值划分成第一部分权值以及第二部分权值;
所述第一直接存储器,具体用于将第一部分权值放置在复用写入存储器区域,将第二部分权值缓存在所述先入先出写入存储器区域;
所述复用写入存储器区域为能被第二直接存储器重复读取使用的写入存储器区域,所述先入先出写入存储器区域为能被第二直接存储器动态加载的写入存储器区域;
所述第二直接存储器,用于启动第一任务和第二任务,第一任务用于从复用写入存储器区域重复获取第一部分权值;所述第二任务用于通过先入先出方式通过先入先出写入存储器区域动态从存储器加载该第二部分权值;
所述计算电路,用于先利用第一部分权值进行运算,然后利用第二部分权值进行运算。
第三方面,提供一种电子装置,所述电子装置包括第二方面提供的计算装置。
第四方面,提供一种计算机可读存储介质,其存储用于电子数据交换的计算机程序,其中,所述计算机程序使得计算机执行如第一方面提供的方法。
第五方面,提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序可操作来使计算机执行第一方面提供的方法。
实施本申请实施例,具有如下有益效果:
可以看出,本申请提供将权值规格与写入存储器规格,然后依据该比较结果确定如何将写入存储器划分以及该数据读取策略,这样就能够依据权值规格动态调整权值的读取策略,进而提高读取速率,减少计算时间,节省功耗,提高用户体验度。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是一种电子装置的结构示意图。
图2是一种稀疏神经网络的数据运算示意图。
图3是本发明提供的一种神经网络的数据传输方法的流程示意图。
图4是本申请实施例公开的一种计算装置的结构示意图。
图5是本申请实施例公开的另一种计算装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、***、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
本申请中的电子装置可以包括:服务器、智能摄像设备、智能手机(如Android手机、iOS手机、Windows Phone手机等)、平板电脑、掌上电脑、笔记本电脑、移动互联网设备(MID,Mobile Internet Devices)或穿戴式设备等,上述电子装置仅是举例,而非穷举,包含但不限于上述电子装置,为了描述的方便,下面实施例中将上述电子装置称为用户设备(User equipment,UE)、终端或电子设备。当然在实际应用中,上述用户设备也不限于上述变现形式,例如还可以包括:智能车载终端、计算机设备等等。
对于上述电子装置,其结构如图1所示,具体的,其可以包括:处理器101、存储器102、神经网络芯片103,其中处理器101与存储器102以及神经网络芯片103之间连接,具体的在一种可选的技术方案中,上述神经网络芯片103可以集成在处理器101内。存储器102可以包括:闪存盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取器(英文:Random Access Memory,简称:RAM)等。本发明的技术方案并不局限上述神经网络芯片103是单独设置还是集成在处理器101内。
参阅图2,图2提供了一种神经网络模型的示意图,如图2所示,每个神经网络模型,其中权值(WEIGHTS)的量,上述权值也可以简称为权值,该权值基本决定了神经网络模型计算的复杂度;神经网络计算的输入有两路,一路是权值(如图2中的Filter),另一路是输入数据(Input Image),输出是输出数据(Output Image)。对于权值数据,由于其一般属于多维数据,其大小一般从几十KB到MB,这样对于如何将权值数据进行有效加载,减少计算电路的等待时间成为目前神经网络的重要解决的问题。
对于神经网络模型,其可以包含多层的计算,每层计算均可能包括例如,矩阵乘以矩阵、卷积运算等等复杂的运算,下面来介绍一下对应的神经网络计算的方案,神经网络的计算方法分为多层运算,每层运算即为该层的输入数据与权值之间的运算,如图2所示,即为输入数据与权值之间的运算,该运算包括但不限于:卷积运算、矩阵乘矩阵运算等等方式。如图2所示的示意图可以为神经网络某层的一个卷积运算,具体的,
权值(Filters)代表神经网络模型中的权值;
Input Image是本申请中的输入数据;
Output Image是本申请中的输出数据;
每个CO都由所有输入数据和对应的权值相乘,累加得到。
权值的个数为CI NUM*C0NUM,每个权值为一个二维矩阵数据结构。
参阅图3,图3提供了一种神经网络的数据传输方法,该方法由神经网络芯片或处理芯片来执行,该芯片的结构如图4所示,包括:
双倍速率同步动态随机存储器(DDR):***上电时,负责把神经网络参数加载到存
第一直接存储器:负责从双倍速率同步动态随机存储器把神经网络权值搬运到写入存储器缓存。
第二直接存储器:负责从写入存储器(write memory,WM)缓存取参数送给计算电路(PE)。
计算电路:负责计算
先入先出写入存储器:写入存储器的先入先出(英文:First Input FirstOutput,FIFO)区域。
复用写入存储器:写入存储器的非先入先出区域。
写入存储器的控制器:写入存储器的控制器和仲裁。
复用写入存储器模式下,第一直接存储器和第二直接存储器的握手颗粒度是任务级的,具体可以如下:
第一直接存储器把任务需要搬运的数据全部写入复用写入存储器后,通过中断给到第二直接存储器,第二直接存储器开始读取数据,当然上述第一直接存储器与第二直接存储器两者之间是也是直接硬件握手,不需要软件同步。
复用写入存储器模式下,最大只能搬运写入存储器规格的数据,超过了写入存储器规格,后续搬运的数据就会发生覆盖前面搬运的数据。
先入先出写入存储器模式下,第一直接存储器和第二直接存储器握手颗粒度是读写地址指针级别,具体可以如下:
第一直接存储器写入数据,第二直接存储器只需要检测到有任何一行有效数据写入,就开始读;而不需要等待第一直接存储器全部写完。
先入先出写入存储器模式下,可以通过有限的存储空间,完成大于写入存储器规格的数据搬运,第二直接存储器和第一直接存储器通过先入先出工作电平来握手,保证数据不被覆盖和丢失。
该方法如图3所示,包括如下步骤:
步骤S301、获取存储器存储的权值数据的权值规格权值规格;
步骤S302、比较权值规格与写入存储器规格写入存储器规格的大小确定比较结果。
步骤S303、依据该比较结果将写入存储器划分成先入先出写入存储器和复用写入存储器,依据该比较结果确定该先入先出写入存储器和复用写入存储器的数据读取策略。
步骤S304、依据该数据读取策略从先入先出写入存储器和复用写入存储器内读取权值加载至计算电路。
本发明提供的技术方案将权值规格与写入存储器规格,然后依据该比较结果确定如何将写入存储器划分以及该数据读取策略,这样就能够依据权值规格动态调整权值的读取策略,进而提高读取速率,减少计算时间,节省功耗,提高用户体验度。
如比较结果可以为:权值规格<=写入存储器规格;
此种比较结果,权值可以全部缓存在写入存储器被反复使用,只有第一次任务时,需要从双倍速率同步动态随机存储器加载一次。
配置先入先出写入存储器的起始地址为零,结束地址为写入存储器的最大地址值。
软件配置第一直接存储器以及第二直接存储器均为先入先出模式,并启动直接存储器;
第一直接存储器可以把全部权值搬进到写入存储器;
第二直接存储器启动后,等待先入先出工作电平拉低;一旦第一直接存储器开始写入,第二直接存储器就开始有效读取数据,将读取数据传输至计算电路,计算电路开始启动计算
第一次加载完成后,后面的任务就不需要从双倍速率同步动态随机存储器重复加载了,第二直接存储器只需要重复读取使用就可以,这样减少了从双倍速率同步动态随机存储器重复加载的次数,节省了传输带宽。
这种场景下,先入先出写入存储器的模式相比复用写入存储器,第一次任务的启动会更早,只要有一个有效参数写入存储器,第二直接存储器/计算电路就可以开始运算;而复用写入存储器模式下,第二直接存储器/计算电路需要等到第一直接存储器全部搬运结束,才能开始运算
如比较结果可以为:权值规格>写入存储器规格
这时,权值无法全部缓存在写入存储器内;当需要重复使用时,无法对全部权值进行复用,现有的技术方案每次都需要从双倍速率同步动态随机存储器动态加载权值,对带宽需求以及性能影响都很大。
将写入存储器分成先入先出写入存储器和复用写入存储器两个区域来使用,将权值划分成两部分,即第一部分权值以及第二部分权值;其中,第一部分权值以及第二部分权值组合起来即为权值。
将第一部分权值放置在复用写入存储器区域,只从双倍速率同步动态随机存储器加载一次,重复被第二直接存储器读取使用;
将第二部分权值通过先入先出写入存储器区域动态加载进来,第二部分权值是每次都需要动态从双倍速率同步动态随机存储器加载的。
计算任务每次开始的时候,第二直接存储器直接去复用写入存储器区域获取第一部分权值,不需要任何等待;与此同时,先入先出写入存储器加载剩余第二部分权值;
因此,第二直接存储器每次任务均会启动两个第二直接存储器任务,分别可以为:任务1和任务2,任务1为非先入先出模式,任务1负责从复用写入存储器区域获取第一部分权值,任务2为先入先出模式,负责从先入先出写入存储器获取第二部分权值;
复用写入存储器区域越大,我们可以重复利用的第一部分权值越多,节省带宽越明显;当然在实际应用中,需要结合双倍速率同步动态随机存储器带宽情况来设置合理的写入存储器先入先出规格,写入存储器先入先出规格可以抵抗双倍速率同步动态随机存储器带宽的抖动和不平衡即可,尽量让先入先出写入存储器非空即可
下面以一个实际的权值规格的例子来说明具体的方案。
假设权值规格=1.2倍的写入存储器规格,我们把写入存储器的80%设置成复用写入存储器,剩余的20%设置成先入先出写入存储器;那么
复用写入存储器可以存放66.7%的权值,即第一部分权值=2/3权值;
剩余的33.3%通过先入先出写入存储器动态加载进来,即确定第二部分权值=1/3权值。
每次任务启动时第二直接存储器先读取第一部分权值,先读取复用写入存储器区域第一部分权值参数并传输给计算电路计算,与此同时剩余参数动态流入先入先出写入存储器,然后第二直接存储器对第二部分权值进行读取并传输给计算电路计算。
每次任务都节省66.7%的带宽,这个比例可以根据不同的模型情况和带宽情况来调整优化。
所以,本申请提供的技术方案具有如下优点:较小的写入存储器存储,可以支撑各种大小的模型参数。通过复用写入存储器复用,可以有效节省带宽,并给先入先出写入存储器预取时间。先入先出写入存储器通过硬件握手,可以以一个有效数据的颗粒度握手,完全消除权值参数等待开销。
下面说明各个硬件之间的握手机制,即通信方式,当然下述握手机制仅仅为了举例说明,本申请具体实施方式并不局限下述的握手机制。
写入存储器与第一直接存储器/第二直接存储器的握手机制。
握手信号:请求信号(REQ)、接收信号(READY)、有效指示(VALID)。
请求信号表示读写请求信号,高电平有效;
接收信号==1表示写入存储器可以接收请求信号;接收信号==零,表示写入存储器当前无法接收请求信号。
有效指示表示读写数据有效指示,高电平有效。
写入存储器的控制器与第一直接存储器的握手方式;
第一直接存储器送给写入存储器的控制器的请求信号;
写入存储器的控制器根据仲裁情况给出接收信号;
如果接收信号==零,那么第一直接存储器需要保持当前的请求信号不变,直到接收信号==1;
如果接收信号==1,那么第一直接存储器可以继续发送下一个请求信号;
当数据写入存储器后,写入存储器的控制器会返回有效指示信号给第一直接存储器;
第一直接存储器看到有效指示信号,可以确认数据已经写入存储器。
写入存储器与第二直接存储器的握手方式如下:
第二直接存储器送给写入存储器的控制器请求信号读信号;
写入存储器的控制器根据仲裁情况给出接收信号;
如果接收信号==0,那么第二直接存储器需要保持当前的请求信号不变,直到接收信号==1;
如果接收信号==1,那么第二直接存储器可以继续发送下一个请求信号;
当数据准备好后,写入存储器的控制器会返回有效指示信号给第二直接存储器;
第二直接存储器看到有效指示信号,获取有效的数据。
写入存储器先入先出区域的硬件握手方式如下:
第一直接存储器、第二直接存储器软件配置为先入先出模式;
写入存储器的控制器综合仲裁第一直接存储器/W直接存储器的请求信号;先入先出写入存储器区域,写入存储器的控制器还需要额外迭代先入先出的空满仲裁逻辑;
写入存储器的控制器监测到先入先出电平拉高时,置位接收信号=0,拒绝接收新的第一直接存储器请求信号,直到先入先出电平拉低;
写入存储器的控制器监测到先入先出工作电平拉高时,置位接收信号=零,拒绝接收新的直接存储器请求信号,直到先入先出工作电平拉低(即从高电平拉低至低电平);
先入先出写入存储器缺省是空的状态;如果第二直接存储器先发起读访问时,因为先入先出工作电平有效,接收信号==0,根据握手协议,要求第二直接存储器把请求信号一直保持在总线上;直到第一直接存储器有效写入时,先入先出工作电平拉低,接收信号=1,第二直接存储器开始真正读到有效数据;
如果第一直接存储器持续写入,第二直接存储器读的比较滞后或者慢,导致先入先出工作电平拉高,那么根据握手协议,要求第一直接存储器把当前请求信号一直保持在总线上;直到第二直接存储器读走数据,先入先出工作电平拉低,接收信号=1,第一直接存储器才能继续写入数据。
先入先出模式下,第二直接存储器和第一直接存储器的数据握手颗粒度是一个有效数据,第二直接存储器可以和第一直接存储器形成数据颗粒度的流水访问,减少软件调度和参数搬运的等待开销。
参阅图5,图5提供了提供一种计算装置,所述装置包括:存储器501、第一直接存储器502、写入存储器503、第二直接存储器504、计算电路505和控制电路506;
第一直接存储器502,用于将存储器内存储的权值写入到写入存储器;
控制电路506,用于获取存储器存储的权值数据的权值规格权值规格,比较权值规格与写入存储器规格写入存储器规格的大小确定比较结果;依据所述比较结果将写入存储器划分成先入先出写入存储器和复用写入存储器,依据该比较结果确定该先入先出写入存储器和复用写入存储器的数据读取策略;
第二直接存储器504,用于依据该数据读取策略从先入先出写入存储器和复用写入存储器内读取权值加载至计算电路。
可选的,上述读取策略包括:
先入先出先入先出模式或先入先出与重复读取组合模式。
可选的,控制电路506,还用于如比较结果为:权值规格<=写入存储器规格,配置所述先入先出写入存储器的起始地址为零,结束地址为写入存储器的最大地址值;确定第一直接存储器以及第二直接存储器均为先入先出模式;
所述第二直接存储器,用于在启动后,检测先入先出工作电平的电平,如先入先出工作电平的电平从高电平变化成低电平第二直接存储器从写入存储器内读取权值传输给计算电路。
可选的,控制电路506,还用于如权值规格>写入存储器规格,将权值划分成第一部分权值以及第二部分权值;
所述第一直接存储器,具体用于将第一部分权值放置在复用写入存储器区域,将第二部分权值缓存在所述先入先出写入存储器区域;
所述复用写入存储器区域为能被第二直接存储器重复读取使用的写入存储器区域,所述先入先出写入存储器区域为能被第二直接存储器动态加载的写入存储器区域;
所述第二直接存储器,用于启动第一任务和第二任务,第一任务用于从复用写入存储器区域重复获取第一部分权值;所述第二任务用于通过先入先出方式通过先入先出写入存储器区域动态从存储器加载该第二部分权值;
所述计算电路,用于先利用第一部分权值进行运算,然后利用第二部分权值进行运算。
本申请实施例还提供一种电子装置,该电子装置包括上述计算装置。
本申请实施例还提供一种计算机存储介质,其中,该计算机存储介质存储用于电子数据交换的计算机程序,该计算机程序使得计算机执行如上述方法实施例中记载的任何一种稀疏神经网络的计算方法的部分或全部步骤。
本申请实施例还提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序可操作来使计算机执行如上述方法实施例中记载的任何一种稀疏神经网络的计算方法的部分或全部步骤。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
所述集成的单元如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取器(英文:Random Access Memory,简称:RAM)、磁盘或光盘等。
以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (11)
1.一种神经网络的数据传输方法,其特征在于,所述方法包括如下步骤:
获取存储器存储的权值数据的权值规格,比较权值规格与写入存储器规格的大小确定比较结果;
依据所述比较结果将写入存储器划分成先入先出写入存储器和复用写入存储器;
依据该比较结果确定该先入先出写入存储器和复用写入存储器的数据读取策略;
依据该数据读取策略从先入先出写入存储器和复用写入存储器内读取权值加载至计算电路。
2.根据权利要求1所述的方法,其特征在于,所述读取策略包括:
先入先出模式或先入先出与重复读取组合模式。
3.根据权利要求1所述的方法,其特征在于,所述依据所述比较结果将写入存储器划分成先入先出写入存储器和复用写入存储器,依据该比较结果确定该先入先出写入存储器和复用写入存储器的数据读取策略,包括:
如比较结果为:权值规格<=写入存储器规格,
配置所述先入先出写入存储器的起始地址为零,结束地址为写入存储器的最大地址值;
确定第一直接存储器以及第二直接存储器均为先入先出模式;
第一直接存储器将权值写入到存储器,第二直接存储器启动后,检测先入先出工作电平的电平,如先入先出工作电平的电平从高电平变化成低电平第二直接存储器从写入存储器内读取权值传输给计算电路。
4.根据权利要求1所述的方法,其特征在于,所述依据所述比较结果将写入存储器划分成先入先出写入存储器和复用写入存储器,依据该比较结果确定该先入先出写入存储器和复用写入存储器的数据读取策略,包括:
权值规格>写入存储器规格,将权值划分成第一部分权值以及第二部分权值;
将第一部分权值放置在复用写入存储器区域,所述复用写入存储器区域为能被第二直接存储器重复读取使用的写入存储器区域;
第二直接存储器启动第一任务和第二任务,第一任务用于从复用写入存储器区域重复获取第一部分权值;所述第二任务用于通过先入先出方式通过先入先出写入存储器区域动态从存储器加载该第二部分权值;
计算电路先利用第一部分权值进行运算,然后利用第二部分权值进行运算。
5.一种计算装置,其特征在于,所述计算装置包括:存储器、第一直接存储器、写入存储器、第二直接存储器、计算电路和控制电路;
所述第一直接存储器,用于将存储器内存储的权值写入到写入存储器;
所述控制电路,用于获取存储器存储的权值数据的权值规格,比较权值规格与写入存储器规格的大小确定比较结果;依据所述比较结果将写入存储器划分成先入先出写入存储器和复用写入存储器,依据该比较结果确定该先入先出写入存储器和复用写入存储器的数据读取策略;
所述第二直接存储器,用于依据该数据读取策略从先入先出写入存储器和复用写入存储器内读取权值加载至计算电路。
6.根据权利要求5所述的计算装置,其特征在于,所述读取策略包括:
先入先出模式或先入先出与重复读取组合模式。
7.根据权利要求5所述的计算装置,其特征在于,
所述控制电路,还用于如比较结果为:权值规格<=写入存储器规格,配置所述先入先出写入存储器的起始地址为零,结束地址为写入存储器的最大地址值;确定第一直接存储器以及第二直接存储器均为先入先出模式;
所述第二直接存储器,用于在启动后,检测先入先出工作电平的电平,如先入先出工作电平的电平从高电平变化成低电平第二直接存储器从写入存储器内读取权值传输给计算电路。
8.根据权利要求5所述的计算装置,其特征在于,
所述控制电路,还用于如权值规格>写入存储器规格,将权值划分成第一部分权值以及第二部分权值;
所述第一直接存储器,具体用于将第一部分权值放置在复用写入存储器区域,将第二部分权值缓存在所述先入先出写入存储器区域;
所述复用写入存储器区域为能被第二直接存储器重复读取使用的写入存储器区域,所述先入先出写入存储器区域为能被第二直接存储器动态加载的写入存储器区域;
所述第二直接存储器,用于启动第一任务和第二任务,第一任务用于从复用写入存储器区域重复获取第一部分权值;所述第二任务用于通过先入先出方式通过先入先出写入存储器区域动态从存储器加载该第二部分权值;
所述计算电路,用于先利用第一部分权值进行运算,然后利用第二部分权值进行运算。
9.一种电子装置,其特征在于,所述电子装置包括如权利要求5-8任意一项所述的计算装置。
10.一种计算机可读存储介质,其特征在于,其存储用于电子数据交换的计算机程序,其中,所述计算机程序使得计算机执行如权利要求1-4任一项所述的方法。
11.一种计算机程序产品,其特征在于,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序可操作来使计算机执行如权利要求1-4任一项所述的方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711484341.0A CN109992198B (zh) | 2017-12-29 | 2017-12-29 | 神经网络的数据传输方法及相关产品 |
PCT/CN2018/079372 WO2019127925A1 (zh) | 2017-12-29 | 2018-03-16 | 一种神经网络的数据传输方法及计算装置、电子装置、计算机可读存储介质以及计算机程序产品 |
US16/627,294 US10832132B2 (en) | 2017-12-29 | 2018-03-16 | Data transmission method and calculation apparatus for neural network, electronic apparatus, computer-readable storage medium and computer program product |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711484341.0A CN109992198B (zh) | 2017-12-29 | 2017-12-29 | 神经网络的数据传输方法及相关产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109992198A true CN109992198A (zh) | 2019-07-09 |
CN109992198B CN109992198B (zh) | 2020-07-24 |
Family
ID=67062952
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711484341.0A Active CN109992198B (zh) | 2017-12-29 | 2017-12-29 | 神经网络的数据传输方法及相关产品 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10832132B2 (zh) |
CN (1) | CN109992198B (zh) |
WO (1) | WO2019127925A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112799599A (zh) * | 2021-02-08 | 2021-05-14 | 清华大学 | 一种数据存储方法、计算核、芯片和电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110164038A1 (en) * | 2010-01-06 | 2011-07-07 | Samsung Electronics Co., Ltd. | Apparatus and method for tile-based rendering |
CN102360452A (zh) * | 2011-10-26 | 2012-02-22 | 西安电子科技大学 | 基于最少资源神经网络求解大规模图的最短路径方法 |
US20160179434A1 (en) * | 2014-12-19 | 2016-06-23 | Intel Corporation | Storage device and method for performing convolution operations |
CN106200655A (zh) * | 2016-06-27 | 2016-12-07 | 西安交通大学 | Btt导弹神经网络反演自动驾驶仪的fpga实现方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5956703A (en) * | 1995-07-28 | 1999-09-21 | Delco Electronics Corporation | Configurable neural network integrated circuit |
US20160026912A1 (en) * | 2014-07-22 | 2016-01-28 | Intel Corporation | Weight-shifting mechanism for convolutional neural networks |
US10832120B2 (en) * | 2015-12-11 | 2020-11-10 | Baidu Usa Llc | Systems and methods for a multi-core optimized recurrent neural network |
US10140574B2 (en) * | 2016-12-31 | 2018-11-27 | Via Alliance Semiconductor Co., Ltd | Neural network unit with segmentable array width rotator and re-shapeable weight memory to match segment width to provide common weights to multiple rotator segments |
-
2017
- 2017-12-29 CN CN201711484341.0A patent/CN109992198B/zh active Active
-
2018
- 2018-03-16 US US16/627,294 patent/US10832132B2/en active Active
- 2018-03-16 WO PCT/CN2018/079372 patent/WO2019127925A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110164038A1 (en) * | 2010-01-06 | 2011-07-07 | Samsung Electronics Co., Ltd. | Apparatus and method for tile-based rendering |
CN102360452A (zh) * | 2011-10-26 | 2012-02-22 | 西安电子科技大学 | 基于最少资源神经网络求解大规模图的最短路径方法 |
US20160179434A1 (en) * | 2014-12-19 | 2016-06-23 | Intel Corporation | Storage device and method for performing convolution operations |
CN106200655A (zh) * | 2016-06-27 | 2016-12-07 | 西安交通大学 | Btt导弹神经网络反演自动驾驶仪的fpga实现方法 |
Non-Patent Citations (2)
Title |
---|
KYUNGRAK CHOI等: ""Bit-width Reduction and Customized Register for Low Cost Convolutional Neural Network Accelerator"", 《PUBLISHED IN: 2017 IEEE/ACM INTERNATIONAL SYMPOSIUM ON LOW POWER ELECTRONICS AND DESIGN》 * |
陆志坚: ""基于FPGA的卷积神经网络并行结构研究"", 《中国博士学位论文全文数据库 信息科技辑》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112799599A (zh) * | 2021-02-08 | 2021-05-14 | 清华大学 | 一种数据存储方法、计算核、芯片和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
US20200167646A1 (en) | 2020-05-28 |
CN109992198B (zh) | 2020-07-24 |
US10832132B2 (en) | 2020-11-10 |
WO2019127925A1 (zh) | 2019-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110546654B (zh) | 通过构造接口的带宽控制来增强dnn模块的处理性能 | |
US20180189643A1 (en) | Convolution circuit, application processor including the same, and operating method thereof | |
CN106569727B (zh) | 一种多控制器间多存储器共享并行数据读写装置及其写入、读取方法 | |
CN107169563B (zh) | 应用于二值权重卷积网络的处理***及方法 | |
CN109388595A (zh) | 高带宽存储器***以及逻辑管芯 | |
CN109558344A (zh) | 一种适用于网络传输的dma传输方法及dma控制器 | |
CN107818056A (zh) | 一种队列管理方法及装置 | |
CN105389277A (zh) | Gpdsp中面向科学计算的高性能dma部件 | |
CN108536642A (zh) | 大数据运算加速***和芯片 | |
CN101150485A (zh) | 一种零拷贝缓冲区队列网络数据发送的管理方法 | |
CN106537858B (zh) | 一种队列管理的方法和装置 | |
CN101848135B (zh) | 芯片的统计数据的管理方法和装置 | |
CN110309088A (zh) | Zynq fpga芯片及其数据处理方法、存储介质 | |
US11500541B2 (en) | Memory system and controlling method | |
CN104932994B (zh) | 一种数据处理方法及装置 | |
CN106372008B (zh) | 一种数据缓存方法及装置 | |
WO2022233195A1 (zh) | 神经网络权值存储方法、读取方法及相关设备 | |
CN102508803A (zh) | 一种矩阵转置存储控制器 | |
CN104850516B (zh) | 一种ddr变频设计方法和装置 | |
CN109992198A (zh) | 神经网络的数据传输方法及相关产品 | |
CN107329929A (zh) | 一种基于SoC FPGA的数据传输***及数据传输方法 | |
CN109993286A (zh) | 稀疏神经网络的计算方法及相关产品 | |
CN111723907B (zh) | 一种模型训练设备、方法、***及计算机可读存储介质 | |
CN106776390A (zh) | 多设备访问存储器的实现方法 | |
CN115860080A (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 | ||
CP01 | Change in the name or title of a patent holder | ||
CP01 | Change in the name or title of a patent holder |
Address after: 701, science museum, 1003 Shangbu Middle Road, Futian District, Shenzhen, Guangdong 518000 Patentee after: Shenzhen Yuntian lifeI Technology Co., Ltd Address before: 701, science museum, 1003 Shangbu Middle Road, Futian District, Shenzhen, Guangdong 518000 Patentee before: SHENZHEN INTELLIFUSION TECHNOLOGIES Co.,Ltd. |