KR20210074707A - 높은 처리율을 요구하는 뉴럴 네트워크 프로세서를 위한 연산 장치 및 방법 - Google Patents

높은 처리율을 요구하는 뉴럴 네트워크 프로세서를 위한 연산 장치 및 방법 Download PDF

Info

Publication number
KR20210074707A
KR20210074707A KR1020190165702A KR20190165702A KR20210074707A KR 20210074707 A KR20210074707 A KR 20210074707A KR 1020190165702 A KR1020190165702 A KR 1020190165702A KR 20190165702 A KR20190165702 A KR 20190165702A KR 20210074707 A KR20210074707 A KR 20210074707A
Authority
KR
South Korea
Prior art keywords
register
neural network
input data
bias
previous
Prior art date
Application number
KR1020190165702A
Other languages
English (en)
Other versions
KR102539952B1 (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 KR1020190165702A priority Critical patent/KR102539952B1/ko
Publication of KR20210074707A publication Critical patent/KR20210074707A/ko
Application granted granted Critical
Publication of KR102539952B1 publication Critical patent/KR102539952B1/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
    • G06N3/049Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs

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)
  • 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)
  • Complex Calculations (AREA)

Abstract

구조적 효율성 향상, 제어 복잡도 감소, 스케줄링 용이성을 통해 높은 처리율을 구현할 수 있는 뉴럴 네트워크 연산에 적합한 연산기가 제공된다. 본 발명의 실시예에 따른, 뉴럴 네트워크 연산기는 입력 데이터와 가중치를 곱하는 연산을 수행하는 PE-M(Processing Element-Multiplier); 및 PE-M의 연산 결과와 바이어스 또는 이전 PE-A의 연산 결과를 더하는 연산을 수행하는 PE-A(PE-Adder);를 포함한다.
이에 의해, PE-M과 PE-A를 별개의 PE들로 구현하여 직렬로 연결하고 입력 데이터들이 Delay 되면서 전달되도록 함으로써, 구조적 효율성 향상, 제어 복잡도 감소, 스케줄링 용이성을 통한 높은 처리율을 구현할 수 있게 된다.

Description

높은 처리율을 요구하는 뉴럴 네트워크 프로세서를 위한 연산 장치 및 방법{Processing Device and Method with High Throughput for Neural Network Processor}
본 발명은 뉴럴 네트워크 연산기에 관한 것으로, 더욱 상세하게는 뉴럴 네트워크 연산에 적합하도록 설계된 연산기에 관한 것이다.
뉴럴 네트워크는 반복적인 곱셈과 덧셈 연산을 수행하여야 한다. 기존의 뉴럴 네트워크에서는, 곱셈과 덧셈을 하나의 연산기(Processing Unit)으로 묶어 프로세서를 구성하고 있다.
하지만, 이러한 구조는 뉴럴 네트워크를 직관적으로 구현하기에는 적합할 수 있으나, 뉴럴 네트워크 연산의 구조를 효율적으로 사용하지는 못한다는 문제가 있다.
이에 따라, 뉴럴 네트워크 연산에 적합한 연산기의 구조가 필요하다. 더불어, 뉴럴 네트워크 사용 시 연산기들의 제어 복잡도를 줄이기 위한 방안도 모색되어야 한다.
본 발명은 상기와 같은 문제점을 해결하기 위하여 안출된 것으로서, 본 발명의 목적은, 구조적 효율성 향상, 제어 복잡도 감소, 스케줄링 용이성을 통해 높은 처리율을 구현할 수 있는 뉴럴 네트워크 연산에 적합한 연산기를 제공함에 있다.
상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른, 뉴럴 네트워크 연산기는 입력 데이터와 가중치를 곱하는 연산을 수행하는 PE-M(Processing Element-Multiplier); 및 PE-M의 연산 결과와 바이어스 또는 이전 PE-A의 연산 결과를 더하는 연산을 수행하는 PE-A(PE-Adder);를 포함한다.
PE-M과 PE-A는, 별개의 PE(Processing Element)로 구분되어 있을 수 있다.
PE-M은, 이전 PE-M 및 다음 PE-M과 직렬로 연결되어 있고, PE-A은, 이전 PE-A 및 다음 PE-A와 직렬로 연결되어 있을 수 있다.
PE-M은, 입력 데이터를 저장하는 제1 레지스터; 가중치를 저장하는 제2 레지스터; 제1 레지스터에 저장된 입력 데이터와 제2 레지스터에 저장된 가중치를 곱하는 곱셈기; 및 곱셈기의 출력을 저장하는 제3 레지스터;를 포함할 수 있다.
PE-M의 제1 레지스터에 저장되어 있는 입력 데이터는, 다음 PE-M의 제1 레지스터로 Delay 되어 전달될 수 있다.
PE-A는, 최초 연산에서는 PE-M의 연산 결과와 바이어스를 더하고, 이후 연산에서는 PE-M의 연산 결과와 이전 PE-A의 연산 결과를 더하는 것일 수 있다.
PE-A는, 바이어스를 저장하는 제4 레지스터; 제2 레지스터에 저장된 바이어스와 이전 PE-A의 연산 결과 중 하나를 선택하는 MUX; MUX의 출력과 PE-M의 연산 결과를 더하는 덧셈기; 및 덧셈기의 출력을 저장하는 제5 레지스터;를 포함할 수 있다.
본 발명의 다른 측면에 따르면, PE-M(Processing Element-Multiplier)이, 입력 데이터와 가중치를 곱하는 연산을 수행하는 단계; 및 PE-A(PE-Adder)가, PE-M의 연산 결과와 바이어스 또는 이전 PE-A의 연산 결과를 더하는 연산을 수행하는 단계;를 포함하는 것을 특징으로 하는 뉴럴 네트워크 연산 방법이 제공된다.
이상 설명한 바와 같이, 본 발명의 실시예들에 따르면, PE-M과 PE-A를 별개의 PE들로 구현하여 직렬로 연결하고 입력 데이터들이 Delay 되면서 전달되도록 함으로써, 구조적 효율성 향상, 제어 복잡도 감소, 스케줄링 용이성을 통한 높은 처리율을 구현할 수 있게 된다.
도 1은 일반적인 뉴럴 네트워크 연산 구조,
도 2는 본 발명의 일 실시예에 따른 뉴럴 네트워크 연산기로 구현한 뉴럴 네트워크의 전체 구조,
도 3은 도 1에 도시된 PE-M의 내부 구조,
도 4는 도 1에 도시된 PE-A의 내부 구조,
도 5는 convolution 연산의 입력 데이터, 그리고,
도 6은 본 발명의 다른 실시예에 따른 뉴럴 네트워크 연산 방법의 설명에 제공되는 흐름도이다.
이하에서는 도면을 참조하여 본 발명을 보다 상세하게 설명한다.
1. 뉴럴 네트워크의 기본 연산: Convolution layer
뉴럴 네트워크는 convolution과 fully-connected layer로 기본 연산이 구현된다. 각 layer는 아래 수식과 같이 곱셈과 덧셈으로 이루어져 있다.
O = WX + B
위 수식에서 O는 출력, W는 filter의 가중치, X는 입력, B는 바이어스를 나타낸다.
도 1에 일반적인 뉴럴 네트워크 연산 구조를 도시하였다. 도시된 바와 같이, 뉴럴 네트워크 프로세서는 MAC(Multiply and ACcumulation) 연산을 기본 구조로 구성되어 있으며, 해당 연산기를 반복하여 convolution 연산을 수행한다.
하지만, 이러한 구조는 뉴럴 네트워크를 직접적으로 구현하는데 적합할 수 있으나, 하드웨어로 구현하기에는 delay 문제가 있고 스케쥴링에서 효율적이지 않다.
2. 별도로 구현된 곱셈, 덧셈 연산기로 convolution 연산 구현
본 발명의 실시예에서는, 뉴럴 네트워크 연산기에서 곱셈과 덧셈을 개별 연산기로 구현한다. 도 2는 본 발명의 일 실시예에 따른 뉴럴 네트워크 연산기로 구현한 뉴럴 네트워크의 전체 구조를 도시한 도면이다.
본 발명의 일 실시예에 따른 뉴럴 네트워크 연산기는, 도시된 바와 같이, PE-M(ultiplier)(110-0,110-1,110-2,...)와 PE-A(dder)(120-0,120-1,120-2,...)가 별개의 PE(Processing Element)로 구분되어 있다.
PE-M(110-0,110-1,110-2,...)은 입력 데이터(Input Feature Map)와 가중치(weight)를 곱하는 연산을 수행한다. PE-M(110-0,110-1,110-2,...)은 이전 PE-M 및 다음 PE-M과 직렬로 연결되어 있다.
PE-A(120-0,120-1,120-2,...)는 PE-M의 연산 결과와 바이어스 또는 이전 PE-A의 연산 결과를 더하는 연산을 수행한다. PE-A(120-0,120-1,120-2,...)도 이전 PE-A 및 다음 PE-A와 직렬로 연결되어 있다.
3. PE-M의 구조
도 3은 도 1에 도시된 PE-M(110-0,110-1,110-2,...)의 내부 구조를 도시한 도면이다. PE-M(110-0,110-1,110-2,...)는, 도시된 바와 같이, 입력 데이터 레지스터(111), 가중치 레지스터(112), 곱셈기(113) 및 곱셈 결과 레지스터(114)를 포함한다.
입력 데이터 레지스터(111)는 입력 데이터를 저장하는 레지스터이고, 가중치 레지스터(112)는 가중치를 입력 받아 저장하는 레지스터이다.
곱셈기(113)는 입력 데이터 레지스터(111)에 저장된 입력 데이터와 가중치 레지스터(112)에 저장된 가중치를 곱하여, 곱셈 결과를 출력한다.
곱셈 결과 레지스터(114)는 곱셈기(113)에서 출력되는 곱셈 결과를 저장하는 레지스터이다.
4. PE-A의 구조
도 4는 도 1에 도시된 PE-A(120-0,120-1,120-2,...)의 내부 구조를 도시한 도면이다. PE-A(120-0,120-1,120-2,...)는, 도시된 바와 같이, 바이어스 레지스터(121), MUX(122), 덧셈기(123) 및 뎃셈 결과 레지스터(124)를 포함한다.
바이어스 레지스터(121)는 바이어스를 저장하는 레지스터이다.
MUX(122)는 바이어스 레지스터(121)에 저장된 바이어스와 이전 PE-A의 덧셈 결과 중 하나를 선택하여 출력한다. 구체적으로, 최초 filter 연산에서는 바이어스를 선택하여 출력하고, 이후 filter 연산에서는 이전 PE-A의 연산 결과를 선택하여 출력한다.
덧셈기(123)는 MUX(122)의 출력과 PE-M(110-0,110-1,110-2,...)의 곱셈 결과 레지스터(114)에 저장된 곱셈 결과를 더하여, 덧셈 결과를 출력한다.
뎃셈 결과 레지스터(124)는 덧셈기(123)에서 출력되는 덧셈 결과를 저장하는 레지스터이다. 뎃셈 결과 레지스터(124)에 저장된 덧셈 결과는 다음 PE-A로 전달된다.
5. Serial 구조로 연결된 입력 데이터 스케쥴링
Convolution 연산은 현재의 입력이 다음 convolution의 입력으로 재사용된다. 즉, 도 5에 도시된 바와 같이, 2x2 filter 연산의 경우 conv 1 연산의 입력이 shift되어 conv 2 연산의 입력이 된다.
따라서, 입력 데이터를 연산하는 PE-M은 다음 PE-M으로 delay 된 입력 데이터를 전달하여 곱셈 연산을 수행하게 된다. 이렇게 구조를 구현하는 경우, 뉴럴 네트워크 프로세서는 첫 번째 PE-M에 입력 데이터를 전달하면, 그 이후 연산은 shift 로 인해 자동으로 수행되어 제어 복잡도가 매우 줄어들게 된다.
6. convolution 연산 방법
도 6은 본 발명의 다른 실시예에 따른 뉴럴 네트워크 연산 방법의 설명에 제공되는 흐름도이다.
뉴럴 네트워크 연산을 위해, 도시된 바와 같이, 먼저 PE-M(110-0,110-1,110-2,...)의 입력 데이터 레지스터(111)가 데이터를 입력 받아 저장하고(S210), 가중치 레지스터(112)는 가중치를 입력 받아 저장한다(S220).
그러면, 곱셈기(113)가 S210단계에서 저장된 입력 데이터와 S220단계에서 저장된 가중치를 곱하고(S230), 곱셈 결과 레지스터(114)는 S230단계에서의 곱셈 결과를 저장한다(S240).
한편, PE-A(120-0,120-1,120-2,...)의 바이어스 레지스터(121)는 바이어스를 저장하고(S250), MUX(122)는 S250단계에서 저장된 바이어스와 이전 PE-A의 덧셈 결과 중 하나를 선택한다(S260).
구체적으로, S260단계에서는, 최초 filter 연산의 경우 바이어스를 선택하고, 이후 filter 연산의 경우 이전 PE-A의 연산 결과를 선택한다.
다음, 덧셈기(123)는 S260단계에서 선택된 데이터와 S240단계에서 저장된 곱셈 결과를 더하고(S270), 뎃셈 결과 레지스터(124)는 S270단계에서의 덧셈 결과를 저장한다(S280).
S280단계에서 저장된 덧셈 결과는 다음 PE-A의 입력으로 전달된다.
7. 변형예
지금까지, 높은 처리율을 요구하는 뉴럴 네트워크 프로세서를 위한 연산 장치 및 방법에 대해 바람직한 실시예를 들어 상세히 설명하였다.
본 발명의 실시예에서는, PE-M과 PE-A를 별개의 PE들로 구현하여 직렬로 연결하고 입력 데이터들이 Delay 되면서 전달되도록 함으로써, 구조적 효율성 향상, 제어 복잡도 감소, 스케줄링 용이성을 통한 높은 처리율을 구현하였다.
또한, 이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.
110-0,110-1,110-2 : PE-M(ultiplier)
111 : 입력 데이터 레지스터
112 : 가중치 레지스터
113 : 곱셈기
114 : 곱셈 결과 레지스터
120-0,120-1,120-2 : PE-A(dder)
121 : 바이어스 레지스터
122 : MUX
123 : 덧셈기
124 : 뎃셈 결과 레지스터

Claims (8)

  1. 입력 데이터와 가중치를 곱하는 연산을 수행하는 PE-M(Processing Element-Multiplier); 및
    PE-M의 연산 결과와 바이어스 또는 이전 PE-A의 연산 결과를 더하는 연산을 수행하는 PE-A(PE-Adder);를 포함하는 것을 특징으로 하는 뉴럴 네트워크 연산기.
  2. 청구항 1에 있어서,
    PE-M과 PE-A는,
    별개의 PE(Processing Element)로 구분되어 있는 것을 특징으로 하는 뉴럴 네트워크 연산기.
  3. 청구항 2에 있어서,
    PE-M은,
    이전 PE-M 및 다음 PE-M과 직렬로 연결되어 있고,
    PE-A은,
    이전 PE-A 및 다음 PE-A와 직렬로 연결되어 있는 것을 특징으로 하는 뉴럴 네트워크 연산기.
  4. 청구항 3에 있어서,
    PE-M은,
    입력 데이터를 저장하는 제1 레지스터;
    가중치를 저장하는 제2 레지스터;
    제1 레지스터에 저장된 입력 데이터와 제2 레지스터에 저장된 가중치를 곱하는 곱셈기; 및
    곱셈기의 출력을 저장하는 제3 레지스터;를 포함하는 것을 특징으로 하는 뉴럴 네트워크 연산기.
  5. 청구항 4에 있어서,
    PE-M의 제1 레지스터에 저장되어 있는 입력 데이터는,
    다음 PE-M의 제1 레지스터로 Delay 되어 전달되는 것을 특징으로 하는 뉴럴 네트워크 연산기.
  6. 청구항 1에 있어서,
    PE-A는,
    최초 연산에서는 PE-M의 연산 결과와 바이어스를 더하고,
    이후 연산에서는 PE-M의 연산 결과와 이전 PE-A의 연산 결과를 더하는 것을 특징으로 하는 뉴럴 네트워크 연산기.
  7. 청구항 6에 있어서,
    PE-A는,
    바이어스를 저장하는 제4 레지스터;
    제2 레지스터에 저장된 바이어스와 이전 PE-A의 연산 결과 중 하나를 선택하는 MUX;
    MUX의 출력과 PE-M의 연산 결과를 더하는 덧셈기; 및
    덧셈기의 출력을 저장하는 제5 레지스터;를 포함하는 것을 특징으로 하는 뉴럴 네트워크 연산기.
  8. PE-M(Processing Element-Multiplier)이, 입력 데이터와 가중치를 곱하는 연산을 수행하는 단계; 및
    PE-A(PE-Adder)가, PE-M의 연산 결과와 바이어스 또는 이전 PE-A의 연산 결과를 더하는 연산을 수행하는 단계;를 포함하는 것을 특징으로 하는 뉴럴 네트워크 연산 방법.
KR1020190165702A 2019-12-12 2019-12-12 높은 처리율을 요구하는 뉴럴 네트워크 프로세서를 위한 연산 장치 및 방법 KR102539952B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190165702A KR102539952B1 (ko) 2019-12-12 2019-12-12 높은 처리율을 요구하는 뉴럴 네트워크 프로세서를 위한 연산 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190165702A KR102539952B1 (ko) 2019-12-12 2019-12-12 높은 처리율을 요구하는 뉴럴 네트워크 프로세서를 위한 연산 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20210074707A true KR20210074707A (ko) 2021-06-22
KR102539952B1 KR102539952B1 (ko) 2023-06-05

Family

ID=76600738

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190165702A KR102539952B1 (ko) 2019-12-12 2019-12-12 높은 처리율을 요구하는 뉴럴 네트워크 프로세서를 위한 연산 장치 및 방법

Country Status (1)

Country Link
KR (1) KR102539952B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040040075A (ko) * 2002-11-06 2004-05-12 학교법인 인하학원 재구성능력 및 확장능력을 가진 신경회로망 하드웨어

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040040075A (ko) * 2002-11-06 2004-05-12 학교법인 인하학원 재구성능력 및 확장능력을 가진 신경회로망 하드웨어

Also Published As

Publication number Publication date
KR102539952B1 (ko) 2023-06-05

Similar Documents

Publication Publication Date Title
Khan et al. High-Speed and Low-Latency ECC Processor Implementation Over GF ($2^{m}) $ on FPGA
US20200293379A1 (en) Convolutional computing accelerator, convolutional computing method, and computer-readable storage medium
US9684509B2 (en) Vector processing engines (VPEs) employing merging circuitry in data flow paths between execution units and vector data memory to provide in-flight merging of output vector data stored to vector data memory, and related vector processing instructions, systems, and methods
US20150143086A1 (en) VECTOR PROCESSING ENGINES (VPEs) EMPLOYING FORMAT CONVERSION CIRCUITRY IN DATA FLOW PATHS BETWEEN VECTOR DATA MEMORY AND EXECUTION UNITS TO PROVIDE IN-FLIGHT FORMAT-CONVERTING OF INPUT VECTOR DATA TO EXECUTION UNITS FOR VECTOR PROCESSING OPERATIONS, AND RELATED VECTOR PROCESSOR SYSTEMS AND METHODS
Véstias et al. Parallel dot-products for deep learning on FPGA
EP3295636A1 (en) Reducing crest factors
Safarian et al. FPGA implementation of LMS-based FIR adaptive filter for real time digital signal processing applications
KR102539952B1 (ko) 높은 처리율을 요구하는 뉴럴 네트워크 프로세서를 위한 연산 장치 및 방법
CN113556101B (zh) Iir滤波器及其数据处理方法
WO2022022362A1 (zh) 数据处理方法、设备和存储介质
US20230024048A1 (en) Data Processing Apparatus and Method, Base Station, and Storage Medium
Gholamipour et al. Reconfigurable filter implementation of a matched-filter based spectrum sensor for cognitive radio systems
US11256979B2 (en) Common factor mass multiplication circuitry
JP7244660B2 (ja) 畳み込み演算のための装置及び方法
KR20190131611A (ko) 구성가능 논리 유닛 스위칭 장치 및 방법
Ding et al. Design of low complexity programmable FIR filters using multiplexers array optimization
Das et al. Hardware implementation of parallel FIR filter using modified distributed arithmetic
KR20240049551A (ko) 구성가능한 비선형 활성화 함수 회로들
US10061559B2 (en) Apparatus and method for controlling operation
Ambede et al. Efficient FPGA implementation of a variable digital filter based spectrum sensing scheme for cognitive IoT systems
CN106980600B (zh) 一种lte接收系统中fpga处理复数矩阵乘法的方法及系统
Dai et al. FPGA Realization of Hardware-Flexible Parallel Structure FIR Filters Using Combined Systolic Arrays
Hardieck et al. Constant matrix multiplication with ternary adders
JP2021501406A (ja) タスク処理のための方法、デバイス、およびシステム
Dinesh et al. Survey on reconfigurable fir filter architecture

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant