CN109871952A - 电子装置、加速器、神经网络的加速方法及加速系统 - Google Patents

电子装置、加速器、神经网络的加速方法及加速系统 Download PDF

Info

Publication number
CN109871952A
CN109871952A CN201811458625.7A CN201811458625A CN109871952A CN 109871952 A CN109871952 A CN 109871952A CN 201811458625 A CN201811458625 A CN 201811458625A CN 109871952 A CN109871952 A CN 109871952A
Authority
CN
China
Prior art keywords
memory
data
processor
accelerator
electronic device
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
CN201811458625.7A
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.)
Abee Technology Co ltd
Original Assignee
Abee Technology Co ltd
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 Abee Technology Co ltd filed Critical Abee Technology Co ltd
Priority to CN202310855592.4A priority Critical patent/CN117252248A/zh
Publication of CN109871952A publication Critical patent/CN109871952A/zh
Pending legal-status Critical Current

Links

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3243Power saving in microcontroller unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4893Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues taking into account power or heat criteria
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • 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
    • 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
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3237Power saving characterised by the action undertaken by disabling clock generation or distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • 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

Abstract

一种电子装置,包含:一数据传输接口,用以传输一数据;一存储器,用以存储该数据;一处理器,用以执行一应用程序;以及一加速器,经一总线与该处理器耦接,并依从该处理器传来的一运算请求,自该存储器中读取该数据,对该数据执行一运算以产生一运算数据,存储于该存储器中。该电子装置能够提升运算效能。本揭示并提供一种加速器、适用于神经网络运算的加速方法及神经网络加速系统。

Description

电子装置、加速器、神经网络的加速方法及加速系统
技术领域
本揭示涉及运算领域,特别有关一种电子装置、加速器、适用于神经网络(neuralnetwork)运算的加速方法及神经网络加速系统。
背景技术
近年来,随着计算能力的提升,神经网络相关应用逐渐发展,成为产业的一大趋势。虽然现今的处理器效能有所提升,但是以处理器来进行神经网络运算需要频繁存取存储器(memory),使得运算效能降低。现有技术中,可以利用图形处理器(GraphicsProcessing Unit, GPU)来进行神经网络运算而提升效能,然而其硬件架构复杂,一般只局限于桌上型计算机,且缺乏节电方案,难以扩展到可携式装置的应用中。
有鉴于此,有必要提出一种新的方案,以解决上述问题。
发明内容
本揭示的目的在于提供一种电子装置、加速器、适用于神经网络运算的加速方法及神经网络加速系统,以提升运算效率。
本揭示一方面提供一种电子装置,包含:一数据传输接口,用以传输一数据;一存储器,用以存储该数据;一处理器,用以执行一应用程序;以及一加速器,经一总线与该处理器耦接,并依从该处理器传来的一运算请求,自该存储器中读取该数据,对该数据执行一运算以产生一运算数据,存储于该存储器中。
本揭示另一方面提供一种适用于将一存储器中的一数据进行一神经网络运算的加速器,包含:一寄存器,用于存储与该神经网络运算相关的若干个参数;一读写器,用于从该存储器中读取该数据;一控制器,与该寄存器和该读写器耦接;以及一运算器,与该控制器耦接,该控制器依据这些参数,控制该运算器对该数据执行该神经网络运算,并产生一运算数据。
本揭示又一方面提供一种适用于神经网络运算的加速方法,包含:(a) 接收一数据;(b) 利用一处理器执行一神经网络应用程序;(c) 利用该神经网络应用程序的执行,将该数据存储至一存储器中,并对一加速器发出一第一信号;(d)利用该加速器开始进行一神经网络运算,以产生一运算数据;(e)完成该神经网络运算,利用该加速器发出一第二信号至该处理器;(f) 利用该处理器继续执行该神经网络应用程序;以及(g) 判断是否需要继续该加速器运作,若是,该处理器向该加速器发出一第三信号,并回到步骤(d),若否,则结束运算。
本揭示再一方面提供一种神经网络加速系统,包含:一系统控制芯片,包括:一数据传输接口,用以传输一数据;一第一存储器;以及一处理器,用以执行一应用程序,经一总线与该存储器及该数据传输接口耦接;以及一加速器,连接到该系统控制芯片,该加速器包括:一控制器;一第二存储器,用以存储该数据;一读写器,用来读写该第二存储器;一运算器,用来对该数据执行一神经网络运算;以及一寄存器,存放与该神经网络运算相关的若干个参数。
本揭示中,处理器将某些运算(例如神经网络运算)交给加速器处理,可以减少存储器的存取时间,提升运算效率。而且,在某些实施例中,加速器执行运算期间,处理器处于省电状态,因而可以有效减少电力消耗。
为让本揭示的上述内容能更明显易懂,下文特举优选实施例,并配合附图,作详细说明如下。
附图说明
图1显示本揭示之电子装置的示意图。
图2显示本揭示之电子装置的第一实施例的示意图。
图3显示本揭示之电子装置的第二实施例的示意图。
图4显示本揭示之电子装置的第三实施例的示意图。
图5显示本揭示之电子装置的第四实施例的示意图。
图6显示本揭示之神经网络加速系统的示意图。
图7显示本揭示之加速器、处理器及存储器的示意图。
图8显示本揭示之加速器的细部结构图。
图9显示根据本揭示的一种适用于神经网络运算的加速方法。
具体实施方式
为使本揭示的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本揭示进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本揭示,本揭示说明书所使用的词语“实施例”意指用作实例、示例或例证,并不用于限定本揭示。此外,本揭示说明书和所附权利要求书中所使用的冠词「一」一般地可以被解释为意指「一个或多个」,除非另外指定或从上下文可以清楚确定单数形式。并且,在附图中,结构、功能相似或相同的元件是以相同元件标号来表示。
本揭示提供一种电子装置,其具有将某些运算从处理器独立出来的特点,这些运算特别是相关于神经网络的运算,本揭示的电子装置能够提升运算的效率。
请参阅图1,本揭示的电子装置包括一数据传输接口10、一存储器(memory)12、一处理器14、一加速器(accelerator)16及一总线(bus)18。数据传输接口10用于传输一原生数据,存储器12用以存储该原生数据,存储器12可实现为静态随机存取存储器(StaticRandom Access Memory, SRAM)。数据传输接口10将该原生数据传输到存储器12中存储起来。该原生数据例如为感测器(未附图)所获取的感测数据,例如心电图(Electrocardiography, ECG)数据。数据传输接口10可以采行的规范例如集成电路总线(I2C bus)、串行外设接口(Serial Peripheral Interface bus, SPI)、通用输入输出(General-purpose Input/Output, GPIO)和通用异步收发传输器(UniversalAsynchronous Receiver/Transmitter, UART)等。
处理器14用以执行一应用程序(Application Program),例如神经网络应用程序,具体如卷积神经网络(Convolutional Neural Network )应用程序。处理器14通过总线18与加速器16耦接。当处理器14有运算需求时,例如相关于神经网络的运算,如卷积(Convolution)运算,修正线性单元(Rectified Linear Units, ReLu)运算及最大池化(Max pooling)运算,处理器14通过总线18向加速器16发出一运算请求。总线18可实现为一高级高性能总线(Advanced High-Performance Bus, AHB)。
加速器16通过总线18从处理器14接收该运算请求。当加速器16接收到该运算请求时,加速器16从存储器12中读取该原生数据,并对该原生数据执行一运算(computingoperation)以产生一运算数据(Processed data),所产生的运算数据存储到存储器12中。例如,该运算为卷积运算,卷积运算为卷积神经网络中运算量最大的运算。以卷积运算来说,加速器16对该原生数据中的每一笔数据乘以一个权重系数,而后对其进行加总,也可再加总后再加上一个偏差值(bias)作为输出,得出的结果可传递到下一个神经网络层,作为下一个神经网络层的输入。例如,得出的结果可传递到一卷积层,在该卷积层再进行一次卷积运算,其输出作为下一层的输入,该下一层可为一ReLu层、一最大池化层或一平均池化层,在最终的输出层之前可连接一全连接层(full connected layer)。
加速器16所进行的运算并不限于以该原生数据为输入,对其直接进行的运算。加速器16所进行的运算可以是一个神经网络中各层所需的运算,例如如前所述的卷积运算、修正线性单元运算和最大池化运算。
上述的原生数据可以在前端进行处理、优化后生成一数据,再存储于存储器12中。例如,该原生数据可在前端进行滤波、降噪及/或时频域转换等处理后再存储于存储器12中,而加速器16对该处理后的数据执行该运算。本文中的原生数据也可以是不限于从该感测器取得的数据,而是泛指可以传输到加速器16进行运算的任何数据。
上述之电子装置可以一系统单芯片(System on Chip, SoC)实现,也就是说,数据传输接口10、存储器12、处理器14、加速器16及总线18等元件可整合于一个系统单芯片中。
本揭示的电子装置中,处理器14将某些运算交给加速器16处理,这样可以减少处理器14的负载,增加处理器14的可使用率,减少等待时间,在某些应用中也可降低处理器14成本。在神经网络应用方面,若以处理器14来处理相关于神经网络的运算,处理器14会因耗费太多时间在存储器12存取上而使得运算时间拉长。本揭示的电子装置中加速器16负责相关于神经网络的运算,这样的其中一个好处是减少了存储器12的存取时间。举例来说,在处理器14的操作频率为加速器16和存储器12的操作频率的两倍的情况下,处理器14需要10个操作周期的时间来存取存储器12内的数据,但加速器16仅需1个操作周期的时间。因此,加速器16的设置可以有效提升运算效率。
本揭示的另一个技术特点是该电子装置可以有效减少电力消耗。具体地,加速器16执行该运算期间,处理器14处于闲置中,进一步来说可以是在一省电状态。处理器14包括一工作模式(operation mode)及一省电模式(power saving mode),当加速器16执行该运算时,处理器14处于该省电模式。在该省电状态或该省电模式下,处理器14可以是处于等待中断操作(wait for interrupt, WFI)的闲置(Idle)状态,也可以是处于低时脉(clock)的状态,也就是处理器14在省电模式下降低了时脉,或者是时脉完全关闭的状态。于另一实施例中,当从该工作模式进入该省电模式时,处理器14进入闲置状态且时脉降低到低时脉或完全关闭的状态。在一实施例中,处理器14的操作频率或时脉较加速器16高,处理器14的耗电量也较加速器16来得高,因此加速器16执行该运算时处理器14进入该省电模式,可以有效减少电力消耗,有利于例如穿戴式装置的应用场合。
图2显示本揭示之电子装置的第一实施例的示意图。第一实施例的电子装置包括一处理器14、一加速器16、一第一存储器121、一第二存储器122、一第一总线181、一第二总线182、一系统控制单元(System Control Unit, SCU)22及一数据传输接口10。第一总线181例如为高级高性能总线,第二总线182例如为一高级性能/周边总线(AdvancedPerformance/Peripherals Bus, APB)。第一总线181之传输速度高于第二总线182之传输速度。加速器16经第一总线181与处理器14耦接。第一存储器121直接连接于加速器16,第二存储器122经第一总线181与处理器14耦接。例如,第一存储器121和第二存储器122皆为SRAM。
于一实施例中,该原生数据或该数据可存放于第一存储器121中,加速器16执行该运算所产生的该运算数据可存放于第二存储器122中。具体地,处理器14将该数据传给加速器16,加速器16通过第一总线181接收该数据,并将该数据写入第一存储器121中,加速器16生成的该运算数据经第一总线181写入第二存储器122中。
于另一实施例中,该原生数据或该数据可存放于第二存储器122中,加速器16执行该运算所产生的该运算数据可存放于第一存储器121中。具体地,该数据通过第一总线181写入第二存储器122中,加速器16生成的该运算数据直接写入第一存储器121中。
又于另一实施例中,该数据及该运算数据均存放于第一存储器121中,第二存储器122存放与处理器14中运行的该应用程序相关的若干个数据。例如,第二存储器122存放处理器14中运行的卷积神经网络应用程序所需的相关数据。在此实施例中,处理器14将该数据传给加速器16,加速器16通过第一总线181接收该数据,并将该数据写入第一存储器121中,加速器16生成的该运算数据直接写入第一存储器121中。
处理器14与加速器16可以共享第一存储器121,处理器14可以通过加速器16将该数据存储到第一存储器121,并从第一存储器121读取该运算数据。当存取第一存储器121时,加速器16具有较处理器14高的优先存取权。
第一实施例的电子装置更包括与第二总线182耦接的一闪存控制器24及一显示控制器26,闪存控制器24用以耦接该电子装置外的一闪存240,显示控制器26用以耦接该电子装置外的一显示装置260。也就是说,该电子装置可以耦接该闪存240实现外部存取功能,可以耦接该显示装置260实现显示功能。
系统控制单元22通过第一总线181与处理器14耦接。系统控制单元22可以管理系统资源,控制处理器14与其他元件的活动。于另一实施例中,系统控制单元22也可整合为处理器14中的元件。具体地,系统控制单元22可以控制处理器14的时脉或操作频率。本揭示中,利用系统控制单元22来将处理器14的时脉降低或完全关闭而使处理器14从该工作模式进入该省电模式,利用系统控制单元22来将处理器14的时脉提高为正常时脉而使处理器14从该省电模式进入该工作模式。另一方面,加速器16执行该运算期间,可以通过固件驱动程序向处理器14发出等待中断操作(WFI)的指令,使得处理器14进入闲置状态。
图3显示本揭示之电子装置的第二实施例的示意图。相较于第一实施例,第二实施例中仅配置一存储器12,其通过第一总线181与处理器14和加速器16耦接。在第二实施例中,该数据和该运算数据均存放于存储器12中。具体地,处理器14将从传输接口传来的原生数据或对该原生数据进一步处理而生成的数据,通过第一总线181存储于存储器12中。加速器16从存储器12中读取该数据,并对该数据执行该运算而生成运算数据,所生成的运算数据通过第一总线181存储于存储器12中。当加速器16与处理器14同时对存储器12存取时,加速器16具有较处理器14高之优先权,也就是加速器16可以优先存取存储器12,这样可以确保加速器16的运算效率。
图4显示本揭示之电子装置的第三实施例的示意图。相较于第二实施例,第三实施例中存储器12直接与加速器16耦接,加速器16再通过第一总线181与处理器14耦接。第三实施例中,处理器14与加速器16共享存储器12,处理器14通过加速器16将该数据存放到存储器12中,加速器16对该数据执行该运算而生成的运算数据也存放到存储器12中,处理器14可以通过加速器16从存储器12中读取该运算数据。对存储器12来说,加速器16具有较处理器14高的优先存取权。
图5显示本揭示之电子装置的第四实施例的示意图。相较于第三实施例,第四实施例中加速器16经由第二总线182与处理器14耦接,第二总线182的传输速度低于第一总线181的传输速度。也就是说,加速器16可以配置成与外围的总线连接,而不限于与处理器14连接的高速总线连接。第四实施例中,处理器14与加速器16可以整合为一系统单芯片(SoC)。
图6显示本揭示之神经网络加速系统的示意图。本揭示之神经网络加速系统包含一系统控制芯片60及一加速器16。系统控制芯片60包括一处理器14、一第一存储器121、一第一总线181、一第二总线182及一数据传输接口10。系统控制芯片60可为一系统单芯片。加速器16以外挂的方式连接系统控制芯片60。具体地,加速器16连接系统控制芯片60中的外围总线,即第二总线182。加速器16可以自带存储器,即一第二存储器122。
请参阅图7,本揭示的加速器16包括一控制器72、一运算器74、一读写器76及一寄存器78。读写器76耦接至存储器12,加速器16通过读写器76可存取存储器12。例如,加速器16通过读写器76读取存储于存储器12中的原生数据或数据,所生成的运算数据通过读写器76存储到存储器12中。读写器76可以通过总线18与处理器14耦接,这样处理器14可以通过加速器16中的读写器76将原生数据或数据存储到存储器12中,也可以通过读写器76读取存储于存储器12中的运算数据。
寄存器78通过总线18与处理器14耦接。与寄存器78耦接的总线18和与读写器76耦接的总线18可以是不同的总线,也就是,寄存器78与读写器76通过不同的总线与处理器14耦接。处理器14在执行例如神经网络应用程序时及固件驱动程序执行时,可将一些参数写入寄存器78中,例如数据宽度、数据深度、核(kernel)宽度、核深度、回圈次数等相关于神经网络运算的参数。寄存器78也可以存储一些控制逻辑参数,例如参数CR_REG中包含go比特、relu比特、pave比特和pmax比特,控制器72根据go比特决定是否进行神经网络运算,根据relu比特、pave比特和pmax比特,决定该神经网络运算是否包含修正线性单元运算、平均池化运算和最大池化运算。
控制器72与寄存器78、读写器76及运算器74耦接,用以根据寄存器78中存储的参数来进行操作,控制读写器76是否存取存储器12,并控制运算器74的运算流程。控制器72可以实现为有限状态机(Finite-State Machine, FSM)、微控制器(Micro Control Unit,MCU)或其他类型的控制器。
运算器74可以执行相关于神经网络的运算,例如卷积运算,修正线性单元运算、平均池化运算及最大池化运算等。基本上,运算器74包含一乘数累加器(Multiply-accumulator ),可以进行对每一笔数据乘以一个权重系数后累加的运算。在本揭示中,运算器74依不同的应用而有所不同,例如可以是加法器、乘法器、累加器等各种运算逻辑或是其组合。运算器74可支援的数据类型包含但不限于无号整数(unsigned integer)、有号整数(signed integer)及浮点数(floating point)。
图8显示本揭示之加速器的细部结构图。如图8所示,读写器76包含一仲裁逻辑761,加速器16和处理器14要对存储器12进行存取时,会发出一存取请求至仲裁逻辑761。在一实施例中,当仲裁逻辑761同时接收到加速器16和处理器14发出的对存储器12的存取请求时,允许加速器16优先存取存储器12,也就是说,加速器16相较于处理器14,对存储器12来说具有优先存取权。
运算器74包含一乘法阵列82、一加法器84及一超前进位加法器(carry-lookaheadadder, CLA adder)86。在进行运算过程中,运算器74先从存储器12读取数据及对应的权重,该数据可为神经网络中第零层的输入或上一层的输出。接着,该数据和权重以比特表达式的形式输入到乘法阵列82进行乘法运算,例如数据以a1a2表示,权重以b1b2表示,乘法阵列82计算得出a1b1、a1b2、a2b1和a2b2。加法器84用以计算各乘积的总和,即D1=a1b1+a1b2+a2b1+a2b2,而后输出到超前进位加法器86。利用乘法阵列82和加法器84可以将各乘积一次加总,避免了中间的计算,减少存储器12的存取时间。接着,对下一笔数据及对应的权重进行相同的运算,得出D2。超前进位加法器86用以对加法器84输出的数值进行加总,亦即S1=D1+D2,并将加总后的数值作为输入与加法器84输出的数值进行累加,例如S2=S1+D3。最后,超前进位加法器86将累加后的数值与从存储器12读出的偏差值进行加总,例如Sn+b,b为偏差值。
本揭示的运算器74在运算过程中不用将中间的计算结果存入存储器12,再从存储器12中读取进行下一步计算,因此可以避免频繁地存取存储器12,减少运算时间,提升运算效率。
图9显示根据本揭示的一种适用于神经网络运算的加速方法。请配合上文描述的电子装置的具体结构,一并参阅图9,本揭示的适用于神经网络运算的加速方法包含如下步骤:
步骤S90:接收一数据。该数据是要通过加速器16进行运算的数据。举例来说,利用感测器获取感测数据,如ECG数据。该感测数据可以作为该数据。该感测数据也可被进一步处理,如滤波、降噪及/或频域转换等处理,而形成该数据。
步骤S92:利用一处理器14执行一神经网络应用程序。在接收到该数据后,处理器14可以根据一中断请求,开始执行该神经网络应用程序。
步骤S94:利用该神经网络应用程序的执行,将该数据存储至一存储器12中,并对一加速器16发出一第一信号。在此步骤中,该神经网络应用程序将该数据、权重及偏差值写入存储器12中,该神经网络应用程序可以通过固件驱动程序来完成这些复制动作。固件驱动程序可以进一步将运算需要的参数(如指标、数据宽度、数据深度、核宽度、核深度及运算的类型等)复制到寄存器78中。当数据已准备就绪,固件驱动程序可对加速器16发出第一信号以使加速器16开始进行运算,该第一信号为运算请求信号。例如,固件驱动程序可将加速器16之寄存器78中CR_REG所包含go比特设定为真,以开始神经网络运算。
此时,固件驱动程序可向处理器14发出等待中断操作(WFI)的指令,使得处理器14进入闲置状态,达到省电的作用。亦即,加速器16在进行运算时,处理器14保持低耗电状态。处理器14在闲置状态下接收到中断操作时,可以回复到工作模式。
固件驱动程序也可向系统控制单元22发出信号,系统控制单元22根据该信号可选择性地来将处理器14的时脉降低或完全关闭而使处理器14从工作模式进入省电模式。举例来说,固件驱动程序可以通过判断要求执行该神经网络运算的次数是否大于一阈值,来决定是否降低或关闭处理器14时脉。
步骤S96:利用该加速器16开始进行一神经网络运算,以产生一运算数据。举例来说,当加速器16之控制器72侦测到寄存器78之CR_REG的go比特为真时,控制器72控制运算器74对该数据进行神经网络运算,以产生运算数据。在此,该神经网络运算可包含卷积运算,修正线性单元运算、平均池化运算及最大池化运算等。运算器74可支援的数据类型包含但不限于无号整数、有号整数及浮点数。
步骤S98:完成该神经网络运算,利用该加速器16发出一第二信号至该处理器14。当完成该神经网络运算时,固件驱动程序可将寄存器78之CR_REG的go比特设为假,以结束该神经网络运算。此时,固件驱动程序可以通知系统控制单元22将处理器14时脉回复到正常时脉,加速器16向处理器14发出中断请求,使得处理器14从闲置状态回复到工作模式。
步骤S100:利用该处理器14继续执行该神经网络应用程序。处理器14回复到工作模式后,继续执行该神经网络应用程序。
步骤S102:判断是否需要继续该加速器16运作,若是,该处理器14向该加速器16发出一第三信号,并回到步骤S94,若否,则结束运算。该神经网络应用程序判断是否有待处理的数据需要加速器16进行运算。若有,则向加速器16发出该第三信号,将待处理的数据复制到存储器12中以便进行神经网络运算,该第三信号为运算请求信号。若无,则结束该运算。
本揭示已用较佳实施例揭露如上,然其并非用以限定本揭示,本领域技术人员在不脱离本揭示之精神和范围内,当可作各种之更动与润饰,因此本揭示之保护范围当视后附之权利要求书所界定者为准。

Claims (28)

1.一种电子装置,其特征在于,包含:
一数据传输接口,用以传输一数据;
一存储器,用以存储该数据;
一处理器,用以执行一应用程序;以及
一加速器,经一总线与该处理器耦接,并依从该处理器传来的一运算请求,自该存储器中读取该数据,对该数据执行一运算以产生一运算数据,存储于该存储器中。
2.根据权利要求1所述的电子装置,其特征在于:该加速器执行该运算期间,该处理器处于一省电状态。
3.根据权利要求1所述的电子装置,其特征在于:该存储器包括一第一存储器,该第一存储器直接连接于该加速器。
4.根据权利要求3所述的电子装置,其特征在于:该存储器包括一第二存储器,该第二存储器经该总线与该处理器耦接。
5.根据权利要求4所述的电子装置,其特征在于:该数据存储于该第一存储器中,该运算数据存储于该第二存储器中。
6.根据权利要求4所述的电子装置,其特征在于:该数据与该运算数据存储于该第一存储器中,该第二存储器中存放与该应用程序相关之若干个数据。
7.根据权利要求1所述的电子装置,其特征在于:该存储器经由总线与该处理器耦接,该数据与该运算数据均存放于该存储器中,当该加速器与该处理器同时对该存储器存取时,该加速器具有较该处理器高之优先权。
8.根据权利要求1所述的电子装置,其特征在于:该总线包括一第一总线及一第二总线,该第一总线之传输速度高于该第二总线之传输速度,该处理器与该加速器耦接该第一总线。
9.根据权利要求8所述的电子装置,其特征在于:该加速器经由该第二总线与该处理器耦接。
10.根据权利要求1所述的电子装置,其特征在于:该电子装置更包括一闪存控制器,用以耦接该电子装置外之一闪存。
11.根据权利要求1所述的电子装置,其特征在于:该电子装置更包括一显示控制器,用以耦接该电子装置外之一显示装置。
12.根据权利要求1所述的电子装置,其特征在于:该电子装置更包括一系统控制单元,该数据传输接口设置于该系统控制单元内。
13.根据权利要求1所述的电子装置,其特征在于:该处理器包括一工作模式及一省电模式,当该加速器执行该运算时,该处理器处于该省电模式。
14.根据权利要求1所述的电子装置,其特征在于:该运算包括卷积运算,修正线性单元运算及最大池化运算。
15.根据权利要求1所述的电子装置,其特征在于,该加速器包括:
一控制器;
一寄存器,存放该运算所需之若干个参数;
一运算器,用来执行该运算;以及
一读写器,用来读写该存储器。
16.根据权利要求15所述的电子装置,其特征在于:该运算器包括一乘数累加器。
17.根据权利要求15所述的电子装置,其特征在于:该读写器从该存储器中读取该数据及对应的权重,并将该运算数据存储到该存储器中。
18.一种适用于将一存储器中的一数据进行一神经网络运算的加速器,包含:
一寄存器,用于存储与该神经网络运算相关的若干个参数;
一读写器,用于从该存储器中读取该数据;
一控制器,与该寄存器和该读写器耦接;以及
一运算器,与该控制器耦接,该控制器依据这些参数,控制该运算器对该数据执行该神经网络运算,并产生一运算数据。
19.根据权利要求18所述的加速器,其特征在于:该读写器包含一仲裁逻辑,用以接收对该存储器的一存取请求,并允许该加速器优先存取该存储器。
20.根据权利要求18所述的加速器,其特征在于,该运算器包含:
一乘法阵列,用以接收该数据及对应的权重,并对该数据及该权重进行乘法运算;
一加法器,用以计算乘积的总和;以及
一超前进位加法器,用以对该加法器输出的数值进行加总,并将加总后的数值作为输入与该加法器输出的数值进行累加。
21.根据权利要求18所述的加速器,其特征在于:该运算数据直接传输到该存储器,并存储于该存储器中。
22.根据权利要求18所述的加速器,其特征在于:该运算数据直接传输到不同于该存储器之另一存储器,并存储于该另一存储器中。
23.一种适用于神经网络运算的加速方法,包含:
(a) 接收一数据;
(b) 利用一处理器执行一神经网络应用程序;
(c) 利用该神经网络应用程序的执行,将该数据存储至一存储器中,并对一加速器发出一第一信号;
(d)利用该加速器开始进行一神经网络运算,以产生一运算数据;
(e)完成该神经网络运算,利用该加速器发出一第二信号至该处理器;
(f) 利用该处理器继续执行该神经网络应用程序;以及
(g) 判断是否需要继续该加速器运作,若是,该处理器向该加速器发出一第三信号,并回到步骤(d),若否,则结束运算。
24.根据权利要求23所述的加速方法,其特征在于,步骤(d)包括:
向该处理器发出一等待中断操作的指令,使得该处理器进入一闲置状态。
25.根据权利要求23所述的加速方法,其特征在于:在步骤(e)中,该第二信号代表该加速器向该处理器发出的一中断操作。
26.根据权利要求23所述的加速方法,其特征在于,步骤(d)包括:
发出一第四信号至一系统控制单元,以降低一处理器时脉,同时该处理器进入一省电模式。
27.根据权利要求26所述的加速方法,其特征在于,步骤(e)包括:
发出一第五信号至该系统控制单元,以回复该处理器时脉,同时该处理器回复到一工作模式。
28.一种神经网络加速系统,其特征在于,包含:
一系统控制芯片,包括:
一数据传输接口,用以传输一数据;
一第一存储器;以及
一处理器,用以执行一应用程序,经一总线与该存储器及该数据传输接口耦接;以及
一加速器,连接到该系统控制芯片,该加速器包括:
一控制器;
一第二存储器,用以存储该数据;
一读写器,用来读写该第二存储器;
一运算器,用来对该数据执行一神经网络运算;以及
一寄存器,存放与该神经网络运算相关的若干个参数。
CN201811458625.7A 2017-12-01 2018-11-30 电子装置、加速器、神经网络的加速方法及加速系统 Pending CN109871952A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310855592.4A CN117252248A (zh) 2017-12-01 2018-11-30 穿戴式电子装置

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
TW106142473A TW201926147A (zh) 2017-12-01 2017-12-01 電子裝置、加速器、適用於神經網路運算的加速方法及神經網路加速系統
TW106142473 2017-12-01

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202310855592.4A Division CN117252248A (zh) 2017-12-01 2018-11-30 穿戴式电子装置

Publications (1)

Publication Number Publication Date
CN109871952A true CN109871952A (zh) 2019-06-11

Family

ID=66659267

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202310855592.4A Pending CN117252248A (zh) 2017-12-01 2018-11-30 穿戴式电子装置
CN201811458625.7A Pending CN109871952A (zh) 2017-12-01 2018-11-30 电子装置、加速器、神经网络的加速方法及加速系统

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202310855592.4A Pending CN117252248A (zh) 2017-12-01 2018-11-30 穿戴式电子装置

Country Status (3)

Country Link
US (1) US20190171941A1 (zh)
CN (2) CN117252248A (zh)
TW (1) TW201926147A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021000281A1 (en) * 2019-07-03 2021-01-07 Huaxia General Processor Technologies Inc. Instructions for operating accelerator circuit
WO2021088563A1 (zh) * 2019-11-04 2021-05-14 北京希姆计算科技有限公司 卷积运算电路、装置以及方法

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11004500B2 (en) 2019-08-28 2021-05-11 Micron Technology, Inc. Memory with artificial intelligence mode
CN110659733A (zh) * 2019-09-20 2020-01-07 上海新储集成电路有限公司 一种加速神经网络模型预测过程的处理器系统
KR20210080009A (ko) * 2019-12-20 2021-06-30 삼성전자주식회사 가속기, 가속기의 동작 방법 및 가속기를 포함한 디바이스
US11887647B2 (en) * 2020-04-09 2024-01-30 Micron Technology, Inc. Deep learning accelerator and random access memory with separate memory access connections
US11355175B2 (en) 2020-04-09 2022-06-07 Micron Technology, Inc. Deep learning accelerator and random access memory with a camera interface
US11726784B2 (en) 2020-04-09 2023-08-15 Micron Technology, Inc. Patient monitoring using edge servers having deep learning accelerator and random access memory
US11461651B2 (en) * 2020-04-09 2022-10-04 Micron Technology, Inc. System on a chip with deep learning accelerator and random access memory
US11874897B2 (en) 2020-04-09 2024-01-16 Micron Technology, Inc. Integrated circuit device with deep learning accelerator and random access memory
US20210320967A1 (en) * 2020-04-09 2021-10-14 Micron Technology, Inc. Edge Server with Deep Learning Accelerator and Random Access Memory
US11720417B2 (en) 2020-08-06 2023-08-08 Micron Technology, Inc. Distributed inferencing using deep learning accelerators with integrated random access memory
CN112286863B (zh) * 2020-11-18 2023-08-18 合肥沛睿微电子股份有限公司 处理暨存储电路
US20220188606A1 (en) * 2020-12-14 2022-06-16 Micron Technology, Inc. Memory Configuration to Support Deep Learning Accelerator in an Integrated Circuit Device

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101446631A (zh) * 2007-11-28 2009-06-03 联发科技股份有限公司 具有省电模式的电子装置及信号处理方法
US20100076915A1 (en) * 2008-09-25 2010-03-25 Microsoft Corporation Field-Programmable Gate Array Based Accelerator System
WO2011004219A1 (en) * 2009-07-07 2011-01-13 Nokia Corporation Method and apparatus for scheduling downloads
CN102402422A (zh) * 2010-09-10 2012-04-04 北京中星微电子有限公司 处理器组件及该组件内存共享的方法
CN202281998U (zh) * 2011-10-18 2012-06-20 苏州科雷芯电子科技有限公司 一种标量浮点运算加速器
CN103176767A (zh) * 2013-03-01 2013-06-26 浙江大学 一种低功耗高吞吐的浮点数乘累加单元的实现方法
US20150261528A1 (en) * 2014-03-14 2015-09-17 Wisconsin Alumni Research Foundation Computer accelerator system with improved efficiency
CN106055549A (zh) * 2015-04-09 2016-10-26 国际商业机器公司 利用加速器的概念分析操作
CN106529668A (zh) * 2015-11-17 2017-03-22 中国科学院计算技术研究所 加速深度神经网络算法的加速芯片的运算装置及方法
CN106991476A (zh) * 2016-01-20 2017-07-28 南京艾溪信息科技有限公司 用于执行人工神经网络正向运算的装置和方法
CN107003989A (zh) * 2014-12-19 2017-08-01 英特尔公司 用于人工神经网络中的分布式与协作计算的方法和装置
CN107209548A (zh) * 2015-02-13 2017-09-26 英特尔公司 在多核处理器中执行功率管理
CN107329936A (zh) * 2016-04-29 2017-11-07 北京中科寒武纪科技有限公司 一种用于执行神经网络运算以及矩阵/向量运算的装置和方法

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101446631A (zh) * 2007-11-28 2009-06-03 联发科技股份有限公司 具有省电模式的电子装置及信号处理方法
US20100076915A1 (en) * 2008-09-25 2010-03-25 Microsoft Corporation Field-Programmable Gate Array Based Accelerator System
US8131659B2 (en) * 2008-09-25 2012-03-06 Microsoft Corporation Field-programmable gate array based accelerator system
WO2011004219A1 (en) * 2009-07-07 2011-01-13 Nokia Corporation Method and apparatus for scheduling downloads
CN102402422A (zh) * 2010-09-10 2012-04-04 北京中星微电子有限公司 处理器组件及该组件内存共享的方法
CN202281998U (zh) * 2011-10-18 2012-06-20 苏州科雷芯电子科技有限公司 一种标量浮点运算加速器
CN103176767A (zh) * 2013-03-01 2013-06-26 浙江大学 一种低功耗高吞吐的浮点数乘累加单元的实现方法
US20150261528A1 (en) * 2014-03-14 2015-09-17 Wisconsin Alumni Research Foundation Computer accelerator system with improved efficiency
CN107003989A (zh) * 2014-12-19 2017-08-01 英特尔公司 用于人工神经网络中的分布式与协作计算的方法和装置
CN107209548A (zh) * 2015-02-13 2017-09-26 英特尔公司 在多核处理器中执行功率管理
CN106055549A (zh) * 2015-04-09 2016-10-26 国际商业机器公司 利用加速器的概念分析操作
CN106529668A (zh) * 2015-11-17 2017-03-22 中国科学院计算技术研究所 加速深度神经网络算法的加速芯片的运算装置及方法
CN106991476A (zh) * 2016-01-20 2017-07-28 南京艾溪信息科技有限公司 用于执行人工神经网络正向运算的装置和方法
CN107329936A (zh) * 2016-04-29 2017-11-07 北京中科寒武纪科技有限公司 一种用于执行神经网络运算以及矩阵/向量运算的装置和方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
李继灿 *
许邦建等: "《DSP算法与体系结构实现技术》", 31 January 2010, 国防工业出版社 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021000281A1 (en) * 2019-07-03 2021-01-07 Huaxia General Processor Technologies Inc. Instructions for operating accelerator circuit
WO2021088563A1 (zh) * 2019-11-04 2021-05-14 北京希姆计算科技有限公司 卷积运算电路、装置以及方法

Also Published As

Publication number Publication date
US20190171941A1 (en) 2019-06-06
CN117252248A (zh) 2023-12-19
TW201926147A (zh) 2019-07-01

Similar Documents

Publication Publication Date Title
CN109871952A (zh) 电子装置、加速器、神经网络的加速方法及加速系统
CN113632068B (zh) 在环境计算系统上虚拟化存储器的方法和系统
CN104049711B (zh) 与图形相关的工作负荷上的功率节省的技术
US20130194286A1 (en) Graphics processing unit buffer management
US11562214B2 (en) Methods for improving AI engine MAC utilization
US11934826B2 (en) Vector reductions using shared scratchpad memory
BRPI0807951B1 (pt) Processador de multimídia multi-encadeado sob demanda
CN104115093A (zh) 包括多个处理元件之间的功率和性能平衡的用于能效和节能的方法、装置和系统
CN104391820A (zh) 基于fpga的通用浮点矩阵处理器硬件结构
CN110333946A (zh) 一种基于人工智能cpu数据处理系统及方法
CN103336672B (zh) 数据读取方法、装置及计算设备
CN108140234A (zh) 基于命令流标记的gpu操作算法选择
US9304775B1 (en) Dispatching of instructions for execution by heterogeneous processing engines
EP3314431A1 (en) Adaptive hardware acceleration based on runtime power efficiency determinations
WO2020106482A1 (en) Programming and controlling compute units in an integrated circuit
CN108446096B (zh) 数据计算系统
US20210200584A1 (en) Multi-processor system, multi-core processing device, and method of operating the same
US9437172B2 (en) High-speed low-power access to register files
CN101414292A (zh) 模式识别处理器
US11256940B1 (en) Method, apparatus and system for gradient updating of image processing model
WO2023225991A1 (en) Dynamic establishment of polling periods for virtual machine switching operations
US20240103601A1 (en) Power management chip, electronic device having the same, and operating method thereof
US11669473B2 (en) Allreduce enhanced direct memory access functionality
CN111932436B (zh) 一种用于智慧泊车的深度学习处理器架构
US20240061492A1 (en) Processor performing dynamic voltage and frequency scaling, electronic device including the same, and method of operating the same

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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20200409

Address after: Room 201, building H8, phase II, innovation industrial park, 2800 innovation Avenue, high tech Zone, Hefei City, Anhui Province

Applicant after: Hefei huami Microelectronics Co., Ltd

Address before: 11 / F, 221, section 3, Beixin Road, Xindian District, Xinbei, Taiwan, China

Applicant before: ABEE TECHNOLOGY Co.,Ltd.