KR101950786B1 - Acceleration Method for Artificial Neural Network System - Google Patents

Acceleration Method for Artificial Neural Network System Download PDF

Info

Publication number
KR101950786B1
KR101950786B1 KR1020180119856A KR20180119856A KR101950786B1 KR 101950786 B1 KR101950786 B1 KR 101950786B1 KR 1020180119856 A KR1020180119856 A KR 1020180119856A KR 20180119856 A KR20180119856 A KR 20180119856A KR 101950786 B1 KR101950786 B1 KR 101950786B1
Authority
KR
South Korea
Prior art keywords
neural network
slave
external main
main memory
input
Prior art date
Application number
KR1020180119856A
Other languages
Korean (ko)
Inventor
이상헌
김봉정
김주혁
Original Assignee
주식회사 디퍼아이
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 주식회사 디퍼아이 filed Critical 주식회사 디퍼아이
Priority to KR1020180119856A priority Critical patent/KR101950786B1/en
Application granted granted Critical
Publication of KR101950786B1 publication Critical patent/KR101950786B1/en
Priority to CN201980065991.2A priority patent/CN112805727A/en
Priority to US17/281,456 priority patent/US20220004854A1/en
Priority to PCT/KR2019/008905 priority patent/WO2020075957A1/en

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/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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/08Address circuits; Decoders; Word-line control circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits

Landscapes

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

Abstract

The present invention relates to a method of accelerating the calculation of an artificial neural network for distributed processing. According to the present invention, an artificial neural network includes a single host accelerating device and a plurality of slave accelerating devices so input data about input neurons is able to be M in depth and have N hierarchies. A synapse weighted value and input data about neurons forming an artificial neural network are able to be calculated through each accelerating device since the input data is divided by depth, a hierarchical structure, an artificial neural network, or combinations thereof, and thus, memories and peripheral devices are able to be optimized when formed as hardware. As a result, a plurality of accelerating devices comprising low-cost/low-power integrated circuits are connected to conduct neural network calculation and thus, the present invention is capable of saving costs for manufacturing, as compared to conventional technology with high-priced hardware, and being applied to fields requiring low power.

Description

분산처리용 인공신경망 연산 가속화 방법 {Acceleration Method for Artificial Neural Network System }{Acceleration Method for Artificial Neural Network System}

본 발명은 분산처리용 인공신경망 연산 가속화 방법에 관한 것으로서, 더욱 상세하게는, 인공 신경망의 연산에 필요한 입력 뉴런들에 대한 데이터와 시냅스 가중치를 범용 통신중개블럭을 구비한 복수개의 분산처리용 인공신경망 연산 가속화 장치에 분산하여 처리함으로써 GPGPU와 같은 고전력 고비용의 하드웨어를 사용하지 않더라도 인공신경망 연산에 필요한 성능을 만족시킬 수 있을 뿐만 아니라 목표 성능에 맞게 인공신경망을 유연하게 설계할 수 있는 분산처리용 인공신경망 연산 가속화 방법에 관한 것이다.The present invention relates to a method for accelerating an artificial neural network operation for distributed processing, and more particularly, to a method for accelerating an artificial neural network operation for distributed processing, in which data on input neurons necessary for operation of an artificial neural network and synapse weights are transmitted to a plurality of artificial neural networks It is possible to satisfy the performance required for the artificial neural network operation without using high-power and high-cost hardware such as GPGPU by dispersing and processing the artificial neural network in the artificial neural network, And an operation acceleration method.

최근 인공지능 기술이 발달하면서 다양한 산업분야에 인공지능 기술이 도입되고 있다.Recently, artificial intelligence technology has been introduced into various industrial fields with the development of artificial intelligence technology.

이와 같은 인공지능 기술은 이면에 다수의 신호를 입력으로 받아 하나의 신호를 출력하는 퍼셉트론 알고리즘을 기원으로 하여 뉴런 네트워크로 구성된 인공 신경망기술로 진화해온 딥 러닝(Deep Learning; 심층학습) 기술이 중요한 역할을 담당하고 있다.Deep Learning (Deep Learning) technology, which has evolved into a neural network technology composed of neuron networks, plays an important role in this artificial intelligence technology, which is based on a perceptron algorithm that receives a large number of signals on the back and outputs one signal. .

여기서, 상기 딥 러닝 기술과 같은 인공 신경망 기술을 수행하기 위해서는 입력 뉴런 들에 대한 수많은 가중치와 연산을 필요로 하기 때문에 종래기술에 따른 인공신경망 관련 가속화 기술의 경우에는 GPU(Graphics Processing Unit; 그래픽 처리 장치)의 자원을 이용해 그래픽 작업 이외의 범용작업을 할 수 있는 GPGPU(General-Purpose computing on Graphics Processing Unit ; 범용 그래픽 처리 장치)와 같은 고가의 하드웨어를 사용하지 않으면 요구되는 연산 성능을 만족하기에는 어려움이 있는 문제점이 있었다.In order to perform artificial neural network technology such as the deep learning technique, many weights and computations for input neurons are required. Therefore, in the case of artificial neural network-related acceleration techniques according to the related art, a graphics processing unit (GPU) It is difficult to satisfy the required computation performance without using expensive hardware such as general purpose graphics processing unit (GPGPU) capable of performing general-purpose operations other than graphic operations using resources There was a problem.

뿐만 아니라, 상기 GPGPU를 동작시키기 위해서는 높은 전력을 필요로 하기 때문에 IoT(Internet Of Things; 사물인터넷)와 같은 저전력을 필요로 하는 분야에 적용하기에는 어려움이 있으며, 딥 러닝 기술로 빅데이터를 처리하기 위하여 대규모 컴퓨터 시스템이 설치되는 데이터센터의 경우에는 인공 신경망 기술을 구현하는데 필요한 가속화 장치를 GPGPU로 구성하면서 대규모 전력을 필요로 하기 때문에 초기 구축비용 뿐만 아니라 유지보수에 소요되는 비용이 기하급수적으로 늘어나는 심각한 문제점이 있었다.In addition, since the GPGPU requires high power to operate the GPGPU, it is difficult to apply it to fields requiring low power such as Internet Of Things (IOT). In order to process big data with deep learning technology In the case of a data center where a large-scale computer system is installed, since a large-scale power is required while constructing an acceleration device necessary for realizing the artificial neural network technology as a GPGPU, a serious problem in which the initial construction cost and the maintenance cost increase exponentially .

따라서, 인공신경망 관련 가속화 기술을 구현하는 경우에 GPGPU와 같은 고가의 하드웨어를 필요로 하지 않으면서도 연산 성능을 만족시킬 수 있으며 나아가 전력소모를 줄일 수 있는 현실적이고도 적용이 가능한 기술이 절실히 요구되고 있는 실정이다.Therefore, in the case of implementing the artificial neural network related acceleration technique, there is a desperate need for realistic and applicable technology capable of satisfying computation performance without requiring expensive hardware such as GPGPU and further reducing power consumption. to be.

공개특허공보 KR 10-2011-0027916호(공개일 2011.03.17.)Patent Publication No. KR 10-2011-0027916 (published on March 17, 2011)

본 발명은 상기 문제점을 해결하기 위하여 안출된 것으로서, 본 발명은, 인공 신경망의 연산에 필요한 입력 뉴런들에 대한 데이터와 시냅스 가중치를 범용 통신중개블럭을 구비한 복수개의 분산처리용 인공신경망 연산 가속화 장치에 분산하여 처리함으로써 GPGPU와 같은 고전력 고비용의 하드웨어를 사용하지 않더라도 인공신경망 연산에 필요한 성능을 만족시킬 수 있을 뿐만 아니라 목표 성능에 맞게 인공신경망을 유연하게 설계할 수 있는 인공신경망 연산 가속화 장치, 가속화 시스템, 및 그 가속화 방법을 제공하는데 있다.SUMMARY OF THE INVENTION The present invention has been conceived in order to solve the above problems, and it is an object of the present invention to provide a neural network, which comprises a plurality of neural network processing accelerators for distributed processing, , It is possible to satisfy the performance required for the artificial neural network operation without using the high power and high cost hardware such as GPGPU, and to provide an artificial neural network operation acceleration device, an acceleration system And an acceleration method thereof.

본 발명의 실시예에 따른 분산처리용 인공신경망 연산 가속화 장치는, 입력 뉴런들이 계층적으로 구성되어 형성된 인공 신경망 연산을 처리하기 위한 가속화 장치에 있어서, 상기 입력 뉴런들에 대한 입력데이터와 시냅스 가중치를 저장하는 외부 메인 메모리; 상기 외부 메인 메모리에 저장된 시냅스 가중치와 입력데이터 중 상기 인공 신경망 연산을 구성하는 각각의 사이클마다 필요한 시냅스 가중치와 입력데이터를 저장하는 내부 버퍼 메모리; 상기 외부 메인 메모리 및 내부 버퍼 메모리와 데이터를 직접 송수신 하기 위한 DMA모듈; 상기 내부 버퍼 메모리에 저장된 시냅스 가중치와 입력데이터를 읽어들여 인공 신경망 연산을 수행하고 연산 결과를 상기 외부 메인 메모리에 저장하는 일련의 순차적인 과정을 인공 신경망 연산을 구성하는 각각의 사이클마다 반복적으로 처리하는 신경망 연산장치; 상기 외부 메인 메모리와 내부 버퍼 메모리에 입력 뉴런들에 대한 입력데이터와 시냅스 가중치를 저장시키는 동작과 상기 신경망 연산장치의 동작을 제어하기 위한 CPU; 및 상기 입력 뉴런들에 대한 입력데이터와 시냅스 가중치, 및 상기 신경망 연산장치에서 수행한 연산결과를 집적회로의 종류에 관계없이 물리적으로 연결되는 다른 가속화 장치와 송수신할 수 있는 범용 통신중개블록;을 구비할 수 있다.An apparatus for accelerating an artificial neural network for distributed processing according to an embodiment of the present invention is an apparatus for processing an artificial neural network operation in which input neurons are formed hierarchically, comprising: input data and a synapse weight for the input neurons; An external main memory for storing; An internal buffer memory for storing synapse weights and input data required for each cycle constituting the artificial neural network operation among the synapse weights stored in the external main memory and input data; A DMA module for directly transmitting and receiving data to and from the external main memory and the internal buffer memory; A series of sequential processes of reading the synapse weights and input data stored in the internal buffer memory and performing an artificial neural network operation and storing the result of the operation in the external main memory are repeatedly performed for each cycle constituting the artificial neural network operation Neural network computing; A CPU for storing input data and synapse weights for input neurons in the external main memory and the internal buffer memory, and for controlling operations of the neural network computation apparatus; And a universal communication mediating block capable of transmitting and receiving input data and synapse weight for the input neurons and an operation result performed by the neural network computation device to and from another acceleration device physically connected regardless of the type of the integrated circuit can do.

본 발명의 실시예에 따른 분산처리용 인공신경망 연산 가속화 장치는, 센서인터페이스 또는 Peripheral로 구성되는 데이터 입력장치;를 더 구비할 수 있다.The artificial neural network operation accelerating apparatus for distributed processing according to an embodiment of the present invention may further comprise a data input apparatus composed of a sensor interface or a peripheral.

본 발명의 실시예에 따른 분산처리용 인공신경망 연산 가속화 장치는, 상기 인공 신경망 연산을 수행하는 과정에 필요한 전체 시냅스 가중치가 저장되는 외부 플래시 메모리;를 더 구비할 수 있다.The apparatus for accelerating an artificial neural network for a distributed processing according to an embodiment of the present invention may further include an external flash memory for storing the total synapse weights necessary for performing the artificial neural network operation.

상기 범용 통신중개블럭은, 물리적으로 연결되는 가속화 장치를 구성하는 집적회로의 종류가 SoC(System on Chip)또는 FPGA(Field Programmable Gate Array)일 경우 모두 통신중개가 가능하게 형성될 수 있다.The general-purpose communication mediating block can be formed to be capable of communication mediation when the type of the integrated circuit constituting the physically connected accelerating device is SoC (System on Chip) or FPGA (Field Programmable Gate Array).

상기 범용 통신중개블럭은, 송신용 집적회로와 연결된 상기 버스 마스터 인터페이스로부터 인가되는 신호들 중 수신용 집적회로의 구성요소를 지정하는 어드레스와 버스 ID신호의 폭을 리맵핑하기 위한 리맵핑 블럭;을 구비할 수 있다.The general-purpose communication mediating block includes a remapping block for remapping an address specifying an element of the receiving integrated circuit among signals applied from the bus master interface connected to the transmitting integrated circuit and a width of the bus ID signal .

본 발명의 실시예에 따른 분산처리용 인공신경망 연산 가속화 장치를 이용한 인공신경망 가속화 시스템은, 입력 뉴런들에 대한 입력데이터가 복수개의 깊이를 갖는 인공 신경망 연산을 처리하기 위한 가속화 시스템에 있어서, 상기 인공 신경망 연산에 필요한 전체 시냅스 가중치가 저장된 플래시 메모리와 연결되며 호스트용 통신중개블록을 상기 복수개의 깊이 갯수 이상으로 구비하는 호스트 가속화 장치; 및 상기 호스트 가속화 장치의 호스트용 통신중개블럭에 물리적으로 연결되는 슬레이브용 통신중개블록을 각각 하나 이상 구비하며, 상기 복수개의 깊이 갯수에 일대일 대응되게 형성되는 복수개의 슬레이브 가속화 장치;를 구비하고, 상기 호스트 가속화 장치는, 상기 복수개의 깊이 각각에 관련되는 슬레이브 가속화 장치에 시냅스 가중치와 입력데이터를 병렬방식으로 분산시켜 인공 신경망 연산을 처리하게 하고, 상기 슬레이브 가속화 장치의 중간연산결과를 취합하여 최종 연산을 수행할 수 있다.An artificial neural network acceleration system using an artificial neural network operation acceleration apparatus for distributed processing according to an embodiment of the present invention is an acceleration system for processing an artificial neural network operation in which input data for input neurons have a plurality of depths, A host accelerator connected to a flash memory for storing a total synapse weight necessary for a neural network operation and having a communication mediating block for a host at a plurality of depths or more; And a plurality of slave acceleration devices each having at least one slave communication intermediary block physically connected to a host communication intermediary block of the host accelerator and corresponding to the plurality of depth numbers one by one, The host acceleration device causes the slave acceleration device related to each of the plurality of depths to distribute the synapse weight and the input data in a parallel manner to process the neural network operation and collects the intermediate calculation results of the slave acceleration device Can be performed.

본 발명의 실시예에 따른 분산처리용 인공신경망 연산 가속화 장치를 이용한 인공신경망 가속화 시스템은, 입력 뉴런들이 복수개의 계층으로 구성되는 인공 신경망 연산을 처리하기 위한 가속화 시스템에 있어서, 상기 인공 신경망 연산에 필요한 전체 시냅스 가중치가 저장된 플래시 메모리와 연결되며 호스트용 통신중개블록을 송수신용으로 한 쌍 이상 구비하는 호스트 가속화 장치; 및 상기 호스트 가속화 장치와 전체적으로 파이프라인 형태가 되게 순차적으로 연결되기 위하여 슬레이브용 통신중개블록을 송수신용으로 한 쌍 이상 구비하는 복수개의 슬레이브 가속화 장치;를 구비하고, 상기 호스트 가속화 장치와 상기 슬레이브 가속화 장치에 상기 인공 신경망 연산을 구성하는 입력 뉴런들에 대한 시냅스 가중치와 입력데이터를 순차적으로 분산시켜 인공 신경망 연산을 처리하게 할 수 있다.An artificial neural network acceleration system using an artificial neural network operation acceleration apparatus for distributed processing according to an embodiment of the present invention is an acceleration system for processing an artificial neural network operation in which input neurons are composed of a plurality of layers, A host accelerator connected to a flash memory storing a total synapse weight and having at least one pair for transmitting and receiving a host communication intermediary block; And a plurality of slave acceleration devices each having at least one pair for transmitting and receiving a communication mediating block for a slave to be sequentially connected in a pipeline form to the host accelerator device, The neural network operation may be performed by sequentially dispersing the synaptic weights and the input data for the input neurons constituting the artificial neural network operation.

상기 호스트 가속화 장치와 상기 슬레이브 가속화 장치는 각각, SoC방식 및 FPGA방식 중 어느 한 가지 방식의 집적회로로 구성될 수 있으며, 집적회로의 종류에 관계없이 상기 호스트용 통신중개블록과 상기 슬레이브용 통신중개블록을 통해 상호간에 서로 송수신이 가능할 수 있다.Each of the host acceleration device and the slave acceleration device may be configured as an integrated circuit of any one of SoC scheme and FPGA scheme, and may be configured as a communication intermediation block for host and a slave communication intermediation It is possible to mutually transmit and receive each other through the blocks.

상기 호스트 가속화 장치와 상기 슬레이브 가속화 장치는 각각, 입력 뉴런들에 대한 입력데이터와 시냅스 가중치를 저장하는 외부 메인 메모리; 상기 외부 메인 메모리에 저장된 시냅스 가중치와 입력데이터 중 인공 신경망 연산을 구성하는 각각의 사이클마다 필요한 시냅스 가중치와 입력데이터를 저장하는 내부 버퍼 메모리; 상기 외부 메인 메모리 및 내부 버퍼 메모리와 데이터를 직접 송수신 하기 위한 DMA모듈; 상기 내부 버퍼 메모리에 저장된 시냅스 가중치와 입력데이터를 읽어들여 인공 신경망 연산을 수행하고 연산 결과를 상기 외부 메인 메모리에 저장하는 일련의 순차적인 과정을 인공 신경망 연산을 구성하는 각각의 사이클마다 반복적으로 처리하는 신경망 연산장치; 및 상기 외부 메인 메모리와 내부 버퍼 메모리에 입력 뉴런들에 대한 입력데이터와 시냅스 가중치를 저장시키는 동작과 상기 신경망 연산장치의 동작을 제어하기 위한 CPU;를 더 구비할 수 있다.Wherein the host accelerator and the slave accelerator each comprise an external main memory for storing input data and synapse weights for input neurons; An internal buffer memory for storing synapse weights and input data required for each cycle constituting the artificial neural network operation among the synapse weights stored in the external main memory and the input data; A DMA module for directly transmitting and receiving data to and from the external main memory and the internal buffer memory; A series of sequential processes of reading the synapse weights and input data stored in the internal buffer memory and performing an artificial neural network operation and storing the result of the operation in the external main memory are repeatedly performed for each cycle constituting the artificial neural network operation Neural network computing; And a CPU for storing input data and synapse weights for the input neurons in the external main memory and the internal buffer memory and for controlling the operation of the neural network operation apparatus.

상기 호스트용 통신중개블록과 상기 슬레이브용 통신중개블록은 각각, 버스 마스터 인터페이스와 버스 슬레이브 인터페이스를 동시에 구비하여 마스터와 슬레이브로 동작이 가능하며, 송신용 집적회로와 연결된 상기 버스 마스터 인터페이스로부터 인가되는 신호들 중 수신용 집적회로의 구성요소를 지정하는 어드레스와 버스 ID신호의 폭을 리맵핑하기 위한 리맵핑 블럭;을 구비할 수 있다.The communication mediating block for a host and the communication mediating block for a slave may operate as a master and a slave by simultaneously having a bus master interface and a bus slave interface, And a remapping block for remapping an address designating a component of the receiving integrated circuit and a width of the bus ID signal.

본 발명의 실시예에 따른 분산처리용 인공신경망 연산 가속화 장치를 이용한 인공신경망 가속화 시스템은, 입력 뉴런들에 대한 입력데이터가 복수(M)개의 깊이와 복수(N)개의 계층으로 구성되는 인공 신경망 연산을 처리하기 위한 가속화 시스템에 있어서, 상기 인공 신경망 연산에 필요한 전체 시냅스 가중치가 저장된 플래시 메모리와 연결되며 호스트용 통신중개블록을 상기 복수(N)개의 계층 수 이상으로 구비하는 호스트 가속화 장치; 및 상기 호스트 가속화 장치의 호스트용 통신중개블럭과 연결되거나 다른 가속화 장치와 연결되기 위한 슬레이브용 통신중개블록을 하나 이상 구비하고, 상기 복수(M)개의 깊이 및 복수(N)개의 계층에 필요한 신경망 연산 사이클 수(M×N)와 일대일 대응되게 형성되는 복수개의 슬레이브 가속화 장치;를 구비할 수 있다.An artificial neural network acceleration system using an artificial neural network operation acceleration apparatus for distributed processing according to an embodiment of the present invention is characterized in that input data to input neurons includes an artificial neural network operation having a plurality of (M) depths and a plurality (N) A host acceleration device connected to a flash memory storing a total synaptic weight necessary for the artificial neural network operation and having a communication mediating block for a host at least equal to the number of the plurality of (N) hierarchical levels; And a communication mediating block for a slave connected to the host mediating block or connected to another accelerating device of the host accelerator device, And a plurality of slave acceleration devices formed in a one-to-one correspondence with the number of cycles (MxN).

상기 호스트 가속화 장치와 상기 슬레이브 가속화 장치는 각각, SoC방식 및 FPGA방식 중 어느 한 가지 방식의 집적회로로 구성될 수 있으며, 집적회로의 종류에 관계없이 상기 호스트용 통신중개블록과 상기 슬레이브용 통신중개블록을 통해 상호간에 서로 송수신이 가능할 수 있다.Each of the host acceleration device and the slave acceleration device may be configured as an integrated circuit of any one of SoC scheme and FPGA scheme, and may be configured as a communication intermediation block for host and a slave communication intermediation It is possible to mutually transmit and receive each other through the blocks.

상기 호스트 가속화 장치와 상기 슬레이브 가속화 장치는 각각, 입력 뉴런들에 대한 입력데이터와 시냅스 가중치를 저장하는 외부 메인 메모리; 상기 외부 메인 메모리에 저장된 시냅스 가중치와 입력데이터 중 인공 신경망 연산을 구성하는 각각의 사이클마다 필요한 시냅스 가중치와 입력데이터를 저장하는 내부 버퍼 메모리; 상기 외부 메인 메모리 및 내부 버퍼 메모리와 데이터를 직접 송수신 하기 위한 DMA모듈; 상기 내부 버퍼 메모리에 저장된 시냅스 가중치와 입력데이터를 읽어들여 인공 신경망 연산을 수행하고 연산 결과를 상기 외부 메인 메모리에 저장하는 일련의 순차적인 과정을 인공 신경망 연산을 구성하는 각각의 사이클마다 반복적으로 처리하는 신경망 연산장치; 및 상기 외부 메인 메모리와 내부 버퍼 메모리에 입력 뉴런들에 대한 입력데이터와 시냅스 가중치를 저장시키는 동작과 상기 신경망 연산장치의 동작을 제어하기 위한 CPU;를 더 구비할 수 있다.Wherein the host accelerator and the slave accelerator each comprise an external main memory for storing input data and synapse weights for input neurons; An internal buffer memory for storing synapse weights and input data required for each cycle constituting the artificial neural network operation among the synapse weights stored in the external main memory and the input data; A DMA module for directly transmitting and receiving data to and from the external main memory and the internal buffer memory; A series of sequential processes of reading the synapse weights and input data stored in the internal buffer memory and performing an artificial neural network operation and storing the result of the operation in the external main memory are repeatedly performed for each cycle constituting the artificial neural network operation Neural network computing; And a CPU for storing input data and synapse weights for the input neurons in the external main memory and the internal buffer memory and for controlling the operation of the neural network operation apparatus.

상기 호스트용 통신중개블록과 상기 슬레이브용 통신중개블록은 각각, 송신용 집적회로와 연결된 상기 버스 마스터 인터페이스로부터 인가되는 신호들 중 수신용 집적회로의 구성요소를 지정하는 어드레스와 버스 ID신호의 폭을 리맵핑하기 위한 리맵핑 블럭;을 구비할 수 있다.The communication intermediation block for a host and the communication intermediation block for a slave communicate with each other through an address specifying an element of the receiving integrated circuit among signals applied from the bus master interface connected to the transmitting integrated circuit and a width of a bus ID signal And a remapping block for remapping.

본 발명의 실시예에 따른 분산처리용 인공신경망 연산 가속화 장치를 이용한 인공신경망 가속화 시스템은, 하나 이상의 인공신경망 가속화 시스템에 의해 복수개의 인공신경망으로 구성되는 복합 인공신경망 가속화 시스템에 있어서, 입력 뉴런들에 대한 입력데이터와 시냅시스 가중치를 상기 복수개의 인공신경망을 구성하는 각각의 인공신경망 단위로 나누어 분산하여 처리할 수 있다.In an artificial neural network acceleration system using an artificial neural network operation acceleration apparatus for distributed processing according to an embodiment of the present invention, in an artificial neural network acceleration system composed of a plurality of artificial neural networks by at least one artificial neural network acceleration system, The input data and the synaptic weights for each of the plurality of artificial neural networks can be divided and processed for each of the artificial neural network units.

본 발명의 실시예에 따른 분산처리용 인공신경망 연산 가속화 장치를 이용한 인공신경망의 가속화 방법은, 단일의 집적회로로 구성되는 분산처리용 인공신경망 연산 가속화 장치를 이용해 입력층과 N개의 은닉층을 포함하여 계층구조를 갖는 인공신경망 처리를 가속화 하는 방법에 있어서, 상기 가속화 장치에 전원이 인가되면 외부 플래시 메모리에 저장된 인공 신경망 연산을 위한 입력 뉴런들에 대한 시냅스 가중치 전체를 외부 메인 메모리에 저장하는 단계(a1); 데이터 입력장치를 통해 입력되는 최초 입력데이터를 DMA모듈을 거쳐 외부 메인 메모리에 저장하는 단계(a2); 상기 외부 메인 메모리에 저장된 입력데이터와 상기 입력데이터에 대응되는 시냅스 가중치를 인공신경망의 입력층을 구성하는 각각의 사이클에 필요한 만큼 내부 버퍼 메모리에 저장하는 단계(a3); 신경망 연산장치가 상기 인공신경망을 구성하는 각각의 사이클에 대응되어 상기 내부 버퍼 메모리에 저장된 시냅스 가중치와 입력데이터를 읽어들여 층 전체에 대한 연산이 완료될 때 까지 인공 신경망 연산을 수행하고 그 연산 결과를 다음층의 입력데이터로 사용하기 위해 외부 메인 메모리에 저장하는 단계(a4); 은닉층에 대한 인공 신경망 연산을 위한 입력 뉴런들에 대한 시냅스 가중치와 입력 데이터를 각각의 사이클에 필요한 만큼 상기 외부 메인 메모리로부터 읽어 내부 버퍼 메모리에 저장한 다음 상기 a4단계를 수행하는 과정을 N개의 은닉층에 대하여 반복적으로 수행하는 단계(a5);를 포함할 수 있다.A method for accelerating an artificial neural network using an artificial neural network operation acceleration apparatus for distributed processing according to an embodiment of the present invention includes an input layer and N hidden layers using an artificial neural network operation acceleration apparatus for a distributed processing composed of a single integrated circuit A method for accelerating an artificial neural network processing having a hierarchical structure, the method comprising the steps of: (a1) storing the entire synaptic weights of input neurons for an artificial neural network operation stored in an external flash memory when power is applied to the acceleration apparatus; ); (A2) storing initial input data input through a data input device via an DMA module in an external main memory; (A3) storing input data stored in the external main memory and synaptic weights corresponding to the input data in an internal buffer memory as needed for each cycle constituting an input layer of an artificial neural network; The neural network computation unit reads the synapse weight and input data corresponding to each cycle constituting the artificial neural network and stores the synaptic weight and input data in the internal buffer memory and performs an artificial neural network operation until the operation for the entire layer is completed, Storing (a4) in the external main memory for use as input data of the next layer; A process for reading the synaptic weights and input data for input neurons for artificial neural network operations on hidden layers from the external main memory as needed for each cycle and storing them in an internal buffer memory and then performing the step a4 is performed on N hidden layers (A5) repeatedly performing the step (a5).

본 발명의 실시예에 따른 분산처리용 인공신경망 연산 가속화 장치를 이용한 인공신경망의 가속화 방법은, 단일의 호스트 가속화 장치와 복수개의 슬레이브 가속화 장치를 포함하여 입력 뉴런들에 대한 입력데이터가 M개의 깊이를 갖는 인공신경망 처리를 가속화 하는 방법에 있어서, 상기 단일의 호스트 가속화 장치와 복수개의 슬레이브 가속화 장치에 전원이 인가되면 외부 플래시 메모리에 저장된 인공 신경망 연산을 위한 입력 뉴런들에 대한 시냅스 가중치 전체를 상기 호스트 가속화 장치의 외부 메인 메모리에 저장하는 단계(b1); 상기 호스트 가속화 장치가 범용 통신중개블록을 통해 상기 호스트 가속화 장치의 외부 메인 메모리에 저장된 시냅스 가중치 중 상기 M개의 깊이에 대응되는 각각의 시냅스 가중치를 상기 복수개의 슬레이브 가속화 장치의 각 외부 메인 메모리에 병렬방식으로 순차적으로 전달하여 저장하는 단계(b2); 상기 복수개의 슬레이브 가속화 장치의 각 외부 메인 메모리에 저장된 시냅스 가중치 중 인공신경망의 입력층을 구성하는 각각의 사이클에 필요한 시냅스 가중치를 상기 각 슬레이브 가속화 장치의 내부 버퍼 메모리에 저장하는 단계(b3); 상기 단일의 호스트 가속화 장치가 데이터 입력장치를 통해 입력되는 최초 입력데이터를 상기 호스트 가속화 장치의 외부 메인 메모리에 저장하는 단계(b4); 상기 호스트 가속화 장치가 범용 통신중개블록을 통해 상기 호스트 가속화 장치의 외부 메인 메모리에 저장된 입력데이터 중 상기 M개의 깊이에 대응되는 각각의 입력데이터를 상기 복수개의 슬레이브 가속화 장치의 각 외부 메인 메모리에 병렬방식으로 순차적으로 전달하여 저장하는 단계(b5); 상기 슬레이브 가속화 장치 각각의 외부 메인 메모리에 저장된 입력데이터를 상기 인공신경망을 구성하는 각각의 사이클에 필요한 만큼 상기 각각의 슬레이브 가속화 장치 내부 버퍼 메모리에 저장하는 단계(b6); 상기 슬레이브 가속화 장치 각각의 신경망 연산장치가 상기 인공신경망을 구성하는 각각의 사이클에 대응되어 상기 슬레이브 가속화 장치 각각의 내부 버퍼 메모리에 저장된 시냅스 가중치와 입력데이터를 읽어들여 층 전체에 대한 연산이 완료될 때 까지 인공 신경망 연산을 수행하고 그 연산 결과를 상기 슬레이브 가속화 장치 각각의 외부 메인 메모리에 저장하는 단계(b7); 상기 호스트 가속화 장치가 상기 슬레이브 가속화 장치 각각의 외부 메인 메모리에 저장된 중간연산결과를 수신하여 상기 호스트 가속화 장치의 외부 메인 메모리에 순차적으로 저장한 다음 취합하여 층 전체에 대한 최종연산을 수행하고 최종연산결과를 상기 호스트 가속화 장치의 외부 메인 메모리에 저장하는 단계(b8); 상기 호스트 가속화 장치의 외부 메인 메모리에 저장된 최종연산결과를 다음층의 연산을 위한 입력데이터로 사용하기 위하여 상기 복수개의 슬레이브 가속화 장치의 각 외부 메인 메모리에 M개의 깊이에 대응되게 병렬방식으로 순차적으로 전달하여 저장하는 단계(b9); 상기 복수개의 슬레이브 가속화 장치의 각 외부 메인 메모리에 저장된 시냅스 가중치 중 다음층을 구성하는 각각의 사이클에 필요한 시냅스 가중치를 상기 각 슬레이브 가속화 장치의 내부 버퍼 메모리에 저장하는 단계(b10); 및 입력 데이터에 대한 모든 계층의 연산이 완료 될 때까지 상기 b6 단계 내지 b10 단계를 반복적으로 수행하는 단계(b11);를 포함할 수 있다.The method for accelerating an artificial neural network using an artificial neural network operation acceleration apparatus for distributed processing according to an embodiment of the present invention includes a single host acceleration apparatus and a plurality of slave acceleration apparatuses so that the input data for input neurons has M depths Wherein when a power is applied to the single host accelerator apparatus and the plurality of slave accelerator apparatuses, a synapse weight for input neurons for an artificial neural network operation stored in an external flash memory is allotted to the host accelerator Storing (b1) in an external main memory of the device; Wherein the host accelerator sends each synapse weight corresponding to the M depths among the synapse weights stored in the external main memory of the host accelerator apparatus to the external main memory of the plurality of slave accelerator apparatuses in a parallel manner (B2); Storing (b3) a synapse weight necessary for each cycle constituting the input layer of the artificial neural network among synapse weights stored in the respective external main memories of the plurality of slave acceleration devices, in the internal buffer memory of each slave acceleration device; (B4) storing the first input data input by the single host accelerator device through the data input device in the external main memory of the host accelerator device; The host accelerator transmits each input data corresponding to the M depths of the input data stored in the external main memory of the host accelerator device to the external main memory of the plurality of slave accelerator devices in a parallel manner (B5); (B6) storing input data stored in an external main memory of each of the slave acceleration devices in the slave acceleration device internal buffer memory as necessary for each cycle constituting the artificial neural network; The neural network computing device of each of the slave acceleration devices reads the synaptic weight and input data stored in the internal buffer memory of each of the slave acceleration devices corresponding to each cycle constituting the artificial neural network, (B7) performing an artificial neural network operation up to the slave acceleration device and storing the operation result in the external main memory of each of the slave acceleration devices; The host acceleration device receives the intermediate calculation result stored in the external main memory of each of the slave acceleration devices, sequentially stores the intermediate result in the external main memory of the host acceleration device, (B8) in an external main memory of the host accelerator apparatus; In order to use the final computation result stored in the external main memory of the host accelerator as input data for operation of the next layer, sequentially in parallel manner corresponding to M depths in each external main memory of the plurality of slave accelerators (B9); (B10) storing (b10) a synapse weight necessary for each cycle constituting a next layer among synapse weights stored in each external main memory of the plurality of slave acceleration devices, in an internal buffer memory of each slave acceleration device; And (b11) repeating the steps b6 to b10 until all layers of the input data are completely computed.

본 발명의 실시예에 따른 분산처리용 인공신경망 연산 가속화 장치를 이용한 인공신경망의 가속화 방법은, 단일의 호스트 가속화 장치와 복수개의 슬레이브 가속화 장치를 포함하여 입력 뉴런들에 대한 입력데이터가 M개의 깊이를 갖는 인공신경망 처리를 가속화 하는 방법에 있어서, 상기 단일의 호스트 가속화 장치와 복수개의 슬레이브 가속화 장치에 전원이 인가되면 외부 플래시 메모리에 저장된 인공 신경망 연산을 위한 입력 뉴런들에 대한 시냅스 가중치 전체를 상기 호스트 가속화 장치의 외부 메인 메모리에 저장하는 단계(c1); 상기 호스트 가속화 장치가 범용 통신중개블록을 통해 상기 호스트 가속화 장치의 외부 메인 메모리에 저장된 시냅스 가중치 중 상기 M개의 깊이에 대응되는 각각의 시냅스 가중치를 상기 복수개의 슬레이브 가속화 장치의 각 외부 메인 메모리에 병렬방식으로 순차적으로 전달하여 저장하는 단계(c2); 상기 복수개의 슬레이브 가속화 장치의 각 외부 메인 메모리에 저장된 시냅스 가중치 중 인공신경망의 입력층을 구성하는 각각의 사이클에 필요한 시냅스 가중치를 상기 각 슬레이브 가속화 장치의 내부 버퍼 메모리에 저장하는 단계(c3); 상기 단일의 호스트 가속화 장치가 데이터 입력장치를 통해 입력되는 최초 입력데이터를 상기 호스트 가속화 장치의 외부 메인 메모리에 저장하는 단계(c4); 상기 호스트 가속화 장치가 외부 메인 메모리에 저장된 입력데이터와 시냅스 가중치 중 신경망의 입력층을 구성하는 사이클에 필요한 만큼 내부 버퍼 메모리에 저장하고 신경망 연산장치를 이용해 입력층에 대한 신경망 연산을 수행하고 그 연산결과를 다음층의 입력데이터로 사용하기 위해 외부 메인 메모리에 저장하는 단계(c5); 상기 호스트 가속화 장치가 범용 통신중개블록을 통해 상기 호스트 가속화 장치의 외부 메인 메모리에 저장된 입력데이터 중 상기 M개의 깊이에 대응되는 각각의 입력데이터를 상기 복수개의 슬레이브 가속화 장치의 각 외부 메인 메모리에 병렬방식으로 순차적으로 전달하여 저장하는 단계(c6); 상기 슬레이브 가속화 장치 각각의 외부 메인 메모리에 저장된 입력데이터와 그에 해당하는 시냅스 가중치를 상기 인공신경망을 구성하는 각각의 사이클에 필요한 만큼 상기 각각의 슬레이브 가속화 장치 내부 버퍼 메모리에 저장하는 단계(c7); 상기 슬레이브 가속화 장치 각각의 신경망 연산장치가 상기 인공신경망을 구성하는 각각의 사이클에 대응되어 상기 슬레이브 가속화 장치 각각의 내부 버퍼 메모리에 저장된 시냅스 가중치와 입력데이터를 반복적으로 읽어들여 인공신경망을 구성하는 계층 전체에 대한 연산이 완료될 때 까지 인공 신경망 연산을 반복적으로 수행하고 그 연산 결과를 상기 슬레이브 가속화 장치 각각의 외부 메인 메모리에 저장하는 단계(c8); 및 상기 호스트 가속화 장치가 상기 슬레이브 가속화 장치 각각의 외부 메인 메모리에 저장된 중간연산결과를 수신하여 상기 호스트 가속화 장치의 외부 메인 메모리에 순차적으로 저장한 다음 취합하여 신경망 전체에 대한 최종연산을 수행하고 최종연산결과를 상기 호스트 가속화 장치의 외부 메인 메모리에 저장하는 단계(c9);를 포함할 수 있다.The method for accelerating an artificial neural network using an artificial neural network operation acceleration apparatus for distributed processing according to an embodiment of the present invention includes a single host acceleration apparatus and a plurality of slave acceleration apparatuses so that the input data for input neurons has M depths Wherein when a power is applied to the single host accelerator apparatus and the plurality of slave accelerator apparatuses, a synapse weight for input neurons for an artificial neural network operation stored in an external flash memory is allotted to the host accelerator Storing (c1) in the external main memory of the device; Wherein the host accelerator sends each synapse weight corresponding to the M depths among the synapse weights stored in the external main memory of the host accelerator apparatus to the external main memory of the plurality of slave accelerator apparatuses in a parallel manner And c2. (C3) storing a synaptic weight necessary for each cycle constituting the input layer of the artificial neural network, among the synaptic weights stored in the respective external main memories of the plurality of slave ac- celerators, in an internal buffer memory of each of the slave ac- celerators; (C4) storing the first input data input from the single host accelerator through the data input device in the external main memory of the host accelerator; The host accelerator stores the input data stored in the external main memory and the synaptic weights in the internal buffer memory as needed for a cycle constituting the input layer of the neural network, performs a neural network operation on the input layer using the neural network processor, (C5) in an external main memory for use as input data of a next layer; The host accelerator transmits each input data corresponding to the M depths of the input data stored in the external main memory of the host accelerator device to the external main memory of the plurality of slave accelerator devices in a parallel manner (C6) transmitting and storing the data sequentially; (C7) storing the input data stored in the external main memory of each of the slave acceleration devices and the synaptic weights corresponding thereto in the slave acceleration device internal buffer memory as necessary for each cycle constituting the artificial neural network; Wherein the neural network computing device of each of the slave acceleration devices repeatedly reads the synapse weight and input data stored in the internal buffer memory of each of the slave acceleration devices corresponding to each cycle constituting the artificial neural network, (C8) repeatedly performing an artificial neural network operation until the operation for the slave acceleration device is completed and storing the operation result in the external main memory of each of the slave acceleration devices; And the host accelerator receives the intermediate operation result stored in the external main memory of each of the slave accelerators, sequentially stores the intermediate result in the external main memory of the host accelerator, and then collects the final result, And storing the result in the external main memory of the host accelerator (c9).

본 발명의 실시예에 따른 분산처리용 인공신경망 연산 가속화 장치를 이용한 인공신경망의 가속화 방법은, 단일의 호스트 가속화 장치와 복수개의 슬레이브 가속화 장치의 연결구조가 전체적으로 파이프라인 형태가 되게 순차적으로 배치되어 입력 뉴런들에 대한 입력데이터가 입력층과 N개의 은닉층을 포함하는 계층구조를 갖는 인공신경망 처리를 가속화 하는 방법에 있어서, 상기 단일의 호스트 가속화 장치와 복수개의 슬레이브 가속화 장치에 전원이 인가되면 외부 플래시 메모리에 저장된 인공 신경망 연산을 위한 입력 뉴런들에 대한 시냅스 가중치 전체를 상기 호스트 가속화 장치의 외부 메인 메모리에 저장하는 단계(d1); 상기 호스트 가속화 장치가 범용 통신중개블록을 통해 상기 호스트 가속화 장치의 외부 메인 메모리에 저장된 시냅스 가중치 중 상기 N개의 계층에 대응되는 각각의 시냅스 가중치를 상기 복수개의 슬레이브 가속화 장치의 각 외부 메인 메모리에 순차적으로 전달하여 저장하는 단계(d2); 상기 단일의 호스트 가속화 장치가 데이터 입력장치를 통해 입력되는 입력층의 입력데이터를 상기 호스트 가속화 장치의 외부 메인 메모리에 저장하는 단계(d3); 상기 호스트 가속화 장치의 외부 메인 메모리에 저장된 입력층의 입력데이터와 시냅스 가중치를 내부 버퍼 메모리에 저장하는 단계(d4); 상기 호스트 가속화 장치의 신경망연산 장치에 의해 상기 내부 버퍼 메모리에 저장된 시냅스 가중치와 입력데이터를 읽어들여 입력층에 대한 신경망 연산을 수행하고 상기 외부 메인 메모리에 연산결과를 저장하는 단계(d5); 다음층에 해당하는 슬레이브 가속화 장치의 외부 메인 메모리에 연산결과를 입력데이터로 저장한 다음, 상기 슬레이브 가속화 장치의 내부 버퍼 메모리에 해당층에 대응되는 입력데이터와 시냅스 가중치를 저장하는 단계(d6); 상기 슬레이브 가속화 장치의 신견망연산장치에 의해 내부 버퍼 메모리에 저장된 시냅스 가중치와 입력데이터를 읽어들여 해당층에 대한 신경망 연산을 수행하고 연산결과를 외부 메인 메모리에 저장하는 단계(d7); N개의 은닉층에 대하여 상기 d6 내지 d7단계를 반복적으로 수행하고 최종 연산 결과는 상기 호스트 가속화 장치의 외부 메인 메모리에 저장하거나 주변장치에 전달하는 단계(d8);를 포함할 수 있다.A method of accelerating an artificial neural network using an artificial neural network operation accelerating apparatus for distributed processing according to an embodiment of the present invention is a method in which a connection structure of a single host accelerator apparatus and a plurality of slave accepter apparatuses are sequentially arranged in a pipeline form, A method for accelerating an artificial neural network processing having input data for neurons having a hierarchy including an input layer and N hidden layers, the method comprising: when power is applied to the single host acceleration device and the plurality of slave acceleration devices, (D1) storing the entire synaptic weights for input neurons for artificial neural network operations stored in an external main memory of the host acceleration device; Wherein the host accelerator sequentially transmits respective synapse weights corresponding to the N layers among the synapse weights stored in the external main memory of the host accelerator through the universal communication mediation block to each of the external main memories of the plurality of slave accelerators Transmitting and storing (d2); (D3) storing the input data of the input layer to which the single host accelerator device is input through the data input device in the external main memory of the host accelerator device; Storing input data and a synapse weight of an input layer stored in an external main memory of the host accelerator device in an internal buffer memory (d4); A step (d5) of reading a synapse weight value and input data stored in the internal buffer memory by the neural network computation device of the host acceleration device, performing a neural network operation on the input layer, and storing the computation result in the external main memory; (D6) storing the operation result in the external main memory of the slave acceleration device corresponding to the next layer as input data, and then storing the input data and the synapse weight corresponding to the layer in the internal buffer memory of the slave acceleration device; A step (d7) of reading the synaptic weights and input data stored in the internal buffer memory by the neural network calculator of the slave acceleration apparatus, performing a neural network operation on the layer, and storing the operation result in the external main memory; (D8) repeatedly performing the steps d6 to d7 for the N hidden layers and storing the final operation result in the external main memory of the host accelerator or transmitting the result to the peripheral device.

본 발명의 실시예에 따른 분산처리용 인공신경망 연산 가속화 장치를 이용한 인공신경망의 가속화 방법은, 단일의 호스트 가속화 장치와 복수개의 슬레이브 가속화 장치를 포함하여 입력 뉴런들에 대한 입력데이터가 M개의 깊이와 N개의 계층으로 구성되는 인공신경망 처리를 가속화 하는 방법에 있어서, 상기 단일의 호스트 가속화 장치와 복수개의 슬레이브 가속화 장치에 전원이 인가되면 외부 플래시 메모리에 저장된 인공 신경망 연산을 위한 입력 뉴런들에 대한 시냅스 가중치 전체를 상기 호스트 가속화 장치의 외부 메인 메모리에 저장하는 단계(e1); 상기 호스트 가속화 장치가 범용 통신중개블록을 통해 상기 호스트 가속화 장치의 외부 메인 메모리에 저장된 시냅스 가중치 중 상기 N개의 계층에 대응되는 각각의 시냅스 가중치 전체를 각 계층을 구성하는 M개의 깊이 중 각 계층의 첫번째 깊이에 대응하는 N개의 슬레이브 가속화 장치 각각의 외부 메인 메모리에 순차적으로 전달하면, 전달받은 N개의 슬레이브 가속화 장치와 연결된 다른 깊이에 대응하는 슬레이브 가속화 장치 전체에 해당 시냅스 가중치가 각각 저장되는 단계(e2); 상기 단일의 호스트 가속화 장치가 데이터 입력장치를 통해 입력되는 입력층의 입력데이터를 상기 호스트 가속화 장치의 외부 메인 메모리에 저장하는 단계(e3); 상기 호스트 가속화 장치의 외부 메인 메모리에 저장된 입력층의 입력데이터는 입력층의 첫번째 깊이에 대응되는 슬레이브 가속화 장치의 외부 메인 메모리에 일차적으로 해당층의 전체 입력데이터가 저장된 다음, 입력층을 구성하는 깊이에 대응하는 M개의 슬레이브 가속화 장치 외부 메인 메모리에 해당되는 입력데이터가 각각 분산되어 순차적으로 저장되는 단계(e4); 상기 입력층을 구성하는 M개의 슬레이브 가속화 장치 내부 버퍼 메모리에 해당층의 입력데이터와 시냅스 가중치를 저장하는 단계(e5); 상기 입력층을 구성하는 M개의 슬레이브 가속화 장치의 신경망연산 장치에 의해 신경망 연산을 수행하고 자신의 외부 메인 메모리에 연산결과를 저장하는 단계(e6); 상기 M개의 슬레이브 가속화 장치에 저장된 연산결과를 입력층의 첫번째 깊이에 해당하는 슬레이브 가속화 장치에 전달하여 해당층의 최종 연산을 수행하고 그 최종연산결과를 다음층의 첫번째 깊이에 해당하는 슬레이브 가속화장치에 해당층의 입력데이터로 전달하는 단계(e7); 다음층의 첫번째 깊이에 대응되는 슬레이브 가속화 장치의 외부 메인 메모리에 일차적으로 해당층의 전체 입력데이터가 저장된 다음 해당층을 구성하는 M개의 슬레이브 가속화 장치 외부 메인 메모리에 해당되는 입력데이터가 각각 분산되어 순차적으로 저장하는 단계(e8); 및 N번째 계층의 연산이 완료될때까지 e5 단계 내지 e8 단계에서와 동일한 과정을 반복수행하고, 최종 연산결과는 상기 호스트 가속화 장치에 전달하는 단계(e9);를 구비할 수 있다.A method for accelerating an artificial neural network using an artificial neural network operation acceleration apparatus for distributed processing according to an embodiment of the present invention includes a single host acceleration apparatus and a plurality of slave acceleration apparatuses so that input data for input neurons has M depths A method for accelerating an artificial neural network process comprising N layers, the method comprising the steps of: when a power is applied to the single host accelerator and a plurality of slave accelerators, a synapse weight for input neurons for an artificial neural network operation stored in an external flash memory Storing (e1) the entirety in an external main memory of the host acceleration device; The host accelerator transmits the entire synapse weights corresponding to the N layers among the synapse weights stored in the external main memory of the host accelerator through the universal communication mediation block to the first of each of the M depths constituting each layer (E2) in which the respective synapse weights are stored in all the slave acceleration devices corresponding to different depths connected to the received N slave acceleration devices, respectively, when sequentially transmitted to the external main memory of each of the N slave acceleration devices corresponding to the depth, ; (E3) storing the input data of the input layer input from the single host accelerator through the data input device in the external main memory of the host accelerator; The input data of the input layer stored in the external main memory of the host accelerator is firstly stored in the external main memory of the slave acceleration device corresponding to the first depth of the input layer, (E4) in which input data corresponding to M slave accelerating apparatus external main memories corresponding to the plurality of slave accelerating apparatuses are dispersed and sequentially stored; (E5) storing input data and synapse weights of the layer in M slave accelerator internal buffer memories constituting the input layer; (E6) performing a neural network operation by the neural network computation apparatus of the M slave acceleration apparatuses constituting the input layer and storing the computation result in its own external main memory; The calculation result stored in the M slave acceleration devices is transmitted to the slave acceleration device corresponding to the first depth of the input layer to perform the final calculation of the corresponding layer and the final calculation result is transmitted to the slave acceleration device corresponding to the first depth of the next layer (E7) transmitting the input data to the layer; The entire input data of the corresponding layer is firstly stored in the external main memory of the slave acceleration device corresponding to the first depth of the next layer and then the input data corresponding to the M slave accelerator external main memories constituting the corresponding layer are dispersed sequentially (E8); And repeating steps e5 through e8 until the operation of the Nth layer is completed, and transmitting the final operation result to the host accelerator (e9).

본 발명의 실시예에 따른 분산처리용 인공신경망 연산 가속화 장치를 이용한 인공신경망의 가속화 방법은, 입력 뉴런들에 대한 입력데이터가 복수개의 깊이를 갖는 인공신경망의 가속화 방법에 있어서, 상기 복수개의 깊이에 대응되는 각각의 가속화장치에 입력 뉴런들에 대한 입력데이터와 시냅스 가중치를 분산하여 처리할 수 있다.A method for accelerating an artificial neural network using an artificial neural network operation accelerating apparatus for distributed processing according to an embodiment of the present invention is a method for accelerating an artificial neural network in which input data for input neurons have a plurality of depths, Input data for input neurons and synapse weights can be distributed and processed in each of the corresponding acceleration devices.

본 발명의 실시예에 따른 분산처리용 인공신경망 연산 가속화 장치를 이용한 인공신경망의 가속화 방법은, 입력 뉴런들이 복수개의 계층구조로 구성되는 인공신경망의 가속화 방법에 있어서, 상기 복수개의 계층에 대응되는 각각의 가속화장치에 입력 뉴런들에 대한 입력데이터와 시냅스 가중치를 분산하여 처리할 수 있다.A method for accelerating an artificial neural network using an artificial neural network operation accelerator for distributed processing according to an embodiment of the present invention is a method for accelerating an artificial neural network in which input neurons are configured in a plurality of hierarchical structures, The input data for the input neurons and the synaptic weights can be distributed and processed.

본 발명의 실시예에 따른 분산처리용 인공신경망 연산 가속화 장치를 이용한 인공신경망의 가속화 방법은, 입력 뉴런들에 대한 입력데이터가 복수개의 깊이와 복수개의 계층구조로 구성되는 인공신경망의 가속화 방법에 있어서, 복수개의 계층을 각각 구성하는 복수개의 깊이에 대응되는 각각의 가속화장치에 입력 뉴런들에 대한 입력데이터와 시냅스 가중치를 분산하여 처리할 수 있다.A method of accelerating an artificial neural network using an artificial neural network operation accelerating apparatus for distributed processing according to an embodiment of the present invention is a method for accelerating an artificial neural network in which input data for input neurons are composed of a plurality of depths and a plurality of hierarchical structures , Input data for input neurons and synapse weights can be distributed and processed in each of the accelerators corresponding to a plurality of depths constituting a plurality of layers.

본 발명의 실시예에 따른 분산처리용 인공신경망 연산 가속화 장치를 이용한 인공신경망의 가속화 방법은, 하나 이상의 인공신경망 가속화 방법에 의해 복수개의 인공신경망으로 구성되는 복합 인공신경망의 가속화 방법에 있어서, 입력 뉴런들에 대한 입력데이터와 시냅시스 가중치를 상기 복수개의 인공신경망을 구성하는 각각의 인공신경망 단위로 나누어 분산하여 처리할 수 있다.A method for accelerating an artificial neural network using an artificial neural network operation accelerating apparatus for distributed processing according to an embodiment of the present invention is a method for accelerating a compound artificial neural network composed of a plurality of artificial neural networks by at least one artificial neural network acceleration method, The input data and the synaptic weights of the plurality of artificial neural networks can be divided and processed into respective artificial neural network units constituting the plurality of artificial neural networks.

이상에서 설명한 바와 같이, 본 발명은, 인공 신경망의 연산에 필요한 입력 뉴런들에 대한 데이터와 시냅스 가중치를 집적회로의 종류에 관계없이 통신중개가 가능한 범용 통신중개블럭을 구비한 복수개의 분산처리용 인공신경망 연산 가속화 장치에 분산하여 처리함으로써 GPGPU와 같은 고전력 고비용의 하드웨어를 사용하지 않더라도 인공신경망 연산에 필요한 성능을 만족시킬 수 있을 뿐만 아니라 목표 성능에 맞게 인공신경망을 유연하게 설계할 수 있는 인공신경망 연산 가속화 장치, 가속화 시스템, 및 그 가속화 방법을 제공하는 효과가 있다.As described above, according to the present invention, data on input neurons necessary for computation of an artificial neural network and synapse weights are transmitted to a plurality of artificial dispersion processing artificial neural networks having universal communication mediating blocks capable of mediating communication irrespective of kinds of integrated circuits It is possible to satisfy the performance required for the artificial neural network operation without using the high power and high cost hardware such as GPGPU by dispersing and processing in the neural network operation accelerating device and to accelerate artificial neural network operation which can design the artificial neural network flexibly according to the target performance An apparatus, an acceleration system, and an acceleration method therefor.

또한, 본 발명은, 저전력/저비용의 집적회로로 구성되는 다수의 가속화 장치를 연결하여 신경망 연산을 수행하게 함으로써 종래기술에 따라 단일의 하드웨어로 구현되는 고가의 GPGPU를 사용하는 것에 비해 제조비용을 절감할 수 있으며 저전력을 필요로 하는 분야에 적용할 수 있는 효과가 있다.In addition, the present invention reduces the manufacturing cost compared with the use of an expensive GPGPU implemented by a single hardware according to the prior art by connecting a plurality of accelerators composed of low-power / low-cost integrated circuits to perform neural network calculation And can be applied to fields requiring low power.

또한, 본 발명은, 집적회로의 종류에 관계없이 통신중개가 가능한 범용 통신중개블럭을 가속화 장치에 구현함으로써 동일한 기종이나 이기종으로 구성된 집적회로로 구현되는 가속화 시스템에 추가적인 기능을 유연하게 적용할 수 있어 사용자의 다양한 요구에 능동적으로 대처할 수 있는 효과가 있다.Further, the present invention can flexibly apply additional functions to an acceleration system implemented by the same type or a heterogeneous type of integrated circuit by implementing the universal communication mediating block capable of communication mediation regardless of the type of the integrated circuit in the acceleration device It is possible to actively cope with various demands of users.

또한, 본 발명은, 다중 가속화 장치를 이용하여 인공 신경망을 분산 병렬 처리함으로써 목표성능에 맞게 유연하게 가속화장치를 확장하거나 축소할 수 있는 효과가 있다.Further, the present invention has the effect of expanding or reducing the acceleration device flexibly according to the target performance by performing the distributed parallel processing of the artificial neural network using the multiple acceleration device.

또한, 본 발명은, 인공신경망을 구성하는 뉴런들에 대한 입력데이터와 시냅스 가중치를 입력데이터를 구성하는 깊이, 계층구조, 신경망 네트워크 또는 이들의 조합 단위로 나누어 각각의 가속화장치에서 연산이 가능하게 함으로서 하드웨어로 구현하는 경우에 메모리 및 주변장치를 최적화할 수 있어 결과적으로 제품의 개발단가를 낮출 수 있는 효과가 있다.Further, according to the present invention, input data and synapse weights for neurons constituting an artificial neural network are divided into a depth, a hierarchical structure, a neural network, or a combination unit constituting input data, In the case of hardware implementation, the memory and the peripheral device can be optimized, and as a result, the product development cost can be lowered.

또한, 본 발명은, 다양한 종류의 집적회로를 이용해 가속화 시스템을 구현함으로써 미래에 적용될 다양한 형태의 인공신경망 구조에서도 능동적으로 활용이 가능한 효과가 있다. In addition, the present invention realizes an accelerating system using various kinds of integrated circuits, and thus can be actively used in various artificial neural network structures to be applied in the future.

도 1은 본 발명의 실시예가 적용된 입력층과 은닉층을 포함하는 인경신경망을 개략적으로 나타내는 개념도이다.
도 2는 도 1에 도시된 인공신경망을 확장한 심층 신경망을 개략적으로 나타내는 도면이다.
도 3은 본 발명의 실시예에 따른 분산처리용 인공신경망 연산 가속화 장치의 집적회로 구성을 개략적으로 나타내는 블럭도이다.
도 4는 도 3에 도시된 가속화 장치를 구성하는 범용 통신중개블럭의 세부구성을 나타내는 도면이다.
도 5는 본 발명의 실시예에 따라 입력데이터가 복수개의 깊이를 갖는 인공 신경망 연산을 처리하기 위한 가속화 시스템의 다중 집적회로 구성을 개략적으로 나타내는 블럭도이다.
도 6은 도 5에 도시된 가속화 시스템의 일실시예에 따른 인공신경망 모델을 개략적으로 나타내는 도면이다.
도 7은 도 5에 도시된 가속화 시스템의 다른 실시예에 따른 인공신경망 모델을 개략적으로 나타내는 도면이다.
도 8은 본 발명의 실시예에 따라 입력 뉴런들이 복수개의 계층으로 구성되는 인공 신경망 연산을 처리하기 위한 가속화 시스템의 다중 집적회로 구성을 개략적으로 나타내는 블럭도이다.
도 9는 도 8에 도시된 가속화 시스템의 실시예에 따른 인공신경망 모델을 개략적으로 나타내는 도면이다.
도 10은 복수(M)개의 깊이와 복수(N)개의 계층으로 구성되는 인공 신경망 연산을 처리하기 위한 가속화 시스템의 다중 집적회로 구성을 개략적으로 나타내는 블럭도이다.
도 11은 도 10에 도시된 가속화 시스템의 실시예에 따른 인공신경망 모델을 개략적으로 나타내는 도면이다.
도 12는 본 발명의 실시예에 따라 복수개의 인공신경망으로 구성되는 복합 인공신경망 모델을 개략적으로 나타내는 도면이다.
FIG. 1 is a conceptual diagram schematically illustrating a neural network including an input layer and a hidden layer to which an embodiment of the present invention is applied.
FIG. 2 is a schematic diagram of a neural network that extends the artificial neural network shown in FIG.
3 is a block diagram schematically showing the configuration of an integrated circuit of an artificial neural network operation acceleration apparatus for distributed processing according to an embodiment of the present invention.
Fig. 4 is a diagram showing a detailed configuration of a general-purpose communication mediating block constituting the acceleration device shown in Fig. 3;
5 is a block diagram schematically illustrating a multi-integrated circuit configuration of an acceleration system for processing an artificial neural network operation in which input data has a plurality of depths according to an embodiment of the present invention.
6 is a diagram schematically illustrating an artificial neural network model according to an embodiment of the acceleration system shown in FIG.
FIG. 7 is a diagram schematically showing an artificial neural network model according to another embodiment of the acceleration system shown in FIG. 5; FIG.
8 is a block diagram schematically illustrating a multi-integrated circuit configuration of an acceleration system for processing an artificial neural network operation in which input neurons are formed in a plurality of layers according to an embodiment of the present invention.
9 is a diagram schematically illustrating an artificial neural network model according to an embodiment of the acceleration system shown in FIG.
10 is a block diagram schematically showing a multi-integrated circuit configuration of an acceleration system for processing an artificial neural network operation composed of a plurality (M) of depths and a plurality (N) of layers.
11 is a diagram schematically illustrating an artificial neural network model according to an embodiment of the acceleration system shown in FIG.
12 is a diagram schematically illustrating a combined artificial neural network model including a plurality of artificial neural networks according to an embodiment of the present invention.

본 발명에 관한 설명은 구조적 내지 기능적 설명을 위한 실시예에 불과하므로, 본 발명의 권리범위는 본문에 설명된 실시예에 의하여 제한되는 것으로 해석되어서는 아니 된다. 즉, 실시예는 다양한 변경이 가능하고 여러 가지 형태를 가질 수 있으므로 본 발명의 권리범위는 기술적 사상을 실현할 수 있는 균등물들을 포함하는 것으로 이해되어야 한다.The description of the present invention is merely an example for structural or functional explanation, and the scope of the present invention should not be construed as being limited by the embodiments described in the text. That is, the embodiments are to be construed as being variously embodied and having various forms, so that the scope of the present invention should be understood to include equivalents capable of realizing technical ideas.

한편, 본 발명에서 서술되는 용어의 의미는 다음과 같이 이해되어야 할 것이다.Meanwhile, the meaning of the terms described in the present invention should be understood as follows.

"제1", "제2" 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위한 것으로, 이들 용어들에 의해 권리범위가 한정되어서는 아니 된다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.The terms "first "," second ", and the like are intended to distinguish one element from another, and the scope of the right should not be limited by these terms. For example, the first component may be referred to as a second component, and similarly, the second component may also be referred to as a first component.

어떤 구성요소가 다른 구성요소에 "연결되어"있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결될 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어"있다고 언급된 때에는 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 한편, 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.It is to be understood that when an element is referred to as being "connected" to another element, it may be directly connected to the other element, but there may be other elements in between. On the other hand, when an element is referred to as being "directly connected" to another element, it should be understood that there are no other elements in between. On the other hand, other expressions that describe the relationship between components, such as "between" and "between" or "neighboring to" and "directly adjacent to" should be interpreted as well.

단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함하다"또는 "가지다" 등의 용어는 실시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이며, 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.It is to be understood that the singular " include " or "have" are to be construed as including the stated feature, number, step, operation, It is to be understood that the combination is intended to specify that it does not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, or combinations thereof.

각 단계들에 있어 식별부호(예를 들어, a, b, c 등)는 설명의 편의를 위하여 사용되는 것으로 식별부호는 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 단계들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.In each step, the identification code (e.g., a, b, c, etc.) is used for convenience of explanation, the identification code does not describe the order of each step, Unless otherwise stated, it may occur differently from the stated order. That is, each step may occur in the same order as described, may be performed substantially concurrently, or may be performed in reverse order.

여기서 사용되는 모든 용어들은 다르게 정의되지 않는 한, 본 발명이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 것으로 해석되어야 하며, 본 발명에서 명백하게 정의하지 않는 한 이상적이거나 과도하게 형식적인 의미를 지니는 것으로 해석될 수 없다.All terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs, unless otherwise defined. Commonly used predefined terms should be interpreted to be consistent with the meanings in the context of the related art and can not be interpreted as having ideal or overly formal meaning unless explicitly defined in the present invention.

이하, 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하기로 한다.Hereinafter, embodiments of the present invention will be described with reference to the accompanying drawings.

도 1은 본 발명의 실시예가 적용된 입력층과 은닉층과 출력층을 포함하는 인경신경망 모델을 개략적으로 나타내는 개념도이다.FIG. 1 is a conceptual diagram schematically showing a model of a neural network including an input layer, a hidden layer and an output layer to which an embodiment of the present invention is applied.

도면에 도시된 바와 같이, 도 1의 인공신경망 모델은 입력층(Input Layer), 복수개의 은닉층(Hidden Layer), 출력층(Ouput Layer)을 포함하는 계층구조로 구성되어 있다.As shown in the figure, the artificial neural network model of FIG. 1 has a hierarchical structure including an input layer, a plurality of hidden layers, and an output layer.

여기서, 각 층의 원은 뉴런(Neuron)이라 부르며, 각 뉴런에서 다음 층의 뉴런으로 연결된 화살표는 시냅스(Synapse)라 하여 뉴런 간 연결을 의미한다.Here, the circles in each layer are called neurons, and the arrows connected to the neurons in the next layer in each neuron refer to a neuron junction, called a synapse.

예를 들어, x1은 입력층의 뉴런 중 하나를 나타내고, a1은 은닉층-1의 뉴런 중 하나를 나타낸다.For example, x1 represents one of the neurons of the input layer, and a1 represents one of the neurons of the hidden layer-1.

한편, 도 1의 신경망 모델을 수학적으로 표현하기 위해 A는 연산결과, W는 가중치(Weight), X는 입력(Input), 그리고 B는 편향(Bias) 이라 할 때, 아래의 [수학식 1]로 각각 표현될 수 있다.In order to express the neural network model of FIG. 1 mathematically, when A is a calculation result, W is a weight, X is an input, and B is a bias, Respectively.

[수학식 1][Equation 1]

Figure 112018099104017-pat00001
Figure 112018099104017-pat00001

또한, [수학식 1]을 행렬의 내적을 이용하여 수식으로 간소화하여 표현하면 아래의 [수학식 2]로 표현될 수 있다.In addition, the expression (1) can be simplified by expressing it using an inner product of a matrix and expressed by the following equation (2).

[수학식 2]&Quot; (2) "

Figure 112018099104017-pat00002
Figure 112018099104017-pat00002

도 2는 도 1에 도시된 인공신경망을 확장한 심층 신경망을 개략적으로 나타내는 도면이다.FIG. 2 is a schematic diagram of a neural network that extends the artificial neural network shown in FIG.

도 2에 도시된 바와 같이, 은닉층이 2개 이상인 인공신경망을 심층신경망이라 한다.As shown in FIG. 2, an artificial neural network having two or more hidden layers is referred to as a deep neural network.

본 발명의 실시예에 적용된 인공신경망은 영상분야에 주로 적용되는 심층 신경망으로 구성되며, 일반적으로는 입력 뉴런들에 대한 데이터가 영상의 특징을 활용하는 벡터 형태의 다차원(N-Tensor)에 해당하는 특징맵으로 간소화하여 표현될 수 있다.The artificial neural network applied to the embodiment of the present invention is composed of an in-depth neural network that is mainly applied to an image field. Generally, data corresponding to input neurons correspond to a multi-dimensional (N-Tensor) And can be expressed in a simplified form as a feature map.

즉, 도면에 도시된 바와 같이, 본 발명의 실시예에서, 각각의 층을 구성하는 특징맵은 Width, Height, Depth 로 이루어진 차원으로 표현할 수 있으며, 이때, Depth는 Width와 Height로 이루어진 차원을 확장한 것을 나타내는 것으로 본 명세서에서는 '깊이'라는 용어로 확장된 차원을 Depth로 수치화 하여 나타낼 수 있다.That is, as shown in the figure, in the embodiment of the present invention, the feature map constituting each layer can be represented by a dimension composed of Width, Height, and Depth, wherein Depth is a dimension of Width and Height In the present specification, the dimension extended by the term 'depth' can be expressed numerically as Depth.

보다 구체적으로는,'깊이'는 본 발명의 실시예가 적용된 컨볼루션 신경망(ConvNet; Convolutional Neural Network)에서 차원의 확장을 다룰 때 사용하며, 일반 신경망에서는, 예를 들어 영상을 표현할 때 영상의 형태가 일반적인 RGB(Red, Green, Blue)인 경우 224×224×3(가로,세로,컬러 채널)로 표현되고 이는 컨볼루션 신경망의 가로, 세로, 깊이에 각각 대응되며, 깊이 대신 채널이란 용어로 사용될 수 있다.More specifically, 'depth' is used when dealing with the expansion of a dimension in Convolutional Neural Network (Convolution Neural Network) to which an embodiment of the present invention is applied. In general neural network, for example, It is represented by 224 × 224 × 3 (horizontal, vertical and color channels) in the case of general RGB (Red, Green, Blue), which corresponds to the horizontal, vertical and depth of the convolutional neural network, have.

즉, 본 발명의 실시예에 따른 컨볼루션 신경망은 입력이 영상 일때 각각의 레이어가 가로, 세로, 깊이의 3개 차원을 갖게 되며, 여기서, 깊이는 전체 신경망의 깊이가 아니라 입력 뉴런들에 대한 데이터에 해당하는 액티베이션 볼륨(Activation Volume)에서의 3번째 차원을 이야기 할 수 있다.That is, in the convolution neural network according to the embodiment of the present invention, when the input is an image, each layer has three dimensions of horizontal, vertical, and depth, where the depth is not the depth of the entire neural network, We can talk about the third dimension in the activation volume corresponding to the activation volume.

또한, 도 2에 도시된 각각의 계층 사이에 표시된 화살표는 각 층의 연산결과를 인접한 다음 층의 입력으로 전달하는 것을 간소화하여 표현한 것이다.In addition, the arrows shown between the respective layers shown in FIG. 2 are simplified representations of transferring the operation result of each layer to the input of the next adjacent layer.

여기서, Layer N은 전결합층(Fully Connected Layer)을 표현한 것으로 이전 층의 차원을 1차원으로 재구성한 입력에 대한 출력으로 [input, output]의 차원으로 표현할 수 있고, 출력층(Output Layer)의 출력은 최종 연산결과로 사용될 수 있다.Here, Layer N is an expression of Fully Connected Layer, which can be expressed as a dimension of [input, output] as an output of a reconstructed input of a dimension of a previous layer in one dimension, and output of an output layer Can be used as the final computation result.

도 3은 본 발명의 실시예에 따른 분산처리용 인공신경망 연산 가속화 장치의 집적회로 구성을 개략적으로 나타내는 블럭도이다.3 is a block diagram schematically showing the configuration of an integrated circuit of an artificial neural network operation acceleration apparatus for distributed processing according to an embodiment of the present invention.

도 3의 가속화 장치는, 본 발명의 핵심 아이디어인 인공신경망의 분산처리를 구현하기 위한 장치로서, 입력 뉴런들이 계층적으로 구성되어 형성된 인공 신경망의 입력데이터와 시냅스 가중치에 대한 연산을 분산하여 처리할 수 있으며, 후술하는 범용 통신중개블럭(100)을 구비하여 집적회로의 종류에 상관없이 연결이 가능하기 때문에 FPGA 또는 SoC 방식의 다양한 집적회로를 상호간에 서로 연결할 수 있어 요구되는 성능에 따라 유연한 설계가 가능하다.3 is an apparatus for implementing the distributed processing of an artificial neural network, which is a core idea of the present invention, in which input data of an artificial neural network formed by hierarchical construction of input neurons and operations on a synapse weight are distributed and processed Since the universal communication mediating block 100, which will be described later, can be connected regardless of the type of the integrated circuit, it is possible to connect various integrated circuits of the FPGA or SoC type to each other, It is possible.

도면을 참조하여 본 발명의 실시예에 따른 분산처리용 인공신경망 연산 가속화 장치를 상세하게 설명하면 다음과 같다.The artificial neural network operation acceleration apparatus for distributed processing according to an embodiment of the present invention will now be described in detail with reference to the drawings.

도면에 도시된 바와 같이, 본 발명의 실시예에 따른 분산처리용 인공신경망 연산 가속화 장치(10)는, 플래쉬 메모리(1), 외부 메인 메모리(11), 내부 버퍼 메모리(12), DMA모듈(13), 신경망 연산장치(14), CPU(15), 데이터 입력장치(16), 및 통신중개블럭(100)을 구비할 수 있다.The artificial neural network operation acceleration apparatus 10 for distributed processing according to the embodiment of the present invention includes a flash memory 1, an external main memory 11, an internal buffer memory 12, a DMA module 13, a neural network computing device 14, a CPU 15, a data input device 16, and a communication mediation block 100.

보다 상세하게는, 상기 플래쉬 메모리(1)는, SD(Secure Digital)카드와 같은 비휘발성 메모리로 구성되며, 본 발명의 실시예에 따른 인공신경망 연산에 필요한 시냅스 가중치 전체가 저장되어 가속화 장치에 전원이 인가되면 CPU의 동작제어신호에 의해 상기 DMA모듈(13)을 거쳐 상기 외부 메인 메모리(11)에 전달될 수 있다. More specifically, the flash memory 1 is constituted by a nonvolatile memory such as a SD (Secure Digital) card. The entire synaptic weight required for the artificial neural network operation according to the embodiment of the present invention is stored, It can be transferred to the external main memory 11 via the DMA module 13 by an operation control signal of the CPU.

또한, 상기 외부 메인 메모리(11)는, 본 발명의 실시예에 따른 인공신경망 연산을 수행하기 위하여 상기 입력 뉴런들에 대한 입력데이터와 시냅스 가중치를 운영체제의 관리하에 저장할 수 있는 범용 저장 수단으로서, DDR-SDRAM(Dual Data Rate SDRAM)과 같은 휘발성 메모리로 구성되어 가속화장치에 전원이 인가되는 경우에만 사용할 수 있으며, 본 명세서에서 '외부 메모리'라고 기재되는 경우에는 외부 메인 메모리(11)를 가리킬 수 있다.The external main memory 11 is a universal storage unit that can store input data and synapse weights for the input neurons under the management of an operating system in order to perform an artificial neural network operation according to an embodiment of the present invention. Or SDRAM (Dual Data Rate SDRAM), and can be used only when power is supplied to the acceleration device. In the case where the 'external memory' is described in this specification, the external main memory 11 may be referred to .

한편, 도면에 도시된 바와 같이, 상기 플래쉬 메모리(1)와 상기 외부 메인 메모리(11)에 데이터를 쓰거나 읽기 위한 제어로직을 갖는 메모리 인터페이스(2)를 구비할 수 있다.Meanwhile, as shown in the figure, the flash memory 1 and the external main memory 11 can be provided with a memory interface 2 having control logic for writing or reading data.

또한, 상기 내부 버퍼 메모리(12)는, 상기 외부 메인 메모리(11)에 저장된 시냅스 가중치와 입력데이터 중 상기 인공 신경망 연산을 구성하는 각각의 사이클마다 필요한 시냅스 가중치와 입력데이터를 버퍼와 같이 임시로 저장하기 위한 수단으로 사용되며, 구성되는 저장용량에 따라 상기 외부 메인 메모리(11)에 저장된 입력데이터와 시냅스 가중치 중 전체 또는 일부를 저장할 수 있다.The internal buffer memory 12 temporarily stores the synaptic weights and input data required for each cycle constituting the artificial neural network operation among the synaptic weights stored in the external main memory 11 and the input data, And may store all or a part of the input data and synapse weights stored in the external main memory 11 according to the storage capacity.

또한, 상기 DMA모듈(13)은, 상기 외부 메인 메모리(11) 및 내부 버퍼 메모리(12)와 데이터를 직접 송수신 하기 위한 구성으로서, 주변장치들이 메모리에 직접 접근하여 쓰기 또는 읽기 기능을 수행할 수 있는 DMA(Direct Memory Access)기능을 지원할 수 있다.Also, The DMA module 13 is configured to directly transmit and receive data to and from the external main memory 11 and the internal buffer memory 12. The DMA module 13 includes a DMA (Direct Memory Access) (Direct Memory Access) function.

여기서, 본 발명의 실시예에 적용된 상기 DMA모듈(13)을 더욱 구체적으로 설명하면, 예를 들어, 후술하는 CPU(15)와 같은 중앙처리장치가 상대적으로 처리속도가 느린 주변장치와 데이터를 읽고/쓰기가 완료될 때 까지 다른 동작을 하지 못하고 대기하는 것을 회피하여 하드웨어 연산자원활용을 높이려는 목적으로 데이터의 일고/쓰기를 대신하는 것을 목적으로 사용될 수 있다.Here, the DMA module 13 applied to the embodiment of the present invention will be described in more detail. For example, when a central processing unit such as a CPU 15, which will be described later, reads data with a peripheral device having a relatively low processing speed / It can be used to substitute data write / write for the purpose of improving the original usage of hardware operator by avoiding waiting for another operation until writing is completed.

특히, 본 발명의 실시예에서는, 앞서 상술한 바와 같이, Particularly, in the embodiment of the present invention, as described above,

'1) 외부 플래쉬 메모리(1)에 저장된 가중치를 외부 메인 메모리(11)에 저장'1) The weight stored in the external flash memory 1 is stored in the external main memory 11

2) 외부 메인 메모리(11)에 저장된 가중치 및 입력 데이터를 내부 버퍼 메모리(12)에 저장2) storing the weight values and input data stored in the external main memory 11 in the internal buffer memory 12

3)외부 메인 메모리(11)에 저장된 연산결과를 후술하는 범용통신중개블럭(100)과 같은 주변장치 인터페이스를 통해 다른 가속화 장치로 전달3) transferring the calculation result stored in the external main memory 11 to another acceleration device through a peripheral device interface such as a general-purpose communication mediation block 100

4)후술하는 신경망 연산장치(14)의 연산결과를 외부 메인 메모리(11)에 저장4) The result of the operation of the neural network arithmetic unit 14 to be described later is stored in the external main memory 11

5)후술하는 데이터 입력장치(16)와 같은 주변장치의 입력데이터를 외부 메인 메모리(11)에 저장5) Input data of a peripheral device such as a data input device 16 to be described later is stored in the external main memory 11

6)후술한 범용통신중개블럭(100)을 기반으로 하는 가속화 장치의 외부 메인 메모리(11)에 저장된 연산결과를 다른 가속화 장치의 외부 메인 메모리(11)에 입력데이터로 전달하여 저장 '6) The operation result stored in the external main memory 11 of the acceleration device based on the general-purpose communication mediating block 100 described later is transferred to the external main memory 11 of the other acceleration device as input data,

과 같은 목적으로 사용될 수 있다.Can be used for the same purpose.

또한, 상기 신경망 연산장치(14)는, 상기 내부 버퍼 메모리(12)에 저장된 시냅스 가중치와 입력데이터를 읽어들여 인공 신경망 연산을 수행한 다음 연산 결과를 상기 외부 메인 메모리(11)에 저장하는 일련의 순차적인 과정을 인공 신경망 연산을 구성하는 각각의 사이클마다 반복적으로 처리할 수 있다.In addition, the neural network computing device 14 may include a series of arithmetic processing units for reading the synapse weights and input data stored in the internal buffer memory 12 to perform an artificial neural network operation and then storing the operation results in the external main memory 11 A sequential process can be repeatedly processed for each cycle constituting an artificial neural network operation.

또한, 상기 CPU(15)는, 상기 외부 메인 메모리(11)와 내부 버퍼 메모리(12)에 입력 뉴런들에 대한 입력데이터와 시냅스 가중치를 저장시키는 동작과 상기 신경망 연산장치(14)의 동작을 제어하는 것을 포함하여, 가속화장치의 중앙처리장치로 동작할 수 있다.The CPU 15 controls the operation of storing the input data and the synapse weight for the input neurons in the external main memory 11 and the internal buffer memory 12 and the operation of the neural network computation apparatus 14 And can operate as a central processing unit of the acceleration device,

또한, 상기 데이터 입력장치(16)는, 센서인터페이스 또는 Peripheral로 구성되는 데이터 입력수단으로서, 본 발명의 실시예에서와 같이 입력데이터가 영상일 경우에 (영상)센서인터페이스를 이용하여 카메라로부터 영상 데이터를 입력받아 상기 외부 메인 메모리(11)에 저장하는 역할을 수행할 수 있다.The data input device 16 is a data input device configured by a sensor interface or a peripheral. When the input data is an image as in the embodiment of the present invention, And stores the received data in the external main memory 11.

또한, 상기 범용 통신중개블록(100)은, 상기 입력 뉴런들에 대한 입력데이터와 시냅스 가중치, 및 상기 신경망 연산장치(14)에서 수행한 연산결과를 집적회로의 종류에 관계없이 물리적으로 연결되는 다른 가속화 장치와 송수신할 수 있다.The general-purpose communication mediating block 100 may further include input data and synapse weights for the input neurons, and calculation results obtained by the neural network computing device 14, It can transmit and receive with the acceleration device.

이때, 상기 범용 통신중개블록(100)은, 다른 가속화 장치와 어드레스, 데이터, 그리고, 제어신호를 송수신하는 역할을 수행할 수 있으며, 물리적으로 연결되는 가속화 장치를 구성하는 집적회로의 종류가 SoC(System on Chip)또는 FPGA(Field Programmable Gate Array)일 경우 모두 통신중개가 가능하게 형성될 수 있다.At this time, the general-purpose communication mediating block 100 can perform transmission / reception of addresses, data, and control signals with other accelerators, and the types of integrated circuits constituting the physically- System on Chip) or FPGA (Field Programmable Gate Array).

한편, 본 발명의 실시예에 따르면, 가속화 장치의 집적회로 상의 각 요소간 통신을 위한 버스(3)프로토콜은 업계 표준인 AMBA(Advanced Microcontroller Bus Architecture)인 것이 바람직하며, 이에 따라, 상기 범용 통신중개블록(100)은 AXI(Advanced Extensible Interface) 또는 AHB(Advanced High Performance Bus) 신호를 받아 가속화 장치간의 통신 입출력 인터페이스 신호로 전환하는 기능을 수행할 수 있다.According to the embodiment of the present invention, it is preferable that the bus 3 protocol for communication between elements on the integrated circuit of the accelerator is an industry standard AMBA (Advanced Microcontroller Bus Architecture) The block 100 may receive an Advanced Extensible Interface (AXI) signal or an Advanced High Performance Bus (AHB) signal and may convert the signal into a communication input / output interface signal between the acceleration devices.

도 4를 참조하여 본 발명의 실시예에 따른 가속화 장치(10)에 구비된 범용 통신중개블록(100)를 더욱 상세하게 설명하면 다음과 같다.The general-purpose communication mediation block 100 included in the acceleration device 10 according to the embodiment of the present invention will be described in detail with reference to FIG.

도 4는 도 3에 도시된 가속화 장치를 구성하는 범용 통신중개블럭의 세부구성을 나타내는 도면이다.Fig. 4 is a diagram showing a detailed configuration of a general-purpose communication mediating block constituting the acceleration device shown in Fig. 3;

도면에 도시된 바와 같이, 본 발명의 실시예에 따른 가속화 장치를 구성하는 범용 통신중개블럭(100)은, 리맵핑 블럭(110), 버스제어신호 매칭블럭(120), 모니터 블럭(130), 및 송수신 인터페이스에 해당하는 송신모듈(101)과 수신모듈(102)을 구비할 수 있다.As shown in the figure, the general purpose communication mediating block 100 constituting the acceleration apparatus according to the embodiment of the present invention includes a remapping block 110, a bus control signal matching block 120, a monitor block 130, And a transmission module 101 and a reception module 102 corresponding to the transmission / reception interface.

본 발명의 실시예에 따르면, 물리적으로 연결되는 복수개의 가속화 장치는 범용 통신중개블럭(100)을 통해 버스 제어신호(Bus Control Signal: Bus ID, Burst, Size, R/W...), 버스 어드레스 신호(Bus Address Signal), 버스 데이터 신호(Bus Data Signal)가 송수신 되고, 프로세서에서 생성된 메시지와 인터럽트 신호가 전달될 수 있다.According to an embodiment of the present invention, a plurality of physically connected accelerators are connected to a bus control signal (Bus Control Signal: Bus ID, Burst, Size, R / W ...) An address signal (Bus Address Signal), and a bus data signal (Bus Data Signal) are transmitted and received, and a message generated by the processor and an interrupt signal can be transmitted.

여기서, 상기 리맵핑 블럭(110)은, 가속화 장치의 송신용 집적회로와 연결된 버스 마스터 인터페이스로부터 인가되는 신호들 중 수신용 집적회로의 구성요소를 지정하는 어드레스와 버스 ID신호의 폭을 약속에 따라 리맵핑하는 역할을 수행할 수 있다.Here, the remapping block 110 determines the address and the width of the bus ID signal designating the components of the receiving integrated circuit among the signals applied from the bus master interface connected to the transmitting integrated circuit of the accelerator, And re-mapping.

보다 상세하게 설명하면, 각각의 가속화 장치를 구성하는 집적회로가 적용하고 있는 내부 구성요소들의 어드레스는 서로 다른데, 이러한 차이점을 감안하지 않고 임의의 가속화장치(송신측)가 외부의 다른 장치(수신측)의 특정 영역의 어드레스에 있는 기능블록에 접근하고자 하면, 어드레스의 충돌로 인해 목표 영역으로 접근할 수 없게 될 것은 당연하다. 예를 들어, DDR, Flash, CPU 및 Video Codec에 할당된 고유의 어드레스는 각각의 가속화장치에서 서로 다르다. 따라서 정상적인 통신을 위해서는 미리 어드레스의 리맵핑에 대한 약속이 있어야 할 것이다.More specifically, the addresses of the internal components applied by the integrated circuit constituting each of the acceleration devices are different from each other. Without taking such a difference into account, an arbitrary accelerator (transmitting side) ), It is of course not possible to access the target area due to an address conflict. For example, the unique addresses assigned to DDR, Flash, CPU, and Video Codec are different for each acceleration device. Therefore, in order to perform normal communication, it is necessary to have a promise of remapping addresses in advance.

또한, 상기 리맵핑블럭(110)은, 버스 마스터 인터페이스로부터 인가되는 버스 ID 신호와 이웃하는 장치(수신측)의 버스 ID 신호의 폭(Width)을 일치시키는 버스 ID 리맵핑을 수행할 수 있다.The remapping block 110 may perform bus ID remapping to match the bus ID signal applied from the bus master interface with the width of the bus ID signal of the neighboring apparatus (receiving side).

여기서, AXI 버스 표준은 어드레스 채널과 데이터 채널이 독립적으로 분리되어 있기 때문에, 수치적인 액세스 방식으로는 어드레스와 데이터의 연결이 불가능하므로, 버스 ID를 이용하여 어드레스-데이터 짝을 맞추게 된다. 이러한 버스 ID의 이용으로 인해 버스 층의 구성마다 버스 ID 폭(Bus ID width)이 다를 수 있는데, 서로 다른 칩은 각기 다른 버스 시스템으로 구성되어 있으며, 이러한 버스 구성의Here, since the address channel and the data channel are independently separated from each other in the AXI bus standard, the address-data pair can be matched using the bus ID because the address and data can not be connected by the numerical access method. Due to the use of such a bus ID, the bus ID width may be different for each configuration of the bus layer. The different chips are composed of different bus systems.

차이는 버스 ID 폭의 차이로 귀결된다. 따라서 서로 다른 칩의 버스 간 통신을 위해서는 버스 ID 폭을 일치시켜야 하는데, 여기서 일치시킨다는 의미는 필요에 따라 버스 ID 폭을 확장하거나 축소하는 것을 의미하며, 어드레스 리맵핑과 마찬가지로, 버스 ID 폭은 서로 약속이 되어 있어야 할 것다.The difference results in a difference in bus ID width. Therefore, bus ID widths must be matched for communication between the buses of different chips, which means that bus ID widths are expanded or decreased as needed. As with address re-mapping, .

따라서, 어드레스와 버스 ID신호의 폭을 일치시키는 리맵핑을 수행할 때 참조하는 리맵핑 약속테이블이 리맵핑 블록(310)에 포함되어 있는 것이 바람직하다.Therefore, it is preferable that the remapping block 310 includes a remapping appointment table to be referred to when performing remapping to match the address and the width of the bus ID signal.

또한, 본 발명의 실시예에서, 상기 버스제어신호 매칭블럭(120)은, 버스 마스터 인터페이스로부터 인가되는 신호 중 버스제어신호(Bus Control Signal)의 패턴을 분석하여 바로 이전에 인가된 버스제어신호와 이어지는 순서로 인가되는 버스제어신호가 동일할 경우, 이전의 버스제어신호를 재사용하도록 할 수 있으며, 이로 인해, 버스 제어신호가 동일할 경우에 재사용하게 함으로써 가속화 장치 사이의 통신 인터페이스의 I/O 핀 사용률을 극대화하여 결과적으로 통신 속도를 최대한으로 향상시킬 수 있다.Also, in an embodiment of the present invention, the bus control signal matching block 120 analyzes a pattern of a bus control signal among signals applied from the bus master interface, O pins of the communication interface between the accelerating apparatuses can be reused when the bus control signals applied in the following sequence are the same so that the previous bus control signals can be reused, The utilization rate can be maximized and consequently the communication speed can be maximized.

게다가, 본 발명의 실시예에 따르면, 상기 모니터 블럭(130)은, 프로세서 인터페이스로부터 인가되는 메시지(Message)와 인터럽트 인터페이스로부터 인가되는 모든 인터럽트 신호(Interrupt)를 모니터 할 수 있으며, 이를 이용해 가속화 장치 사이에서 어드레스 신호 및 데이터를 전달할 때 메시지와 인터럽트 신호를 포함하여 전달함으로써 인터럽트 신호와 프로세서의 메시지가 최우선으로 전송되게 할 수 있어 통신 효율을 극대화 할 수 있다.In addition, according to the embodiment of the present invention, the monitor block 130 can monitor a message applied from the processor interface and all the interrupt signals applied from the interrupt interface, When the address signal and the data are transmitted, the interrupt signal and the processor's message are transmitted with the highest priority by transmitting the message and the interrupt signal including the interrupt signal, thereby maximizing the communication efficiency.

도 2 내지 도 4를 참조하여, 단일의 집적회로로 구성되는 분산처리용 인공신경망 연산 가속화 장치를 이용해 입력층과 N개의 은닉층을 포함하여 계층구조를 갖는 도 2에 도시된 인공신경망 모델에 대한 신경망 처리를 가속화 하는 방법을 설명하면 다음과 같다.2 to 4, an artificial neural network operation acceleration apparatus for distributed processing, which is composed of a single integrated circuit, is used to calculate a neural network model for the artificial neural network model shown in FIG. 2 having a hierarchical structure including an input layer and N hidden layers A method of accelerating the processing will be described as follows.

먼저, 가속화 장치(10)에 전원이 인가되면, CPU(15)의 제어신호에 의해 외부 플래시 메모리(1)에 저장된 인공 신경망 연산을 위한 입력 뉴런들에 대한 시냅스 가중치 전체를 외부 메인 메모리에 저장하는 단계(a1)를 수행한다.First, when power is applied to the acceleration device 10, the entire synaptic weights of the input neurons for the artificial neural network operation stored in the external flash memory 1 are stored in the external main memory by the control signal of the CPU 15 Step a1 is carried out.

다음으로, 데이터 입력장치(16)를 통해 입력되는 최초 입력데이터를 외부 메인 메모리(11)에 저장하는 단계(a2)를 수행한다. 여기서, 본 발명의 실시예에서와 같이 입력데이터가 영상인 경우에 카메라로부터 입력받은 영상 데이터는 DMA모듈(13)을 거쳐 저장되게 할 수 있다.Next, step (a2) of storing the initial input data input through the data input device 16 in the external main memory 11 is performed. Here, as in the embodiment of the present invention, when the input data is a video, the video data received from the camera may be stored via the DMA module 13. [

다음으로, 상기 외부 메인 메모리(11)에 저장된 입력데이터와 상기 입력데이터에 대응되는 시냅스 가중치를 인공신경망의 입력층을 구성하는 각각의 사이클에 필요한 만큼 내부 버퍼 메모리에 저장하는 단계(a3)를 수행할 수 있다. 이때, 인공신경망의 크기에 따라 가중치 및 입력데이터는 전체 또는 일부가 저장될 수 있다.Next, a step (a3) of storing the input data stored in the external main memory 11 and the synaptic weight corresponding to the input data in the internal buffer memory as necessary for each cycle constituting the input layer of the artificial neural network is performed can do. At this time, the weight and the input data may be stored in whole or in part according to the size of the artificial neural network.

다음으로, 신경망 연산장치(14)가 상기 인공신경망을 구성하는 각각의 사이클에 대응되어 상기 내부 버퍼 메모리(12)에 저장된 시냅스 가중치와 입력데이터를 읽어들여 층 전체에 대한 연산이 완료될 때 까지 인공 신경망 연산을 수행하고 그 연산 결과를 다음층의 입력데이터로 사용하기 위해 외부 메인 메모리(11)에 저장하는 단계(a4)를 수행할 수 있다.Next, the neural network computing unit 14 reads the synapse weight and input data stored in the internal buffer memory 12 corresponding to each cycle constituting the artificial neural network, (A4) of performing the neural network operation and storing the result of the operation in the external main memory 11 for use as input data of the next layer.

여기서, 연산에 필요한 가중치 및 입력데이터가 내부 메모리에 저장되면 CPU(15)는 연산 시작명령어를 신경망 연산장치(14)에 전달하고, 신경망 연산장치(14)는 가중치 및 입력데이터를 버스를 통하지 않고 직접적으로 내부 버퍼 메모리(12)에서 읽어와 연산을 수행할 수 있다. 이때, 신경망의 입력 데이터 및 가중치 전체를 내부 메모리에 저장할 수 없는 경우에는 일부를 내부 메모리(12)에 저장하고 연산하는 과정을 층전체에 대한 연산이 완료될까지 반복할 수 있다.Here, when the weight and input data necessary for the calculation are stored in the internal memory, the CPU 15 transmits the calculation start instruction to the neural network calculation unit 14, and the neural network calculation unit 14 calculates the weight and input data without passing through the bus It is possible to directly read and operate the internal buffer memory 12. In this case, when the input data and the weight of the neural network can not be stored in the internal memory, a part of the input data and the weight may be repeatedly stored in the internal memory 12 until the entire layer is calculated.

다음으로, 입력층에 대한 연산결과가 외부 메인 메모리(11)에 저장되면, 은닉층에 대한 인공 신경망 연산을 위한 입력 뉴런들에 대한 시냅스 가중치와 입력 데이터를 각각의 사이클에 필요한 만큼 상기 외부 메인 메모리(11)로부터 읽어 내부 버퍼 메모리에 저장한 다음 상기 a4단계를 수행하는 과정을 N개의 은닉층에 대하여 반복적으로 수행(a5)할 수 있다.Next, when the result of the operation on the input layer is stored in the external main memory 11, the synaptic weight for the input neurons for artificial neural network operations on the hidden layer and the input data are stored in the external main memory 11), stores it in the internal buffer memory, and then performs the process of step a4 repeatedly on the N hidden layers (a5).

도 5는 본 발명의 실시예에 따라 입력데이터가 복수개의 깊이를 갖는 인공 신경망 연산을 처리하기 위한 가속화 시스템의 다중 집적회로 구성을 개략적으로 나타내는 블럭도이다.5 is a block diagram schematically illustrating a multi-integrated circuit configuration of an acceleration system for processing an artificial neural network operation in which input data has a plurality of depths according to an embodiment of the present invention.

도 5에 도시된 바와 같이, 본 발명의 실시예에 따른 입력 뉴런들에 대한 입력데이터가 복수개의 깊이를 갖는 인공 신경망 연산을 처리하기 위한 가속화 시스템(200)은, 단일의 호스트 가속화 장치(210), 및 복수개의 슬레이브 가속화 장치(220)를 구비할 수 있다.5, an acceleration system 200 for processing an artificial neural network operation in which input data for input neurons has a plurality of depths according to an embodiment of the present invention includes a single host acceleration device 210, , And a plurality of slave acceleration devices 220.

보다 상세하게는, 상기 호스트 가속화 장치(210)는, 상기 인공 신경망 연산에 필요한 전체 시냅스 가중치가 저장된 플래시 메모리(201)와 연결되며, 호스트용 통신중개블록(201)을 상기 복수개의 깊이 갯수 이상으로 구비할 수 있다.More specifically, the host accelerator 210 is connected to the flash memory 201, which stores the total synaptic weights necessary for the artificial neural network operation, and the host communication intermediary block 201 is connected to the plurality of depths .

또한, 상기 슬레이브 가속화 장치(220)는, 상기 호스트 가속화 장치(210)의 호스트용 통신중개블럭(201)에 물리적으로 연결되는 슬레이브용 통신중개블록(202)을 각각 하나 이상 구비하며, 상기 복수개의 깊이 갯수에 일대일 대응되게 복수개 형성될 수 있다.The slave acceleration device 220 may include at least one slave communication intermediary block 202 physically connected to the host communication intermediary block 201 of the host accelerator 210, May be formed in plural numbers so as to correspond one-to-one to depth numbers.

이때, 상기 호스트 가속화 장치(210)는, 상기 복수개의 깊이 각각에 관련되는 슬레이브 가속화 장치(220)에 시냅스 가중치와 입력데이터를 병렬방식으로 분산시켜 인공 신경망 연산을 처리하게 하고, 상기 슬레이브 가속화 장치(220)의 중간연산결과를 취합하여 최종 연산을 수행할 수 있다.At this time, the host accelerator 210 causes the slave acceleration apparatus 220 related to each of the plurality of depths to distribute the synapse weight and the input data in a parallel manner to process an artificial neural network operation, and the slave acceleration apparatus 220) to calculate the final operation.

본 발명의 실시예에서, 상기 호스트용 통신중개블록(201)과 상기 슬레이브용 통신중개블록(202)은, 도 4에서 상술한 범용 통신중개블록(100)과 동일한 구성을 갖는 것이 바람직하며, 이에 대한 상세한 설명은 생락하기로 한다.In the embodiment of the present invention, the host communication intermediary block 201 and the slave communication intermediary block 202 preferably have the same configuration as the general-purpose communication intermediary block 100 described above with reference to FIG. 4, The detailed description will be omitted.

또한, 본 발명의 실시예에서, 상기 호스트 가속화 장치(210)와 상기 슬레이브 가속화 장치(220)는 각각, SoC방식 및 FPGA방식 중 어느 한 가지 방식의 집적회로로 구성될 수 있으며, 집적회로의 종류에 관계없이 상기 호스트용 통신중개블록(201)과 상기 슬레이브용 통신중개블록(2020을 통해 상호간에 서로 송수신이 가능할 수 있다.In addition, in the embodiment of the present invention, the host acceleration device 210 and the slave acceleration device 220 may be configured as an integrated circuit of any one of a SoC scheme and an FPGA scheme, The host communication intermediary block 201 and the slave communication intermediary block 2020 can communicate with each other.

게다가, 도면에 도시된 바와 같이, 상기 호스트 가속화 장치(210)와 상기 슬레이브 가속화 장치(220)는 각각, 외부 메인 메모리(211,221), 내부 버퍼 메모리(212,222), DMA모듈(213, 223), 신경망 연산장치(214,224), 및 CPU(215, 225)를 구비할 수 있으며, 도 3에 도시된 구성과 동일한 구성에 대한 상세한 설명은 생략하기로 한다.The host accelerator 210 and the slave accelerator 220 are connected to the external main memories 211 and 221, the internal buffer memories 212 and 222, the DMA modules 213 and 223, Computing devices 214 and 224, and CPUs 215 and 225, and detailed description of the same components as those shown in FIG. 3 will be omitted.

다음으로, 도 6과 도 7을 참조하여, 도 5에 도시된 가속화 시스템의 실시예들을 설명하기로 한다.Next, referring to Figs. 6 and 7, embodiments of the acceleration system shown in Fig. 5 will be described.

도 6은 도 5에 도시된 가속화 시스템의 일실시예에 따른 인공신경망을 개략적으로 나타내는 도면으로서, 입력데이터를 구성하는 특징맵의 차원을 A,B,C 세 개의 깊이로 분산하여 처리하는 인공 신경망 모델을 도식화 한 것이다.FIG. 6 is a block diagram schematically showing an artificial neural network according to an embodiment of the acceleration system shown in FIG. 5, in which an artificial neural network that distributes and processes dimensions of characteristic maps constituting input data into three depths A, It is a diagram of the model.

도 6에 도시된 인공신경망 모델을 도 5에 도시된 가속화 시스템으로 구현하는 과정을 설명하면 다음과 같다.The process of implementing the artificial neural network model shown in FIG. 6 with the acceleration system shown in FIG. 5 will now be described.

먼저, 단일의 호스트 가속화 장치(210)와 복수개의 슬레이브 가속화 장치(220)에 전원이 인가되어, 모든 가속화 장치가 연산을 위한 준비상태가 완료되면, 호스트 가속화 장치(210)와 연결된 외부 플래시 메모리(1)에 저장된 인공 신경망 연산을 위한 입력 뉴런들에 대한 시냅스 가중치 전체를 상기 호스트 가속화 장치(210)의 외부 메인 메모리(211)에 저장하는 단계(b1)를 수행할 수 있다.First, when power is applied to a single host accelerator 210 and a plurality of slave accelerators 220 and all the accelerators are ready for an operation, the external flash memory (not shown) connected to the host accelerator 210 (B1) of storing the entire synaptic weights of the input neurons for the artificial neural network operation stored in the external main memory 211 of the host accelerator 210. [

다음으로, 상기 호스트 가속화 장치(210)가 범용 통신중개블록(201,202)을 통해 상기 호스트 가속화 장치(210)의 외부 메인 메모리(211)에 저장된 시냅스 가중치 중 A,B,C 세 개의 깊이에 대응되는 각각의 시냅스 가중치를 상기 복수개의 슬레이브 가속화 장치(220)의 각 외부 메인 메모리(221)에 병렬방식으로 순차적으로 전달하여 저장하는 단계(b2)를 수행할 수 있다.Next, the host accelerator 210 transmits the synapse weights stored in the external main memory 211 of the host accelerator 210 through the universal communication mediation blocks 201 and 202 to the three depths A, B, And sequentially transmitting and storing the respective synapse weights to the external main memory 221 of the plurality of slave acceleration devices 220 in a parallel manner and storing the synapse weights in step b2.

다음으로, 상기 복수개의 슬레이브 가속화 장치(220)의 각 외부 메인 메모리(221)에 저장된 시냅스 가중치 중 인공신경망의 입력층을 구성하는 각각의 사이클에 필요한 시냅스 가중치를 상기 각 슬레이브 가속화 장치(220)의 내부 버퍼 메모리(222)에 저장하는 단계(b3)를 수행할 수 있다.Next, a synapse weight necessary for each cycle constituting the input layer of the artificial neural network among the synapse weights stored in the respective external main memories 221 of the plurality of slave acceleration apparatuses 220 is transmitted to each of the slave acceleration apparatuses 220 And storing it in the internal buffer memory 222 (step b3).

다음으로, 상기 단일의 호스트 가속화 장치(210)가 데이터 입력장치(16)를 통해 입력되는 최초 입력데이터를 상기 호스트 가속화 장치(210)의 외부 메인 메모리(211)에 저장하는 단계(b4)를 수행할 수 있으며, 본 발명의 실시예에서는 영상데이터일 경우에 센서인페이스를 통해 입력을 받으며, 다른 주변장치로부터 Peripheral을 통해 입력받을 수 있다.Next, the single host accelerator 210 performs step (b4) of storing the initial input data input through the data input device 16 in the external main memory 211 of the host accelerator 210 In the embodiment of the present invention, in the case of the image data, the input is received through the sensor in-phase, and the peripheral can receive input from the peripheral device.

다음으로, 상기 호스트 가속화 장치(210)가 범용 통신중개블록(201,202)을 통해 상기 호스트 가속화 장치(210)의 외부 메인 메모리(211)에 저장된 입력데이터 중 상기 A,B,C 세 개의 깊이에 대응되는 각각의 입력데이터를 상기 복수개의 슬레이브 가속화 장치(220)의 각 외부 메인 메모리(221)에 병렬방식으로 순차적으로 전달하여 저장하는 단계(b5)를 수행할 수 있다.Next, the host accelerator 210 corresponds to three depths A, B, and C of the input data stored in the external main memory 211 of the host accelerator 210 through the universal communication mediation blocks 201 and 202 (B5) sequentially transmitting and storing the input data to the external main memory 221 of the plurality of slave acceleration devices 220 in a parallel manner.

다음으로, 상기 슬레이브 가속화 장치(220) 각각의 외부 메인 메모리(221)에 저장된 입력데이터를 상기 인공신경망을 구성하는 각각의 사이클에 필요한 만큼 상기 각각의 슬레이브 가속화 장치(220) 내부 버퍼 메모리(222)에 저장하는 단계(b6)를 수행할 수 있다.The input data stored in the external main memory 221 of each of the slave acceleration devices 220 is input to each slave acceleration device 220 internal buffer memory 222 as necessary for each cycle constituting the artificial neural network, (B6). ≪ / RTI >

다음으로, 상기 슬레이브 가속화 장치(220) 각각의 신경망 연산장치(224)가 상기 인공신경망을 구성하는 각각의 사이클에 대응되어 상기 슬레이브 가속화 장치(220) 각각의 내부 버퍼 메모리(222)에 저장된 시냅스 가중치와 입력데이터를 읽어들여 층 전체에 대한 연산이 완료될 때 까지 인공 신경망 연산을 수행하고 그 연산 결과를 상기 슬레이브 가속화 장치(220) 각각의 외부 메인 메모리(221)에 저장하는 단계(b7)를 수행할 수 있다.The neural network computation unit 224 of each of the slave acceleration devices 220 generates a synapse weight value 222 corresponding to each cycle constituting the artificial neural network and stored in the internal buffer memory 222 of each of the slave acceleration devices 220, (B7) of reading the input data, performing an artificial neural network operation until the operation on the entire layer is completed, and storing the operation result in the external main memory 221 of each of the slave acceleration devices 220 can do.

다음으로, 상기 호스트 가속화 장치(210)가 상기 슬레이브 가속화 장치(220) 각각의 외부 메인 메모리(221)에 저장된 중간연산결과를 수신하여 상기 호스트 가속화 장치(210)의 외부 메인 메모리(211)에 순차적으로 저장한 다음 취합하여 층 전체에 대한 최종연산을 수행하고 최종연산결과를 상기 호스트 가속화 장치(210)의 외부 메인 메모리(211)에 저장하는 단계(b8)를 수행할 수 있다.Next, the host accelerator 210 receives the result of the intermediate operation stored in the external main memory 221 of each of the slave accelerators 220 and sequentially outputs the result of the intermediate operation to the external main memory 211 of the host accelerator 210 (B8) of performing final computation on the entire layer and storing the final computation result in the external main memory 211 of the host accelerator 210. In this case,

다음으로, 상기 호스트 가속화 장치(210)의 외부 메인 메모리(211)에 저장된 최종연산결과를 다음층의 연산을 위한 입력데이터로 사용하기 위하여 상기 세 개의 슬레이브 가속화 장치의 각 외부 메인 메모리(221)에 세 개의 깊이에 대응되게 병렬방식으로 순차적으로 전달하여 저장하는 단계(b9)를 수행할 수 있다.Next, in order to use the final computation result stored in the external main memory 211 of the host accelerator 210 as input data for computation of the next layer, each external main memory 221 of the three slave acceleration devices A step (b9) of successively transferring and storing the data in the parallel manner corresponding to the three depths may be performed.

다음으로, 상기 복수개의 슬레이브 가속화 장치의 각 외부 메인 메모리에 저장된 시냅스 가중치 중 다음층을 구성하는 각각의 사이클에 필요한 시냅스 가중치를 상기 각 슬레이브 가속화 장치의 내부 버퍼 메모리에 저장하는 단계(b10)를 수행할 수 있다.Next, a step (b10) of storing the synaptic weights necessary for each cycle constituting the next layer among the synapse weights stored in the respective external main memories of the plurality of slave acceleration devices, in the internal buffer memory of each slave acceleration device can do.

마지막으로, 입력 데이터에 대한 모든 계층의 연산이 완료 될 때까지 상기 b6 단계 내지 b10 단계를 반복적으로 수행하는 단계(b11)를 수행할 수 있다.Finally, the step (b11) of performing the steps b6 to b10 repeatedly may be performed until the operation of all layers for the input data is completed.

도 7은 도 5에 도시된 가속화 시스템의 다른 실시예에 따른 인공신경망을 개략적으로 나타내는 도면이다.FIG. 7 is a diagram schematically showing an artificial neural network according to another embodiment of the acceleration system shown in FIG. 5. FIG.

도 7은 도 5에 도시된 가속화 시스템의 다른 실시예에 따른 인공신경망을 개략적으로 나타내는 도면으로서, 입력데이터를 구성하는 특징맵의 차원을 논리적으로 입력층과 출력층을 제외화고 독립적으로 A,B 두 개의 깊이로 분산하여 병렬처리하는 AlexNet 에 해당하는 인공 신경망 모델을 도식화 한 것이다.FIG. 7 is a diagram schematically showing an artificial neural network according to another embodiment of the acceleration system shown in FIG. 5, in which the dimension of the characteristic map constituting the input data is logically excluded from the input layer and the output layer, Which is distributed in parallel to the depth of the network.

이와 같이, 인공신경망이 독립적으로 분리되면 각 입력층과 출력층을 제외한 나머지 출력층에 대한 중간 연산 결과를 매층의 연산마다 호스트 가속화 장치로 전송하고 취합 및 후처리를 할 필요가 없기 때문에, 도 6에 도시된 모델과 비교했을 때, 가속화장치사이의 데이터 전송시간을 회피할 수 있어 최적의 분산처리 방법을 제공할 수 있다.As described above, when the artificial neural network is independently separated, it is not necessary to transfer the intermediate calculation results for the remaining output layers excluding the input layers and the output layers to the host acceleration device for each operation of each layer, It is possible to avoid a data transfer time between the accelerating apparatuses, thereby providing an optimal distributed processing method.

도 7에 도시된 인공신경망 모델을 도 5에 도시된 가속화 시스템으로 구현하는 과정을 설명하면 다음과 같다.The process of implementing the artificial neural network model shown in FIG. 7 with the acceleration system shown in FIG. 5 will now be described.

먼저, 단일의 호스트 가속화 장치(210)와 A,B 두 개의 슬레이브 가속화 장치(220)에 전원이 인가되면 외부 플래시 메모리(1)에 저장된 인공 신경망 연산을 위한 입력 뉴런들에 대한 시냅스 가중치 전체를 상기 호스트 가속화 장치의 외부 메인 메모리(211)에 저장하는 단계(c1)를 수행할 수 있다.First, when power is applied to a single host accelerator 210 and two slave accelerators 220, the synapse weights for the input neurons for the artificial neural network operation stored in the external flash memory 1 are all (C1) in the external main memory 211 of the host acceleration apparatus.

다음으로, 상기 호스트 가속화 장치(210)가 범용 통신중개블록(201,202)을 통해 상기 호스트 가속화 장치(210)의 외부 메인 메모리(211)에 저장된 시냅스 가중치 중 상기 두 개의 깊이에 대응되는 각각의 시냅스 가중치를 상기 복수개의 슬레이브 가속화 장치(220)의 각 외부 메인 메모리(221)에 병렬방식으로 순차적으로 전달하여 저장하는 단계(c2)를 수행할 수 있다.Next, the host accelerator 210 transmits the respective synapse weights corresponding to the two depths of the synapse weights stored in the external main memory 211 of the host accelerator 210 through the universal communication mediation block 201, To the external main memory 221 of the plurality of slave acceleration devices 220 in parallel in a parallel manner and store the sequentially transferred data in the parallel main memory 221 in step c2.

다음으로, 상기 복수개의 슬레이브 가속화 장치(220)의 각 외부 메인 메모리(221)에 저장된 시냅스 가중치 중 인공신경망의 입력층을 구성하는 각각의 사이클에 필요한 시냅스 가중치를 상기 각 슬레이브 가속화 장치(220)의 내부 버퍼 메모리(222)에 저장하는 단계(c3)를 수행할 수 있다.Next, a synapse weight necessary for each cycle constituting the input layer of the artificial neural network among the synapse weights stored in the respective external main memories 221 of the plurality of slave acceleration apparatuses 220 is transmitted to each of the slave acceleration apparatuses 220 (C3) in the internal buffer memory 222. [0213] FIG.

다음으로, 상기 단일의 호스트 가속화 장치(210)가 데이터 입력장치(16)를 통해 입력되는 최초 입력데이터를 상기 호스트 가속화 장치(210)의 외부 메인 메모리(211)에 저장하는 단계(c4)를 수행할 수 있다.Next, the single host accelerator 210 performs a step (c4) of storing the initial input data input through the data input device 16 in the external main memory 211 of the host accelerator 210 can do.

다음으로, 상기 호스트 가속화 장치(210)가 외부 메인 메모리(211)에 저장된 입력데이터와 시냅스 가중치 중 신경망의 입력층을 구성하는 사이클에 필요한 만큼 내부 버퍼 메모리(212)에 저장하고, 신경망 연산장치(214)를 이용해 입력층에 대한 신경망 연산을 수행한 다음 그 연산결과를 다음층의 입력데이터로 사용하기 위해 외부 메인 메모리(211)에 저장하는 단계(c5)를 수행할 수 있다.Next, the host accelerator 210 stores the input data stored in the external main memory 211 and the synaptic weights in the internal buffer memory 212 as needed for a cycle constituting the input layer of the neural network, 214 to perform a neural network operation on the input layer, and then store the operation result in the external main memory 211 for use as input data of the next layer (c5).

다음으로, 상기 호스트 가속화 장치(210)가 범용 통신중개블록(201,202)을 통해 상기 호스트 가속화 장치(210)의 외부 메인 메모리(211)에 저장된 입력데이터(연산결과) 중 상기 복수개의 깊이에 대응되는 각각의 입력데이터(연산결과)를 상기 복수개의 슬레이브 가속화 장치(220)의 각 외부 메인 메모리(221)에 병렬방식으로 순차적으로 전달하여 저장하는 단계(c6)를 수행할 수 있다.Next, the host accelerator 210 transmits the input data (operation result) stored in the external main memory 211 of the host accelerator 210 through the universal communication mediation block 201, (C6) sequentially transmitting and storing each input data (operation result) to each external main memory 221 of the plurality of slave acceleration devices 220 in a parallel manner.

다음으로, 상기 슬레이브 가속화 장치(220) 각각의 외부 메인 메모리(221)에 저장된 입력데이터(입력층의 연산결과)와 그에 해당하는 시냅스 가중치를 상기 인공신경망을 구성하는 각각의 사이클에 필요한 만큼 상기 각각의 슬레이브 가속화 장치(220) 내부 버퍼 메모리(222)에 저장하는 단계(c7)를 수행할 수 있다.Next, input data (calculation result of the input layer) stored in the external main memory 221 of each of the slave acceleration apparatuses 220 and corresponding synaptic weights are stored in the respective memories (C7) in the slave acceleration device 220 internal buffer memory 222 of the slave device.

다음으로, 상기 슬레이브 가속화 장치(220) 각각의 신경망 연산장치(224)가 상기 인공신경망을 구성하는 각각의 사이클에 대응되어 상기 슬레이브 가속화 장치(220) 각각의 내부 버퍼 메모리(222)에 저장된 시냅스 가중치와 입력데이터를 반복적으로 읽어들여 인공신경망을 구성하는 계층 전체에 대한 연산이 완료될 때 까지 인공 신경망 연산을 반복적으로 수행하고 그 연산 결과를 상기 슬레이브 가속화 장치(220) 각각의 외부 메인 메모리(221)에 저장하는 단계(c8)를 수행할 수 있다.The neural network computing device 224 of each of the slave acceleration devices 220 generates a synapse weight value 222 corresponding to each cycle constituting the artificial neural network and stored in the internal buffer memory 222 of each of the slave acceleration devices 220. [ And repeatedly reads the input data to repeatedly perform the artificial neural network operation until the operation of the entire layer constituting the artificial neural network is completed and outputs the operation result to the external main memory 221 of each of the slave acceleration devices 220. [ (C8). ≪ / RTI >

마지막으로, 상기 호스트 가속화 장치(210)가 상기 슬레이브 가속화 장치(220) 각각의 외부 메인 메모리(221)에 저장된 중간연산결과를 수신하여 상기 호스트 가속화 장치(210)의 외부 메인 메모리(211)에 순차적으로 저장한 다음 취합하여 신경망 전체에 대한 최종연산을 수행하고 최종연산결과를 상기 호스트 가속화 장치(210)의 외부 메인 메모리(211)에 저장하는 단계(c9);를 수행할 수 있다.Lastly, the host accelerator 210 receives the result of the intermediate operation stored in the external main memory 221 of each of the slave accelerators 220 and sequentially outputs the result of the intermediate operation to the external main memory 211 of the host accelerator 210 (C9) of performing final computation on the entire neural network and storing the final computation result in the external main memory 211 of the host accelerator 210. In this case,

이와 같이, 본 발명은, 입력 뉴런들에 대한 입력데이터가 복수개의 깊이를 갖는 인공신경망의 가속화 방법에 있어서, 상기 복수개의 깊이에 대응되는 각각의 가속화장치에 입력 뉴런들에 대한 입력데이터와 시냅스 가중치를 분산하여 처리할 수 있다.As described above, the present invention provides a method of accelerating an artificial neural network in which input data for input neurons have a plurality of depths, wherein each of the accelerators corresponding to the plurality of depths includes input data for input neurons and a synapse weight Can be dispersed and processed.

도 8은 본 발명의 실시예에 따라 입력 뉴런들이 복수개의 계층으로 구성되는 인공 신경망 연산을 처리하기 위한 가속화 시스템의 다중 집적회로 구성을 개략적으로 나타내는 블럭도이다.8 is a block diagram schematically illustrating a multi-integrated circuit configuration of an acceleration system for processing an artificial neural network operation in which input neurons are formed in a plurality of layers according to an embodiment of the present invention.

도면에 도시된 바와 같이, 본 발명의 실시예에 따른 입력 뉴런들이 복수개의 계층으로 구성되는 인공 신경망 연산을 처리하기 위한 가속화 시스템(300)은, 호스트 가속화 장치(310), 및 복수개의 슬레이브 가속화 장치(320)을 구비할 수 있다.As shown in the figure, an acceleration system 300 for processing an artificial neural network operation in which input neurons according to an embodiment of the present invention are composed of a plurality of layers, includes a host acceleration device 310 and a plurality of slave acceleration devices (320).

보다 상세하게는, 상기 호스트 가속화 장치(310)는, 상기 인공 신경망 연산에 필요한 전체 시냅스 가중치가 저장된 플래시 메모리(1)와 연결되며 호스트용 통신중개블록(301)을 송수신용으로 한 쌍 이상 구비할 수 있다.More specifically, the host accelerator 310 is connected to the flash memory 1 storing the entire synaptic weights necessary for the artificial neural network operation, and includes at least one pair of host communication communication blocks 301 for transmission and reception .

또한, 상기 슬레이브 가속화 장치(320)는, 상기 호스트 가속화 장치(310)와 전체적으로 파이프라인 형태가 되게 순차적으로 연결되기 위하여 슬레이브용 통신중개블록(302)을 송수신용으로 한 쌍 이상 구비하며 복수개 형성될 수 있다.In addition, the slave acceleration device 320 includes at least one pair of slave communication mediating blocks 302 for transmitting and receiving in order to be sequentially pipelined to the host accelerator 310, .

따라서, 본 발명의 실시예에 따른 입력 뉴런들이 복수개의 계층으로 구성되는 인공 신경망 연산을 처리하기 위한 가속화 시스템(300)은, 상기 호스트 가속화 장치(310)와 상기 슬레이브 가속화 장치(320)에 상기 인공 신경망 연산을 구성하는 입력 뉴런들에 대한 시냅스 가중치와 입력데이터를 순차적으로 분산시켜 인공 신경망 연산을 처리하게 할 수 있다.Accordingly, an acceleration system 300 for processing an artificial neural network operation in which input neurons according to an embodiment of the present invention are composed of a plurality of layers is provided to the host acceleration apparatus 310 and the slave acceleration apparatus 320, It is possible to sequentially process the neural network operation by sequentially dispersing the synaptic weights and the input data for the input neurons constituting the neural network operation.

또한, 본 발명의 실시예에서, 상기 호스트용 통신중개블록(301)과 상기 슬레이브용 통신중개블록(302)은, 도 4에서 상술한 범용 통신중개블록(100)과 동일한 구성을 갖는 것이 바람직하며, 이에 대한 상세한 설명은 생락하기로 한다.Further, in the embodiment of the present invention, the communication mediating block 301 for the host and the communication mediating block 302 for the slave are preferably the same as the general-purpose communication mediating block 100 described in Fig. 4 , And a detailed explanation thereof will be omitted.

또한, 본 발명의 실시예에서, 상기 호스트 가속화 장치(310)와 상기 슬레이브 가속화 장치(320)는 각각, SoC방식 및 FPGA방식 중 어느 한 가지 방식의 집적회로로 구성될 수 있으며, 집적회로의 종류에 관계없이 상기 호스트용 통신중개블록(301)과 상기 슬레이브용 통신중개블록(302)을 통해 상호간에 서로 송수신이 가능할 수 있다.Also, in the embodiment of the present invention, the host accelerator 310 and the slave accelerator 320 may be configured as an integrated circuit of any one of a SoC system and an FPGA system, Can be mutually communicated via the host communication intermediary block 301 and the slave communication intermediary block 302. [

게다가, 도면에 도시된 바와 같이, 상기 호스트 가속화 장치(310)와 상기 슬레이브 가속화 장치(320)는 각각, 외부 메인 메모리(311,321), 내부 버퍼 메모리(312,322), DMA모듈(313, 323), 신경망 연산장치(314,324), 및 CPU(315, 325)를 구비할 수 있으며, 도 3에 도시된 구성과 동일한 구성에 대한 상세한 설명은 생략하기로 한다.In addition, as shown in the figure, the host accelerator 310 and the slave accelerator 320 are respectively connected to external main memories 311 and 321, internal buffer memories 312 and 322, DMA modules 313 and 323, Computing devices 314 and 324, and CPUs 315 and 325, and detailed description of the same components as those shown in FIG. 3 will be omitted.

도 9는 도 8에 도시된 가속화 시스템의 실시예에 따른 인공신경망 모델을 개략적으로 나타내는 도면이다.9 is a diagram schematically illustrating an artificial neural network model according to an embodiment of the acceleration system shown in FIG.

도 9에 도시된 인공신경망 모델을 도 8에 도시된 가속화 시스템으로 구현하는 과정을 설명하기 위하여 도 8에서 상술한 인공신경망 시스템을 이용하여 단일의 호스트 가속화 장치와 복수개의 슬레이브 가속화 장치의 연결구조가 전체적으로 파이프라인 형태가 되게 순차적으로 배치할 수 있다.To illustrate the process of implementing the artificial neural network model shown in FIG. 9 with the acceleration system shown in FIG. 8, a connection structure of a single host acceleration device and a plurality of slave acceleration devices using the artificial neural network system shown in FIG. They can be placed sequentially in a pipeline form as a whole.

먼저, 본 발명의 실시예에 따라 계층구조를 갖는 인공신경망 처리를 가속화 하는 방법은, 단일의 호스트 가속화 장치(310)와 복수개의 슬레이브 가속화 장치(320)에 전원이 인가되면 외부 플래시 메모리(1)에 저장된 인공 신경망 연산을 위한 입력 뉴런들에 대한 시냅스 가중치 전체를 상기 호스트 가속화 장치(310)의 외부 메인 메모리(311)에 저장하는 단계(d1)를 수행할 수 있다.The method of accelerating the artificial neural network processing having the hierarchical structure according to the embodiment of the present invention is a method of accelerating the processing of the artificial neural network having the hierarchical structure according to the embodiment of the present invention, when the power is applied to a single host accelerator 310 and a plurality of slave accelerators 320, (D1) storing the entire synaptic weights of the input neurons for the artificial neural network operation stored in the external main memory 311 of the host accelerator 310.

다음으로, 상기 호스트 가속화 장치(310)가 범용 통신중개블록(301,302)을 통해 상기 호스트 가속화 장치(310)의 외부 메인 메모리(311)에 저장된 시냅스 가중치 중 상기 N개의 계층에 대응되는 각각의 시냅스 가중치를 상기 복수개의 슬레이브 가속화 장치(320)의 각 외부 메인 메모리(321)에 순차적으로 전달하여 저장하는 단계(d2)를 수행할 수 있다.Next, the host accelerator 310 transmits the synapse weights corresponding to the N layers among the synapse weights stored in the external main memory 311 of the host accelerator 310 through the universal communication mediation block 301 and 302, To the external main memory 321 of the plurality of slave acceleration devices 320, and storing the transferred data d2.

다음으로, 상기 단일의 호스트 가속화 장치(310)가 데이터 입력장치(16)를 통해 입력되는 입력층의 입력데이터를 상기 호스트 가속화 장치(310)의 외부 메인 메모리에 저장하는 단계(d3)를 수행할 수 있다.Next, the single host accelerator 310 performs step (d3) of storing the input data of the input layer input through the data input device 16 in the external main memory of the host accelerator 310 .

다음으로, 상기 호스트 가속화 장치(310)의 외부 메인 메모리(311)에 저장된 입력층의 입력데이터와 시냅스 가중치를 내부 버퍼 메모리(312)에 저장하는 단계(d4)를 수행할 수 있다.Next, the input data of the input layer stored in the external main memory 311 of the host accelerator 310 and the synaptic weight may be stored in the internal buffer memory 312 (step d4).

다음으로, 상기 호스트 가속화 장치(310)의 신경망연산 장치(314)에 의해 상기 내부 버퍼 메모리(312)에 저장된 시냅스 가중치와 입력데이터를 읽어들여 입력층에 대한 신경망 연산을 수행하고 상기 외부 메인 메모리(311)에 연산결과를 저장하는 단계(d5)를 수행할 수 있다.Next, the synapse weight and input data stored in the internal buffer memory 312 are read by the neural network calculator 314 of the host accelerator 310 to perform a neural network operation on the input layer, (D5) of storing the calculation result in the storage unit (311).

다음으로, 다음층에 해당하는 슬레이브 가속화 장치(320)의 외부 메인 메모리(321)에 연산결과를 입력데이터로 저장한 다음, 상기 슬레이브 가속화 장치(320)의 내부 버퍼 메모리(322)에 해당층에 대응되는 입력데이터와 시냅스 가중치를 저장하는 단계(d6)를 수행할 수 있다.Next, the operation result is stored as input data in the external main memory 321 of the slave acceleration device 320 corresponding to the next layer, and then the result is stored in the internal buffer memory 322 of the slave acceleration device 320 (D6) of storing the corresponding input data and the synaptic weights.

다음으로, 상기 슬레이브 가속화 장치(320)의 신견망연산장치(324)에 의해 내부 버퍼 메모리(322)에 저장된 시냅스 가중치와 입력데이터를 읽어들여 해당층에 대한 신경망 연산을 수행하고 연산결과를 외부 메인 메모리(321)에 저장하는 단계(d7)를 수행할 수 있다.Next, the neural network calculator 324 of the slave accelerator 320 reads the synapse weight and input data stored in the internal buffer memory 322, performs a neural network operation on the corresponding layer, And the step d7 of storing it in the memory 321 can be performed.

다음으로, N개의 은닉층에 대하여 상기 d6 내지 d7단계를 반복적으로 수행하고 최종 연산 결과는 상기 호스트 가속화 장치(310)의 외부 메인 메모리(311)에 저장하거나 주변장치에 전달하는 단계(d8)를 수행할 수 있다.Next, the steps d6 to d7 are repeatedly performed for the N hidden layers, and the final operation result is stored in the external main memory 311 of the host accelerator 310 or transmitted to the peripheral device (step d8) can do.

한편, 본 발명의 실시예에 따르면, N개의 계층을 갖는 신경망을 분산하여 처리하는 경우에는 N개층을 슬레이브의 수로 나누거나 각 계층의 연산량에 비례하여 슬레이브에 독립적으로 할 당할 수 있다.Meanwhile, according to the embodiment of the present invention, when the neural network having N layers is distributed and processed, N layers can be divided by the number of slaves or independently allocated to the slaves in proportion to the amount of computation of each layer.

이와 같이, 계층별로 분산하여 각각의 층별로 가속화장치가 할당이 되면 파이프라인화가 가능하여 연속적인 스트림 입력에 대해 연산의 효율성이 높아지는 효과가 있다.As described above, when the acceleration apparatuses are allocated to the respective layers distributed by hierarchies, pipelining can be performed, and the efficiency of computation for continuous stream input is increased.

따라서, 본 발명은, 입력 뉴런들이 복수개의 계층구조로 구성되는 인공신경망의 가속화 방법에 있어서, 상기 복수개의 계층에 대응되는 각각의 가속화장치에 입력 뉴런들에 대한 입력데이터와 시냅스 가중치를 분산하여 처리하는 방법을 제공할 수 있다.Accordingly, the present invention provides a method for accelerating an artificial neural network in which input neurons are configured in a plurality of hierarchical structures, the method comprising: distributing input data and synaptic weights for input neurons to respective accelerators corresponding to the plurality of layers, Can be provided.

도 10은 복수(M)개의 깊이와 복수(N)개의 계층으로 구성되는 인공 신경망 연산을 처리하기 위한 가속화 시스템의 다중 집적회로 구성을 개략적으로 나타내는 블럭도이다.10 is a block diagram schematically showing a multi-integrated circuit configuration of an acceleration system for processing an artificial neural network operation composed of a plurality (M) of depths and a plurality (N) of layers.

도면에 도시된 바와 같이, 본 발명의 실시예에 따라 입력 뉴런들에 대한 입력데이터가 복수(M)개의 깊이와 복수(N)개의 계층으로 구성되는 인공 신경망 연산을 처리하기 위한 가속화 시스템은, 호스트 가속화 장치(410)와 복수개의 슬레이브 가속화 장치(420)을 포함할 수 있다.As shown in the figure, an acceleration system for processing an artificial neural network operation in which input data for input neurons are composed of a plurality (M) of depths and a plurality (N) of layers according to an embodiment of the present invention, And may include an acceleration device 410 and a plurality of slave acceleration devices 420.

보다 상세하게는, 상기 호스트 가속화 장치(410)는 상기 인공 신경망 연산에 필요한 전체 시냅스 가중치가 저장된 플래시 메모리(미도시)와 연결되며 호스트용 통신중개블록(미도시)을 상기 복수(N)개의 계층 수 이상으로 구비할 수 있다.More specifically, the host accelerator 410 is connected to a flash memory (not shown) storing the total synaptic weights necessary for the artificial neural network operation, and a host communication intermediary block (not shown) Or more.

또한, 상기 슬레이브 가속화 장치(420)는, 상기 호스트 가속화 장치(410)의 호스트용 통신중개블럭과 연결되거나 다른 가속화 장치와 연결되기 위한 슬레이브용 통신중개블록(402)을 하나 이상 구비하고, 상기 복수(M)개의 깊이 및 복수(N)개의 계층에 필요한 신경망 연산 사이클 수(M×N)와 일대일 대응되는 복수개로 형성될 수 있다.The slave acceleration device 420 may include one or more slave communication intermediary blocks 402 connected to the host communication intermediary block of the host accelerator 410 or connected to another acceleration device, (M × N) required for a plurality of (M) number of layers and a plurality (N) of layers.

또한, 본 발명의 실시예에서, 상기 호스트용 통신중개블록)과 상기 슬레이브용 통신중개블록(402)은, 도 4에서 상술한 범용 통신중개블록(100)과 동일한 구성을 갖는 것이 바람직하며, 이에 대한 상세한 설명은 생락하기로 한다.In the embodiment of the present invention, the communication mediating block for host 402 and the communication mediating block 402 for slave are preferably the same as the general purpose communication mediating block 100 described in Fig. 4, The detailed description will be omitted.

또한, 본 발명의 실시예에서, 상기 호스트 가속화 장치(410)와 상기 슬레이브 가속화 장치(420)는 각각, SoC방식 및 FPGA방식 중 어느 한 가지 방식의 집적회로로 구성될 수 있으며, 집적회로의 종류에 관계없이 상기 호스트용 통신중개블록과 상기 슬레이브용 통신중개블록(402)을 통해 상호간에 서로 송수신이 가능할 수 있다.In addition, in the embodiment of the present invention, the host accelerator 410 and the slave accelerator 420 may be configured as an integrated circuit of any one of a SoC system and an FPGA system, The communication intermediary block for host 402 and the communication intermediary block 402 for slave can be mutually communicable.

게다가, 도면에 도시된 바와 같이, 상기 호스트 가속화 장치(410)와 상기 슬레이브 가속화 장치(420)는 각각, 외부 메인 메모리(421), 내부 버퍼 메모리(422), DMA모듈(423), 신경망 연산장치(424), 및 CPU(425)를 구비할 수 있으며, 도 3에 도시된 구성과 동일한 구성에 대한 상세한 설명은 생략하기로 한다.The host accelerator 410 and the slave accelerator 420 may be connected to each other through an external main memory 421, an internal buffer memory 422, a DMA module 423, A CPU 424, and a CPU 425. A detailed description of the same components as those shown in FIG. 3 will be omitted.

도면에 도시된 바와 같이, 인공 신경망의 입력뉴런들에 대한 데이터의 깊이와 계층수가 많을 경우에 단일 또는 소수의 가속화 장치로는 요구되는 목표성능을 만족시키기 어려울 수 있다.As shown in the figure, when the depth and the number of layers of data for the input neurons of the artificial neural network are large, it may be difficult to satisfy the target performance required by a single or a small number of acceleration apparatuses.

이와 같은 경우에는, 앞서 상술한 도 5 내지 도 9의 깊이 분산방법과 계층분산방법을 동시에 적용하여 본 발명에 따른 가속화 장치로 최대한 분산시켜 독립적으로 연산하게 함으로써 연산 성능을 높일 수 있다.In such a case, the above-described depth dispersion method and the hierarchical dispersion method of FIGS. 5 to 9 may be simultaneously applied to the acceleration apparatus according to the present invention to maximally disperse and operate independently, thereby improving the computation performance.

이때, 도면에 도시된 바와 같이, 상기 호스트 가속화 장치(410)는, 인공신경망 연산을 위한 가중치와 입력데이터를 각각의 계층을 구성하는 슬레이브 가속화 장치(420)의 상위 입력단에 전달하고, 모든 연산이 완료되면 최종 연산 결과를 슬레이브 가속화 장치의 마지막 계층에서 전달 받는다.At this time, as shown in the figure, the host accelerator 410 transmits weight and input data for an artificial neural network operation to an upper input terminal of a slave accelerator 420 constituting each layer, Upon completion, the final operation result is received from the last layer of the slave acceleration device.

도면을 참조하면, 슬레이브 가속화 장치(420)의 L은 할당된 계층을 의미하고 이것의 수를 1~N으로 표현할 수 있으며, D는 할당된 깊이(또는 Depth)을 의미하고 이것의 수를 1~M으로 표현할 수 있다.Referring to the drawing, L of the slave acceleration device 420 denotes an assigned layer, and the number of the layers can be represented by 1 to N, D denotes an allocated depth (or Depth) M can be expressed.

도 11은 도 10에 도시된 가속화 시스템의 실시예에 따른 인공신경망 모델을 개략적으로 나타내는 도면이다.11 is a diagram schematically illustrating an artificial neural network model according to an embodiment of the acceleration system shown in FIG.

도 11을 참조하여 도 10의 가속화 시스템을 설명하면, 입력층의 A-1, A-2, A-3의 연산을 위해 슬레이브 가속화 장치는 Slave(L1,D1)~ Slave(L1,DM) 방향으로 할당될 수 있으며, 다른 계층도 이와 동일한 방식으로 할당될 수 있다.10, the slave acceleration apparatus includes a slave (L1, D1) to a slave (L1, DM) direction for the calculation of A-1, A-2, A-3 of the input layer And other layers may be allocated in the same manner.

한편, 가속화장치의 연산능력과 수에 따라 각각의 슬레이브 가속화장치는 가변적으로 할당될 수 있다.On the other hand, each of the slave acceleration devices can be variably allocated according to the computation ability and the number of the acceleration devices.

도 11에 도시된 인공신경망 모델을 도 10에 도시된 가속화 시스템으로 구현하는 과정을 설명하면 다음과 같다.The process of implementing the artificial neural network model shown in FIG. 11 with the acceleration system shown in FIG. 10 will be described below.

먼저, 단일의 호스트 가속화 장치(410)와 복수개의 슬레이브 가속화 장치(420)에 전원이 인가되면 외부 플래시 메모리에 저장된 인공 신경망 연산을 위한 입력 뉴런들에 대한 시냅스 가중치 전체를 상기 호스트 가속화 장치(410)의 외부 메인 메모리에 저장하는 단계(e1)를 수행할 수 있다.First, when power is applied to a single host accelerator 410 and a plurality of slave accelerators 420, the entire synapse weight for input neurons for an artificial neural network operation stored in an external flash memory is transmitted to the host accelerator 410, (E1) in the external main memory.

다음으로, 상기 호스트 가속화 장치(410)가 범용 통신중개블록을 통해 상기 호스트 가속화 장치의 외부 메인 메모리에 저장된 시냅스 가중치 중 상기 N개의 계층에 대응되는 각각의 시냅스 가중치 전체를 각 계층을 구성하는 M개의 깊이 중 각 계층의 첫번째 깊이에 대응하는 N개의 슬레이브 가속화 장치(420L1D1, 420L2D1, 420LND1) 각각의 외부 메인 메모리에 순차적으로 전달하면, 전달받은 N개의 슬레이브 가속화 장치와 연결된 다른 깊이에 대응하는 슬레이브 가속화 장치 전체에 해당 시냅스 가중치가 각각 저장되는 단계(e2)를 수행할 수 있다.Next, the host accelerator 410 transmits all the synapse weights corresponding to the N layers among the synapse weights stored in the external main memory of the host accelerator through the universal communication mediation block to M The slave acceleration devices 420L1D1, 420L2D1, and 420LND1 corresponding to the first depth of each layer in the depth are sequentially transmitted to the external main memory of each of the slave acceleration devices 420L1D1, 420L2D1, and 420LND1, (E2) in which the respective synaptic weights are stored in the entire region.

다음으로, 상기 단일의 호스트 가속화 장치(410)가 데이터 입력장치를 통해 입력되는 입력층의 입력데이터를 상기 호스트 가속화 장치(410)의 외부 메인 메모리에 저장하는 단계(e3)를 수행할 수 있다.Next, the single host accelerator 410 may perform step (e3) of storing the input data of the input layer, which is input through the data input device, in the external main memory of the host accelerator 410.

다음으로, 상기 호스트 가속화 장치(410)의 외부 메인 메모리에 저장된 입력층의 입력데이터는 입력층의 첫번째 깊이에 대응되는 슬레이브 가속화 장치(420L1D1)의 외부 메인 메모리(421)에 일차적으로 해당층의 전체 입력데이터가 저장된 다음, 입력층을 구성하는 깊이에 대응하는 M개의 슬레이브 가속화 장치 외부 메인 메모리에 해당되는 입력데이터가 각각 분산되어 순차적으로 저장되는 단계(e4)를 수행할 수 있다.The input data of the input layer stored in the external main memory of the host accelerator 410 is input to the external main memory 421 of the slave acceleration device 420L1D1 corresponding to the first depth of the input layer, The input data may be stored and the input data corresponding to the depths of the M slave acceleration devices corresponding to the depths constituting the input layer may be dispersed and sequentially stored (step e4).

다음으로, 상기 입력층을 구성하는 M개의 슬레이브 가속화 장치 내부 버퍼 메모리(422)에 해당층의 입력데이터와 시냅스 가중치를 저장하는 단계(e5)를 수행할 수 있다.Next, step (e5) of storing the input data and the synapse weight of the layer in the M slave accelerator internal buffer memory 422 constituting the input layer may be performed.

다음으로, 상기 입력층을 구성하는 M개의 슬레이브 가속화 장치의 신경망연산 장치에 의해 신경망 연산을 수행하고 자신의 외부 메인 메모리에 연산결과를 저장하는 단계(e6)를 수행할 수 있다.Next, a neural network operation may be performed by the neural network operation device of the M slave acceleration devices constituting the input layer, and the operation result may be stored in its external main memory (e6).

다음으로,상기 M개의 슬레이브 가속화 장치에 저장된 연산결과를 입력층의 첫번째 깊이에 해당하는 슬레이브 가속화 장치(420L1D1)에 전달하여 해당층의 최종 연산을 수행하고 그 최종연산결과를 다음층의 첫번째 깊이에 해당하는 슬레이브 가속화장치(420L2D1)에 해당층의 입력데이터로 전달하는 단계(e7)를 수행할 수 있다.Next, the calculation result stored in the M slave acceleration devices is transmitted to the slave acceleration device 420L1D1 corresponding to the first depth of the input layer to perform the final calculation of the corresponding layer, and the final calculation result is transmitted to the first depth of the next layer (E7) to the slave acceleration device 420L2D1 as the input data of the corresponding layer.

다음층의 첫번째 깊이에 대응되는 슬레이브 가속화 장치의 외부 메인 메모리에 일차적으로 해당층의 전체 입력데이터가 저장된 다음 해당층을 구성하는 M개의 슬레이브 가속화 장치 외부 메인 메모리에 해당되는 입력데이터가 각각 분산되어 순차적으로 저장하는 단계(e8);를 수행할 수 있다.The entire input data of the corresponding layer is firstly stored in the external main memory of the slave acceleration device corresponding to the first depth of the next layer and then the input data corresponding to the M slave accelerator external main memories constituting the corresponding layer are dispersed sequentially (Step e8) of storing the data in the memory.

N번째 계층의 연산이 완료될때까지 e5 단계 내지 e8 단계에서와 동일한 과정을 반복수행하고, 최종 연산결과는 상기 호스트 가속화 장치에 전달하는 단계(e9)를 수해할 수 있다.Steps e5 to e8 may be repeated until the operation of the Nth layer is completed, and the final operation result may be transmitted to the host accelerator (e9).

이와 같이, 본 발명은 입력 뉴런들에 대한 입력데이터가 복수개의 깊이와 복수개의 계층구조로 구성되는 인공신경망의 가속화 방법에 있어서, 복수개의 계층을 각각 구성하는 복수개의 깊이에 대응되는 각각의 가속화장치에 입력 뉴런들에 대한 입력데이터와 시냅스 가중치를 분산하여 처리하는 방법을 제공할 수 있다.As described above, the present invention provides a method for accelerating an artificial neural network in which input data for input neurons are composed of a plurality of depths and a plurality of hierarchical structures, A method of distributing input data and synapse weights to input neurons may be provided.

도 12는 본 발명의 실시예에 따라 복수개의 인공신경망으로 구성되는 복합 인공신경망 모델을 개략적으로 나타내는 도면이다.12 is a diagram schematically illustrating a combined artificial neural network model including a plurality of artificial neural networks according to an embodiment of the present invention.

도면에 도시된 바와 같이, 본 발명의 실시예에서는, 복합 인공신경망 모델의 세가지 예를 나타내고 있다.As shown in the figure, in the embodiment of the present invention, three examples of a combined artificial neural network model are shown.

먼저, 본 발명의 실시예에 따른 인공신경망 모델의 제 1실시예는, 물체 검출(Object Detection)을 위한 제 1 복합 인공신경망(510)이다.First, a first embodiment of an artificial neural network model according to an embodiment of the present invention is a first artificial neural network 510 for object detection.

여기서, 상기 제 1 복합 인공신경망(510)은, 개념적으로는 입력 영상으로부터 물체의 특징을 추출하는 신경망(511)과 입력영상에서의 물체의 위치를 검출하는 신경망(512)을 포함하여 구성될 수 있다.Here, the first complex artificial neural network 510 may include a neural network 511 that conceptually extracts features of an object from an input image and a neural network 512 that detects the position of an object in the input image. have.

다음으로, 본 발명의 실시예에 따른 인공신경망 모델의 제 2실시예는, 영상에서 사람 또는 물체에 대한 상황을 문장(Word)으로 표현하는 영상 캡션(Image Captioning)을 위한 제 2 복합 인공 신경망(520)이다.Next, a second embodiment of an artificial neural network model according to an embodiment of the present invention includes a second composite artificial neural network (hereinafter referred to as " artificial neural network ") for image caption in which a situation of a person or an object in a video is expressed as a word 520).

여기서, 상기 제 2 복합 인공신경망(520)은, 영상에서 물체가 어떤 것인지를 분류 하는 신경망(521)과 이미지를 설명하기 위해 분류된 물체에 캡션을 생성하는 신경망(522)을 포함하여 구성될 수 있다.Here, the second compound artificial neural network 520 may include a neural network 521 for classifying an object in an image and a neural network 522 for generating a caption in an object classified to describe the image have.

이때, 상기 영상 캡션을 위한 제 2 복합 인공 신경망(520)은 영상 데이터를 처리하기 때문에 인공신경망의 크기가 일반적인 신경망의 크기에 비해 상대적으로 상당히 큰 편에 속한다. At this time, since the second composite artificial neural network 520 for image caption processes image data, the size of the artificial neural network is considerably larger than that of a general neural network.

따라서, 연산 성능을 높이기 위해서는 상기 제 2 복합 인공 신경망(520)을 두개의 인공신경망(521,522) 단위로 나눈 다음, 각각의 인공신경망에 대하여 앞서 상술한 깊이, 계층, 및 깊이와 계층에 대응되게 분산하여 가속화 장치에 할당할 수 있다.Therefore, in order to improve the computation performance, the second composite artificial neural network 520 is divided into two artificial neural networks 521 and 522, and then the depth, the layer, and the depth of each artificial neural network And can be assigned to the acceleration device.

특히, 상기 이미지를 설명하기 위해 분류된 물체에 캡션을 생성하는 신경망(522)의 경우에 시계열 순으로 메모리 셀이 순차적으로 연결될 수 있기 때문에 도 8에 도시된 계층구조를 기반으로 하는 인공 신경망 가속화 시스템을 활용하여 분산처리 하는 것이 바람직하다.Particularly, in the case of the neural network 522 for generating captions in the objects classified to describe the image, since the memory cells can be sequentially connected in the time series order, the artificial neural network acceleration system It is preferable to perform the dispersion processing.

한편, 본 발명의 복합 인공신경망 모델의 제 3실시예에 따른 복합 인공신경망(530)은, 비디오 또는 스트림 영상처럼 시계열로 정렬이 가능한 입력 데이터(531)에 대해서, 합성곱 신경망(Convolutional Neural Network)을 시간축으로 확장한 3차원 합성곱 신경망(3-dimentional Convolutional Neural Network)(532)을 통해 특징을 추출하고, 특징들 간의 상관관계와 시간적 연속성을 판단하여 제스처 및 행동을 인지하는 인공신경망(533)을 포함할 수 있다.Meanwhile, the compound artificial neural network 530 according to the third embodiment of the compound artificial neural network model of the present invention may be applied to a convolutional neural network for input data 531 that can be arranged in time series, A neural network 533 for extracting features through a 3-dimensional convolutional neural network 532 extended on a time axis and recognizing gestures and actions by determining correlation and temporal continuity between the features, . ≪ / RTI >

이때, 상기 3차원 합성곱 신경망의 경우처럼 연속된 영상 데이터를 처리하는 연산량이 많은 신경망은 내부 신경망을 앞서 상술한 깊이, 계층, 및 시계열을 기준으로 나누어 분산 처리할 수 있다.At this time, the neural network having a large amount of computation for processing continuous image data as in the case of the three-dimensional articulated neural network can be distributedly processed by dividing the internal neural network with respect to the depth, layer, and time series described above.

이와 같이, 본 발명의 실시예에 따라 하나 이상의 인공신경망 가속화 시스템에 의해 복수개의 인공신경망으로 구성되는 복합 인공신경망 가속화 시스템은, 입력 뉴런들에 대한 입력데이터와 시냅시스 가중치를 상기 복수개의 인공신경망을 구성하는 각각의 인공신경망 단위로 나누어 분산하여 처리할 수 있다.As described above, according to an exemplary embodiment of the present invention, a complex artificial neural network acceleration system configured by a plurality of artificial neural networks by one or more artificial neural network acceleration systems includes input data for input neurons and synaptic weights to the plurality of artificial neural networks It is possible to divide and process each artificial neural network unit.

상기와 같이, 본 발명은, 인공 신경망의 연산에 필요한 입력 뉴런들에 대한 데이터와 시냅스 가중치를 집적회로의 종류에 관계없이 통신중개가 가능한 범용 통신중개블럭을 구비한 복수개의 분산처리용 인공신경망 연산 가속화 장치에 분산하여 처리함으로써 GPGPU와 같은 고전력 고비용의 하드웨어를 사용하지 않더라도 인공신경망 연산에 필요한 성능을 만족시킬 수 있을 뿐만 아니라 목표 성능에 맞게 인공신경망을 유연하게 설계할 수 있는 인공신경망 연산 가속화 장치, 가속화 시스템, 및 그 가속화 방법을 제공하는 효과가 있다.As described above, according to the present invention, data on input neurons necessary for an operation of an artificial neural network and synapse weights are supplied to a plurality of artificial neural network operations for distributed processing having a universal communication mediating block capable of mediating communication irrespective of kinds of integrated circuits It is able to satisfy the performance required for artificial neural network computation without using high power and high cost hardware such as GPGPU by dispersing and processing in the acceleration apparatus, and also, it is possible to design artificial neural network flexibly according to target performance, An acceleration system, and an acceleration method thereof.

또한, 본 발명은, 저전력/저비용의 집적회로로 구성되는 다수의 가속화 장치를 연결하여 신경망 연산을 수행하게 함으로써 종래기술에 따라 단일의 하드웨어로 구현되는 고가의 GPGPU를 사용하는 것에 비해 제조비용을 절감할 수 있으며 저전력을 필요로 하는 분야에 적용할 수 있는 효과가 있다.In addition, the present invention reduces the manufacturing cost compared with the use of an expensive GPGPU implemented by a single hardware according to the prior art by connecting a plurality of accelerators composed of low-power / low-cost integrated circuits to perform neural network calculation And can be applied to fields requiring low power.

또한, 본 발명은, 집적회로의 종류에 관계없이 통신중개가 가능한 범용 통신중개블럭을 가속화 장치에 구현함으로써 동일한 기종이나 이기종으로 구성된 집적회로로 구현되는 가속화 시스템에 추가적인 기능을 유연하게 적용할 수 있어 사용자의 다양한 요구에 능동적으로 대처할 수 있는 효과가 있다.Further, the present invention can flexibly apply additional functions to an acceleration system implemented by the same type or a heterogeneous type of integrated circuit by implementing the universal communication mediating block capable of communication mediation regardless of the type of the integrated circuit in the acceleration device It is possible to actively cope with various demands of users.

또한, 본 발명은, 다중 가속화 장치를 이용하여 인공 신경망을 분산 병렬 처리함으로써 목표성능에 맞게 유연하게 가속화장치를 확장하거나 축소할 수 있는 효과가 있다.Further, the present invention has the effect of expanding or reducing the acceleration device flexibly according to the target performance by performing the distributed parallel processing of the artificial neural network using the multiple acceleration device.

또한, 본 발명은, 인공신경망을 구성하는 뉴런들에 대한 입력데이터와 시냅스 가중치를 입력데이터를 구성하는 깊이, 계층구조, 신경망 네트워크 또는 이들의 조합 단위로 나누어 각각의 가속화 장치에서 연산이 가능하게 함으로써 하드웨어로 구현하는 경우에 메모리 및 주변장치를 최적화할 수 있어 결과적으로 제품의 개발단가를 낮출 수 있는 효과가 있다.Further, according to the present invention, input data and synaptic weights for neurons constituting an artificial neural network are divided into a depth, a hierarchical structure, a neural network, or a combination unit constituting input data, In the case of hardware implementation, the memory and the peripheral device can be optimized, and as a result, the product development cost can be lowered.

또한, 본 발명은, 다양한 종류의 집적회로를 이용해 가속화 시스템을 구현함으로써 미래에 적용될 다양한 형태의 인공신경망 구조에서도 능동적으로 활용이 가능한 효과가 있다. In addition, the present invention realizes an accelerating system using various kinds of integrated circuits, and thus can be actively used in various artificial neural network structures to be applied in the future.

지금까지 본 발명에 대해서 상세히 설명하였으나, 그 과정에서 언급한 실시예는 예시적인 것일 뿐이며, 한정적인 것이 아님을 분명히 하고, 본 발명은 이하의 특허청구범위에 의해 제공되는 본 발명의 기술적 사상이나 분야를 벗어나지 않는 범위내에서, 균등하게 대처될 수 있는 정도의 구성요소 변경은 본 발명의 범위에 속한다 할 것이다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is clearly understood that the same is by way of illustration and example only and is not to be taken by way of limitation, It is within the scope of the present invention that component changes to such an extent that they can be coped evenly within a range that does not deviate from the scope of the present invention.

1 : 플래쉬 메모리
10 : 가속화 장치
11, 211,221, 311, 321, 421 : 외부 메인 메모리
12, 212, 222, 312, 322, 422 : 내부 버퍼 메모리
13, 213, 223, 313, 323, 423 : DMA모듈
14, 214, 224, 314, 324, 424 : 신경망 연산장치
15, 215, 225, 315, 325, 425 : CPU
16 : 데이터 입력장치
100 : 범용 통신중개블럭
101 : 송신모듈(인터페이스)
102 : 수신모듈(인터페이스)
110 : 리맵핑 블럭
120 : 버스제어신호 매칭블럭
130 : 모니터 블럭
200, 300, 400 : 가속화 시스템
201, 301, 401 : 호스트용 중개블럭
202, 302, 402 : 슬레이브용 통신중개블럭
210, 310, 410 : 호스트 가속화 장치
220, 320, 420 : 슬레이브 가속화 장치
510, 520, 530 : 복합 인공 신경망
511,512,521,522,531,532 : 인공신경망
1: Flash memory
10: Accelerator
11, 211, 221, 311, 321, 421: external main memory
12, 212, 222, 312, 322, 422: internal buffer memory
13, 213, 223, 313, 323, 423: DMA module
14, 214, 224, 314, 324, 424:
15, 215, 225, 315, 325, 425: CPU
16: Data input device
100: general purpose communication mediation block
101: Transmission module (interface)
102: receiving module (interface)
110: remapping block
120: Bus control signal matching block
130: Monitor block
200, 300, 400: Acceleration system
201, 301, 401: mediation block for host
202, 302, 402: a communication mediation block for a slave
210, 310, 410: Host Accelerator
220, 320, 420: Slave acceleration device
510, 520, 530: Composite artificial neural network
511,512,521,522,531,532: Artificial neural network

Claims (24)

삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 단일의 호스트 가속화 장치와 복수개의 슬레이브 가속화 장치를 포함하여 입력 뉴런들에 대한 입력데이터가 M개의 깊이를 갖는 인공신경망 처리를 가속화 하는 방법에 있어서,
상기 단일의 호스트 가속화 장치와 복수개의 슬레이브 가속화 장치에 전원이 인가되면 외부 플래시 메모리에 저장된 인공 신경망 연산을 위한 입력 뉴런들에 대한 시냅스 가중치 전체를 상기 호스트 가속화 장치의 외부 메인 메모리에 저장하는 단계(b1);
상기 호스트 가속화 장치가 범용 통신중개블록을 통해 상기 호스트 가속화 장치의 외부 메인 메모리에 저장된 시냅스 가중치 중 상기 M개의 깊이에 대응되는 각각의 시냅스 가중치를 상기 복수개의 슬레이브 가속화 장치의 각 외부 메인 메모리에 병렬방식으로 순차적으로 전달하여 저장하는 단계(b2);
상기 복수개의 슬레이브 가속화 장치의 각 외부 메인 메모리에 저장된 시냅스 가중치 중 인공신경망의 입력층을 구성하는 각각의 사이클에 필요한 시냅스 가중치를 상기 각 슬레이브 가속화 장치의 내부 버퍼 메모리에 저장하는 단계(b3);
상기 단일의 호스트 가속화 장치가 데이터 입력장치를 통해 입력되는 최초 입력데이터를 상기 호스트 가속화 장치의 외부 메인 메모리에 저장하는 단계(b4);
상기 호스트 가속화 장치가 범용 통신중개블록을 통해 상기 호스트 가속화 장치의 외부 메인 메모리에 저장된 입력데이터 중 상기 M개의 깊이에 대응되는 각각의 입력데이터를 상기 복수개의 슬레이브 가속화 장치의 각 외부 메인 메모리에 병렬방식으로 순차적으로 전달하여 저장하는 단계(b5);
상기 슬레이브 가속화 장치 각각의 외부 메인 메모리에 저장된 입력데이터를 상기 인공신경망을 구성하는 각각의 사이클에 필요한 만큼 상기 각각의 슬레이브 가속화 장치 내부 버퍼 메모리에 저장하는 단계(b6);
상기 슬레이브 가속화 장치 각각의 신경망 연산장치가 상기 인공신경망을 구성하는 각각의 사이클에 대응되어 상기 슬레이브 가속화 장치 각각의 내부 버퍼 메모리에 저장된 시냅스 가중치와 입력데이터를 읽어들여 층 전체에 대한 연산이 완료될 때 까지 인공 신경망 연산을 수행하고 그 연산 결과를 상기 슬레이브 가속화 장치 각각의 외부 메인 메모리에 저장하는 단계(b7);
상기 호스트 가속화 장치가 상기 슬레이브 가속화 장치 각각의 외부 메인 메모리에 저장된 중간연산결과를 수신하여 상기 호스트 가속화 장치의 외부 메인 메모리에 순차적으로 저장한 다음 취합하여 층 전체에 대한 최종연산을 수행하고 최종연산결과를 상기 호스트 가속화 장치의 외부 메인 메모리에 저장하는 단계(b8);
상기 호스트 가속화 장치의 외부 메인 메모리에 저장된 최종연산결과를 다음층의 연산을 위한 입력데이터로 사용하기 위하여 상기 복수개의 슬레이브 가속화 장치의 각 외부 메인 메모리에 M개의 깊이에 대응되게 병렬방식으로 순차적으로 전달하여 저장하는 단계(b9);
상기 복수개의 슬레이브 가속화 장치의 각 외부 메인 메모리에 저장된 시냅스 가중치 중 다음층을 구성하는 각각의 사이클에 필요한 시냅스 가중치를 상기 각 슬레이브 가속화 장치의 내부 버퍼 메모리에 저장하는 단계(b10); 및
입력 데이터에 대한 모든 계층의 연산이 완료 될 때까지 상기 b6 단계 내지 b10 단계를 반복적으로 수행하는 단계(b11);를 포함하는 것을 특징으로 하는 인공신경망 가속화 방법
CLAIMS 1. A method for accelerating an artificial neural network processing wherein input data for input neurons, including a single host acceleration device and a plurality of slave acceleration devices, have M depths,
Storing the entire synaptic weights for input neurons for neural network operations stored in an external flash memory in an external main memory of the host accelerator when power is applied to the single host accelerator and the plurality of slave accelerators; );
Wherein the host accelerator sends each synapse weight corresponding to the M depths among the synapse weights stored in the external main memory of the host accelerator apparatus to the external main memory of the plurality of slave accelerator apparatuses in a parallel manner (B2);
(B3) storing a synaptic weight necessary for each cycle constituting the input layer of the artificial neural network, among the synaptic weights stored in the respective external main memories of the plurality of slave acceleration devices, in the internal buffer memory of each slave acceleration device;
(B4) storing the first input data input by the single host accelerator device through the data input device in the external main memory of the host accelerator device;
The host accelerator transmits each input data corresponding to the M depths of the input data stored in the external main memory of the host accelerator device to the external main memory of the plurality of slave accelerator devices in a parallel manner (B5);
(B6) storing input data stored in an external main memory of each of the slave acceleration devices in the slave acceleration device internal buffer memory as necessary for each cycle constituting the artificial neural network;
The neural network computing device of each of the slave acceleration devices reads the synaptic weight and input data stored in the internal buffer memory of each of the slave acceleration devices corresponding to each cycle constituting the artificial neural network, (B7) performing an artificial neural network operation up to the slave acceleration device and storing the operation result in the external main memory of each of the slave acceleration devices;
The host acceleration device receives the intermediate calculation result stored in the external main memory of each of the slave acceleration devices, sequentially stores the intermediate result in the external main memory of the host acceleration device, (B8) in an external main memory of the host accelerator apparatus;
In order to use the final computation result stored in the external main memory of the host accelerator as input data for operation of the next layer, sequentially in parallel manner corresponding to M depths in each external main memory of the plurality of slave accelerators (B9);
(B10) storing (b10) a synapse weight necessary for each cycle constituting a next layer among synapse weights stored in each external main memory of the plurality of slave acceleration devices, in an internal buffer memory of each slave acceleration device; And
(B11) repeating steps (b6) to (b10) until all layers of the input data are completely computed. The artificial neural network acceleration method
단일의 호스트 가속화 장치와 복수개의 슬레이브 가속화 장치를 포함하여 입력 뉴런들에 대한 입력데이터가 M개의 깊이를 갖는 인공신경망 처리를 가속화 하는 방법에 있어서,
상기 단일의 호스트 가속화 장치와 복수개의 슬레이브 가속화 장치에 전원이 인가되면 외부 플래시 메모리에 저장된 인공 신경망 연산을 위한 입력 뉴런들에 대한 시냅스 가중치 전체를 상기 호스트 가속화 장치의 외부 메인 메모리에 저장하는 단계(c1);
상기 호스트 가속화 장치가 범용 통신중개블록을 통해 상기 호스트 가속화 장치의 외부 메인 메모리에 저장된 시냅스 가중치 중 상기 M개의 깊이에 대응되는 각각의 시냅스 가중치를 상기 복수개의 슬레이브 가속화 장치의 각 외부 메인 메모리에 병렬방식으로 순차적으로 전달하여 저장하는 단계(c2);
상기 복수개의 슬레이브 가속화 장치의 각 외부 메인 메모리에 저장된 시냅스 가중치 중 인공신경망의 입력층을 구성하는 각각의 사이클에 필요한 시냅스 가중치를 상기 각 슬레이브 가속화 장치의 내부 버퍼 메모리에 저장하는 단계(c3);
상기 단일의 호스트 가속화 장치가 데이터 입력장치를 통해 입력되는 최초 입력데이터를 상기 호스트 가속화 장치의 외부 메인 메모리에 저장하는 단계(c4);
상기 호스트 가속화 장치가 외부 메인 메모리에 저장된 입력데이터와 시냅스 가중치 중 신경망의 입력층을 구성하는 사이클에 필요한 만큼 내부 버퍼 메모리에 저장하고 신경망 연산장치를 이용해 입력층에 대한 신경망 연산을 수행하고 그 연산결과를 다음층의 입력데이터로 사용하기 위해 외부 메인 메모리에 저장하는 단계(c5);
상기 호스트 가속화 장치가 범용 통신중개블록을 통해 상기 호스트 가속화 장치의 외부 메인 메모리에 저장된 입력데이터 중 상기 M개의 깊이에 대응되는 각각의 입력데이터를 상기 복수개의 슬레이브 가속화 장치의 각 외부 메인 메모리에 병렬방식으로 순차적으로 전달하여 저장하는 단계(c6);
상기 슬레이브 가속화 장치 각각의 외부 메인 메모리에 저장된 입력데이터와 그에 해당하는 시냅스 가중치를 상기 인공신경망을 구성하는 각각의 사이클에 필요한 만큼 상기 각각의 슬레이브 가속화 장치 내부 버퍼 메모리에 저장하는 단계(c7);
상기 슬레이브 가속화 장치 각각의 신경망 연산장치가 상기 인공신경망을 구성하는 각각의 사이클에 대응되어 상기 슬레이브 가속화 장치 각각의 내부 버퍼 메모리에 저장된 시냅스 가중치와 입력데이터를 반복적으로 읽어들여 인공신경망을 구성하는 계층 전체에 대한 연산이 완료될 때 까지 인공 신경망 연산을 반복적으로 수행하고 그 연산 결과를 상기 슬레이브 가속화 장치 각각의 외부 메인 메모리에 저장하는 단계(c8); 및
상기 호스트 가속화 장치가 상기 슬레이브 가속화 장치 각각의 외부 메인 메모리에 저장된 중간연산결과를 수신하여 상기 호스트 가속화 장치의 외부 메인 메모리에 순차적으로 저장한 다음 취합하여 신경망 전체에 대한 최종연산을 수행하고 최종연산결과를 상기 호스트 가속화 장치의 외부 메인 메모리에 저장하는 단계(c9);를 포함하는 것을 특징으로 하는 인공신경망 가속화 방법
CLAIMS 1. A method for accelerating an artificial neural network processing wherein input data for input neurons, including a single host acceleration device and a plurality of slave acceleration devices, have M depths,
Storing the entire synaptic weights of input neurons for neural network operations stored in an external flash memory in an external main memory of the host accelerator when power is applied to the single host accelerator and the plurality of slave accelerator apparatuses, );
Wherein the host accelerator sends each synapse weight corresponding to the M depths among the synapse weights stored in the external main memory of the host accelerator apparatus to the external main memory of the plurality of slave accelerator apparatuses in a parallel manner And c2.
(C3) storing a synaptic weight necessary for each cycle constituting the input layer of the artificial neural network, among the synaptic weights stored in the respective external main memories of the plurality of slave ac- celerators, in an internal buffer memory of each of the slave ac- celerators;
(C4) storing the first input data input from the single host accelerator through the data input device in the external main memory of the host accelerator;
The host accelerator stores the input data stored in the external main memory and the synaptic weights in the internal buffer memory as needed for a cycle constituting the input layer of the neural network, performs a neural network operation on the input layer using the neural network processor, (C5) in an external main memory for use as input data of a next layer;
The host accelerator transmits each input data corresponding to the M depths of the input data stored in the external main memory of the host accelerator device to the external main memory of the plurality of slave accelerator devices in a parallel manner (C6) transmitting and storing the data sequentially;
(C7) storing the input data stored in the external main memory of each of the slave acceleration devices and the synaptic weights corresponding thereto in the slave acceleration device internal buffer memory as necessary for each cycle constituting the artificial neural network;
Wherein the neural network computing device of each of the slave acceleration devices repeatedly reads the synapse weight and input data stored in the internal buffer memory of each of the slave acceleration devices corresponding to each cycle constituting the artificial neural network, (C8) repeatedly performing an artificial neural network operation until the operation for the slave acceleration device is completed and storing the operation result in the external main memory of each of the slave acceleration devices; And
The host accelerator receives the intermediate operation result stored in the external main memory of each of the slave accelerators, sequentially stores the intermediate operation result in the external main memory of the host accelerator, and then performs final operation on the entire neural network, (C9) storing in the external main memory of the host accelerator apparatus
단일의 호스트 가속화 장치와 복수개의 슬레이브 가속화 장치의 연결구조가 전체적으로 파이프라인 형태가 되게 순차적으로 배치되어 입력 뉴런들에 대한 입력데이터가 입력층과 N개의 은닉층을 포함하는 계층구조를 갖는 인공신경망 처리를 가속화 하는 방법에 있어서,
상기 단일의 호스트 가속화 장치와 복수개의 슬레이브 가속화 장치에 전원이 인가되면 외부 플래시 메모리에 저장된 인공 신경망 연산을 위한 입력 뉴런들에 대한 시냅스 가중치 전체를 상기 호스트 가속화 장치의 외부 메인 메모리에 저장하는 단계(d1);
상기 호스트 가속화 장치가 범용 통신중개블록을 통해 상기 호스트 가속화 장치의 외부 메인 메모리에 저장된 시냅스 가중치 중 상기 N개의 계층에 대응되는 각각의 시냅스 가중치를 상기 복수개의 슬레이브 가속화 장치의 각 외부 메인 메모리에 순차적으로 전달하여 저장하는 단계(d2);
상기 단일의 호스트 가속화 장치가 데이터 입력장치를 통해 입력되는 입력층의 입력데이터를 상기 호스트 가속화 장치의 외부 메인 메모리에 저장하는 단계(d3);
상기 호스트 가속화 장치의 외부 메인 메모리에 저장된 입력층의 입력데이터와 시냅스 가중치를 내부 버퍼 메모리에 저장하는 단계(d4);
상기 호스트 가속화 장치의 신경망연산 장치에 의해 상기 내부 버퍼 메모리에 저장된 시냅스 가중치와 입력데이터를 읽어들여 입력층에 대한 신경망 연산을 수행하고 상기 외부 메인 메모리에 연산결과를 저장하는 단계(d5);
다음층에 해당하는 슬레이브 가속화 장치의 외부 메인 메모리에 연산결과를 입력데이터로 저장한 다음, 상기 슬레이브 가속화 장치의 내부 버퍼 메모리에 해당층에 대응되는 입력데이터와 시냅스 가중치를 저장하는 단계(d6);
상기 슬레이브 가속화 장치의 신견망연산장치에 의해 내부 버퍼 메모리에 저장된 시냅스 가중치와 입력데이터를 읽어들여 해당층에 대한 신경망 연산을 수행하고 연산결과를 외부 메인 메모리에 저장하는 단계(d7);
N개의 은닉층에 대하여 상기 d6 내지 d7단계를 반복적으로 수행하고 최종 연산 결과는 상기 호스트 가속화 장치의 외부 메인 메모리에 저장하거나 주변장치에 전달하는 단계(d8);를 포함하는 것을 특징으로 하는 인공신경망 가속화 방법
A connection structure of a single host acceleration device and a plurality of slave acceleration devices are sequentially arranged in a pipeline form so that input data for input neurons has a hierarchical structure including an input layer and N hidden layers, In a method of accelerating,
Storing the entire synaptic weights for input neurons for neural network operation stored in an external flash memory in an external main memory of the host accelerator when power is applied to the single host accelerator and the plurality of slave accelerators; );
Wherein the host accelerator sequentially transmits respective synapse weights corresponding to the N layers among the synapse weights stored in the external main memory of the host accelerator through the universal communication mediation block to each of the external main memories of the plurality of slave acceleration devices Transmitting and storing (d2);
(D3) storing the input data of the input layer to which the single host accelerator device is input through the data input device in the external main memory of the host accelerator device;
Storing input data and a synapse weight of an input layer stored in an external main memory of the host accelerator device in an internal buffer memory (d4);
A step (d5) of reading a synapse weight value and input data stored in the internal buffer memory by the neural network computation device of the host acceleration device, performing a neural network operation on the input layer, and storing the computation result in the external main memory;
(D6) storing the operation result in the external main memory of the slave acceleration device corresponding to the next layer as input data, and then storing the input data and the synapse weight corresponding to the layer in the internal buffer memory of the slave acceleration device;
A step (d7) of reading the synaptic weights and input data stored in the internal buffer memory by the neural network calculator of the slave acceleration apparatus, performing a neural network operation on the layer, and storing the operation result in the external main memory;
(D8) repeatedly performing the steps d6 to d7 for the N hidden layers and storing the final operation result in an external main memory of the host accelerator or transmitting the result to a peripheral device Way
단일의 호스트 가속화 장치와 복수개의 슬레이브 가속화 장치를 포함하여 입력 뉴런들에 대한 입력데이터가 M개의 깊이와 N개의 계층으로 구성되는 인공신경망 처리를 가속화 하는 방법에 있어서,
상기 단일의 호스트 가속화 장치와 복수개의 슬레이브 가속화 장치에 전원이 인가되면 외부 플래시 메모리에 저장된 인공 신경망 연산을 위한 입력 뉴런들에 대한 시냅스 가중치 전체를 상기 호스트 가속화 장치의 외부 메인 메모리에 저장하는 단계(e1);
상기 호스트 가속화 장치가 범용 통신중개블록을 통해 상기 호스트 가속화 장치의 외부 메인 메모리에 저장된 시냅스 가중치 중 상기 N개의 계층에 대응되는 각각의 시냅스 가중치 전체를 각 계층을 구성하는 M개의 깊이 중 각 계층의 첫번째 깊이에 대응하는 N개의 슬레이브 가속화 장치 각각의 외부 메인 메모리에 순차적으로 전달하면, 전달받은 N개의 슬레이브 가속화 장치와 연결된 다른 깊이에 대응하는 슬레이브 가속화 장치 전체에 해당 시냅스 가중치가 각각 저장되는 단계(e2);
상기 단일의 호스트 가속화 장치가 데이터 입력장치를 통해 입력되는 입력층의 입력데이터를 상기 호스트 가속화 장치의 외부 메인 메모리에 저장하는 단계(e3);
상기 호스트 가속화 장치의 외부 메인 메모리에 저장된 입력층의 입력데이터는 입력층의 첫번째 깊이에 대응되는 슬레이브 가속화 장치의 외부 메인 메모리에 일차적으로 해당층의 전체 입력데이터가 저장된 다음, 입력층을 구성하는 깊이에 대응하는 M개의 슬레이브 가속화 장치 외부 메인 메모리에 해당되는 입력데이터가 각각 분산되어 순차적으로 저장되는 단계(e4);
상기 입력층을 구성하는 M개의 슬레이브 가속화 장치 내부 버퍼 메모리에 해당층의 입력데이터와 시냅스 가중치를 저장하는 단계(e5);
상기 입력층을 구성하는 M개의 슬레이브 가속화 장치의 신경망연산 장치에 의해 신경망 연산을 수행하고 자신의 외부 메인 메모리에 연산결과를 저장하는 단계(e6);
상기 M개의 슬레이브 가속화 장치에 저장된 연산결과를 입력층의 첫번째 깊이에 해당하는 슬레이브 가속화 장치에 전달하여 해당층의 최종 연산을 수행하고 그 최종연산결과를 다음층의 첫번째 깊이에 해당하는 슬레이브 가속화장치에 해당층의 입력데이터로 전달하는 단계(e7);
다음층의 첫번째 깊이에 대응되는 슬레이브 가속화 장치의 외부 메인 메모리에 일차적으로 해당층의 전체 입력데이터가 저장된 다음 해당층을 구성하는 M개의 슬레이브 가속화 장치 외부 메인 메모리에 해당되는 입력데이터가 각각 분산되어 순차적으로 저장하는 단계(e8); 및
N번째 계층의 연산이 완료될때까지 e5 단계 내지 e8 단계에서와 동일한 과정을 반복수행하고, 최종 연산결과는 상기 호스트 가속화 장치에 전달하는 단계(e9);를 구비하는 것을 특징으로 하는 인공신경망 가속화 방법
A method for accelerating neural network processing wherein input data for input neurons, comprising a single host acceleration device and a plurality of slave acceleration devices, are comprised of M depths and N layers,
Storing the entire synaptic weights for input neurons for neural network operation stored in an external flash memory in an external main memory of the host accelerator when power is applied to the single host accelerator and the plurality of slave accelerators );
The host accelerator transmits the entire synapse weights corresponding to the N layers among the synapse weights stored in the external main memory of the host accelerator through the universal communication mediation block to the first of each of the M depths constituting each layer (E2) in which the respective synapse weights are stored in all the slave acceleration devices corresponding to different depths connected to the received N slave acceleration devices, respectively, when sequentially transmitted to the external main memory of each of the N slave acceleration devices corresponding to the depth, ;
(E3) storing the input data of the input layer input from the single host accelerator through the data input device in the external main memory of the host accelerator;
The input data of the input layer stored in the external main memory of the host accelerator is firstly stored in the external main memory of the slave acceleration device corresponding to the first depth of the input layer, (E4) in which input data corresponding to M slave accelerating apparatus external main memories corresponding to the plurality of slave accelerating apparatuses are dispersed and sequentially stored;
(E5) storing input data and synapse weights of the layer in M slave accelerator internal buffer memories constituting the input layer;
(E6) performing a neural network operation by the neural network computation apparatus of the M slave acceleration apparatuses constituting the input layer and storing the computation result in its own external main memory;
The calculation result stored in the M slave acceleration devices is transmitted to the slave acceleration device corresponding to the first depth of the input layer to perform the final calculation of the corresponding layer and the final calculation result is transmitted to the slave acceleration device corresponding to the first depth of the next layer (E7) transmitting the input data to the layer;
The entire input data of the corresponding layer is firstly stored in the external main memory of the slave acceleration device corresponding to the first depth of the next layer and then the input data corresponding to the M slave accelerator external main memories constituting the corresponding layer are dispersed sequentially (E8); And
(E9) repeating the same processes as in steps e5 to e8 until the operation of the Nth layer is completed, and transmitting the final computation result to the host accelerator apparatus
삭제delete 삭제delete 삭제delete 삭제delete
KR1020180119856A 2018-10-08 2018-10-08 Acceleration Method for Artificial Neural Network System KR101950786B1 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020180119856A KR101950786B1 (en) 2018-10-08 2018-10-08 Acceleration Method for Artificial Neural Network System
CN201980065991.2A CN112805727A (en) 2018-10-08 2019-07-18 Artificial neural network operation acceleration device for distributed processing, artificial neural network acceleration system using same, and method for accelerating artificial neural network
US17/281,456 US20220004854A1 (en) 2018-10-08 2019-07-18 Artificial neural network computation acceleration apparatus for distributed processing, artificial neural network acceleration system using same, and artificial neural network acceleration method therefor
PCT/KR2019/008905 WO2020075957A1 (en) 2018-10-08 2019-07-18 Artificial neural network computation acceleration apparatus for distributed processing, artificial neural network acceleration system using same, and artificial neural network acceleration method therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180119856A KR101950786B1 (en) 2018-10-08 2018-10-08 Acceleration Method for Artificial Neural Network System

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020190007723A Division KR102137802B1 (en) 2018-10-08 2019-01-21 Apparatus of Acceleration for Artificial Neural Network System and Method thereof

Publications (1)

Publication Number Publication Date
KR101950786B1 true KR101950786B1 (en) 2019-02-21

Family

ID=65585193

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180119856A KR101950786B1 (en) 2018-10-08 2018-10-08 Acceleration Method for Artificial Neural Network System

Country Status (1)

Country Link
KR (1) KR101950786B1 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210030827A (en) * 2019-09-10 2021-03-18 주식회사 피앤씨솔루션 Machine learning system based on distributed data processing
KR20210047626A (en) * 2019-10-22 2021-04-30 에스앤즈 주식회사 A deep learning processing acceleration system for streaming data based on packet transmissiong in a distributed environment and an anomaly detection system using the same
KR20210084118A (en) 2019-12-27 2021-07-07 부산대학교 산학협력단 Method and Apparatus for Dynamic Power Management of Deep Neural Network Accelerators
CN113095503A (en) * 2020-01-09 2021-07-09 北京君正集成电路股份有限公司 System for realizing high efficiency of detection model
WO2021210706A1 (en) * 2020-04-14 2021-10-21 주식회사 모레 Method for processing deep learning task in heterogeneous accelerators and cluster system for performing method
KR20220168681A (en) 2021-06-17 2022-12-26 서강대학교산학협력단 Neuromorphic computing system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110027916A (en) 2009-09-11 2011-03-17 연세대학교 산학협력단 Device for providing weight value in perceptron neural network, and detecting apparatus, detecting system, detecting method using the same
US20180046913A1 (en) * 2016-08-12 2018-02-15 DeePhi Technology Co., Ltd. Combining cpu and special accelerator for implementing an artificial neural network

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110027916A (en) 2009-09-11 2011-03-17 연세대학교 산학협력단 Device for providing weight value in perceptron neural network, and detecting apparatus, detecting system, detecting method using the same
US20180046913A1 (en) * 2016-08-12 2018-02-15 DeePhi Technology Co., Ltd. Combining cpu and special accelerator for implementing an artificial neural network

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Jo, Jihyuck, et al. DSIP: A scalable inference accelerator for convolutional neural networks. IEEE Journal of Solid-State Circuits 53.2, 2018.2.* *
Md. Haidar Sharif and Osman Gursoy, Parallel Computing for Artificial Neural Network Training. Periodicals of Engineering and Natural Sciences 6.1, 2018.2.* *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210030827A (en) * 2019-09-10 2021-03-18 주식회사 피앤씨솔루션 Machine learning system based on distributed data processing
KR102257039B1 (en) * 2019-09-10 2021-05-28 주식회사 피앤씨솔루션 Machine learning system based on distributed data processing
KR20210047626A (en) * 2019-10-22 2021-04-30 에스앤즈 주식회사 A deep learning processing acceleration system for streaming data based on packet transmissiong in a distributed environment and an anomaly detection system using the same
KR102496734B1 (en) * 2019-10-22 2023-02-06 에스앤즈 주식회사 A deep learning processing acceleration system for streaming data based on packet transmissiong in a distributed environment and an anomaly detection system using the same
KR20210084118A (en) 2019-12-27 2021-07-07 부산대학교 산학협력단 Method and Apparatus for Dynamic Power Management of Deep Neural Network Accelerators
CN113095503A (en) * 2020-01-09 2021-07-09 北京君正集成电路股份有限公司 System for realizing high efficiency of detection model
CN113095503B (en) * 2020-01-09 2024-05-03 北京君正集成电路股份有限公司 System for realizing high efficiency of detection model
WO2021210706A1 (en) * 2020-04-14 2021-10-21 주식회사 모레 Method for processing deep learning task in heterogeneous accelerators and cluster system for performing method
KR20220168681A (en) 2021-06-17 2022-12-26 서강대학교산학협력단 Neuromorphic computing system
KR102565801B1 (en) 2021-06-17 2023-08-10 서강대학교산학협력단 Neuromorphic computing system

Similar Documents

Publication Publication Date Title
KR101950786B1 (en) Acceleration Method for Artificial Neural Network System
KR102137802B1 (en) Apparatus of Acceleration for Artificial Neural Network System and Method thereof
US11580367B2 (en) Method and system for processing neural network
US20180032859A1 (en) Accelerator in convolutional neural network and method for operating the same
CN109726822B (en) Operation method, device and related product
CN110383300A (en) A kind of computing device and method
CN108304926B (en) Pooling computing device and method suitable for neural network
US20220004854A1 (en) Artificial neural network computation acceleration apparatus for distributed processing, artificial neural network acceleration system using same, and artificial neural network acceleration method therefor
CN109711540B (en) Computing device and board card
CN113837922A (en) Computing device, data processing method and related product
CN111199276B (en) Data processing method and related product
CN109711538B (en) Operation method, device and related product
CN109740729B (en) Operation method, device and related product
CN113704156B (en) Sensing data processing device, board card, system and method
US20230169031A1 (en) Method and device for constructing communication topology structure on basis of multiple processing nodes
CN113556242B (en) Method and equipment for performing inter-node communication based on multi-processing nodes
CN111078625B (en) Network-on-chip processing system and network-on-chip data processing method
CN111078624B (en) Network-on-chip processing system and network-on-chip data processing method
CN111078623B (en) Network-on-chip processing system and network-on-chip data processing method
CN115470176B (en) Computing device, method for implementing convolution operation by utilizing computing device and related product
CN111382856A (en) Data processing device, method, chip and electronic equipment
CN111260070A (en) Operation method, device and related product
CN111258641A (en) Operation method, device and related product
WO2023087698A1 (en) Computing apparatus and method for executing convolution operation, and related products
CN112394990A (en) Floating point to half precision floating point instruction processing device and method and related products

Legal Events

Date Code Title Description
A107 Divisional application of patent
E701 Decision to grant or registration of patent right
GRNT Written decision to grant