WO2021049829A1 - 인공 신경망 연산을 수행하는 방법, 시스템 및 비일시성의 컴퓨터 판독 가능 기록 매체 - Google Patents

인공 신경망 연산을 수행하는 방법, 시스템 및 비일시성의 컴퓨터 판독 가능 기록 매체 Download PDF

Info

Publication number
WO2021049829A1
WO2021049829A1 PCT/KR2020/012024 KR2020012024W WO2021049829A1 WO 2021049829 A1 WO2021049829 A1 WO 2021049829A1 KR 2020012024 W KR2020012024 W KR 2020012024W WO 2021049829 A1 WO2021049829 A1 WO 2021049829A1
Authority
WO
WIPO (PCT)
Prior art keywords
artificial neural
neural network
external memory
layer
present
Prior art date
Application number
PCT/KR2020/012024
Other languages
English (en)
French (fr)
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 주식회사 모빌린트
Publication of WO2021049829A1 publication Critical patent/WO2021049829A1/ko

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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections

Definitions

  • the present invention relates to a method, a system, and a non-transitory computer-readable recording medium for performing artificial neural network operations.
  • Artificial neural networks are conceived from neurons in the brain and their connection structures, and are used in many application fields due to the overwhelmingly high performance and versatility of artificial neural networks. Artificial neural networks have made significant advances in accuracy in many applications such as vision, speech, and language, and have recently shown performance at or above the human level in various fields. The superior performance of artificial neural networks comes from their ability to extract shapes based on statistical learning of large amounts of data, which differs from conventional algorithms that use features or rules usually devised from human experience and intuition.
  • the internal memory capacity of the artificial neural network computing device is inevitably limited, so it is common to have an external memory.
  • the external memory is much larger than the internal memory in terms of power and delay time. In other words, it can be seen that minimizing external memory access in performing artificial neural network operations is also directly linked to performance improvement of artificial neural network computing devices.
  • the present inventor(s) proposes a novel and advanced technology capable of maintaining the processing speed above a certain level while minimizing access to an external memory in the process of computing an artificial neural network.
  • An object of the present invention is to solve all the problems of the prior art described above.
  • an object of the present invention is to derive an optimal layer partitioning scheme and operation order in the process of calculating an artificial neural network, and to minimize access to external memory while maintaining the processing speed above a certain level. .
  • a typical configuration of the present invention for achieving the above object is as follows.
  • a method of performing an artificial neural network operation comprising the steps of: (a) obtaining information about an input layer and weights associated with the operation of the artificial neural network from an external memory, (b) transmitting an operation result generated by dividing at least one hidden layer into a plurality of dimensions with reference to the obtained information to be stored in the external memory, and (c) the (a) Steps) and (b) are repeatedly performed so that when the operation for a plurality of layers associated with the input layer is completed, an output layer based on the operation result is transmitted to the external memory and stored.
  • a system for performing an artificial neural network operation (a) obtaining information about an input layer and weights associated with the operation of the artificial neural network from an external memory.
  • a buffer unit (b) an operation management unit configured to transmit and store an operation result generated by dividing at least one hidden layer into a plurality of dimensions by referring to the obtained information, and (c) )
  • an output layer based on the operation result is transferred to the external memory.
  • an output layer management unit configured to transmit and store the at least one of the number of times to be accessed to the external memory and a degree of overlapping processing generated when the at least one hidden layer is divided into a plurality of dimensions.
  • a system is provided in which the level of dimensional division of the hidden layer and the order of operation processing are determined.
  • the present invention in the process of calculating an artificial neural network, it is possible to derive an optimal layer partitioning method and an operation order, thereby minimizing access to external memory and maintaining the processing speed above a certain level.
  • 1 is a diagram schematically showing the configuration of an entire system that performs an artificial neural network operation according to an embodiment of the present invention.
  • FIG. 2 is a diagram illustrating an internal configuration of an artificial neural network computing system according to an embodiment of the present invention.
  • FIG. 3 is a diagram illustrating a process of performing an artificial neural network operation through a limited internal memory according to an embodiment of the present invention.
  • an artificial neural network is a concept including a statistical learning algorithm inspired by a neural network of biology in machine learning and cognitive science, and a plurality of artificial neurons that form a network by combining synapses.
  • (neuron) may mean the overall model having problem-solving ability by changing the coupling strength (eg, weight) of synapses through learning.
  • the artificial neural network model may be composed of a hierarchical structure including an input layer, a plurality of hidden layers, and an output layer.
  • 1 is a diagram schematically showing the configuration of an entire system that performs an artificial neural network operation according to an embodiment of the present invention.
  • the entire system may include a communication network 100, an artificial neural network computing system 200, and an external memory 300.
  • the communication network 100 is within one system (eg, chip, memory) or between a plurality of systems (eg, chip-chip, chip-memory, memory-memory). ) May mean a bus that transmits and receives data in an interface circuit, etc.
  • the artificial neural network computing system 200 can communicate with an external memory 300 to be described later through the communication network 100, and (a) an external memory Obtain information on the input layer and the weight associated with the operation of the artificial neural network from (300), and (b) a plurality of at least one hidden layer by referring to the obtained information.
  • the operation result generated by dividing into the dimension of is transmitted to the external memory 300 to be stored, and (c) the above (a) and (b) processes are repeatedly performed, and the above input layer and When an operation for a plurality of related layers is completed, an output layer based on the operation result may be transmitted to and stored in the external memory 300 above.
  • the artificial neural network operation system 200 includes the number of times to be accessed (eg, read/write) to the external memory 300 and at least one hidden layer has a plurality of dimensions.
  • a dimension division level eg, the number of dimension divisions
  • an operation order of the at least one hidden layer above may be determined based on at least one of the degree of overlapping processing generated as the division process is divided into (dimension).
  • the artificial neural network operation system 200 has been described as above, but this description is exemplary, and at least some of the functions or components required for the artificial neural network operation system 200 are required, such as a smart phone, a tablet PC, etc. Likewise, it may be implemented in a digital device or IC chip having a computing capability by having a memory means and mounting a microprocessor, or may be included in an external system (not shown).
  • the external memory 300 may perform communication with the artificial neural network computing system 200 through the communication network 100, and each input neuron associated with the artificial neural network. It is possible to perform a function of storing input data of and information including synaptic weights for performing an operation from the input neurons.
  • the external memory 300 may include a volatile memory such as Double Data Rate Synchronous Dynamic Random Access Memory (DDR-SDRAM).
  • DDR-SDRAM Double Data Rate Synchronous Dynamic Random Access Memory
  • FIG. 2 is a diagram illustrating an internal configuration of an artificial neural network computing system 200 according to an embodiment of the present invention.
  • the artificial neural network operation system 200 includes a buffer unit 210, an operation management unit 220, an output layer management unit 230, a communication unit 240, and a control unit 250. It may include. According to an embodiment of the present invention, at least some of the buffer unit 210, the operation management unit 220, the output layer management unit 230, the communication unit 240, and the control unit 250 are external systems (not shown). It may be program modules that communicate with. These program modules may be included in the artificial neural network operation system 200 in the form of an operating system, an application program module, and other program modules, and may be physically stored on various known storage devices. In addition, these program modules may be stored in a remote storage device capable of communicating with the artificial neural network computing system 200. Meanwhile, these program modules include routines, subroutines, programs, objects, components, data structures, etc. that perform specific tasks or execute specific abstract data types according to the present invention, but are not limited thereto.
  • the buffer unit 210 may perform a function of acquiring information about an input layer and a synaptic weight associated with an artificial neural network operation from the external memory 300. .
  • the buffer unit 210 according to an embodiment of the present invention may perform a function of temporarily storing information inside the artificial neural network computing system 200, and stored in the external memory 200 according to the storage capacity. You can store all or part of the information.
  • the buffer unit 210 stores information on synaptic weights for deriving an input layer from the external memory 300 and an operation result from the input layer to the next layer of the artificial neural network. Can be obtained.
  • the operation management unit 220 divides (or distributes) at least one hidden layer into a plurality of dimensions by referring to the information obtained from the buffer unit 210. ) It is possible to perform a function of transmitting and storing an operation result generated by processing to the external memory 300.
  • the dimension according to an embodiment of the present invention may include concepts such as depth and channel used in a known artificial neural network. For example, in the case of an RGB channel for an image, 224 X It is represented by 224 X 3 (ie, horizontal, vertical and color channels), and the dimension may mean three.
  • the dimension according to an embodiment of the present invention may be a concept defined in an activation volume corresponding to data for each input neuron, not the dimension of the entire artificial neural network.
  • the operation management unit 220 includes the number of times to access the external memory 300 and the degree of redundancy that occurs as at least one hidden layer is divided into a plurality of dimensions. For example, overhead occurs with respect to the area where the layers overlap, which may be a concept that refers to the degree.) Based on at least one of, the dimensional division level and operation processing order of the at least one hidden layer above are determined based on at least one of the above. I can.
  • the output layer management unit 230 includes a process in which the buffer unit 210 acquires and stores information from the external memory 300, and stores the information provided from the buffer unit 210.
  • the process of transmitting and storing the result of the operation generated by dividing into a plurality of hidden layers to the external memory 300 above is repeatedly performed, and the operation for the plurality of layers related to the input layer is completed.
  • a function of transmitting an output layer based on the operation result to the external memory 300 and storing it may be performed.
  • the level (eg, depth) of the upper layer may be set based on at least one of the number of hidden layers and the number of times the external memory is accessed.
  • the communication unit 240 may perform a function of enabling data transmission and reception from/to the buffer unit 210, the operation management unit 220, and the output layer management unit 230. have.
  • control unit 250 performs a function of controlling the flow of data between the buffer unit 210, the operation management unit 220, the output layer management unit 230, and the communication unit 240. can do. That is, the control unit 250 according to the present invention controls the data flow from/to the outside of the artificial neural network operation system 200 or the data flow between each component of the artificial neural network operation system 200, so that the buffer unit 210 , The operation management unit 220, the output layer management unit 230, and the communication unit 240 may be controlled to perform their own functions, respectively.
  • FIG. 3 is a diagram illustrating a process of performing an artificial neural network operation through a limited internal memory according to an embodiment of the present invention.
  • information about all synaptic weights required for artificial neural network operation is transmitted from a flash memory (not shown) composed of a nonvolatile memory such as a secured digital (SD) card to the external memory 300. Can be delivered to.
  • a flash memory not shown
  • a nonvolatile memory such as a secured digital (SD) card
  • information on a weight associated with an input layer and an artificial neural network operation may be obtained from the external memory 300 (310).
  • only information about a weight corresponding to a specific layer to be calculated from an upper input layer among information about weights associated with an artificial neural network operation may be obtained.
  • At least one hidden layer is divided into a plurality of dimensions 321 (eg, channels) with reference to the obtained information.
  • the resulting calculation result may be transmitted and stored in the external memory 300 above.
  • the level of dimensional division of one hidden layer and an order of operation processing may be determined.
  • a process (330, 350) of obtaining information on a weight associated with an input layer and an artificial neural network operation from the external memory 300 above The process (340, 360) of transmitting and storing the calculation result generated by dividing at least one hidden layer into a plurality of dimensions with reference to the obtained information above is repeatedly performed.
  • an output layer based on the operation result may be transmitted and stored to the external memory 300 (370 ).

Landscapes

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

Abstract

본 발명의 일 태양에 따르면, 인공 신경망 연산을 수행하는 방법으로서, (a) 외부 메모리(external memory)로부터 입력 레이어(input layer) 및 인공 신경망의 연산과 연관되는 가중치에 관한 정보를 획득하는 단계, (b) 상기 획득되는 정보를 참조하여 적어도 하나의 히든 레이어(hidden layer)를 복수의 차원으로 분할 처리하여 생성되는 연산 결과를 상기 외부 메모리에 전송하여 저장되도록 하는 단계, 및 (c) 상기 (a) 단계 및 상기 (b) 단계를 반복적으로 수행하여, 상기 입력 레이어와 연관되는 복수의 계층에 대한 연산이 완료되면, 상기 연산 결과에 기초한 출력 레이어(output layer)를 상기 외부 메모리에 전송하여 저장되도록 하는 단계를 포함하고, 상기 외부 메모리에게 접근되어야 할 횟수 및 상기 적어도 하나의 히든 레이어가 복수의 차원으로 분할 처리됨에 따라 발생되는 중복 처리 정도 중 적어도 하나를 참조하여 상기 적어도 하나의 히든 레이어의 차원 분할 수준 및 연산 처리 순서가 결정되는 방법이 제공된다.

Description

인공 신경망 연산을 수행하는 방법, 시스템 및 비일시성의 컴퓨터 판독 가능 기록 매체
본 발명은 인공 신경망 연산을 수행하는 방법, 시스템 및 비일시성의 컴퓨터 판독 가능 기록 매체에 관한 것이다.
인공 신경망은 뇌의 뉴런과 그 연결 구조에서 착안한 것으로써, 인공 신경망의 압도적으로 높은 성능과 그 범용성으로 인해 많은 응용 분야에 접목되어 사용되고 있다. 인공 신경망은 시각, 음성, 언어 등 많은 응용 분야에서 상당한 정확도의 진전을 가져왔고, 최근 다양한 분야에서 인간 수준 혹은 그 이상의 성능을 보이고 있다. 인공 신경망의 뛰어난 성능은 대량의 데이터에 대한 통계 학습에 기초하여 형상을 추출하는 능력에서 비롯되며 그것은 보통 인간의 경험과 직관으로부터 고안된 특징이나 규칙을 사용하는 기존 알고리즘과는 그 접근법이 다르다.
그러나, 이러한 인공 신경망 알고리즘을 수행하기 위하여는 방대한 연산이 요구되므로 인공 신경망을 활용하는 어플리케이션에서 요구되는 성능을 범용 프로세서인 CPU 또는 GPU만으로는 충족시키기는 어렵다. 이에, 인공 신경망을 CPU나 GPU보다 훨씬 높은 효율로 처리할 수 있는 인공 신경망 전용 연산 장치에 관하여 활발히 연구가 진행되고 있다.
이와 같은 인공 신경망 연산 장치를 구성함에 있어, 인공 신경망 연산 장치의 내부 메모리 용량은 제한적일 수밖에 없어 외부 메모리를 두는 것이 일반적인데, 외부 메모리는 전력, 지연 시간 등의 측면에서 내부 메모리에 비해 훨씬 크게 된다. 즉, 인공 신경망 연산 수행에 있어 외부 메모리 접근을 최소화하는 것이 인공 신경망 연산 장치의 성능 향상과도 직결된다고 볼 수 있다.
특히, 최근 인공 신경망의 필요성이 높아진 자동차, 드론, TV 등에서 고화질 영상 데이터를 입력으로 하여 인공 신경망 연산을 수행하는 경우에, 연산 과정에서 생성되는 데이터의 양이 방대하게 되며, 이에 대한 외부 메모리 접근을 효율적으로 관리하는 것이 큰 과제로 볼 수 있다.
이에, 본 발명자(들)은, 인공 신경망 연산 과정에서 외부 메모리에 대한 접근을 최소화하면서 그 처리 속도를 일정 수준 이상으로 유지할 수 있는 신규하고도 진보된 기술을 제안하는 바이다.
본 발명은, 전술한 종래 기술의 문제점을 모두 해결하는 것을 그 목적으로 한다.
또한, 본 발명은, 인공 신경망 연산 과정에서, 최적의 레이어(layer) 분할 방안 및 연산 순서를 도출하여, 외부 메모리에 대한 접근을 최소화하면서 그 처리 속도를 일정 수준 이상으로 유지하는 것을 그 목적으로 한다.
상기 목적을 달성하기 위한 본 발명의 대표적인 구성은 다음과 같다.
본 발명의 일 태양에 따르면, 인공 신경망 연산을 수행하는 방법으로서, (a) 외부 메모리(external memory)로부터 입력 레이어(input layer) 및 인공 신경망의 연산과 연관되는 가중치에 관한 정보를 획득하는 단계, (b) 상기 획득되는 정보를 참조하여 적어도 하나의 히든 레이어(hidden layer)를 복수의 차원으로 분할 처리하여 생성되는 연산 결과를 상기 외부 메모리에 전송하여 저장되도록 하는 단계, 및 (c) 상기 (a) 단계 및 상기 (b) 단계를 반복적으로 수행하여, 상기 입력 레이어와 연관되는 복수의 계층에 대한 연산이 완료되면, 상기 연산 결과에 기초한 출력 레이어(output layer)를 상기 외부 메모리에 전송하여 저장되도록 하는 단계를 포함하고, 상기 외부 메모리에게 접근되어야 할 횟수 및 상기 적어도 하나의 히든 레이어가 복수의 차원으로 분할 처리됨에 따라 발생되는 중복 처리 정도 중 적어도 하나를 참조하여 상기 적어도 하나의 히든 레이어의 차원 분할 수준 및 연산 처리 순서가 결정되는 방법이 제공된다.
또한, 본 발명의 다른 태양에 따르면, 인공 신경망 연산을 수행하는 시스템으로서, (a) 외부 메모리(external memory)로부터 입력 레이어(input layer) 및 인공 신경망의 연산과 연관되는 가중치에 관한 정보를 획득하는 버퍼부, (b) 상기 획득되는 정보를 참조하여 적어도 하나의 히든 레이어(hidden layer)를 복수의 차원으로 분할 처리하여 생성되는 연산 결과를 상기 외부 메모리에 전송하여 저장되도록 하는 연산 관리부, 및 (c) 상기 (a) 단계 및 상기 (b) 단계를 반복적으로 수행하여, 상기 입력 레이어와 연관되는 복수의 계층에 대한 연산이 완료되면, 상기 연산 결과에 기초한 출력 레이어(output layer)를 상기 외부 메모리에 전송하여 저장되도록 하는 출력 레이어 관리부를 포함하고, 상기 외부 메모리에게 접근되어야 할 횟수 및 상기 적어도 하나의 히든 레이어가 복수의 차원으로 분할 처리됨에 따라 발생되는 중복 처리 정도 중 적어도 하나를 참조하여 상기 적어도 하나의 히든 레이어의 차원 분할 수준 및 연산 처리 순서가 결정되는 시스템이 제공된다.
이 외에도, 본 발명을 구현하기 위한 다른 방법, 다른 시스템 및 상기 방법을 실행하기 위한 컴퓨터 프로그램을 기록하는 비일시성의 컴퓨터 판독 가능한 기록 매체가 더 제공된다.
본 발명에 의하면, 인공 신경망 연산 과정에서, 최적의 레이어(layer) 분할 방안 및 연산 순서를 도출하여, 외부 메모리에 대한 접근을 최소화하면서 그 처리 속도를 일정 수준 이상으로 유지시킬 수 있게 된다.
도 1은 본 발명의 일 실시예에 따라 인공 신경망 연산을 수행하는 전체 시스템의 구성을 개략적으로 나타내는 도면이다.
도 2는 본 발명의 일 실시예에 따른 인공 신경망 연산 시스템의 내부 구성을 예시적으로 나타내는 도면이다.
도 3은 본 발명의 일 실시예에 따라 제한적인 내부 메모리를 통해 인공 신경망 연산이 수행되는 과정을 예시적으로 나타내는 도면이다.
후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이러한 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 본 명세서에 기재되어 있는 특정 형상, 구조 및 특성은 본 발명의 정신과 범위를 벗어나지 않으면서 일 실시예로부터 다른 실시예로 변경되어 구현될 수 있다. 또한, 각각의 실시예 내의 개별 구성요소의 위치 또는 배치도 본 발명의 정신과 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 행하여지는 것이 아니며, 본 발명의 범위는 특허청구범위의 청구항들이 청구하는 범위 및 그와 균등한 모든 범위를 포괄하는 것으로 받아들여져야 한다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 구성요소를 나타낸다.
본 명세서에서의, 인공 신경망(ANN; Artificial Neural Network)은 기계 학습과 인지 과학에서 생물학의 신경망에서 영감을 얻은 통계학적 학습 알고리즘을 포함하는 개념이며, 시냅스의 결합으로 네트워크를 형성한 복수의 인공 뉴런(neuron)이 학습을 통해 시냅스의 결합 세기(예를 들어, 가중치)를 변화시켜, 문제 해결 능력을 가지는 모델 전반을 의미할 수 있다. 예를 들어, 이러한 인공 신경망 모델은, 입력 레이어(input layer), 복수의 히든 레이어(hidden layer) 및 출력 레이어(output layer)를 포함하는 계층 구조로 구성될 수 있다.
이하에서는, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 하기 위하여, 본 발명의 여러 바람직한 실시예에 관하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.
전체 시스템의 구성
도 1은 본 발명의 일 실시예에 따라 인공 신경망 연산을 수행하는 전체 시스템의 구성을 개략적으로 나타내는 도면이다.
도 1에 도시된 바와 같이, 본 발명의 일 실시예에 따른 전체 시스템은 통신망(100), 인공 신경망 연산 시스템(200) 및 외부 메모리(300)를 포함할 수 있다.
먼저, 본 발명의 일 실시예에 따르면, 통신망(100)은 하나의 시스템 내(예를 들어, 칩, 메모리) 또는 복수의 시스템 사이(예를 들어, 칩-칩, 칩-메모리, 메모리-메모리)의 인터페이스 회로 등에서 데이터를 송수신하는 버스(bus)를 의미할 수 있다.
다음으로, 본 발명의 일 실시예에 따른 인공 신경망 연산 시스템(200)은, 통신망(100)을 통하여 후술할 외부 메모리(external memory)(300)와 통신을 수행할 수 있고, (a) 외부 메모리(300)로부터 입력 레이어(input layer) 및 인공 신경망의 연산과 연관되는 가중치(weight)에 관한 정보를 획득하고, (b) 그 획득되는 정보를 참조하여 적어도 하나의 히든 레이어(hidden layer)를 복수의 차원(dimension)으로 분할 처리하여 생성되는 연산 결과를 외부 메모리(300)에 전송하여 저장되도록 하고, (c) 위의 (a) 및 (b) 과정을 반복적으로 수행하여, 위의 입력 레이어와 연관되는 복수의 계층에 대한 연산이 완료되면, 그 연산 결과에 기초한 출력 레이어(output layer)를 위의 외부 메모리(300)에 전송하여 저장되도록 하는 기능을 수행할 수 있다.
또한, 본 발명의 일 실시예에 따르면, 인공 신경망 연산 시스템(200)는 위의 외부 메모리(300)에게 접근(예를 들어, 읽기/쓰기)되어야 할 횟수 및 적어도 하나의 히든 레이어가 복수의 차원(dimension)으로 분할 처리됨에 따라 발생되는 중복 처리 정도 중 적어도 하나에 기초하여 위의 적어도 하나의 히든 레이어의 차원 분할 수준(예를 들어, 차원 분할 개수) 및 연산 처리 순서를 결정할 수 있다.
인공 신경망 연산 시스템(200)의 기능에 관하여는 아래에서 더 자세하게 알아보기로 한다. 한편, 인공 신경망 연산 시스템(200)에 관하여 위와 같이 설명되었으나, 이러한 설명은 예시적인 것이고, 인공 신경망 연산 시스템(200)에 요구되는 기능이나 구성요소의 적어도 일부가 필요에 따라 스마트폰, 태블릿 PC 등과 같이 메모리 수단을 구비하고 마이크로 프로세서를 탑재하여 연산 능력을 갖춘 디지털 기기 또는 IC칩(IC chip) 내에서 실현되거나 외부 시스템(미도시됨) 내에 포함될 수도 있다.
다음으로, 본 발명의 일 실시예에 따른 외부 메모리(300)는 통신망(100)을 통하여 인공 신경망 연산 시스템(200)과 통신을 수행할 수 있고, 인공 신경망과 연관되는 각 입력 뉴런(input neuron)의 입력 데이터 및 그 입력 뉴런으로부터 연산을 수행하기 위한 시냅스 가중치를 포함하는 정보를 저장하는 기능을 수행할 수 있다. 예를 들어, 본 발명의 일 실시예에 따르면, 외부 메모리(300)는 DDR-SDRAM(Double Data Rate Synchronous Dynamic Random Access Memory)과 같은 휘발성 메모리를 포함하여 구성될 수 있다.
인공 신경망 연산 시스템의 구성
이하에서는, 본 발명의 구현을 위하여 중요한 기능을 수행하는 인공 신경망 연산 시스템(200)의 내부 구성 및 각 구성요소의 기능에 대하여 살펴보기로 한다.
도 2는 본 발명의 일 실시예에 따른 인공 신경망 연산 시스템(200)의 내부 구성을 예시적으로 나타내는 도면이다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 인공 신경망 연산 시스템(200)은 버퍼부(210), 연산 관리부(220), 출력 레이어 관리부(230), 통신부(240) 및 제어부(250)를 포함할 수 있다. 본 발명의 일 실시예에 따르면, 버퍼부(210), 연산 관리부(220), 출력 레이어 관리부(230), 통신부(240) 및 제어부(250)는 그 중 적어도 일부가 외부 시스템(미도시됨)과 통신하는 프로그램 모듈들일 수 있다. 이러한 프로그램 모듈들은 운영 시스템, 응용 프로그램 모듈 및 기타 프로그램 모듈의 형태로 인공 신경망 연산 시스템(200)에 포함될 수 있으며, 물리적으로는 여러 가지 공지의 기억 장치 상에 저장될 수 있다. 또한, 이러한 프로그램 모듈들은 인공 신경망 연산 시스템(200)과 통신 가능한 원격 기억 장치에 저장될 수도 있다. 한편, 이러한 프로그램 모듈들은 본 발명에 따라 후술할 특정 업무를 수행하거나 특정 추상 데이터 유형을 실행하는 루틴, 서브루틴, 프로그램, 오브젝트, 컴포넌트, 데이터 구조 등을 포괄하지만, 이에 제한되지는 않는다.
먼저, 본 발명의 일 실시예에 따른 버퍼부(210)는 외부 메모리(300)로부터 입력 레이어(input layer) 및 인공 신경망의 연산과 연관되는 시냅스 가중치에 관한 정보를 획득하는 기능을 수행할 수 있다. 또한, 본 발명의 일 실시예에 따른 버퍼부(210)는 인공 신경망 연산 시스템(200)의 내부에서 임시로 정보를 저장하는 기능을 수행할 수 있고, 저장 용량에 따라 외부 메모리(200)에 저장된 정보의 전체 또는 일부를 저장할 수 있다.
구체적으로, 본 발명의 일 실시예에 따르면, 버퍼부(210)는 외부 메모리(300)로부터 입력 레이어 및 해당 입력 레이어에서 인공 신경망의 다음 계층으로의 연산 결과를 도출하기 위한 시냅스 가중치에 관한 정보를 획득할 수 있다.
다음으로, 본 발명의 일 실시예에 따른 연산 관리부(220)는 버퍼부(210)에서 획득되는 정보를 참조하여 적어도 하나의 히든 레이어(hidden layer)를 복수의 차원(dimension)으로 분할(또는 분산) 처리하여 생성되는 연산 결과를 외부 메모리(300)에 전송하여 저장되도록 하는 기능을 수행할 수 있다. 본 발명의 일 실시예에 따른 차원은 공지의 인공 신경망에서 사용되는 깊이(depth), 채널(channel) 등의 개념을 포함할 수 있고, 예를 들어, 영상에 관한 RGB 채널의 경우에, 224 X 224 X 3(즉, 가로, 세로 및 컬러 채널)으로 나타내어 지고, 그 차원은 3을 의미하는 것일 수 있다. 또한, 본 발명의 일 실시예에 따른 차원은, 인공 신경망 전체의 차원이 아니라 각 입력 뉴런들에 대한 데이터에 해당하는 액티베이션 볼륨(activation volume)에서 정의되는 개념일 수 있다.
또한, 본 발명의 일 실시예에 따른 연산 관리부(220)는 위의 외부 메모리(300)에게 접근되어야 할 횟수 및 적어도 하나의 히든 레이어가 복수의 차원으로 분할 처리됨에 따라 발생되는 중복 처리 정도(예를 들어, 레이어가 겹쳐지는 영역에 대하여 오버 헤드가 발생하게 되는데 그 정도를 의미하는 개념일 수 있다.) 중 적어도 하나에 기초하여 위의 적어도 하나의 히든 레이어의 차원 분할 수준 및 연산 처리 순서를 결정할 수 있다.
다음으로, 본 발명의 일 실시예에 따른 출력 레이어 관리부(230)는 버퍼부(210)가 외부 메모리(300)로부터 정보를 획득하여 저장하는 과정과, 그 버퍼부(210)로부터 제공받은 정보를 복수의 히든 레이어(hidden layer)로 분할 처리하여 생성되는 연산 결과를 위의 외부 메모리(300)에 전송하여 저장되도록 하는 과정을 반복적으로 수행하여, 입력 레이어와 연관되는 복수의 계층에 대한 연산이 완료되면, 그 연산 결과에 기초한 출력 레이어(output layer)를 외부 메모리(300)에 전송하여 저장되도록 하는 기능을 수행할 수 있다. 본 발명의 일 실시예에 따르면, 위의 계층의 수준(예를 들어, 깊이)은 위의 히든 레이어의 수 및 외부 메모리의 접근 횟수 중 적어도 하나에 기초하여 설정될 수 있다.
다음으로, 본 발명의 일 실시예에 따르면, 통신부(240)는 버퍼부(210), 연산 관리부(220), 출력 레이어 관리부(230)로부터의/로의 데이터 송수신이 가능하도록 하는 기능을 수행할 수 있다.
마지막으로, 본 발명의 일 실시예에 따르면, 제어부(250)는 버퍼부(210), 연산 관리부(220), 출력 레이어 관리부(230) 및 통신부(240) 간의 데이터의 흐름을 제어하는 기능을 수행할 수 있다. 즉, 본 발명에 따른 제어부(250)는 인공 신경망 연산 시스템(200)의 외부로부터의/로의 데이터 흐름 또는 인공 신경망 연산 시스템(200)의 각 구성요소 간의 데이터 흐름을 제어함으로써, 버퍼부(210), 연산 관리부(220), 출력 레이어 관리부(230) 및 통신부(240)에서 각각 고유 기능을 수행하도록 제어할 수 있다.
도 3은 본 발명의 일 실시예에 따라 제한적인 내부 메모리를 통해 인공 신경망 연산이 수행되는 과정을 예시적으로 나타내는 도면이다.
먼저, 본 발명의 일 실시예에 따르면, SD(Secured Digital) 카드와 같은 비휘발성 메모리로 구성되는 플래시 메모리(미도시됨)로부터 인공 신경망 연산에 필요한 시냅스 가중치 전체에 관한 정보가 외부 메모리(300)로 전달될 수 있다.
그 다음에, 본 발명의 일 실시예에 따르면, 위의 외부 메모리(300)로부터 입력 레이어(input layer) 및 인공 신경망의 연산과 연관되는 가중치에 관한 정보가 획득될 수 있다(310).
보다 구체적으로, 본 발명의 일 실시예에 따르면, 인공 신경망의 연산과 연관되는 가중치에 관한 정보 중 위의 입력 레이어로부터 연산되어야 하는 특정 계층에 해당하는 가중치에 관한 정보만이 획득될 수 있다.
그 다음에, 본 발명의 일 실시예에 따르면, 위의 획득되는 정보를 참조하여 적어도 하나의 히든 레이어(hidden layer)를 복수의 차원(321)(예를 들어, 채널(channel))으로 분할 처리하여 생성되는 연산 결과가 위의 외부 메모리(300)에 전송 및 저장될 수 있다.
이 경우에, 본 발명의 일 실시예에 따라 외부 메모리(300)에 대한 접근되어야 할 횟수 및 적어도 하나의 히든 레이어가 복수의 차원으로 분할 처리됨에 따라 발생되는 중복 처리 정도 중 적어도 하나를 참조하여 적어도 하나의 히든 레이어의 차원 분할 수준 및 연산 처리 순서가 결정될 수 있다.
그 다음에, 본 발명의 일 실시예에 따르면, 위의 외부 메모리(300)로부터 입력 레이어(input layer) 및 인공 신경망의 연산과 연관되는 가중치에 관한 정보가 획득되는 과정(330, 350)과, 위의 획득되는 정보를 참조하여 적어도 하나의 히든 레이어(hidden layer)를 복수의 차원으로 분할 처리하여 생성되는 연산 결과가 위의 외부 메모리에게 전송 및 저장되는 과정(340, 360)이 반복하여 수행됨으로써, 위의 입력 레이어와 연관되는 복수의 계층에 대한 연산이 완료되면, 해당 연산 결과에 기초한 출력 레이어(output layer)가 외부 메모리(300)에게 전송 및 저장될 수 있다(370).
[부호의 설명]
100: 통신망
200: 인공 신경망 연산 시스템
210: 버퍼부
220: 연산 관리부
230: 출력 레이어 관리부
240: 통신부
250: 제어부
300: 외부 메모리

Claims (3)

  1. 인공 신경망 연산을 수행하는 방법으로서,
    (a) 외부 메모리(external memory)로부터 입력 레이어(input layer) 및 인공 신경망의 연산과 연관되는 가중치에 관한 정보를 획득하는 단계,
    (b) 상기 획득되는 정보를 참조하여 적어도 하나의 히든 레이어(hidden layer)를 복수의 차원으로 분할 처리하여 생성되는 연산 결과를 상기 외부 메모리에 전송하여 저장되도록 하는 단계, 및
    (c) 상기 (a) 단계 및 상기 (b) 단계를 반복적으로 수행하여, 상기 입력 레이어와 연관되는 복수의 계층에 대한 연산이 완료되면, 상기 연산 결과에 기초한 출력 레이어(output layer)를 상기 외부 메모리에 전송하여 저장되도록 하는 단계를 포함하고,
    상기 외부 메모리에게 접근되어야 할 횟수 및 상기 적어도 하나의 히든 레이어가 복수의 차원으로 분할 처리됨에 따라 발생되는 중복 처리 정도 중 적어도 하나를 참조하여 상기 적어도 하나의 히든 레이어의 차원 분할 수준 및 연산 처리 순서가 결정되는
    방법.
  2. 제1항에 따른 방법을 실행하기 위한 컴퓨터 프로그램을 기록하는 비일시성의 컴퓨터 판독 가능 기록 매체.
  3. 인공 신경망 연산을 수행하는 시스템으로서,
    (a) 외부 메모리(external memory)로부터 입력 레이어(input layer) 및 인공 신경망의 연산과 연관되는 가중치에 관한 정보를 획득하는 버퍼부,
    (b) 상기 획득되는 정보를 참조하여 적어도 하나의 히든 레이어(hidden layer)를 복수의 차원으로 분할 처리하여 생성되는 연산 결과를 상기 외부 메모리에 전송하여 저장되도록 하는 연산 관리부, 및
    (c) 상기 (a) 단계 및 상기 (b) 단계를 반복적으로 수행하여, 상기 입력 레이어와 연관되는 복수의 계층에 대한 연산이 완료되면, 상기 연산 결과에 기초한 출력 레이어(output layer)를 상기 외부 메모리에 전송하여 저장되도록 하는 출력 레이어 관리부를 포함하고,
    상기 외부 메모리에게 접근되어야 할 횟수 및 상기 적어도 하나의 히든 레이어가 복수의 차원으로 분할 처리됨에 따라 발생되는 중복 처리 정도 중 적어도 하나를 참조하여 상기 적어도 하나의 히든 레이어의 차원 분할 수준 및 연산 처리 순서가 결정되는
    시스템.
PCT/KR2020/012024 2019-09-10 2020-09-07 인공 신경망 연산을 수행하는 방법, 시스템 및 비일시성의 컴퓨터 판독 가능 기록 매체 WO2021049829A1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020190112054A KR102491202B1 (ko) 2019-09-10 2019-09-10 인공 신경망 연산을 수행하는 방법, 시스템 및 비일시성의 컴퓨터 판독 가능 기록 매체
KR10-2019-0112054 2019-09-10

Publications (1)

Publication Number Publication Date
WO2021049829A1 true WO2021049829A1 (ko) 2021-03-18

Family

ID=74866736

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2020/012024 WO2021049829A1 (ko) 2019-09-10 2020-09-07 인공 신경망 연산을 수행하는 방법, 시스템 및 비일시성의 컴퓨터 판독 가능 기록 매체

Country Status (2)

Country Link
KR (1) KR102491202B1 (ko)
WO (1) WO2021049829A1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180075368A (ko) * 2016-12-26 2018-07-04 한국과학기술원 인공 신경망 모델에서 메모리 효율성 및 학습 속도 향상을 위한 드롭아웃 방법과 이를 이용한 학습 방법
US20180204118A1 (en) * 2017-01-18 2018-07-19 Hitachi, Ltd. Calculation System and Calculation Method of Neural Network
KR20180109619A (ko) * 2017-03-28 2018-10-08 삼성전자주식회사 컨볼루션 신경망 처리 방법 및 장치
KR20190055608A (ko) * 2017-11-15 2019-05-23 삼성전자주식회사 병렬 연산 처리를 수행하는 메모리 장치 및 이를 포함하는 메모리 모듈
KR20190085444A (ko) * 2018-01-10 2019-07-18 서울대학교산학협력단 딥 뉴럴 네트워크를 위한 gpu 메모리 관리 방법 및 그를 수행하는 연산 장치

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102139740B1 (ko) * 2017-06-09 2020-07-31 한국과학기술원 전자 장치 및 학습 모델 최적화 방법
KR102098713B1 (ko) * 2018-01-29 2020-04-08 주식회사 유엑스팩토리 Cnn과 rnn이 하나의 고성능 저전력 칩으로 집적된 이기종 프로세서 구조

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180075368A (ko) * 2016-12-26 2018-07-04 한국과학기술원 인공 신경망 모델에서 메모리 효율성 및 학습 속도 향상을 위한 드롭아웃 방법과 이를 이용한 학습 방법
US20180204118A1 (en) * 2017-01-18 2018-07-19 Hitachi, Ltd. Calculation System and Calculation Method of Neural Network
KR20180109619A (ko) * 2017-03-28 2018-10-08 삼성전자주식회사 컨볼루션 신경망 처리 방법 및 장치
KR20190055608A (ko) * 2017-11-15 2019-05-23 삼성전자주식회사 병렬 연산 처리를 수행하는 메모리 장치 및 이를 포함하는 메모리 모듈
KR20190085444A (ko) * 2018-01-10 2019-07-18 서울대학교산학협력단 딥 뉴럴 네트워크를 위한 gpu 메모리 관리 방법 및 그를 수행하는 연산 장치

Also Published As

Publication number Publication date
KR20210030654A (ko) 2021-03-18
KR102491202B1 (ko) 2023-01-25

Similar Documents

Publication Publication Date Title
WO2020221200A1 (zh) 神经网络的构建方法、图像处理方法及装置
US11580367B2 (en) Method and system for processing neural network
WO2021190296A1 (zh) 一种动态手势识别方法及设备
KR101950786B1 (ko) 분산처리용 인공신경망 연산 가속화 방법
CN110728364A (zh) 一种运算装置和运算方法
CN112840356A (zh) 运算加速器、处理方法及相关设备
CN111783937A (zh) 一种神经网络构建方法以及系统
CN111465943A (zh) 芯片上计算网络
EP3754503A1 (en) Allocation system, method and apparatus for machine learning, and computer device
US11580369B2 (en) Inference apparatus, convolution operation execution method, and program
KR102137802B1 (ko) 분산처리용 인공신경망 연산 가속화 장치, 이를 이용한 인공신경망 가속화 시스템, 및 그 인공신경망의 가속화 방법
EP4064134B1 (en) Neural network processing method, device and system
WO2021049829A1 (ko) 인공 신경망 연산을 수행하는 방법, 시스템 및 비일시성의 컴퓨터 판독 가능 기록 매체
CN111199276B (zh) 数据处理方法及相关产品
CN111831356B (zh) 权重精度配置方法、装置、设备及存储介质
CN113837922A (zh) 计算装置、数据处理方法及相关产品
CN112805727A (zh) 分布式处理用人工神经网络运算加速装置、利用其的人工神经网络加速系统、及该人工神经网络的加速方法
WO2023122896A1 (zh) 一种数据处理方法和装置
CN116091844A (zh) 一种基于边缘计算的图像数据处理方法及系统
WO2022227024A1 (zh) 神经网络模型的运算方法、训练方法及装置
CN112099850A (zh) 一种多核Hourglass网络加速方法
CN114467121A (zh) 一种感知网络及图像处理方法
WO2024135862A1 (ko) 비정형 데이터 처리를 지원하는 데이터 처리 및 가공 장치
WO2021107170A1 (ko) 저전력 딥러닝 가속 장치
WO2023231559A1 (zh) 一种神经网络加速器、加速方法以及装置

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20864065

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20864065

Country of ref document: EP

Kind code of ref document: A1

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205 DATED 08/09/2022)

122 Ep: pct application non-entry in european phase

Ref document number: 20864065

Country of ref document: EP

Kind code of ref document: A1