KR102290531B1 - 재조직 가능한 뉴럴 네트워크 컴퓨팅 장치 - Google Patents

재조직 가능한 뉴럴 네트워크 컴퓨팅 장치 Download PDF

Info

Publication number
KR102290531B1
KR102290531B1 KR1020180129313A KR20180129313A KR102290531B1 KR 102290531 B1 KR102290531 B1 KR 102290531B1 KR 1020180129313 A KR1020180129313 A KR 1020180129313A KR 20180129313 A KR20180129313 A KR 20180129313A KR 102290531 B1 KR102290531 B1 KR 102290531B1
Authority
KR
South Korea
Prior art keywords
data
operator
input
row
input data
Prior art date
Application number
KR1020180129313A
Other languages
English (en)
Other versions
KR20190063383A (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 US16/201,871 priority Critical patent/US20190164035A1/en
Publication of KR20190063383A publication Critical patent/KR20190063383A/ko
Application granted granted Critical
Publication of KR102290531B1 publication Critical patent/KR102290531B1/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/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/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

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)
  • Image Analysis (AREA)

Abstract

재조직 가능한 뉴럴 네트워크 컴퓨팅 장치가 제공된다. 컴퓨팅 장치는, 임의 로우(row)와 임의 컬럼(column)에 대응하는 위치에 배치된 연산기를 복수개 포함하는 데이터 처리 어레이부를 포함한다. 상기 데이터 처리 어레이부의 제1 번째 로우의 연산기로부터의 제1 입력 데이터를 제2 번째 로우의 연산기로 전달하는 체이닝 패스(chaining path)가 선택적으로 적어도 하나 형성된다. 상기 컴퓨팅 장치의 복수의 제1 데이터 입력 처리부가 뉴럴 네트워크의 계층에 대한 제1 입력 데이터를 상기 데이터 처리 어레이부의 로우를 따라 상기 연산기들에 전달하며, 복수의 제2 데이터 입력 처리부가 상기 뉴럴 네트워크의 계층에 대한 제2 입력 데이터를 상기 데이터 처리 어레이부의 컬럼을 따라 상기 연산기들에 전달한다.

Description

재조직 가능한 뉴럴 네트워크 컴퓨팅 장치{Apparatus for Reorganizable neural network computing}
본 발명은 뉴럴 네트워크 컴퓨팅에 관한 것으로, 더욱 상세하게 말하자면, 재조직 가능한 뉴럴 네트워크 컴퓨팅 장치에 관한 것이다.
뉴럴 네트워크(neural network, NN, 또는 인경 신경망)는 수신된 입력에 대한 출력(예를 들어, 분류)을 생성하기 위해 모델들의 하나 또는 그 이상의 계층들을 활용하는 기계 학습 모델들이다. 일부 뉴럴 네트워크는 출력 계층 이외에도 하나 또는 그 이상의 숨겨진 계층들을 포함한다. 각각의 은닉 계층의 출력은 네트워크의 다음 계층, 즉 네트워크의 다음 은닉 계층 또는 출력 계층에 대한 입력으로 사용된다. 네트워크의 각각의 계층은 파라미터들의 각각의 세트의 현재 값들에 따라, 수신된 입력으로부터 출력을 생성한다.
뉴럴 네트워크는 하드웨어로 구현될 수도 있으나, 주로 컴퓨터 소프트웨어로 구현된다. 뉴널 네트워크는 기초 컴퓨팅 단위인 뉴런 여러 개가 가중된 링크(weighted link)로 연결된 형태이며, 가중된 링크는 주어진 환경에 적응할 수 있도록 가중치를 조정할 수 있다.
한편, 현재의 인공지능 애플리케이션은 서버와 클라이언트 사이의 네트워크 연결에 의한 정교하지만 반응이 느린 서비스가 대부분이다. 이는 딥러닝의 핵심 알고리즘인 뉴럴 네트워크의 컴퓨팅이 일반적인 AP(application processor)에 비해 1000배 이상의 수준의 컴퓨팅을 요구하기 때문이다. 4차 산업혁명이 변화시킬 사회에서는 인공지능 서비스의 대중화(Popularization), 즉, 모든 정보 통신 기기에 인공지능 컴퓨팅 능력을 구현하는 것이 요구된다. 인공지능에 의한 지능정보사회의 ‘실현(Realization)'을 위해서는 딥러닝 인공신경망(Deep Learning Artificial Neural Network)이 요구하는 대량의 컴퓨팅 능력을 작은 반도체에 구현하는 새로운 기술이 필요하다.
이러한 뉴럴 네트워크를 기반으로 한 컴퓨팅을 위한 반도체를 구현하기 위한 기술이 연구되고 있고, 최근에 다수의 기업이 서로 다른 형태의 아키텍처(architecture)를 개발하고 있다. 뉴럴 네트워크는 대체적으로 1초에 1조~100조에 해당하는 부동소수점 연산을 수행해야 하므로 매우 높은 컴퓨팅 성능을 요구하여, 매우 많은 수의 컴퓨팅 코어를 반도체 내에 집적해야 한다. 그런데 반도체는 제작비용이 고가로서, 한번 제작하면 그 이후로는 설계 변경이 불가한다.
관련 선행 문헌으로는 미국 특허 출원 공개 번호 "2017-0366399호"에 기재된 "SYSTEMS AND METHODS FOR USER PLANE PATH SELECTION, RESELECTION, AND NOTIFICATION OF USER PLANE CHANGES"이 있다.
본 발명이 해결하고자 하는 과제는, 재조직 가능한 구조를 가지는 뉴럴 네트워크 컴퓨팅 장치를 제공하는 것이다.
본 발명의 특징에 따른 장치는, 뉴럴 네트워크에 대한 연산을 수행하기 위한 컴퓨팅 장치로서, 임의 로우(row)와 임의 컬럼(column)에 대응하는 위치에 배치된 연산기를 복수개 포함하도록 구성된, 데이터 처리 어레이부; 상기 뉴럴 네트워크의 계층에 대한 제1 입력 데이터를 상기 데이터 처리 어레이부의 로우를 따라 상기 연산기들에 전달하도록 구성된, 복수의 제1 데이터 입력 처리부; 및 상기 뉴럴 네트워크의 계층에 대한 제2 입력 데이터를 상기 데이터 처리 어레이부의 컬럼을 따라 상기 연산기들에 전달하도록 구성된, 복수의 제2 데이터 입력 처리부를 포함하며, 상기 데이터 처리 어레이부의 제1 번째 로우의 연산기로부터의 제1 입력 데이터를 제2 번째 로우의 연산기로 전달하는 체이닝 패스(chaining path)가 선택적으로 적어도 하나 형성된다.
상기 뉴럴 네트워크의 계층의 종류에 따라 상기 체이닝 패스가 형성될 수 있다.
FCL(Fully-Connected Layer) 계층에 대한 연산 수행시, 상기 체이닝 패스가 형성될 수 있다. 이 경우, 상기 복수의 제1 데이터 입력 처리부 중 상기 데이터 처리 어레이부의 첫번째 로우에 대응하는 제1 데이터 입력 처리부만 동작하고, 나머지 제1 데이터 입력 처리부는 동작하지 않을 수 있다.
상기 데이터 처리 어레이부에서 2개의 로우 단위별로 체이닝 패스가 복수개 형성된 경우, 상기 데이터 처리 어레이부의 첫번째 로우에 대응하는 상기 제1 데이터 입력 처리부로부터 입력되는 제1 입력 데이터가, 상기 체이닝 패스들을 통해 상기 데이터 처리 어레이부의 모든 연산기로 전달될 수 있다.
한편, 상기 데이터 처리 어레이부의 짝수 번째의 로우에 마지막으로 배치된 연산기와 이전 홀수 번째 로우에 마지막으로 배치된 연산기 사이에 체이닝 패스가 형성될 수 있다.
또한, 상기 데이터 처리 어레이부의 짝수 번째의 로우에 마지막으로 배치된 연산기가, 입력되는 명령어에 따라, 이전 홀수 번째 로우에 마지막으로 배치된 연산기로부터 전달되는 제1 입력 데이터를 입력받는 것으로 결정하는 것에 의해, 상기 체이닝 패스가 형성될 수 있다.
상기 로우에 마지막으로 배치된 연산기는 상기 제1 데이터 입력 처리부로부터 가장 멀리 배치된 연산기일 수 있다.
상기 체이닝 패스가 복수개 형성된 경우, 상기 데이터 처리 어레이부의 짝수 번째의 로우에 첫번째로 배치된 연산기가, 입력되는 명령어에 따라, 해당 로우의 인접 연산기로부터 입력되는 제1 입력 데이터를, 다음 홀수 번째 로우에 첫번째로 배치된 연산기로 전달하도록 구성될 수 있다.
상기 로우에 첫번째로 배치된 연산기는 상기 제1 데이터 입력 처리부로부터 가장 가깝게 배치된 연산기일 수 있다.
한편, 상기 데이터 처리 어레이부는 상기 각 셀에 배치되어, 상기 제2 입력 데이터를 버퍼링하였다가 해당 셀의 연산기로 제공하도록 구성된, 버퍼를 더 포함할 수 있다. 상기 연산기의 개수와 상기 버퍼의 개수가 동일할 수 있다.
한편, 상기 데이터 처리 어레이부는 시스톨릭(Systolic) 어레이 구조를 가질수 있다.
또한, 상기 연산기는 상기 제1 입력 데이터와 상기 제2 입력 데이터를 연산하고, 상기 연산의 결과를 누적 처리하여 저장하도록 구성될 수 있다.
상기 연산기는 상기 제1 입력 데이터를 동일 로우에 배치된 인접 연산기로 전달하거나, 상기 제2 입력 데이터를 동일 컬럼에 배치된 인접 연산기로 전달하도록 구성될 수 있다.
상기 연산기는, 상기 제1 입력 데이터와 상기 제2 입력 데이터를 연산하는 연산 회로; 상기 연산 회로의 연산 결과를 누적처리하여 저장하는 저장부; 상기 제1 입력 데이터와 상기 제2 입력 데이터를 상기 연산 회로로 전달하는 입력 인터페이스부; 및 상기 연산 회로로부터 상기 제1 입력 데이터와 상기 제2 입력 데이터를 다른 연산기로 전달하는 출력 인터페이스부를 포함할 수 있다.
본 발명의 다른 특징에 따른 장치는, 뉴럴 네트워크에 대한 연산을 수행하기 위한 컴퓨팅 장치로서, 임의 로우(row)와 임의 컬럼(column)에 대응하는 위치에 배치되어 있으며, 로우 방향으로부터 입력되는 제1 입력 데이터와 컬럼 방향으로부터 입력되는 제2 입력 데이터를 연산하는 연산기를, 복수개 포함하는 데이터 처리 어레이부; 상기 뉴럴 네트워크의 계층에 대한 상기 제1 입력 데이터를 상기 연산기들로 제공하도록 구성된, 복수의 제1 데이터 입력 처리부; 및 상기 뉴럴 네트워크의 계층에 대한 상기 제2 입력 데이터를 상기 연산기들에 전달하도록 구성된, 복수의 제2 데이터 입력 처리부를 포함하며, 상기 연산기가 추가로, 상기 제1 입력 데이터는 동일 로우 상의 인접한 다른 연산기로 전달하고, 상기 제2 입력 데이터는 동일 컬럼 상의 인접한 다른 연산기로 전달하도록 구성되며, 상기 데이터 처리 어레이부의 제1 번째 로우의 마지막에 배치된 연산기는 상기 제1 입력 데이터를 제2 번째 로우의 마지막에 배치된 연산기로 전달하도록 구성된다.
상기 데이터 처리 어레이부의 짝수 번째의 로우에 마지막으로 배치된 연산기가, 입력되는 명령어에 따라, 이전 홀수 번째 로우에 마지막으로 배치된 연산기로부터 전달되는 제1 입력 데이터를 입력받도록 구성될 수 있다.
상기 연산기는 상기 제1 입력 데이터와 상기 제2 입력 데이터를 연산하고, 상기 연산의 결과를 누적 처리하여 저장하고, 누적 처리된 연산 결과를 로우 방향을 따라 상기 제1 데이터 입력 처리부로 출력하도록 구성될 수 있다.
본 발명의 실시 예에 따르면, 뉴럴 네트워크의 계층 종류에 따라 재조직이 가능한 뉴럴 네트워크 컴퓨팅 장치를 제공할 수 있다. 따라서, 재조직형 시스톨릭 어레이 구조를 컨볼루션 계층뿐만 아니라 FCL(Fully-Connected Layer) 계층에 대해서도 최대한으로 활용할 수 있다.
또한, 대형의 매트릭스 연산(large matrix computation)을 메모리 액세스 시간과 연산 시간을 최적화하면서 컨볼루션 연산 및 FCL 연산을 효율적으로 실행할 수 있다.
도 1은 본 발명의 제1 실시 예에 따른 뉴럴 네트워크 컴퓨팅 장치의 구조를 나타낸 도이다.
도 2는 본 발명의 제2 실시 예에 따른 뉴럴 네트워크 컴퓨팅 장치의 구조를 나타낸 도이다.
도 3은 본 발명의 실시 예에 따른 NC의 구조를 나타낸 도이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시 예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성 요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
본 명세서에서 단수로 기재된 표현은 "하나" 또는 "단일" 등의 명시적인 표현을 사용하지 않은 이상, 단수 또는 복수로 해석될 수 있다.
이하, 본 발명의 실시 예에 따른 재조직 가능한 뉴럴 네트워크 컴퓨팅 장치 에 대하여 설명한다.
본 발명의 실시 예에서는 뉴럴 네트워크(neural network, NN, 또는 인경 신경망) 컴퓨팅을 위한 반도체 장치를 제공하며, 반도체 장치는 재조직(Re-organization) 가능한 구조를 가진다.
도 1은 본 발명의 제1 실시 예에 따른 뉴럴 네트워크 컴퓨팅 장치의 구조를 나타낸 도이다.
본 발명의 제1 실시 예에 따른 뉴럴 네트워크 컴퓨팅 장치(1)는 시스톨릭 어레이(Systolic Array)의 구조를 가진다. 구체적으로, 뉴럴 네트워크 컴퓨팅 장치(1)는 도 1에서와 같이, 복수의 DCL(data control lefter)(11, 12, 13, 14, 대표 도면 부호 "10"을 부여함), 복수의 DCU(data control upper)(21, 22, …, 27, 28, 대표 도면 부호 "20"을 부여함), 그리고 복수의 DCL(10)과 복수의 DCU(20) 사이에 배치된 데이터 처리 어레이부(30)를 포함한다.
복수의 DCU(20)가 제1 방향으로 순차적으로 배열되어 있으며, 복수의 DCL(10)은 제2 방향으로 순차적으로 배열되어 있다.
데이터 처리 어레이부(30)는 복수의 셀들을 포함하는 2차원 시스톨릭 어레이 구조를 가지며, 제2 방향으로 배열된 복수의 DCL(10)과 제1 방향으로 배열된 복수의 DCU(20)의 사이에 배치되어 있는 복수의 NC(neural core)(대표 도면 부호 "31"을 부여함)들을 포함한다. 데이터 처리 어레이부(30)의 1차원은 셀들의 로우(row)들에 대응하고, 셀들의 데이터 처리 어레이부(30)의 2차원은 셀들의 컬럼(column)들에 대응한다. 이러한 2차원 시스톨릭 어레이 구조의 각 셀들에 NC(31)가 배치된다. 각각의 NC(31)는 연산 결과를 저장하는 내부 레지스터를 포함할 수 있으며, "연산기"라고도 명명될 수 있다.
뉴럴 네트워크 컴퓨팅 장치(1)는 N×M = Y의 연산을 수행하기 위해, N 매트릭스의 각 로우에 대한 데이터가 DCL(10)에 저장되며, M 매트릭스의 각 컬럼에 대한 데이터가 DCU(20)에 저장된다. 계층은 복수의 커널(kernel)을 가질 수 있으며, 커널들은 매트릭스 구조를 가질 수 있다. 각 커널에 대응하는 커널 데이터가 DCU(20)로 제공되며, 예를 들어, 커널 A에 대한 커널 데이터가 제1 컬럼에 대응하는 DCU로 제공되며, 커널 B에 대한 커널 데이터가 제2 컬럼에 대응하는 DCU로 제공될 수 있다.
DCL(10)은 뉴럴 네트워크를 구성하는 계층에 대한 데이터(제1 입력 데이터라고도 명명될 수 있음)를 데이터 처리 어레이부(30)의 1차원을 따라 전송하도록 구성된다. DCU(20)는 뉴럴 네트워크를 구성하는 계층들에 대한 데이터(제2 입력 데이터라고 명명될 수도 있음)를 데이터 처리 어레이부(30)의 2차원을 따라 전송하도록 구성된다. DCL(10)은 "제1 데이터 입력 처리부"라고 명명되고, DCU(20)는 "제2 데이터 입력 처리부"라고 명명될 수 있다.
데이터 처리 어레이부(30)의 각각의 NC(31)는 DCL(10)로부터 입력되는 데이터와 DCU(20)로부터 입력되는 데이터를 연산하고 그 결과를 저장하도록 구성된다. 각각의 NC(31)는 연산 결과를 자체적으로 저장하며, 연산 결과를 누적 처리한다. 즉, 이전 연산에 따라 저장된 연산 결과와 현재 연산의 연산 결과를 합산하여 결과값으로 저장한다. 이에 따라 각각의 NC(31)에 저장된 결과값은 결과 매트릭스의 한 포인트로서 기능하게 된다.
각각의 NC(31)는 입력되는 데이터를 인접 NC로 전달하는데, 구체적으로, DCL(10)로부터 입력되는 데이터를 데이터 처리 어레이부(30)의 1차원을 따라 전달하며, DCU(20)로부터 입력되는 데이터를 데이터 처리 어레이부(30)의 2차원을 따라 전달한다. 따라서, DCL(10)로부터 입력되는 데이터는 데이터 처리 어레이부(30)의 1차원에 배열된 NC들에게 순차적으로 전달되며, DCL(20)로부터 입력되는 데이터는 데이터 처리 어레이부(30)의 2차원에 배열된 NC들에게 순차적으로 전달된다.
여기서는 설명의 편의상, 도 1에 4개의 DCL(10)과 8개의 DCU(20) 그리고 32개의 NC(31)를 사용하는 것을 예로 들었으나, 본 발명은 이에 한정되지 않는다.
이러한 구조로 이루어지는 본 발명의 제1 실시 예에 따른 뉴럴 네트워크 컴퓨팅 장치(1)에서, 제1 입력 데이터가 1차원을 따라 하나씩 DCL(10)에서 NC(31)로 출력된다. 즉, DCL(10)는 입력되어 저장된 제1 입력 데이터(예: N 매트릭스의 각 행에 대한 데이터)를 데이터 처리 어레이부(30)의 NC(31)가 있는 방향(여기서는 제1 방향)으로 출력하며, 출력된 제1 입력 데이터는 데이터 처리 어레이부(30)의 해당 로우에 배치된 NC(31)를 거쳐서 우측 방향(여기서는 제1 방향)으로 진행한다. 이때, 클락 사이클마다 DCL(10)로부터 제1 입력 데이터가 하나씩 출력되어 우측 방향으로 진행될 수 있다.
DCU(20)는 제2 입력 데이터(예: M 매트릭스의 각 컬럼에 대한 데이터)를 하나씩 순차적으로 출력하여, 제2 입력 데이터가 2차원을 따라 데이터 처리 어레이부(30)의 NC(31)를 거쳐서 하측 방향(여기서는 제2 방향)으로 진행한다.
DCL(10)에서 순차적으로 출력된 제1 입력 데이터와 DCU(20)에서 순차적으로 출력된 제2 입력 데이터는 데이터 처리 연산부(30)의 각 NC(31)에 의해 연산되며 그 연산 결과가 해당 NC(31)에 저장된다. 구체적으로, 제1 입력 데이터와 제2 입력 데이터는 NC(31)에 의해 예를 들어, 곱셈 및 누적 연산 처리되며, 그 연산에 따른 결과 데이터가 NC(31) 내부의 레지스터에 저장된다.
각각의 NC(31)에 저장된 결과 데이터(누적 데이터)는 추후(예를 들어, 모든 데이터에 대한 연산이 수행된 후), DCL(10)로 순차적으로 출력될 수 있다.. DCL(10)로 출력된 결과 데이터는 온칩 메모리 버스(도시하지 않음)를 통하여 외부 메모리(도시하지 않음)에 저장될 수 있다.
이러한 본 발명의 제1 실시 예에 따른 뉴럴 네트워크 컴퓨팅 장치(1)를 통해 뉴럴 네트워크에 대한 매트릭스 연산을 고속으로 효율적으로 수행할 수 있다.
한편, 뉴럴 네트워크는 계층 종류에 따라 매트릭스 연산을 위한 매트릭스의 데이터 크기가 다양하다. 컨볼루션(Convolution) 계층의 경우에는 도 1에서와 같이, 제1 방향 및 제2 방향으로 입력되는 데이터들의 연산을 위해 DCL과 DCU가 모두 사용되지만, FCL(Fully-Connected Layer) 계층에서는 1개의 DCL만이 사용된다. 도 1의 구조로 이루어지는 뉴럴 네트워크 컴퓨팅 장치(1)를 이용하여 FCL 계층에 대한 연산을 수행하는 경우, 하나의 로우에 배치된 DCL(예: 도 1의 DCL0)과 해당 로우에 배치된 복수의 NC만이 동작하며, 나머지 로우들에 배치된 DCL(예: 도 1에서 DCL1~DCL 3)과 이들 로우에 대응하는 NC들이 사용되지 않는다. 따라서 일부 NC들이 낭비되는 결과가 초래되며, 그 결과 뉴럴 네트워크 컴퓨팅 장치(1)의 이용률(utilization rate)이 현저하게 떨어지게 될 수 있다.
본 발명의 제2 실시 예에서는 뉴럴 네트워크에 따라 재조직(Re-organization) 가능한 구조를 가지는 네트워크 컴퓨팅 장치(1)를 제공한다.
도 2는 본 발명의 제2 실시 예에 따른 뉴럴 네트워크 컴퓨팅 장치의 구조를 나타낸 도이다.
본 발명의 제2 실시 예에 따른 뉴럴 네트워크 컴퓨팅 장치(1)는 시스톨릭 어레이의 구조를 가진다. 구체적으로, 뉴럴 네트워크 컴퓨팅 장치(1)는 도 2에서와 같이, 복수의 DCL(11, 12, 13, 14, 대표 도면 부호 "10"을 부여함), 복수의 DCU (21, 22, 23, 24, 대표 도면 부호 "20"을 부여함), 그리고 복수의 DCL(10)과 복수의 DCU(20) 사이에 배치된 데이터 처리 어레이부(30')를 포함한다. 복수의 DCU(20)가 제1 방향으로 순차적으로 배열되어 있으며, 복수의 DCL(10)은 제2 방향으로 순차적으로 배열되어 있다. 여기서, 제1 실시 예와 동일한 부분에 대해서는 상세한 설명을 생략한다.
데이터 처리 어레이부(30')는 복수의 셀들을 포함하는 2차원 시스톨릭 어레이 구조를 가지며, 제2 방향으로 배열된 복수의 DCL(10)과 제1 방향으로 배열된 복수의 DCU(20)의 사이에 배치되어 있는 복수의 NC(대표 도면 부호 "31"을 부여함)들을 포함하며, 추가로 각각의 NC에 대응하는 NCB(neural core buffer)(대표 도면 부호 "32"를 부여함)를 더 포함할 수 있다.
데이터 처리 어레이부(30)의 1차원은 셀들의 로우들에 대응하고, 데이터 처리 어레이부(30)의 2차원은 셀들의 컬럼들에 대응한다. 이러한 2차원 시스톨릭 어레이 구조의 각 셀들에 NC(31)가 배치되고, 각각의 NC(31)에 근접하여 NCB(32)가 배치된다. NCB(32)의 개수는 NC(31)의 개수와 동일할 수 있다.
각각의 NC(31)는 DCL(10)로부터 입력되는 데이터와 DCU(20)로부터 입력되는 데이터를 연산하고 그 결과를 저장하고, 연산 결과를 누적 처리하도록 구성된다. 추가적으로, 각각의 NC(31)는 DCL(10)로부터 입력되는 데이터와 대응하는 NCB(32)로부터 입력되는 데이터를 연산하고 그 결과를 저장하고, 연산 결과를 누적 처리하도록 구성된다.
DCL(10)은 뉴럴 네트워크를 구성하는 계층들에 대한 데이터(제1 입력 데이터)를 데이터 처리 어레이부(30)의 1차원을 따라 전송하도록 구성된다. DCU(20)는 뉴럴 네트워크를 구성하는 계층들에 대한 데이터(제2 입력 데이터)를 데이터 처리 어레이부(30)의 2차원을 따라 전송하도록 구성된다. 특히, 본 발명의 제2 실시 예에서, DCU(20)는 제2 입력 데이터가 데이터 처리 어레이부(30)의 2차원을 따라 전송되도록, 해당 컬럼에 배치된 NC로 출력하거나 또는 해당 컬럼에 배치된 NCB(32)로 출력한다. NCB(32)는 DCU(20)로부터 제공되는 데이터를 버퍼링하고, 버퍼링된 데이터를 인접 NC(31)로 전달하도록 구성된다.
뉴럴 네트워크 컴퓨팅 장치(1)에서, FCL 뉴럴 네트워크에 대해 N×M = Y의 연산을 수행하는 경우, N 매트릭스의 로우(N(r))의 개수는 1이며 컬럼(N(c))의 개수는 16~1024로 큰 수이다. 또한 M 매트릭스의 로우(M(r))의 개수와 컬럼(M(c))의 개수는 16~1024로 큰 수이다. 이 경우, M(c)에 해당하는 각각의 커널의 개수는 많아지는 반면 N(r)은 1이므로, N 매트릭스에 대한 데이터(제1 입력 데이터)는 하나의 DCL(예를 들어, DCL0)에 저장되고, M(c)의 각각의 커널에 대응하는 데이터(제2 입력 데이터)는 NCB(32)에 저장된다.
FCL의 경우, 데이터는 재사용되지 않으므로 NCB(32)의 크기는 DCU(20)의 크기만큼 클 필요가 없으며, 예를 들어, 8개의 16비트 데이터를 저장하는 크기일 수 있다. NCB(32)에 저장되는 데이터는 외부의 온칩 메모리로부터 공급되는 데이터일 수 있다. 예를 들어, 외부의 온칩 메모리로부터 공급되는 FCL 계층을 위한, M(c)에 각각 대응하는 데이터(제2 입력 데이터)가 모두 DCU(20)를 통해 NCB(32)에 버퍼링되었다가 NC(31)로 제공될 수 있다. 또는, M(c)에 각각 대응하는 데이터가 DCU(20)를 통해 일부는 NC(31)로 제공되거나, DCU(20)를 통해 나머지 일부는 NCB(32)에 버퍼링되었다가 NC(31)로 제공될 수 있다. DCU(20)에서 한번에 데이터가 스캔되면서 2차원을 따라 전송되기가 어렵고 전송 속도가 느려질 수 있으나, NCB(32)를 이용함에 따라 전송 속도 지연을 해소할 수 있다.
이러한 데이터 처리 어레이부(30)에서, 제1 실시 예와는 달리, 본 발명의 실시 예에 따른 제2 실시 예에서는 재조직이 가능하도록, 1차원 및 2차원으로 배열된 복수의 NC(31)들이 설정 단위별로 체이닝 패스(chaining path)(대표 도면 부호, "33"을 부여함)가 형성될 수 있다. 예를 들어, 2개의 로우 단위별로 체이닝 패스가 선택적으로 형성될 수 있다.
체이닝 패스(33)는 선택적으로 형성될 수 있으며, 홀수번째 로우의 NC로부터의 데이터를 짝수번째 로우의 NC로 전달하기 위한 것이다. 구체적으로 짝수 번째(예를 들어, i번째, 여기서 i는 양의 짝수임)의 로우에 배치된 NC와 이전 홀수 번째(예를 들어, i-1번째) 로우에 배치된 NC 사이에 체이닝 패스(33)가 형성될 수 있다. 특히, 짝수 번째의 로우에 마지막으로 배치된 NC와 이전 홀수 번째 로우에 마지막으로 배치된 NC가 체이닝 패스를 통해 선택적으로 연결된다. 여기서 로우에 마지막으로 배치된 NC는 DCL로부터 가장 멀리 배치된 NC를 나타낸다. 짝수 번째의 로우에 배치된 NC가 홀수 번째의 로우에 배치된 NC와 체이닝 패스를 통해 연결된다는 것은, 짝수 번째의 로우에 배치된 NC가 홀수 번째의 로우에 배치된 NC로부터 전달되는 데이터를 입력받아서 인접 NC로 전달하는 것을 나타낼 수 있다.
따라서, 홀수 번째 로우에 마지막으로 배치된 NC는 동일 로우에 배치된 인접 NC로부터 입력되는 데이터를 짝수 번째 로우에 마지막으로 배치된 NC로 전달하도록 동작될 수 있다. 그리고 짝수 번째 로우에 마지막으로 배치된 NC는 이전 홀수 번째 로우에 마지막으로 배치된 NC로부터 전달되는 데이터를 입력받아서, 동일한 로우에 배치된 인접 NC로 전달하도록 동작될 수 있다.
필요에 따라, 데이터 처리 어레이부(30)에서 체이닝 패스가 하나 또는 복수개 형성될 수 있다.
2개의 로우 단위별로 2개 이상의 체이닝 패스가 형성된 경우, 짝수 번째 로우에 첫번째 배치된 NC(DCL에 가장 가깝게 배치된 NC)는 제1 방향의 반대 방향인 제3 방향(예를 들어, 우측 방향인 제1 방향에 반대인 좌측 방향)으로부터 입력되는 데이터 즉, 동일 로우에 배치되어 있으며 제3 방향의 인접 NC로부터 입력되는 데이터를 다음 홀수 번째(i+1번째) 로우에 첫번째 배치된 NC로 전달하도록 동작될 수 있다. 다음 홀수 번째(i+1번째) 로우에 첫번째 배치된 NC는 이전 짝수번째(i번째) 로우의 첫번째 배치된 MC로부터의 데이터를 입력받아 동일 로우의 제1 방향의 인접 NC로 전달하도록 동작될 수 있다.
각 NC들은 입력되는 명령어를 토대로, 위와 같이 데이터를 입력받아 전달하고, 입력된 데이터에 대한 연산을 수행할 수 있다. 각 NC들은 입력되는 명령어에 따라 입력되는 임의 데이터에 대한 연산을 수행하며, 입력되는 다른 임의 데이터는 인접 NC로 전달할 수 있다.
이러한 구조로 이루어지는 뉴럴 네트워크 컴퓨팅 장치(1)의 데이터 처리 어레이부(30)에서, 체이닝 패스는 뉴럴 네트워크의 계층 종류에 따라 선택적으로 형성될 수 있다. 예를 들어, 컨볼루션 계층에 대한 연산시에는 체이닝 패스가 형성되지 않으며, FCL 계층에 대한 연산시에 체이닝 패스가 형성될 수 있다.
여기서는 설명의 편의상, 도 2에 4개의 DCL(10)과 4개의 DCU(20) 그리고 16개의 NC(31)를 사용하는 것을 예로 들었으나, 본 발명은 이에 한정되지 않는다.
이러한 구조를 토대로 본 발명의 제2 실시 예에 따른 뉴럴 네트워크 컴퓨팅 장치(1)의 동작을 도 2를 토대로 설명한다.
FCL 계층에 대한 연산을 수행하는 경우, 체이닝 패스가 형성되는데, 본 발명은 반드시 이에 한정되는 것은 아니다.
예를 들어, 도 2에서, 홀수번째인 제1 로우의 마지막에 배치된 NC(도 2에서, 31a)와 짝수번째인 제2 로우의 마지막에 배치된 NC(도 2에서 31b) 사이에 체이닝 패스(331)가 형성될 수 있다. 그리고 홀수번째인 제3 로우의 마지막에 배치된 NC(도 2에서, 31c)와 짝수번째인 제4 로우의 마지막에 배치된 NC(도 2에서 31d) 사이에 체이닝 패스(332)가 형성될 수 있다.
FCL 뉴럴 네트워크에 대한 연산을 위해, N 매트릭스에 대한 데이터(제1 입력 데이터)는 하나의 DCL(예를 들어, DCL 0)에 저장되고, M(c)의 각각의 커널에 대응하는 데이터(제2 입력 데이터)는 DCU(20)/NCB(32)에 저장된다. 여기서, DCL 1, DCL2, DCL 3은 동작하지 않는다.
이러한 상태에서, DCL 0으로부터 제1 입력 데이터가 1차원을 따라 제1 로우의 NC들을 통해 우측 방향(제1 방향)으로 전달되며, 제2 로우의 마지막 NC(31b)가 제1 로우의 마지막 NC(31a)로부터 전달되는 데이터를 입력받아 전달한다. 따라서, 제1 로우의 NC들을 따라 전달되는 데이터가 체이닝 패스(331)를 통해 제2 로우의 마지막 NC(31b)로 제공되고, 이후, 제2 로우의 마지막 NC(31b)를 통해 1차원을 따라 좌측 방향(제1 방향과 반대인 제3 방향)으로 이동된다.
제2 로우의 마지막 NC(31b)를 통해 1차원을 따라 좌측 방향으로 이동된 데이터는, 그 다음에 제2 로우의 첫번째 NC(31b')를 통해 제3 로우의 첫번째 NC(31c')로 전달되며, 제3 로우의 첫번째 NC(31c')로 전달된 데이터는 1차원을 따라 우측 방향(제1 방향)으로 이동된다. 이후, 제3 로우의 첫번째 NC(31c')를 통해 1차원을 따라 우측 방향으로 이동된 데이터는, 체이닝 패스(332)를 통해, 제3 로우의 마지막 NC(31c)에 의해 제4 로우의 마지막 NC(31d)로 전달되며, 제4 로우의 마지막 NC(31d)로 전달된 데이터는 1차원을 따라 좌측 방향(제3 방향)으로 이동하여, 제4 로우의 첫번째 NC(31d')까지 이동된다. 이와 같이, 2개의 로우 단위로 형성되는 체이닝 패스(331, 332)를 통해서, DCL 0으로부터 입력된 데이터가 1차원을 따라 데이터 처리 어레이부(30)의 모든 NC들을 통해 처리될 수 있다.
각 NC(31)는 제1 방향 또는 제3 방향으로부터 입력되는 제1 입력 데이터와, 2차원을 따라 입력되는 데이터(DCU 20로부터의 데이터 또는 NCB로부터의 데이터)를 연산하고, 연산 결과를 저장한다. 각 NC의 연산 결과는 누적 처리되고, 이후에 DCL 0로 순차적으로 출력될 수 있다.
이러한 본 발명의 제2 실시 예에 따르면, 시스톨릭 어레이 구조를 가지는 뉴럴 네트워크 컴퓨팅 장치(1)의 각 NC를 이용하여 비전처리 및 영상인식에 널리 응용되는 컨볼루션 계층의 연산을 수행하면서도, FCL 계층의 연산시에도 모든 NC들을 효율적으로 사용할 수 있다. 이에 따라 시스톨릭 어레이 구조를 가지는 뉴럴 네트워크 컴퓨팅 장치(1)의 이용률이 향상된다. 또한, 대형의 매트릭스 연산(large matrix computation)을 메모리 액세스 시간과 연산 시간을 최적화하면서 컨볼루션 연산 및 FCL 연산을 효율적으로 실행할 수 있다.
한편, 본 발명의 실시 예들에서, 각 NC의 동작을 제어하기 위한 명령어는 도시하지 않은 컨트롤러(예를 들어, FC(flow controller))에 의해 각 NC로 제공될 수 있다. 예를 들어, 짝수번째 로우의 마지막에 배치된 NC는, 입력되는 명령어에 따라, 이전 홀수 번째 로우의 마지막에 배치된 NC로부터의 데이터를 입력받을지를 결정할 수 있다.
도 3은 본 발명의 다른 실시 예에 따른 NC의 구조를 나타낸 도이다.
첨부한 도 3에 도시되어 있듯이, 본 발명의 실시 예에 따른 NC(31)는, 연산을 수행하는 연산 회로(311), 입력 인터페이스부(312), 출력 인터페이스부(313), 및 저장부(314)를 포함한다.
입력 인터페이스부(312)는 연산을 위한 데이터를 연산 회로(311)로 제공하도록 구성될 수 있다. 예를 들어, 입력 인터페이스부(312)는 제1 데이터 입력 처리부인 DCL로부터의 제1 입력 데이터와, 제2 데이터 입력 처리부인 DCU로부터의 제2 입력 데이터를 연산 회로(311)로 제공하도록 구성될 수 있다.
연산 회로(311)는 위의 도 1 및 도 2를 토대로 설명한 연산을 수행하도록 구성될 수 있다. 연산 회로(311)는 입력 인터페이스부(312)를 통해 입력되는 명령어에 따라, 연산을 수행하도록 구성될 수 있다. 연산 회로(311)는 입력되는 명령어에 따라 제1 입력 데이터와 제2 입력 데이터의 연산을 수행하거나, 또는 제1 입력 데이터 또는 제2 입력 데이터를 출력 인터페이스부(313)를 통하여 출력하여, 다른 NC로 전달되도록 할 수 있다.
저장부(314)는 연산 회로(311)의 연산 결과를 저장하도록 구성될 수 있으며, 예를 들어, 레지스터 형태로 구성될 수 있다. 연산 결과는 연산 회로(311)에 의해 수행된 연산의 누적 처리 결과값이다.
출력 인터페이스부(313)는 연산 회로(311)로부터의 데이터를 출력하도록 구성될 수 있다. 예를 들어, 출력 인터페이스(313)는 연산 회로(311)로부터의 제1 입력 데이터 또는 제2 입력 데이터를 출력하여, 제1 입력 데이터 또는 임의 제2 입력 데이터가 다른 NC로 전달되도록 할 수 있다. 또한, 출력 인터페이스부(313)는 저장부(314)에 저장된 연산 결과를 출력하도록 구성될 수 있다.
본 발명의 실시 예는 이상에서 설명한 장치 및/또는 방법을 통해서만 구현이 되는 것은 아니며, 본 발명의 실시 예의 구성에 대응하는 기능을 실현하기 위한 프로그램, 그 프로그램이 기록된 기록 매체 등을 통해 구현될 수도 있으며, 이러한 구현은 앞서 설명한 실시 예의 기재로부터 본 발명이 속하는 기술분야의 전문가라면 쉽게 구현할 수 있는 것이다.
이상에서 본 발명의 실시 예에 대하여 상세하게 설명하였지만 본 발명의 권리 범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 사업자의 여러 변형 및 개량 형태 또한 본 발명의 권리 범위에 속하는 것이다.

Claims (19)

  1. 뉴럴 네트워크에 대한 연산을 수행하기 위한 컴퓨팅 장치로서,
    임의 로우(row)와 임의 컬럼(column)에 대응하는 위치에 배치된 연산기를 복수개 포함하도록 구성된, 데이터 처리 어레이부;
    상기 뉴럴 네트워크의 계층에 대한 제1 입력 데이터를 상기 데이터 처리 어레이부의 로우를 따라 상기 연산기들에 전달하도록 구성된, 복수의 제1 데이터 입력 처리부; 및
    상기 뉴럴 네트워크의 계층에 대한 제2 입력 데이터를 상기 데이터 처리 어레이부의 컬럼을 따라 상기 연산기들에 전달하도록 구성된, 복수의 제2 데이터 입력 처리부
    를 포함하며,
    상기 데이터 처리 어레이부의 제1 번째 로우의 마지막에 배치된 제1 연산기가 동일 로우의 인접 연산기로부터 제공되는 제1 입력 데이터를, 제2 번째 로우의 마지막에 배치된 제2 연산기로 전달하도록 동작하고, 상기 제2 연산기는 상기 제1 연산기로부터 전달되는 상기 제1 입력 데이터를 입력받도록 동작하는 것에 의해, 상기 제1 연산기와 상기 제2 연산기 사이에 체이닝 패스(chaining path)가 선택적으로 적어도 하나 형성되는, 컴퓨팅 장치.
  2. 제1항에 있어서,
    상기 뉴럴 네트워크의 계층의 종류에 따라 상기 체이닝 패스가 형성되는, 컴퓨팅 장치.
  3. 제1항에 있어서,
    FCL(Fully-Connected Layer) 계층에 대한 연산 수행시, 상기 체이닝 패스가 형성되고, 컨볼루션(Convolution) 계층에 대한 연산 수행시에는 상기 체이닝 패스가 형성되지 않는, 컴퓨팅 장치.
  4. 제3항에 있어서,
    상기 복수의 제1 데이터 입력 처리부 중 상기 데이터 처리 어레이부의 첫번째 로우에 대응하는 제1 데이터 입력 처리부만 동작하고, 나머지 제1 데이터 입력 처리부는 동작하지 않는, 컴퓨팅 장치.
  5. 제4항에 있어서,
    상기 데이터 처리 어레이부에서 2개의 로우 단위별로 체이닝 패스가 복수개형성된 경우, 상기 데이터 처리 어레이부의 첫번째 로우에 대응하는 상기 제1 데이터 입력 처리부로부터 입력되는 제1 입력 데이터가, 상기 체이닝 패스들을 통해 상기 데이터 처리 어레이부의 모든 연산기로 전달되는, 컴퓨팅 장치.
  6. 제1항에 있어서,
    상기 데이터 처리 어레이부의 짝수 번째의 로우에 마지막으로 배치된 연산기와 이전 홀수 번째 로우에 마지막으로 배치된 연산기 사이에 체이닝 패스가 형성되는, 컴퓨팅 장치.
  7. 제1항에 있어서,
    상기 데이터 처리 어레이부의 짝수 번째의 로우에 마지막으로 배치된 연산기가, 입력되는 명령어에 따라, 이전 홀수 번째 로우에 마지막으로 배치된 연산기로부터 전달되는 제1 입력 데이터를 입력받는 것으로 결정하는 것에 의해, 상기 체이닝 패스가 형성되는, 컴퓨팅 장치.
  8. 제7항에 있어서,
    상기 로우에 마지막으로 배치된 연산기는 상기 제1 데이터 입력 처리부로부터 가장 멀리 배치된 연산기인, 컴퓨팅 장치.
  9. 제7항에 있어서,
    상기 체이닝 패스가 복수개 형성된 경우, 상기 데이터 처리 어레이부의 짝수 번째의 로우에 첫번째로 배치된 연산기가, 입력되는 명령어에 따라, 해당 로우의 인접 연산기로부터 입력되는 제1 입력 데이터를, 다음 홀수 번째 로우에 첫번째로 배치된 연산기로 전달하도록 구성되는, 컴퓨팅 장치.
  10. 제9항에 있어서,
    상기 로우에 첫번째로 배치된 연산기는 상기 제1 데이터 입력 처리부로부터 가장 가깝게 배치된 연산기인, 컴퓨팅 장치.
  11. 제1항에 있어서,
    상기 데이터 처리 어레이부는
    임의 로우와 임의 컬럼에 대응하는 위치에 배치된 연산기 각각에 대응하여 배치되어 있으며, 상기 제2 입력 데이터를 버퍼링하였다가 대응하는 연산기로 제공하도록 구성된, 버퍼를 더 포함하는, 컴퓨팅 장치.
  12. 제11항에 있어서,
    상기 연산기의 개수와 상기 버퍼의 개수가 동일한, 컴퓨팅 장치.
  13. 제1항에 있어서,
    상기 데이터 처리 어레이부는 시스톨릭(Systolic) 어레이 구조를 가지는, 컴퓨팅 장치.
  14. 제1항에 있어서,
    상기 연산기는 상기 제1 입력 데이터와 상기 제2 입력 데이터를 연산하고, 상기 연산의 결과를 누적 처리하여 저장하도록 구성되는, 컴퓨팅 장치.
  15. 제14항에 있어서,
    상기 연산기는 상기 제1 입력 데이터를 동일 로우에 배치된 인접 연산기로전달하거나, 상기 제2 입력 데이터를 동일 컬럼에 배치된 인접 연산기로 전달하도록 구성되는, 컴퓨팅 장치.
  16. 제14항에 있어서,
    상기 연산기는
    상기 제1 입력 데이터와 상기 제2 입력 데이터를 연산하는 연산 회로;
    상기 연산 회로의 연산 결과를 누적처리하여 저장하는 저장부;
    상기 제1 입력 데이터와 상기 제2 입력 데이터를 상기 연산 회로로 전달하는 입력 인터페이스부; 및
    상기 연산 회로로부터 상기 제1 입력 데이터와 상기 제2 입력 데이터를 다른 연산기로 전달하는 출력 인터페이스부
    를 포함하는, 컴퓨팅 장치.
  17. 뉴럴 네트워크에 대한 연산을 수행하기 위한 컴퓨팅 장치로서,
    임의 로우(row)와 임의 컬럼(column)에 대응하는 위치에 배치되어 있으며, 로우 방향으로부터 입력되는 제1 입력 데이터와 컬럼 방향으로부터 입력되는 제2 입력 데이터를 연산하는 연산기를, 복수개 포함하는 데이터 처리 어레이부;
    상기 뉴럴 네트워크의 계층에 대한 상기 제1 입력 데이터를 상기 연산기들로 제공하도록 구성된, 복수의 제1 데이터 입력 처리부; 및
    상기 뉴럴 네트워크의 계층에 대한 상기 제2 입력 데이터를 상기 연산기들에 전달하도록 구성된, 복수의 제2 데이터 입력 처리부
    를 포함하며,
    상기 연산기가 추가로, 상기 제1 입력 데이터는 동일 로우 상의 인접한 다른 연산기로 전달하고, 상기 제2 입력 데이터는 동일 컬럼 상의 인접한 다른 연산기로 전달하도록 구성되며,
    상기 데이터 처리 어레이부의 제1 번째 로우의 마지막에 배치된 제1 연산기가 동일 로우의 인접 연산기로부터 제공되는 제1 입력 데이터를 제2 번째 로우의 마지막에 배치된 제2 연산기로 전달하도록 구성되고, 상기 제2 연산기는 상기 제1 연산기로부터 전달되는 상기 제1 입력 데이터를 입력받도록 구성되는, 컴퓨팅 장치.
  18. 제17항에 있어서,
    상기 데이터 처리 어레이부의 짝수 번째의 로우에 마지막으로 배치된 연산기가, 입력되는 명령어에 따라, 이전 홀수 번째 로우에 마지막으로 배치된 연산기로부터 전달되는 제1 입력 데이터를 입력받도록 구성되는, 컴퓨팅 장치.
  19. 제17항에 있어서,
    상기 연산기는 상기 제1 입력 데이터와 상기 제2 입력 데이터를 연산하고, 상기 연산의 결과를 누적 처리하여 저장하고, 누적 처리된 연산 결과를 로우 방향을 따라 상기 제1 데이터 입력 처리부로 출력하도록 구성되는, 컴퓨팅 장치.
KR1020180129313A 2017-11-29 2018-10-26 재조직 가능한 뉴럴 네트워크 컴퓨팅 장치 KR102290531B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US16/201,871 US20190164035A1 (en) 2017-11-29 2018-11-27 Device for reorganizable neural network computing

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020170162170 2017-11-29
KR20170162170 2017-11-29

Publications (2)

Publication Number Publication Date
KR20190063383A KR20190063383A (ko) 2019-06-07
KR102290531B1 true KR102290531B1 (ko) 2021-08-18

Family

ID=66850295

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180129313A KR102290531B1 (ko) 2017-11-29 2018-10-26 재조직 가능한 뉴럴 네트워크 컴퓨팅 장치

Country Status (1)

Country Link
KR (1) KR102290531B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210030653A (ko) * 2019-09-10 2021-03-18 주식회사 모빌린트 복수 개의 코어를 갖는 연산 장치
WO2021246835A1 (ko) * 2020-06-05 2021-12-09 주식회사 퓨리오사에이아이 뉴럴 네트워크 프로세싱 방법 및 이를 위한 장치
TWI788795B (zh) * 2021-02-26 2023-01-01 威強電工業電腦股份有限公司 電源管理電路及其系統

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100445264B1 (ko) * 2002-11-06 2004-08-21 학교법인 인하학원 재구성능력 및 확장능력을 가진 신경회로망 하드웨어
US20120317062A1 (en) 2011-04-08 2012-12-13 International Business Machines Corporation Reconfigurable and customizable general-purpose circuits for neural networks
US20160343452A1 (en) 2015-05-21 2016-11-24 Semiconductor Energy Laboratory Co., Ltd. Electronic Device
KR101701250B1 (ko) * 2015-08-03 2017-02-01 서울대학교산학협력단 딥 빌리프 네트워크를 위한 복수 레이어가 적층된 뉴런 어레이 및 뉴런 어레이 동작 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100445264B1 (ko) * 2002-11-06 2004-08-21 학교법인 인하학원 재구성능력 및 확장능력을 가진 신경회로망 하드웨어
US20120317062A1 (en) 2011-04-08 2012-12-13 International Business Machines Corporation Reconfigurable and customizable general-purpose circuits for neural networks
US20160343452A1 (en) 2015-05-21 2016-11-24 Semiconductor Energy Laboratory Co., Ltd. Electronic Device
KR101701250B1 (ko) * 2015-08-03 2017-02-01 서울대학교산학협력단 딥 빌리프 네트워크를 위한 복수 레이어가 적층된 뉴런 어레이 및 뉴런 어레이 동작 방법

Also Published As

Publication number Publication date
KR20190063383A (ko) 2019-06-07

Similar Documents

Publication Publication Date Title
US11164073B2 (en) Systolic neural network processor with feedback control
KR102290531B1 (ko) 재조직 가능한 뉴럴 네트워크 컴퓨팅 장치
CN111897579B (zh) 图像数据处理方法、装置、计算机设备和存储介质
CN109034373B (zh) 卷积神经网络的并行处理器及处理方法
CN107341547A (zh) 一种用于执行卷积神经网络训练的装置和方法
JP2021509747A (ja) ハードウェアベースのプーリングのシステムおよび方法
CN107766935B (zh) 多层人造神经网络
EP3710995A1 (en) Deep neural network processor with interleaved backpropagation
US20210319823A1 (en) Deep Learning Accelerator and Random Access Memory with a Camera Interface
CN110580519B (zh) 一种卷积运算装置及其方法
CN108804973B (zh) 基于深度学习的目标检测算法的硬件架构及其执行方法
US20190164035A1 (en) Device for reorganizable neural network computing
US20230376733A1 (en) Convolutional neural network accelerator hardware
WO2019182059A1 (ja) モデル生成装置、モデル生成方法及びプログラム
WO2020093669A1 (en) Convolution block array for implementing neural network application and method using the same, and convolution block circuit
CN108415881A (zh) 卷积神经网络的运算装置及方法
CN110197262B (zh) 用于lstm网络的硬件加速器
Meng et al. Ppoaccel: A high-throughput acceleration framework for proximal policy optimization
JPH076146A (ja) 並列データ処理システム
CN113627587A (zh) 一种多通道式卷积神经网络加速方法及装置
CN112766453A (zh) 一种数据处理装置及数据处理方法
CN113988280B (zh) 一种基于二值化神经网络的阵列计算加速器架构
KR102548283B1 (ko) 콘볼루션 신경망 컴퓨팅 장치
US20230082673A1 (en) Network Computer with External Memory
EP4296900A1 (en) Acceleration of 1x1 convolutions in convolutional neural networks

Legal Events

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