CN114968602B - 资源动态分配型神经网络芯片的构架、方法和设备 - Google Patents
资源动态分配型神经网络芯片的构架、方法和设备 Download PDFInfo
- Publication number
- CN114968602B CN114968602B CN202210914053.9A CN202210914053A CN114968602B CN 114968602 B CN114968602 B CN 114968602B CN 202210914053 A CN202210914053 A CN 202210914053A CN 114968602 B CN114968602 B CN 114968602B
- Authority
- CN
- China
- Prior art keywords
- data
- neural network
- chip
- time
- module
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- 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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- 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)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Image Analysis (AREA)
Abstract
本申请实施例公开了一种资源动态分配型神经网络芯片的构架、方法和设备,涉及人工智能技术领域。该资源动态分配型神经网络芯片的构架包括:数据输入缓存模块,数据输出缓存模块,片上资源优化模块和片上资源分配模块,该资源动态分配型神经网络芯片的构架由于设置了片上资源优化模块,因此,可以根据神经网络配置参数获得在不同资源配置方式下的时间数组,由于时间数组可以反映不同资源配置方式下的运行效率,因此,根据时间数组,确定目标资源配置方式可以是较优的资源配置方式,按照目标资源配置方式进行数据处理自然可以提高芯片的数据处理效率。
Description
技术领域
本申请涉及人工智能技术领域,尤其涉及一种资源动态分配型神经网络芯片的构架、方法和设备。
背景技术
神经网络,英文全称为Artificial Neural Network, 缩写ANN, 在机器学习,尤其是深度学习领域广泛应用。无论是SOC、GPU、ASIC构架的集成电路芯片,在设计初期首先明确芯片的设计框架及具体实现的成本、功能与方法,在具体设计过程中的确定各种控制、运算及存储单元的种类与数量,芯片设计完成后交由芯片代工厂按设计工艺进行生产制造,最终交付用户使用。芯片设计完成后,芯片内部可利用计算资源皆已固定,如何在芯片有限资源下提高神经网络数据处理效率已成为急需解决的技术问题。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本申请的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本申请实施例提供了一种资源动态分配型神经网络芯片的构架、方法和设备,有效提高神经网络的数据处理效率。
一方面,本申请实施例提供了一种资源动态分配型神经网络芯片的构架,包括:
数据输入缓存模块,用于缓存片上数据总线的第一神经网络数据并将所述第一神经网络数据发送给神经网络计算执行模块;
数据输出缓存模块,用于缓存所述神经网络计算执行模块处理后的第二神经网络数据,并将所述第二神经网络数据发送给所述片上数据总线;
片上资源优化模块,用于根据神经网络配置参数在不同资源配置方式下的不同参数值,获得在不同资源配置方式下的若干第一时间数组;基于若干所述第一时间数组,获得若干第二时间数组;并基于若干所述第二时间数组,确定目标资源配置方式;其中,所述第一时间数组包括从外部存储模块读取分片数据的第一时间和计算分片数据所需的第二时间,所述第二时间数组包括所有数据的读取占用所述片上数据总线的第三时间和计算当前网络层所有数据所消耗的第四时间;
片上资源分配模块,用于根据所述目标资源配置方式,配置所述数据输入缓存模块、所述神经网络计算执行模块和所述数据输出缓存模块。
可选地,所述神经网络配置参数包括固定参数和可配置参数;所述片上资源优化模块,还用于根据固定参数以及在不同资源配置方式下的若干组可配置参数值,获得若干第一时间数组。
可选地,所述第一神经网络数据和所述第二神经网络数据均为图像数据。
可选地,所述固定参数,包括:
输入图像数据宽度,输入图像数据高度;
输入数据通道数,输出数据通道数;
滤波器大小;
片上并行计算单元数量以及计算单元组数;
片上计算结果缓存大小;
外部存储模块批量数据读写长度;
片上数据交换损失时间。
可选地,所述可配置参数包括:实际输入图像宽度、实际输入图像高度和图像数据缓存组数。
可选地,所述片上资源分配模块通过片上配置总线分别与所述数据输入缓存模块、所述神经网络计算执行模块、所述数据输出缓存模块以及片外存储接口模块通信连接,所述片外存储接口模块与所述外部存储模块通信连接。
再一方面,本申请实施例提供了一种基于资源动态分配型神经网络芯片的数据处理方法,包括:
根据神经网络配置参数在不同资源配置方式下的不同参数值,获得在不同资源配置方式下的若干第一时间数组;其中,所述第一时间数组包括从外部存储模块读取分片数据的第一时间和计算分片数据所需的第二时间;
基于若干所述第一时间数组,获得若干第二时间数组;
基于若干所述第二时间数组,确定目标资源配置方式;其中,所述第二时间数组包括所有数据的读取占用所述片上数据总线的第三时间和计算当前网络层所有数据所消耗的第四时间;
根据所述目标资源配置方式,配置所述数据输入缓存模块、所述神经网络计算执行模块和所述数据输出缓存模块。
可选地,所述神经网络配置参数包括固定参数和可配置参数;所述根据神经网络配置参数在不同资源配置方式下的不同参数值,获得在不同资源配置方式下的若干第一时间数组的步骤,包括:
根据固定参数以及在不同资源配置方式下的若干组可配置参数值,获得若干第一时间数组。
可选地,所述分片数据为图像数据。
再一方面,本申请实施例提供了一种计算机设备,该计算机设备包括神经网络芯片,所述神经网络芯片包括上述的构架。
本申请的实施例提供一种资源动态分配型神经网络芯片的构架、方法和设备,该资源动态分配型神经网络芯片的构架包括:数据输入缓存模块,用于缓存片上数据总线的第一神经网络数据并将所述第一神经网络数据发送给神经网络计算执行模块;数据输出缓存模块,用于缓存所述神经网络计算执行模块处理后的第二神经网络数据,并将所述第二神经网络数据发送给所述片上数据总线;片上资源优化模块,用于根据神经网络配置参数在不同资源配置方式下的不同参数值,获得在不同资源配置方式下的若干第一时间数组;基于若干所述第一时间数组,获得若干第二时间数组;并基于若干所述第二时间数组,确定目标资源配置方式;其中,所述第一时间数组包括从外部存储模块读取分片数据的第一时间和计算分片数据所需的第二时间,所述第二时间数组包括所有数据的读取占用所述片上数据总线的第三时间和计算当前网络层所有数据所消耗的第四时间;片上资源分配模块,用于根据所述目标资源配置方式,配置所述数据输入缓存模块、所述神经网络计算执行模块和所述数据输出缓存模块。也即,该资源动态分配型神经网络芯片的构架由于设置了片上资源优化模块,因此,可以根据神经网络配置参数获得在不同资源配置方式下的时间数组,由于时间数组可以反映不同资源配置方式下的运行效率,因此,根据时间数组,确定目标资源配置方式可以是较优的资源配置方式,按照目标资源配置方式进行数据处理可以提高芯片的数据处理效率。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种计算机设备的结构示意图;
图2是本申请实施例提供的一种资源动态分配型神经网络芯片的构架的结构示意图;
图3是本申请实施例提供的一种基于资源动态分配型神经网络芯片的数据处理方法的流程示意图。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例的主要解决方案是:提供一种资源动态分配型神经网络芯片的构架、方法和设备,该资源动态分配型神经网络芯片的构架包括:数据输入缓存模块,用于缓存片上数据总线的第一神经网络数据并将所述第一神经网络数据发送给神经网络计算执行模块;数据输出缓存模块,用于缓存所述神经网络计算执行模块处理后的第二神经网络数据,并将所述第二神经网络数据发送给所述片上数据总线;片上资源优化模块,用于根据神经网络配置参数在不同资源配置方式下的不同参数值,获得在不同资源配置方式下的若干第一时间数组;基于若干所述第一时间数组,获得若干第二时间数组;并基于若干所述第二时间数组,确定目标资源配置方式;其中,所述第一时间数组包括从外部存储模块读取分片数据的第一时间和计算分片数据所需的第二时间,所述第二时间数组包括所有数据的读取占用所述片上数据总线的第三时间和计算当前网络层所有数据所消耗的第四时间;片上资源分配模块,用于根据所述目标资源配置方式,配置所述数据输入缓存模块、所述神经网络计算执行模块和所述数据输出缓存模块。
经分析,如何提高神经网络的计算效率已成为神经网络芯片设计中的关键性问题。提高计算效率的思路分为对搭载神经网络的***、神经网络框架、网络计算精度与计算单元数量的效率提升或优化。具体的解决方法建立在如何提高外部存储器的访问速度,芯片与外部存储之间数据交换的效率,芯片内部数据总线效率优化,计算数据压缩,提高芯片制造工艺实现芯片运算速度,通过改变神经网络的网络层次,减少网络层中通道数量,减小计算数据量化精度的方法来提高神经网络的计算效率。此外,无论是SOC、GPU、ASIC构架的集成电路芯片,在设计初期首先明确芯片的设计框架及具体实现的成本、功能与方法,在具体设计过程中的确定各种控制、运算及存储单元的种类与数量,芯片设计完成后交由芯片代工厂按设计工艺进行生产制造,最终交付用户使用。芯片设计完成后,芯片内部可利用资源皆已固定,后期仅可通过控制部分对片上资源进行配置达到实现具体应用功能与效率的要求。
为此,本申请在神经网络芯片的设计上新提出一种新的通过动态分配片上资源的方法,用于提高神经网络芯片的计算效率,该方法属于改进现有神经网络芯片运算资源分配提高整体计算性能的方法。具体的,该资源动态分配型神经网络芯片的构架由于设置了片上资源优化模块,因此,可以根据输入参数值(神经网络配置参数)获得在不同资源配置方式下的时间数组,由于时间数组可以反映不同资源配置方式下的运行效率,因此,根据时间数组,确定目标资源配置方式可以是较优的资源配置方式,按照目标资源配置方式进行数据处理自然可以提高芯片的数据处理效率。
参照图1,图1为本申请实施例方案涉及的硬件运行环境的计算机设备的结构示意图。
如图1所示,该计算机设备可以包括:处理器1001,例如中央处理器(CentralProcessing Unit,CPU),神经网络芯片GPU等,通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(WIreless-FIdelity,WI-FI)接口)。存储器1005可以是高速的随机存取存储器(Random Access Memory,RAM)存储器,也可以是稳定的非易失性存储器(Non-VolatileMemory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种存储介质的存储器1005中可以包括操作***、数据存储模块、网络通信模块、用户接口模块以及电子程序。
在图1所示的计算机设备中,网络接口1004主要用于与服务器进行数据通信;用户接口1003主要用于与用户进行数据交互;本申请的计算机设备中的处理器1001、存储器1005可以设置在计算机设备中,所述计算机设备通过处理器1001调用存储器1005中存储的电子程序,并执行本申请实施例提供的基于资源动态分配型神经网络芯片的数据处理方法。
参见图2,本申请的实施例提供一种资源动态分配型神经网络芯片的构架,包括:
数据输入缓存模块,用于缓存片上数据总线的第一神经网络数据并将所述第一神经网络数据发送给神经网络计算执行模块;
数据输出缓存模块,用于缓存所述神经网络计算执行模块处理后的第二神经网络数据,并将所述第二神经网络数据发送给所述片上数据总线;
片上资源优化模块,用于根据神经网络配置参数在不同资源配置方式下的不同参数值,获得在不同资源配置方式下的若干第一时间数组;基于若干所述第一时间数组,获得若干第二时间数组;并基于若干所述第二时间数组,确定目标资源配置方式;其中,所述第一时间数组包括从外部存储模块读取分片数据的第一时间和计算分片数据所需的第二时间,所述第二时间数组包括所有数据的读取占用所述片上数据总线的第三时间和计算当前网络层所有数据所消耗的第四时间;
片上资源分配模块,用于根据所述目标资源配置方式,配置所述数据输入缓存模块、所述神经网络计算执行模块和所述数据输出缓存模块。
需要说明的是,在本实施例中,可以用于图像处理领域,在图像处理领域,本实施例的构架处理的即为图像数据,当然本实施例的构架也可以用于处理其他数据,这里不再赘述。
由图2可见,片上资源优化模块与片上资源分配模块连接,片上资源分配模块通过片上配置总线与片上数据总线连接。数据输入缓存模块、神经网络计算执行模块、数据输出缓存模块以及外部存储模块均与片上数据总线连接。使得所述片上资源分配模块通过片上配置总线分别与所述数据输入缓存模块、所述神经网络计算执行模块、所述数据输出缓存模块以及片外存储接口模块通信连接,所述片外存储接口模块与所述外部存储模块通信连接。
下面针对各模块进行逐一说明。
数据输入缓存模块,用于缓存片上数据总线的第一神经网络数据并将所述第一神经网络数据发送给神经网络计算执行模块。
在具体实施过程中,神经网络可以是任意神经网络,例如卷积神经网络。神经网络一般包括多个层,片上数据总线是指单层神经网络的总线。在神经网络芯片中,对于每个神经网络层,需要将外部存储模块读取数据并将数据输入给神经网络计算执行模块进行计算。
数据输出缓存模块,用于缓存所述神经网络计算执行模块处理后的第二神经网络数据,并将所述第二神经网络数据发送给所述片上数据总线。
在具体实施过程中,相应的,计算后的数据还需要返回到片上数据总线。
片上资源优化模块,用于根据神经网络配置参数在不同资源配置方式下的不同参数值,获得在不同资源配置方式下的若干第一时间数组;基于若干所述第一时间数组,获得若干第二时间数组;并基于若干所述第二时间数组,确定目标资源配置方式;其中,所述第一时间数组包括从外部存储模块读取分片数据的第一时间和计算分片数据所需的第二时间,所述第二时间数组包括所有数据的读取占用所述片上数据总线的第三时间和计算当前网络层所有数据所消耗的第四时间。
在具体实施过程中,整个从外部获取数据、计算以及输出过程中会耗费一定的时间,但是不同的配置参数,会影响整个计算过程所耗费的时间,即影响芯片整体的计算效率。作为一种可选的实施方式,所述神经网络配置参数包括固定参数和可配置参数;所述片上资源优化模块,还用于根据固定参数以及在不同资源配置方式下的若干组可配置参数值,获得若干第一时间数组。
对于固定参数已确定的情况下,片上资源优化模块可以根据不同的资源配置方式进行模拟计算,以获得较优的计算效率所对应的可配置参数,从而来配置各执行模块,使得对于总资源已经确定的芯片来说,可以通过动态参数配置的方式来提高计算效率。
作为一种可选的实施例,第一神经网络数据和所述第二神经网络数据均为图像数据。则可配置参数包括:实际输入图像宽度AiMaxMbx、实际输入图像高度AiMaxMby和图像数据缓存组数MbiRamNm。其中,可配置参数对应的可配置参数值可以根据神经网络配置参数计算获得,为了提高计算效率也可以根据不同的资源配置方式进行设置。这些资源配置方式可以是根据实验测试获得该固定参数,包括:
输入图像数据宽度,输入图像数据高度;
输入数据通道数,输出数据通道数;
滤波器大小;
片上并行计算单元数量以及计算单元组数;
片上计算结果缓存大小;
外部存储模块批量数据读写长度;
片上数据交换损失时间。
在具体实施过程中,不同资源配置方式是指神经网络配置参数中各可配置参数取不同的值以及固定参数的取值共同构成的资源配置方式。具体的,针对每种资源配置方式,可以由以上固定参数取值与不同的可配置参数取值分别计算出第一时间数组(即,输入数据分片(MB)从外部存储模块读取分片数据时间(MBCLKCYC_DP)与神经网络计算分片数据所需时间(MBCLKCYC_CA)),进而推导得出第二时间数组(即,所有数据的读取占用数据总线时间(TOTDDR_CLKCYC)与计算当前网络层所消耗总体时间(TOT_CLKTIMNS))。通过片上资源优化模块根据TOTDDR_CLKCYC与TOT_CLKTIMNS选择最优动态配置参数AiMaxMbx,AiMaxMby,MbiRamNm(即本实施例中所称的目标资源配置方式)。
片上资源分配模块,用于根据所述目标资源配置方式,配置所述数据输入缓存模块、所述神经网络计算执行模块和所述数据输出缓存模块。
在具体实施过程中,最优动态配置参数AiMaxMbx,AiMaxMby,MbiRamNm是根据神经网络配置参数获得,因此,较优(甚至是最优)动态配置参数也对应一组神经网络配置参数的取值(其中包括固定参数和可配置参数),其中,包括输入图像数据宽度,输入图像数据高度;输入数据通道数,输出数据通道数;滤波器大小;片上并行计算单元数量以及计算单元组数等,涉及所述数据输入缓存模块、所述神经网络计算执行模块和所述数据输出缓存模块。因此,在获得目标资源配置方式后,可以对所述数据输入缓存模块、所述神经网络计算执行模块和所述数据输出缓存模块进行配置,从而使得芯片可以以较优的方式运行,提高计算效率。
应当理解的是,以上仅为举例说明,对本申请的技术方案并不构成任何限制,本领域的技术人员在实际应用中可以基于需要进行设置,此处不做限制。
通过上述描述不难发现,本实施例的资源动态分配型神经网络芯片的构架由于设置了片上资源优化模块,因此,可以根据神经网络配置参数获得在不同资源配置方式下的时间数组,由于时间数组可以反映不同资源配置方式下的运行效率,因此,根据时间数组,确定目标资源配置方式可以是较优的资源配置方式,按照目标资源配置方式进行数据处理自然可以提高芯片的数据处理效率。
参见图3,基于相同的发明思路,本申请的实施例还提供了一种基于资源动态分配型神经网络芯片的数据处理方法,该方法基于前述实施例中的资源动态分配型神经网络芯片构架实现,该方法包括:
S20、根据神经网络配置参数在不同资源配置方式下的不同参数值,获得在不同资源配置方式下的若干第一时间数组;其中,所述第一时间数组包括从外部存储模块读取分片数据的第一时间和计算分片数据所需的第二时间;
S40、基于若干所述第一时间数组,获得若干第二时间数组;
S60、基于若干所述第二时间数组,确定目标资源配置方式;其中,所述第二时间数组包括所有数据的读取占用所述片上数据总线的第三时间和计算当前网络层所有数据所消耗的第四时间;
S80、根据所述目标资源配置方式,配置所述数据输入缓存模块、所述神经网络计算执行模块和所述数据输出缓存模块。
作为一种可选的实施方式,所述神经网络配置参数包括固定参数和可配置参数;所述根据神经网络配置参数在不同资源配置方式下的不同参数值,获得在不同资源配置方式下的若干第一时间数组的步骤,包括:
根据固定参数以及在不同资源配置方式下的若干组可配置参数值,获得若干第一时间数组。
在具体实施过程中,不同资源配置方式是指神经网络配置参数中各可配置参数取不同的值以及固定参数的取值共同构成的资源配置方式。具体的,针对每种资源配置方式,可以由以上固定参数取值与不同的可配置参数取值分别计算出第一时间数组(即,输入数据分片(MB)从外部存储模块读取分片数据时间(MBCLKCYC_DP)与神经网络计算分片数据所需时间(MBCLKCYC_CA)),进而推导得出第二时间数组(即,所有数据的读取占用数据总线时间(TOTDDR_CLKCYC)与计算当前网络层所消耗总体时间(TOT_CLKTIMNS))。通过片上资源优化模块根据TOTDDR_CLKCYC与TOT_CLKTIMNS选择最优动态配置参数AiMaxMbx,AiMaxMby,MbiRamNm(即本实施例中所称的目标资源配置方式)。
需要说明的是,本实施例的方法的执行主体是前述实施例中片上资源优化模块和片上资源分配模块,其执行的方法也与前述实施例中片上资源优化模块和片上资源分配模块的作用一致,因此,本实施例的方法的各种实施方式和相应的效果都可参数前述实施例,这里不再赘述。
但是,为了更清楚的理解本申请技术方案以及其达到的技术效果,下面以图像数据为实例,进行不同的可配置参数取值下计算效率的对比展示,以明确本实施例构架和数据处理方法提高计算效率的效果。
在该实例中,对于单层神经网络的TOTDDR_CLKCYC及TOT_CLKTIMNS的比较见下表1、2、3和4。
表1 单层神经网络处理图像数据在未优化时的参数配置及TOTDDR_CLKCYC情况表
参数名称 | 参数取值 | 参数名称 | 参数取值 |
ImgW(输入图像数据宽度) | 384 | ImgH(输入图像数据高度) | 288 |
ImgScale(图像缩放系数) | 2 | Stribe(卷积时的采样间隔) | 2 |
ICha(卷积层输入通道数) | 32 | Ocha(卷积层输出通道数) | 64 |
CuNum(片上并行计算单元数量) | 32 | ||
FClaPClkNum(每一时钟周期可计算的次数) | 1 | ||
DDRMode(DDR 读取模式) | 2 | Group(计算单元组数) | 2 |
FILTERSize(卷积滤波器大小) | 9 | ||
PimgW(根据ImgScale计算实际处理图像宽) | 192 | PimgH(根据ImgScale计算实际处理图像高) | 144 |
PDatsbW( 内部数据总线位宽) | 32 | SCDbW(处理大一数据的精度) | 8 |
FParsPrecbW(参数数据位宽) | 8 | DinBus(每时钟周期单一数据的数量) | 4 |
BurstTransLength(外部存储模块批量数据读写长度) | 32 | BurstInValidcTCyc(批量数据时引入的无效数据传输周期) | 2 |
DataSigRamLen8b(片上计算结果缓存大小,bytes) | 1024 | DataTOTRamLen8b(计算单元总计占用RAM总数量) | 32768 |
DataRamLength(单通输出通道可分配RAM大小) | 512 | ||
ExpectMbxLen(期望计算输入图像宽) | 48 | ExpectMbyHig(期望计算输入图像高) | 20 |
ExpCurMbxLen(实际计算输入图像宽) | 48 | ||
BurstFixLen( 从DDR中读取数据时选择的固定长度 = BurstTransLength*DinBus) | 128 | BurstUnValidTCyc(从DDR读取数据时的无效周期) | 2 |
AiMbZEdge(图像边界数据数量) | 2 | ||
AiMaxMbx(实际输入图像宽度) | 48 | ||
AiMaxMby(实际输入图像高度) | 20 | ||
MbiRamNm(图像数据缓存组数) | 1 | ||
MbLenDW(DWORD 方式一次处理读取数据所需总周期) | 352 | ||
FWbCUnLen(参数属性描述字长度) | 1 | Fx3CUnLen(计算所需参数数据长度) | 288 |
SUNFParsLen(Byte) ( 从外部DDR读取参数需要的总周期) | 298 | ||
DMbCUnLen(DW)(读取计算所需所有数据长度) | 22528 | ||
PMbCUnLen(DW) (读取计算所需所有参数长度 ) | 4768 | ||
Emuif bus efficiency ( DDR 读取时效率 ) | 0.75 | ||
MBCLKCYC_DP(读取数据或参数所需时钟周期中两者中的最大值) | 30037 | ||
MBCLKCYC_CA(计算分块数据所需时钟周期) | 30720 | ||
CNN IMG CALCYC(计算当前图像大小所需时钟周期) | 442368 | ||
TOT_CLKTIMNS(根据***时钟与 CNN IMGCALCYC 折算成计算时间),ms | 1.47 | ||
TOTDDR_CLKCYC(DDR 读取计算所需参数与数据的时钟总周期) | 1,048,166 |
表2 单层神经网络处理图像数据在优化后的参数配置及TOTDDR_CLKCYC情况表
参数名称 | 参数取值 | 参数名称 | 参数取值 |
ImgW(输入图像数据宽度) | 384 | ImgH(输入图像数据高度) | 288 |
ImgScale(图像缩放系数) | 2 | Stribe(卷积时的采样间隔) | 2 |
ICha(卷积层输入通道数) | 32 | Ocha(卷积层输出通道数) | 64 |
CuNum(片上并行计算单元数量) | 32 | ||
FClaPClkNum(每一时钟周期可计算的次数) | 1 | ||
DDRMode(DDR 读取模式) | 2 | Group(计算单元组数) | 2 |
FILTERSize(卷积滤波器大小) | 9 | ||
PimgW(根据ImgScale计算实际处理图像宽) | 192 | PimgH(根据ImgScale计算实际处理图像高) | 144 |
PDatsbW( 内部数据总线位宽) | 32 | SCDbW(处理大一数据的精度) | 8 |
FParsPrecbW(参数数据位宽) | 8 | DinBus(每时钟周期单一数据的数量) | 4 |
BurstTransLength(外部存储模块批量数据读写长度) | 32 | BurstInValidcTCyc(批量数据时引入的无效数据传输周期) | 2 |
DataSigRamLen8b(片上计算结果缓存大小,bytes) | 1024 | DataTOTRamLen8b(计算单元总计占用RAM总数量) | 32768 |
DataRamLength(单通输出通道可分配RAM大小) | 512 | ||
ExpectMbxLen(期望计算输入图像宽) | 48 | ExpectMbyHig(期望计算输入图像高) | 20 |
ExpCurMbxLen(实际计算输入图像宽) | 48 | ||
BurstFixLen( 从DDR中读取数据时选择的固定长度 = BurstTransLength*DinBus) | 128 | BurstUnValidTCyc(从DDR读取数据时的无效周期) | 2 |
AiMbZEdge(图像边界数据数量) | 2 | ||
AiMaxMbx(实际输入图像宽度) | 48 | ||
AiMaxMby(实际输入图像高度) | 10 | ||
MbiRamNm(图像数据缓存组数) | 2 | ||
MbLenDW( DWORD 方式一次处理读取数据所需总周期) | 192 | ||
FWbCUnLen(参数属性描述字长度) | 1 | Fx3CUnLen(计算所需参数数据长度) | 288 |
SUNFParsLen(Byte) ( 从外部DDR读取参数需要的总周期) | 298 | ||
DMbCUnLen(DW)(读取计算所需所有数据长度) | 6144 | ||
PMbCUnLen(DW) (读取计算所需所有参数长度 ) | 4768 | ||
Emuif bus efficiency ( DDR 读取时效率 ) | 0.75 | ||
MBCLKCYC_DP(读取数据或参数所需时钟周期中两者中的最大值) | 8192 | ||
MBCLKCYC_CA(计算分块数据所需时钟周期) | 15360 | ||
CNN IMG CALCYC(计算当前图像大小所需时钟周期) | 442368 | ||
TOT_CLKTIMNS(根据***时钟与 CNN IMGCALCYC 折算成计算时间),ms | 1.47 | ||
TOTDDR_CLKCYC( DDR 读取计算所需参数与数据的时钟总周期) | 838,042 |
表3 单层神经网络处理图像数据在未优化时的参数配置及TOT_CLKTIMNS情况表
参数名称 | 参数取值 | 参数名称 | 参数取值 |
ImgW(输入图像数据宽度) | 384 | ImgH(输入图像数据高度) | 288 |
ImgScale(图像缩放系数) | 32 | Stribe(卷积时的采样间隔) | 1 |
ICha(卷积层输入通道数) | 512 | Ocha(卷积层输出通道数) | 256 |
CuNum(片上并行计算单元数量) | 32 | ||
FClaPClkNum(每一时钟周期可计算的次数) | 1 | ||
DDRMode(DDR 读取模式) | 1 | Group(计算单元组数) | 2 |
FILTERSize(卷积滤波器大小) | 1 | ||
PimgW(根据ImgScale计算实际处理图像宽) | 12 | PimgH(根据ImgScale计算实际处理图像高) | 9 |
PDatsbW( 内部数据总线位宽) | 32 | SCDbW(处理大一数据的精度) | 8 |
FParsPrecbW(参数数据位宽) | 8 | DinBus(每时钟周期单一数据的数量) | 4 |
BurstTransLength(外部存储模块批量数据读写长度) | 32 | BurstInValidcTCyc(批量数据时引入的无效数据传输周期) | 2 |
DataSigRamLen8b(片上计算结果缓存大小,bytes) | 1024 | DataTOTRamLen8b(计算单元总计占用RAM总数量) | 32768 |
DataRamLength(单通输出通道可分配RAM大小) | 1024 | ||
ExpectMbxLen(期望计算输入图像宽) | 48 | ExpectMbyHig(期望计算输入图像高) | 20 |
ExpCurMbxLen(实际计算输入图像宽) | 12 | ||
BurstFixLen( 从DDR中读取数据时选择的固定长度 = BurstTransLength*DinBus) | 128 | BurstUnValidTCyc(从DDR读取数据时的无效周期) | 2 |
AiMbZEdge(图像边界数据数量) | 2 | ||
AiMaxMbx(实际输入图像宽度) | 12 | ||
AiMaxMby(实际输入图像高度) | 9 | ||
MbiRamNm(图像数据缓存组数) | 1 | ||
MbLenDW( DWORD 方式一次处理读取数据所需总周期) | 77 | ||
FWbCUnLen(参数属性描述字长度) | 1 | Fx3CUnLen(计算所需参数数据长度) | 32 |
SUNFParsLen(Byte) ( 从外部DDR读取参数需要的总周期) | 38 | ||
DMbCUnLen(DW)(读取计算所需所有数据长度) | 315392 | ||
PMbCUnLen(DW) (读取计算所需所有参数长度 ) | 38912 | ||
Emuif bus efficiency ( DDR 读取时效率 ) | 0.75 | ||
MBCLKCYC_DP(读取数据或参数所需时钟周期中两者中的最大值) | 420523 | ||
MBCLKCYC_CA(计算分块数据所需时钟周期) | 110592 | ||
CNN IMG CALCYC(计算当前图像大小所需时钟周期) | 210261.5 | ||
TOT_CLKTIMNS(根据***时钟与 CNN IMGCALCYC 折算成计算时间),ms | 0.7 | ||
TOTDDR_CLKCYC( DDR 读取计算所需参数与数据的时钟总周期) | 472,405 |
表4 单层神经网络处理图像数据在优化后的参数配置及TOT_CLKTIMNS情况表
参数名称 | 参数取值 | 参数名称 | 参数取值 |
ImgW(输入图像数据宽度) | 384 | ImgH(输入图像数据高度) | 288 |
ImgScale(图像缩放系数) | 32 | Stribe(卷积时的采样间隔) | 1 |
ICha(卷积层输入通道数) | 512 | Ocha(卷积层输出通道数) | 256 |
CuNum(片上并行计算单元数量) | 32 | ||
FClaPClkNum(每一时钟周期可计算的次数) | 1 | ||
DDRMode(DDR 读取模式) | 1 | Group(计算单元组数) | 2 |
FILTERSize(卷积滤波器大小) | 1 | ||
PimgW(根据ImgScale计算实际处理图像宽) | 12 | PimgH(根据ImgScale计算实际处理图像高) | 9 |
PDatsbW( 内部数据总线位宽) | 32 | SCDbW(处理大一数据的精度) | 8 |
FParsPrecbW(参数数据位宽) | 8 | DinBus(每时钟周期单一数据的数量) | 4 |
BurstTransLength(外部存储模块批量数据读写长度) | 32 | BurstInValidcTCyc(批量数据时引入的无效数据传输周期) | 2 |
DataSigRamLen8b(片上计算结果缓存大小,bytes) | 1024 | DataTOTRamLen8b(计算单元总计占用RAM总数量) | 32768 |
DataRamLength(单通输出通道可分配RAM大小) | 1024 | ||
ExpectMbxLen(期望计算输入图像宽) | 48 | ExpectMbyHig(期望计算输入图像高) | 20 |
ExpCurMbxLen(实际计算输入图像宽) | 12 | ||
BurstFixLen( 从DDR中读取数据时选择的固定长度 = BurstTransLength*DinBus) | 128 | BurstUnValidTCyc(从DDR读取数据时的无效周期) | 2 |
AiMbZEdge(图像边界数据数量) | 2 | ||
AiMaxMbx(实际输入图像宽度) | 12 | ||
AiMaxMby(实际输入图像高度) | 9 | ||
MbiRamNm(图像数据缓存组数) | 9 | ||
MbLenDW( DWORD 方式一次处理读取数据所需总周期) | 77 | ||
FWbCUnLen(参数属性描述字长度) | 1 | Fx3CUnLen(计算所需参数数据长度) | 32 |
SUNFParsLen(Byte) ( 从外部DDR读取参数需要的总周期) | 38 | ||
DMbCUnLen(DW)(读取计算所需所有数据长度) | 35043.55556 | ||
PMbCUnLen(DW) (读取计算所需所有参数长度 ) | 38912 | ||
Emuif bus efficiency ( DDR 读取时效率 ) | 0.75 | ||
MBCLKCYC_DP(读取数据或参数所需时钟周期中两者中的最大值) | 51883 | ||
MBCLKCYC_CA(计算分块数据所需时钟周期) | 110592 | ||
CNN IMG CALCYC(计算当前图像大小所需时钟周期) | 55296 | ||
TOT_CLKTIMNS(根据***时钟与 CNN IMGCALCYC 折算成计算时间),ms | 0.18 | ||
TOTDDR_CLKCYC( DDR 读取计算所需参数与数据的时钟总周期) | 98,607 |
针对上述表中,以卷积神经网络为例,其中,DDR即为本实施例中的外部储存模块。
可配置的参数AiMaxMbx可以根据PimgW和ExpectMbxLen计算获得,具体的,取PimgW和ExpectMbxLen中的最小值。其中,PimgW为输入图像数据宽度。在本实施例中,为了提高计算效率,也可以根据不同的资源配置方式进行取值。
可配置的参数AiMaxMby可以根据如下方式计算获得:当DDRMode=2时,取MIN(PimgH,ExpectMbyHig,FLOOR(DataRamLength/AiMaxMbx,1));当DDRMode≠2时,取MIN(PimgH,ExpectMbyHig)),其中,PimgH表示根据ImgScale计算实际处理图像高,FLOOR为向下取整的函数。在本实施例中,为了提高计算效率,也可以根据不同的资源配置方式进行取值。
可配置的参数MbiRamNm可以根据如下方式计算获得:当DDRMode=0时,取1;当DDRMode≠0时,取FLOOR(DataSigRamLen8b/(AiMaxMbx*AiMaxMby),1)),在本实施例中,为了提高计算效率,也可以根据不同的资源配置方式进行取值。
如表1和表2所示,表1中为未优化时,当前网络层需要占用1,048,166个时钟周期总线(DAC1),表2为按照本实施例的方法对AiMaxMby进行优化后网络层需要占用838,042个时钟周期总线(DAC2),因此,对当前层总线(片上内部总线与外部存储带宽)利用效率提升约 25 % ( (DAC1/ DAC2-1)*100%);计算当前网络层需要时间无优化;
如表3和表4所示,如表3中为未优化时,计算当前网络层需要0.7单位计算时间(DBC1),表4为按照本实施例的方法对MbiRamNm进行优化后计算当前网络层需要0.18单位时间(DBC2),对当前层计算速度提升约 288 %( (DBC1/ DBC2-1)*100%)。此外,表3中当前网络层需要占用472,405个时钟周期总线 (DAC1)即时间,表4中优化后网络层需要占用98,607个时钟周期总线(DAC2),对当前层总线(片上内部总线与外部存储带宽)利用效率提升约 379 % ( (DAC1/ DAC2-1)*100%)。
由此可见,以一个 23层的神经网络为例,利用本实施例的构架进行图像数据处理时,综合可提高计算效率〉25 %,提高总线利用效率〉20 %。
因此,通过使用利用本实施例的构架及数据处理方法,在相同规模的片上计算存储资源使用的情况下,可提高神经网络的计算效率和降低片上数据总线(片外存储器)占用或在效率满足需求的情况下在设计初期减少芯片所使用的资源从而降低芯片面积减少芯片成本和运行功耗,且该方法实现方式简明,在人工智能神经网络芯片设计上具备显著的推广价值。
此外,在一种实施例中,本申请实施例提供了一种神经网络芯片,包括上述的资源动态分配型神经网络芯片的构架。
此外,在一种实施例中,本申请还提供一种计算机存储介质,所述计算机存储介质上存储有计算机程序,所述计算机程序被处理器运行时实现前述实施例中方法的步骤。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。计算机可以是包括智能终端和服务器在内的各种计算设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件***中的文件,可以可被存储在保存其他程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者***不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者***所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者***中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器/随机存取存储器、磁碟、光盘)中,包括若干指令用以使得一台多媒体终端设备(可以是手机,计算机,电视接收机,或者网络设备等)执行本申请各个实施例所述的方法。
以上所揭露的仅为本申请的局部实施例而已,当然不能以此来限定本申请之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或局部流程,并依本申请权利要求所做的等同变化,仍属于发明所涵盖的范围。
Claims (10)
1.一种资源动态分配型神经网络芯片的构架,其特征在于,包括:
数据输入缓存模块,用于缓存片上数据总线的第一神经网络数据并将所述第一神经网络数据发送给神经网络计算执行模块;
数据输出缓存模块,用于缓存所述神经网络计算执行模块处理后的第二神经网络数据,并将所述第二神经网络数据发送给所述片上数据总线;
片上资源优化模块,用于根据神经网络配置参数在不同资源配置方式下的不同参数值,获得在不同资源配置方式下的若干第一时间数组;基于若干所述第一时间数组,获得若干第二时间数组;并基于若干所述第二时间数组,确定目标资源配置方式;其中,所述第一时间数组包括从外部存储模块读取分片数据的第一时间和计算分片数据所需的第二时间,所述第二时间数组包括所有数据的读取占用所述片上数据总线的第三时间和计算当前网络层所有数据所消耗的第四时间;
片上资源分配模块,用于根据所述目标资源配置方式,配置所述数据输入缓存模块、所述神经网络计算执行模块和所述数据输出缓存模块。
2.根据权利要求1所述的构架,其特征在于,所述神经网络配置参数包括固定参数和可配置参数;所述片上资源优化模块,还用于根据固定参数以及在不同资源配置方式下的若干组可配置参数值,获得若干第一时间数组。
3.根据权利要求2所述的构架,其特征在于,所述第一神经网络数据和所述第二神经网络数据均为图像数据。
4.根据权利要求3所述的构架,其特征在于,所述固定参数,包括:
输入图像数据宽度、输入图像数据高度、输入数据通道数、输出数据通道数、滤波器大小、片上并行计算单元数量以及计算单元组数、片上计算结果缓存大小、外部存储模块批量数据读写长度和片上数据交换损失时间。
5.根据权利要求3或4所述的构架,其特征在于,所述可配置参数包括:实际输入图像宽度、实际输入图像高度和图像数据缓存组数。
6.根据权利要求1所述的构架,其特征在于,所述片上资源分配模块通过片上配置总线分别与所述数据输入缓存模块、所述神经网络计算执行模块、所述数据输出缓存模块以及片外存储接口模块通信连接,所述片外存储接口模块与所述外部存储模块通信连接。
7.一种基于资源动态分配型神经网络芯片的数据处理方法,其特征在于,包括:
根据神经网络配置参数在不同资源配置方式下的不同参数值,获得在不同资源配置方式下的若干第一时间数组;其中,所述第一时间数组包括从外部存储模块读取分片数据的第一时间和计算分片数据所需的第二时间;
基于若干所述第一时间数组,获得若干第二时间数组;
基于若干所述第二时间数组,确定目标资源配置方式;其中,所述第二时间数组包括所有数据的读取占用片上数据总线的第三时间和计算当前网络层所有数据所消耗的第四时间;
根据所述目标资源配置方式,配置数据输入缓存模块、神经网络计算执行模块和数据输出缓存模块;其中,所述数据输入缓存模块用于缓存所述片上数据总线的第一神经网络数据并将所述第一神经网络数据发送给所述神经网络计算执行模块,所述数据输出缓存模块用于缓存所述神经网络计算执行模块处理后的第二神经网络数据,并将所述第二神经网络数据发送给所述片上数据总线。
8.根据权利要求7所述的方法,其特征在于,所述神经网络配置参数包括固定参数和可配置参数;所述根据神经网络配置参数在不同资源配置方式下的不同参数值,获得在不同资源配置方式下的若干第一时间数组的步骤,包括:
根据固定参数以及在不同资源配置方式下的若干组可配置参数值,获得若干第一时间数组。
9.根据权利要求7所述的方法,其特征在于,所述分片数据为图像数据。
10.一种计算机设备,其特征在于,该计算机设备包括神经网络芯片,所述神经网络芯片包括如权利要求1-6中任一项所述的构架。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210914053.9A CN114968602B (zh) | 2022-08-01 | 2022-08-01 | 资源动态分配型神经网络芯片的构架、方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210914053.9A CN114968602B (zh) | 2022-08-01 | 2022-08-01 | 资源动态分配型神经网络芯片的构架、方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114968602A CN114968602A (zh) | 2022-08-30 |
CN114968602B true CN114968602B (zh) | 2022-10-21 |
Family
ID=82969468
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210914053.9A Active CN114968602B (zh) | 2022-08-01 | 2022-08-01 | 资源动态分配型神经网络芯片的构架、方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114968602B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160005282A (ko) * | 2014-07-04 | 2016-01-14 | 서울대학교산학협력단 | 미세유체칩 및 이를 이용한 신경망 형성 방법 |
CN107016175A (zh) * | 2017-03-23 | 2017-08-04 | 中国科学院计算技术研究所 | 适用神经网络处理器的自动化设计方法、装置及优化方法 |
CN109582463A (zh) * | 2018-11-30 | 2019-04-05 | Oppo广东移动通信有限公司 | 资源配置方法、装置、终端及存储介质 |
WO2019141905A1 (en) * | 2018-01-19 | 2019-07-25 | Nokia Technologies Oy | An apparatus, a method and a computer program for running a neural network |
CN110321064A (zh) * | 2018-03-30 | 2019-10-11 | 北京深鉴智能科技有限公司 | 用于神经网络的计算平台实现方法及*** |
CN112488305A (zh) * | 2020-12-22 | 2021-03-12 | 西北工业大学 | 一种神经网络存储组织结构及其可配置管理方法 |
CN112799599A (zh) * | 2021-02-08 | 2021-05-14 | 清华大学 | 一种数据存储方法、计算核、芯片和电子设备 |
CN113313243A (zh) * | 2021-06-11 | 2021-08-27 | 海宁奕斯伟集成电路设计有限公司 | 神经网络加速器的确定方法、装置、设备以及存储介质 |
-
2022
- 2022-08-01 CN CN202210914053.9A patent/CN114968602B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160005282A (ko) * | 2014-07-04 | 2016-01-14 | 서울대학교산학협력단 | 미세유체칩 및 이를 이용한 신경망 형성 방법 |
CN107016175A (zh) * | 2017-03-23 | 2017-08-04 | 中国科学院计算技术研究所 | 适用神经网络处理器的自动化设计方法、装置及优化方法 |
WO2019141905A1 (en) * | 2018-01-19 | 2019-07-25 | Nokia Technologies Oy | An apparatus, a method and a computer program for running a neural network |
CN110321064A (zh) * | 2018-03-30 | 2019-10-11 | 北京深鉴智能科技有限公司 | 用于神经网络的计算平台实现方法及*** |
CN109582463A (zh) * | 2018-11-30 | 2019-04-05 | Oppo广东移动通信有限公司 | 资源配置方法、装置、终端及存储介质 |
CN112488305A (zh) * | 2020-12-22 | 2021-03-12 | 西北工业大学 | 一种神经网络存储组织结构及其可配置管理方法 |
CN112799599A (zh) * | 2021-02-08 | 2021-05-14 | 清华大学 | 一种数据存储方法、计算核、芯片和电子设备 |
CN113313243A (zh) * | 2021-06-11 | 2021-08-27 | 海宁奕斯伟集成电路设计有限公司 | 神经网络加速器的确定方法、装置、设备以及存储介质 |
Non-Patent Citations (2)
Title |
---|
IPhone***中的QoS控制***的设计与实现;邵巍 等;《电子学报》;20040108;第28卷(第9期);第5-9页 * |
Victim Replication: Maximizing Capacity while Hiding Wire Delay in Tiled Chip Multiprocessors;Michael Zhang 等;《ISCA "05: Proceedings of the 32nd annual international symposium on Computer Architecture》;20050501;第336-345页 * |
Also Published As
Publication number | Publication date |
---|---|
CN114968602A (zh) | 2022-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111079917B (zh) | 张量数据分块存取的方法及装置 | |
CN113743599B (zh) | 一种卷积神经网络的运算装置及服务器 | |
CN111324461B (zh) | 内存分配方法、装置、计算机设备和存储介质 | |
WO2020253117A1 (zh) | 一种数据处理方法及装置 | |
CN111931909B (zh) | 一种基于fpga的轻量卷积神经网络可重构部署方法 | |
CN112929672A (zh) | 一种视频压缩方法、装置、设备及计算机可读存储介质 | |
CN114968602B (zh) | 资源动态分配型神经网络芯片的构架、方法和设备 | |
CN111369444A (zh) | 一种图像缩放处理方法及装置 | |
CN111310115A (zh) | 数据处理方法、装置及芯片、电子设备、存储介质 | |
CN114879968A (zh) | 一种基板管理控制芯片中视频处理的方法和装置 | |
CN112906332B (zh) | Fpga设计的综合实现方法和装置 | |
CN110998524A (zh) | 处理配置文件的方法、处理单元、触摸芯片、装置及介质 | |
CN114662689A (zh) | 一种神经网络的剪枝方法、装置、设备及介质 | |
CN112130977B (zh) | 一种任务调度方法、装置、设备及介质 | |
CN114065123A (zh) | 稀疏矩阵计算方法及加速装置 | |
CN113468442A (zh) | 资源位流量的分发方法、计算设备及计算机存储介质 | |
CN113114271A (zh) | 低密度奇偶校验编码装置和方法 | |
CN109388531B (zh) | 基于dsp板卡的测试装置及其测试方法 | |
CN114327854A (zh) | 利用协程处理业务请求的方法及相关设备 | |
CN113722623A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN113052291A (zh) | 数据处理方法和装置 | |
CN116303108B (zh) | 一种适用于并行计算架构的权重地址排布方法 | |
CN212873459U (zh) | 一种用于数据压缩存储的*** | |
CN116150212B (zh) | 数据处理方法及设备 | |
CN112949235B (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 |