KR20170023708A - 콘볼루션 신경망 컴퓨팅 장치 - Google Patents

콘볼루션 신경망 컴퓨팅 장치 Download PDF

Info

Publication number
KR20170023708A
KR20170023708A KR1020160021905A KR20160021905A KR20170023708A KR 20170023708 A KR20170023708 A KR 20170023708A KR 1020160021905 A KR1020160021905 A KR 1020160021905A KR 20160021905 A KR20160021905 A KR 20160021905A KR 20170023708 A KR20170023708 A KR 20170023708A
Authority
KR
South Korea
Prior art keywords
data
unit
neural network
input
nxn
Prior art date
Application number
KR1020160021905A
Other languages
English (en)
Other versions
KR101788829B1 (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 (주)뉴로컴즈
Publication of KR20170023708A publication Critical patent/KR20170023708A/ko
Application granted granted Critical
Publication of KR101788829B1 publication Critical patent/KR101788829B1/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
    • G06K9/6218
    • 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

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)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Complex Calculations (AREA)
  • Image Analysis (AREA)

Abstract

본 발명은 디지털 신경망 컴퓨팅 기술 분야에 관한 것으로, 더욱 상세하게는 인공 신경망 데이터를 저장하는 분산형 메모리 구조 및 모든 뉴런을 파이프라인 회로에서 시분할로 처리하는 계산 구조를 포함하고, 전체 구성 요소가 하나의 시스템 클록에 동기화되는 동기화 회로(synchronized circuit)로서 동작하는, 콘볼루션 신경망 컴퓨팅 장치에 관한 것이다.
본 발명의 실시 예에 따른 콘볼루션 신경망 컴퓨팅 장치는 복수의 입력 유닛과 복수의 출력 유닛을 구비하는 복수의 콘볼루션 계층으로 이루어진 콘볼루션 신경망 컴퓨팅 장치로서, 상기 각각의 콘볼루션 계층을 복수의 부분 계층으로 분할하는 계층 분할부, 사전 결정된 부분 계층의 순서대로 콘볼루션 계산을 수행하는 계산부, 입력 데이터 및 상기 계산부로부터 계산된 출력 데이터를 저장하는 메모리부 및 상기 메모리부로부터 입력되는 데이터를 n x n 크기의 데이터로 이루어진 수용장으로 변환하여 상기 계산부에 제공하는 리셉터부(여기서 n은 사전 설정된 정수)를 포함한다.

Description

콘볼루션 신경망 컴퓨팅 장치{CONVOLUTIONAL NEURAL NETWORK COMPUTING APPARATUS}
본 발명은 디지털 신경망 컴퓨팅 기술 분야에 관한 것으로, 더욱 상세하게는 인공 신경망 데이터를 저장하는 분산형 메모리 구조 및 모든 뉴런을 파이프라인 회로에서 시분할로 처리하는 계산 구조를 포함하고, 전체 구성 요소가 하나의 시스템 클록에 동기화되는 동기화 회로(synchronized circuit)로서 동작하는, 콘볼루션 신경망 컴퓨팅 장치에 관한 것이다.
딥러닝(deep learning) 기술의 핵심 계산 모형인 콘볼루션 신경망(CNN : Convolutional Neural Network, 이하에서 "CNN"이라고 지칭함)은, 각각의 뉴런이 인간의 시각 신경계에서 중복 영역의 응답 특성과 유사한 특성을 갖도록 다중 계층으로 배치된 인공신경망의 한 종류이다.
CNN은 계층의 수가 많아질수록 복잡한 패턴의 영상 및 음성을 높은 인식률로 인식할 수 있다는 장점이 있다. 그에 따라, 오랫동안 정체 상태에 머물러 있던 영상 및 음성 인식률이 최근 들어 CNN 기술에 의해 극적으로 높아지고, ImageNet과 같은 각종 영상인식 벤치마킹시험에서 CNN 시스템들이 최고기록을 경신하고 있다. 그 결과, CNN은 영상인식, 음성인식, 언어번역 등 다양한 머신러닝(machine learning) 분야에서 각광받고 있다.
또한, CNN은, 다중 계층 퍼셉트론(multi-layered perceptron)과 같은 기존의 전통적인 신경망 모델과 비교하여, 별도의 특징 추출 과정이 필요하지 않고 파라미터(parameter)에 소요되는 데이터 양이 적어 제한된 메모리 용량으로도 구현할 수 있다는 장점이 있다.
도 1은 CNN 구조의 일 예를 도시한 도면이다.
도 1에 도시된 바와 같이, 사전 학습된 파라미터를 사용하여 이미지를 인식하는 CNN의 구조는 복수의 콘볼루션 계층(10-1, 10-2, …, 10-N)으로 이루어진다. 각각의 콘볼루션 계층들(10-1, 10-2, …, 10-N)은 복수의 유닛(a, b, c, …, x, y, z)을 포함한다.
각각의 유닛들(a, b, c, …, x, y, z)은 이차원 행렬을 이용하여 입력 이미지의 특징을 나타낸다. 각각의 유닛들(a, b, c, …, x, y, z)은 한 콘볼루션 계층의 출력 유닛과 그 다음 콘볼루션 계층의 입력 유닛으로 이용된다. 예를 들어, 유닛들(d, e, f, g)은 콘볼루션 계층(10-1)의 출력 유닛과 콘볼루션 계층(10-2)의 입력 유닛으로 이용될 수 있다. 각각의 유닛들(a, b, c, …, x, y, z)이 한 콘볼루션 계층의 입력 유닛으로 이용되면, 그 유닛을 채널(channel)이라고도 지칭하며, 각각의 유닛들(a, b, c, …, x, y, z)이 한 콘볼루션 계층의 출력 유닛으로 이용되면, 그 유닛을 특징 벡터(feature vector)라고도 지칭한다.
첫 번째 콘볼루션 계층(10-1)의 입력 유닛(a, b, c)은 인식하고자 하는 이미지를 나타내며, 통상적으로 첫 번째 콘볼루션 계층(10-1)은 입력 이미지의 적색, 녹색, 청색 성분을 각각 나타내는 세 개의 입력 유닛(a, b, c)을 포함한다.
각 콘볼루션 계층(10-1, 10-2, …, 10-N)에서, 각각의 입력 유닛들은 모든 출력 유닛과 콘볼루션 기능으로 완전히 연결된다. 예를 들어, 콘볼루션 계층(10-1)에서, 각각의 입력 유닛들(a, b, c)은 콘볼루션 계층(10-1)의 모든 출력 유닛(e, f, g, h)과 콘볼루션 기능으로 연결된다. 여기서 콘볼루션 기능은 입력 유닛에 n x n 크기의 필터를 적용하여 출력 유닛을 계산하는 기능이다. 구체적으로 콘볼루션 기능은 입력 유닛에 콘볼루션 계산을 적용하고, 콘볼루션 계산된 입력 유닛에 비선형 함수를 적용하여 출력 유닛을 계산하는 기능이다. 여기서 콘볼루션 계산은 입력 유닛의 전 영역에서 가능한 모든 n x n 크기의 부분 영역을 추출하고, 그 다음 입력 유닛과 출력 유닛 사이에 고유하게 지정된 필터의 각 단위요소들과 n x n 크기의 부분 영역의 각 값을 각각 곱한 후 합산하는 것(즉, 필터와 부분 영역 간의 내적의 곱의 합)을 의미한다. 여기서 비선형 함수는, 예를 들어, 시그모이드(sigmoid) 함수나 정류 선형 함수(ReLU : Rectified Linear Unit)를 의미한다. 여기서 부분 영역은 수용장(local receptive field)이라고도 지칭한다. 여기서 필터는 수용장의 크기에 대응하는 n x n 개의 파라미터로 구성되며, 커널(kernel)이라고도 지칭한다. 하나의 커널은 입력 유닛(즉, 채널)의 모든 부분 영역에 공통적으로 적용된다.
마지막 콘볼루션 계층(10-N)의 출력 유닛(x, y, z)은 전역 평균 통합(global average pooling) 또는 완전 연결 계층(fully-connected layer)이 추가로 적용된다. 그에 따라, CNN은 입력 이미지가 어떤 범주에 속하는지를 판단할 수 있다.
상술한 바와 같은 통상적인 CNN에 있어서, 크기가 m x m인 입력 유닛에서 크기가 n x n인 수용장을 모두 추출하여 콘볼루션 계산하면, 출력 유닛은 크기가 (m - (n - 1)) x (m - (n - 1))이 된다. 그에 따라, 출력 유닛은 입력 유닛과 비교하여 가로와 세로가 각각 n - 1만큼 줄어들게 된다. 예를 들어, 크기가 6 x 6인 입력 유닛에서, 크기가 3 x 3인 수용장을 모두 추출하여 콘볼루션 기능을 적용하면, 출력 유닛은 크기가 (6 - (3 - 1)) x (6 - (3 - 1)) = 4 x 4가 된다. 그에 따라, 출력 유닛의 크기가 줄어드는 것을 방지하고, 입력 유닛의 크기와 출력 유닛의 크기를 같도록 하기 위하여, 일반적으로 패딩(padding) 기법을 이용한다. 패딩은 홀수의 n을 사용하여 입력 이미지의 상하좌우에 각각 [n / 2] 두께의 공백을 덧씌우는 것을 의미한다. 여기서 대괄호는 가우스 기호(또는 바닥 함수(floor function))를 나타낸다.
또한, 상술한 바와 같은 통상적인 CNN에 있어서, 인접 수용장 사이의 간격은 스트라이드(stride)라고 지칭한다. 일반적으로 CNN은 스트라이드가 가로축 및 세로축을 기준으로 각각 1인 경우가 많다. 그러나 일반적으로 첫 번째 콘볼루션 계층(10-1)에서는 1보다 큰 스트라이드가 사용된다. 그런데, 스트라이드가 1보다 크면, 출력 유닛의 가로 및 세로 길이는 각각 입력 유닛의 가로 및 세로 길이보다 줄어들게 된다. 예를 들어, 스트라이드가 2인 경우, 출력 유닛의 가로 및 세로 길이는 각각 입력 유닛의 가로 및 세로 길이의 절반이 된다.
CNN은, 하나의 이미지를 분류하기 위해 적어도 n x n x m x m x Nc x Nf x Nl 번의 곱셈과 덧셈 계산이 각각 필요하므로, 대단히 계산 집약적인 계산 모델이라고 할 수 있다. 여기서 n은 수용장의 행 및 열의 길이, m은 입력 이미지의 행 및 열의 길이, Nc는 각 계층의 채널 수, Nf는 각 계층의 특징 벡터의 수, 및 Nl은 계층의 수를 나타낸다.
따라서, 상술한 이유로 CNN은 주로 그래픽 처리 장치(GPU : Graphics Processing Unit)가 장착된 PC에서 실행된다. 이는 GPU 기반 시스템이 기존의 CPU(central-processing unit) 기반 시스템과 비교하여 단위 시간에 많은 양의 계산을 수행할 수 있기 때문이다. 따라서, 현재로서는 GPU 기반 시스템이 적정한 시간에 CNN을 계산할 수 있는 유일한 대안이라 할 수 있다.
그러나 GPU 기반 시스템은 호스트 컴퓨터가 반드시 필요하고 통상적으로 수백 와트에 이르는 높은 소비전력을 소모하는 단점이 있다. 다시 말해서, GPU 기반 시스템은 많은 하드웨어 자원(코어)을 투입하여 고성능을 구현하여도 하드웨어 자원의 이용 효율이 높지 않은 단점이 있다. 이러한 단점은 무인 감시 카메라, 자동주행 자동차 등 실시간 응용에 딥러닝 기술을 적용할 때 가장 큰 걸림돌이라 할 수 있다.
따라서, 이와 같은 문제를 해결하여 CPU 또는 GPU 기반 시스템과 같이 계산 효율이 낮은 시스템 대신에 CNN에 특화된 효율적인 신경망 컴퓨팅 장치를 제공하는 것이 본 발명의 과제이다.
본 발명의 목적들은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있으며, 본 발명의 실시 예에 의해 보다 분명하게 알게 될 것이다. 또한, 본 발명의 목적 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.
본 발명의 실시 예에 따른 콘볼루션 신경망 컴퓨팅 장치는 복수의 입력 유닛과 복수의 출력 유닛을 구비하는 복수의 콘볼루션 계층으로 이루어진 콘볼루션 신경망 컴퓨팅 장치로서, 상기 각각의 콘볼루션 계층을 복수의 부분 계층으로 분할하는 계층 분할부, 사전 결정된 부분 계층의 순서대로 콘볼루션 계산을 수행하는 계산부, 입력 데이터 및 상기 계산부로부터 계산된 출력 데이터를 저장하는 메모리부 및 상기 메모리부로부터 입력되는 데이터를 n x n 크기의 데이터로 이루어진 수용장으로 변환하여 상기 계산부에 제공하는 리셉터부(여기서 n은 사전 설정된 정수)를 포함한다.
본 발명의 실시 예에 따르면, CNN의 복잡도와 상관없이 CNN을 구현할 수 있다.
본 발명의 실시 예에 따르면, 스트라이드가 1보다 큰 경우에도 콘볼루션 계산의 효율성이 저하되지 않는다.
본 발명의 실시 예에 따르면, 데이터가 메모리 장치로부터 계산 장치에 직접 제공되지 않아, 메모리 액세스에 따른 계산 속도 저하가 발생하지 않는다.
본 발명의 실시 예에 따르면, 복수의 출력 유닛을 동시에 계산하므로, 고속으로 CNN을 계산할 수 있다.
도 1은 CNN 구조의 일 예를 도시한 도면,
도 2는 본 발명의 일 실시 예에 따른 콘볼루션 신경망 컴퓨팅 장치를 도시한 도면,
도 3a는 부분 계층의 구성을 도시한 도면,
도 3b는 부분 계층의 일 예를 도시한 도면,
도 4는 리셉터부의 구조를 도시한 도면,
도 5는 입력유닛과 입력 유닛의 좌측 상단의 첫 번째 데이터를 중앙값으로 가지는 수용장을 도시한 도면,
도 6은 계산부의 구조의 일 예를 도시한 도면, 및
도 7은 계산부의 구조의 다른 예를 도시한 도면이다.
상술한 목적, 특징 및 장점은 첨부된 도면을 참조하여 상세하게 후술되어 있는 상세한 설명을 통하여 보다 명확해 질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다.
그리고 명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때 이는 "직접적으로 연결"되어 있는 경우뿐만 아니라 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한, 어떤 부분이 어떤 구성요소를 "포함" 또는 "구비"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함하거나 구비할 수 있는 것을 의미한다. 또한, 명세서 전체의 기재에 있어서 일부 구성요소들을 단수형으로 기재하였다고 해서, 본 발명이 그에 국한되는 것은 아니며, 해당 구성요소가 복수 개로 이루어질 수 있음을 알 것이다.
도 2는 본 발명의 일 실시 예에 따른 콘볼루션 신경망 컴퓨팅 장치(100)를 도시한 도면이다.
도 2에 도시된 바와 같이, 콘볼루션 신경망 컴퓨팅 장치(100)는 제어부(110), 메모리부(120), 리셉터부(130) 및 계산부(140)를 포함한다.
제어부(110)는 각 콘볼루션 계층(10-1, 10-2, …, 10-N)을 여러 개의 부분 계층으로 분할하고, 계산부(140)가 첫 번째 콘볼루션 계층(10-1)의 첫 번째 부분 계층부터 마지막 번째 콘볼루션 계층(10-N)의 마지막 부분 계층까지 차례대로 콘볼루션 기능을 적용하도록, 콘볼루션 신경망 컴퓨팅 장치(100)의 각 구성들을 제어한다. 여기서 제어부(110)는 계층 분할부라고도 지칭한다.
메모리부(120)는 외부로부터 입력 이미지(즉, 화상 입력 데이터)를 입력받고 계산부(140)의 출력 데이터(즉, 계산 결과)를 입력받는다. 메모리부(120)는 입력된(즉, 저장된) 데이터 중 현재 콘볼루션 계산될 데이터(즉, 현재 분할 계층에 대응하는 데이터)를 순차적으로 리셉터부(130)에 제공한다.
리셉터부(130)는 메모리부(120)로부터 순차적으로 입력되는 데이터를 n x n 크기의 수용장으로 변환하여 계산부(140)에 제공한다.
계산부(140)는 n x n 크기의 수용장과 그에 대응하는 n x n 크기의 필터를 이용하여 콘볼루션 계산하고, 콘볼루션 계산된 출력 유닛(즉, 출력 데이터)을 출력하여 메모리부(120)에 제공한다.
상술한 설명을 통해, 콘볼루션 신경망 컴퓨팅 장치(100)는 메모리부(120)에 저장된 데이터가 계산부(140)에서 콘볼루션 계산되어, 다시 메모리부(120)에 저장되는 피드백 구조임을 알 수 있다.
이하에서는, 도면을 참조하여, 제어부(110), 리셉터부(130) 및 계산부(140)를 보다 상세하게 설명하도록 한다.
도 3a는 부분 계층의 구성을 도시한 도면 및 도 3b는 부분 계층의 일 예를 도시한 도면이다.
도 3a에 도시된 바와 같이, 제어부(110)는 부분 계층이 한 개의 입력 유닛과 두 개의 출력 유닛을 포함하도록 분할한다.
예를 들어, 도 3b에 도시된 바와 같이, 부분 계층은 첫 번째 콘볼루션 계층(10-1)의 입력 유닛(a)과 출력 유닛(d, e)을 포함하거나, 부분 계층은 두 번째 콘볼루션 계층(10-2)의 입력 유닛(e)과 출력 유닛(h, i)을 포함하도록 분할될 수 있다.
도 4는 리셉터부(130)의 구조를 도시한 도면이다.
도 4에 도시된 바와 같이, 리셉터부(130)는 n x n 개의 시프트레지스터(131)와 n - 1개의 가변 시프트레지스터 행렬(132)을 포함한다. n 개의 시프트레지스터(131)와 한 개의 가변 시프트레지스터 행렬(132)은 서로 교번하여 직렬로 연결된 구조를 가진다. 가변 시프트레지스터 행렬(132)의 길이는 시프트레지스터(131) n 개와 한 개의 가변 시프트레지스터 행렬(132)에 포함된 시프트레지스터의 개수의 합이 m이 되도록 가변한다. 예를 들어, m=7, n=3인 경우, 가변 시프트레지스터 행렬(132)에 포함된 시프트레지스터의 개수는 4가 된다. 여기서, n x n 개의 시프트레지스터(131)와 n - 1개의 가변 시프트레지스터 행렬(132)을 시프트레지스터부(또는 시프트레지스터 회로)라고 지칭한다.
도 4에 도시된 바와 같이, 리셉터부(130)는 매 클록 주기마다 메모리부(120)로부터 데이터를 입력받는다. 입력된 데이터는 매 클록 주기마다 시프트되어 n x n 개의 시프트레지스터(131)와 n - 1개의 가변 시프트레지스터 행렬(132)에 순차적으로 입력된다.
매 클록 주기마다 n x n 개의 시프트레지스터(131)에 저장된 데이터(즉, 수용장)는 마스크(133)로 출력된다.
마스크부(133)는 사전 결정된 순서에 따라 필요한 경우 입력된 n x n 크기 데이터의 일부를 공백값으로 설정한 후 계산부(140)에 출력한다.
도 4에 도시된 바와 같이, 마스크부(133)는 데이터 입력 카운터(134) 및 공백값 설정부(135)를 포함한다.
데이터 입력 카운터(134)는 열 카운트 값(cnt_row)과 행 카운트 값(cnt_column)을 가지고, 현재 콘볼루션 계산 중인 부분 계층에서, 메모리부(120)로부터 리셉터부(130)에 입력되는 데이터의 개수를 카운트한다. 구체적으로, 데이터 입력 카운터(134)는, 리셉터부(130)에 데이터가 입력되는 매 클록 주기마다 열 카운트 값(cnt_row)을 1 증가시킨다. 그 다음 데이터 입력 카운터(134)는 열 카운트 값(cnt_row)이 m인 경우, 그 다음 클록 주기에서 열 카운트 값(cnt_row)을 1로 리셋하고 행 카운트 값(cnt_column)을 1 증가시킨다. 그 다음 데이터 입력 카운터(134)는 행 카운트 값(cnt_column)이 m인 경우, 그 다음 클록 주기에서 행 카운트 값(cnt_column)을 1로 리셋한다.
공백값 설정부(135)는 데이터 입력 카운터(134)의 열 카운트 값(cnt_row) 및 행 카운트 값(cnt_column)에 따라, n x n 크기 데이터의 행 또는 열을 공백값으로 설정한다. 구체적으로, 열 카운트 값(cnt_row)이 n 이하인 경우, 공백값 설정부(135)는 n x n 크기 데이터의 열 카운트 값(cnt_row) + 1번째 열부터 n 번째 열까지 공백값으로 설정한다. 또한, 행 카운트 값(cnt_column)이 n 이하인 경우, 공백값 설정부(135)는 n x n 크기 데이터의 행 카운트 값(cnt_column) + 1번째 행부터 n 번째 행까지 공백값으로 설정한다.
상술한 구조의 리셉터부(130)는, 메모리부(120)로부터 입력 유닛의 첫 행의 첫 열부터 열 우선(또는 행 우선)으로 매 클록 주기마다 데이터가 입력되면, n x n 크기의 데이터를 계산부(140)에 출력할 수 있다. 이때, 출력되는 n x n 크기의 데이터는 m x m 크기의 입력 유닛에서 임의 n x n 영역을 스캔(scan)하여 추출한 것과 같은 값을 가진다.
예를 들어, 리셉터부(130)에 입력 유닛의 첫 번째 데이터부터 [n / 2] * m + [n / 2] + 1번째 데이터까지 입력된 경우, 도 5에 도시된 바와 같이, 리셉터부(130)는 입력 유닛의 좌측 상단의 첫 번째 데이터를 중앙값으로 가지는 수용장을 마스크부(133)로 출력하게 된다. 이 경우, 마스크부(133)는 입력받은 수용장의 유효 데이터(또는 유효 영역)를 제외한 데이터를 사전 지정된 공백값으로 대체하고, 일부 데이터가 사전 지정된 공백값으로 대체된 수용장을 계산부(140)에 출력한다.
또한, 상술한 구조의 리셉터부(130)는, 입력 유닛에 패딩을 씌우지 않고도, 입력 유닛에 패딩을 씌워서 추출한 수용장과 동일한 수용장을 계산부(140)에 출력할 수 있다.
따라서, 상술한 구조의 리셉터부(130)는, 상기와 같은 시프트레지스터 회로를 사용하여, 메모리부(120)에 상대적으로 적은 횟수로 액세스하면서 동시에 계산부(140)가 요구하는 많은 수의 데이터를 쉬지 않고 제공하여, 콘볼루션 신경망 컴퓨팅 장치(100)의 효율을 극대화할 수 있는 장점이 있다.
그러나 상술한 구조의 리셉터부(130)는, 스트라이드가 1보다 크면 입력 유닛의 데이터를 건너뛰어야 하기 때문에, 쉬는 클록 주기가 많이 발생한다. 예를 들어, 일반적으로 스트라이드가 s이면, 유효한 데이터가 출력되는 클록 주기는 전체의 1 / (s * s)가 된다. 따라서, s = 2이면, 1/4의 클록 주기에는 유효한 데이터가 출력되고, 나머지 3/4의 클록 주기에는 유효한 데이터가 출력되지 않는다. 그에 따라, 스트라이드가 1보다 크면 콘볼루션 신경망 컴퓨팅 장치(100)의 효율성이 저하되는 문제점이 있다.
상기와 같은 문제점은, 스트라이드가 s인 경우, 메모리부(120)가 매 클록 주기마다 s x s 크기를 가지는 데이터를 출력하고, 리셉터부(130)도 내에서도 s x s 크기의 데이터를 하나의 데이터인 것으로 처리하여 해결할 수 있다.
상기와 같이, 리셉터부(130)도 내에서도 s x s 크기의 데이터를 하나의 데이터인 것으로 처리할 경우, 리셉터부(130) 내에서 크기가 s x s 크기의 데이터가 동시에 시프트되므로, 리셉터부(130)는 임의 클록 주기에서 유효하지 않은 데이터를 생산하지 않고, 매 클록 주기마다 유효한 데이터를 출력할 수 있다. 따라서, 상술한 방식을 이용하면 마찬가지로 콘볼루션 신경망 컴퓨팅 장치(100)의 효율성을 극대화 할 수 있다.
상술한 구조의 리셉터부(130)는, n x n 크기의 수용장을 계산부(140)가 메모리부(120)로부터 직접 제공받을 때 발생할 수 있는 문제점, 즉, 수용장을 계산부(140)가 메모리부(120)로부터 직접 제공받으려면 많은 수의 메모리 액세스가 필요하여 콘볼루션 신경망 컴퓨팅 장치(100)의 효율이 저하되는 문제점을 해결할 수 있다. 즉, 리셉터부(130)가 메모리부(120)로부터 입력 데이터를 순차적으로(즉, 매 클록 주기마다) 제공받고, 순차적으로 제공받은 입력 데이터를 n x n 크기의 수용장으로 변환하여 계산부(140)에 제공함으로써, 콘볼루션 신경망 컴퓨팅 장치(100)의 효율이 저하되는 문제점을 해결할 수 있다.
도 6은 계산부(140)의 구조의 일 예를 도시한 도면이다.
계산부(140)는 하나의 입력 유닛과 Nout 개의 출력 유닛 사이에서 커널의 크기가 n x n인 콘볼루션 계산을 동시에 하여야 한다. 이를 위하여, 계산부(140)는, 도 6에 도시된 바와 같이, Nout 개의 계산 수단(150)을 포함하고, Nout 개의 계산 수단(150)은 서로 병렬로 연결되고, 각각의 계산 수단(150)의 출력 데이터는 메모리부(120)에 입력된다.
도 6에 도시된 바와 같이, 각각의 계산 수단(150)은 n x n 개의 곱셈기(141), n x n 개의 파라미터 메모리(142) 및 한 개의 병렬 합산기(143)를 포함한다. 그에 따라, 계산부(140)는 n x n x Nout 개의 곱셈기(141), n x n x Nout 개의 파라미터 메모리(142) 및 Nout 개의 병렬 합산기(143)를 포함한다.
리셉터부(130)로부터 매 클록 주기마다 입력되는 n x n 크기의 수용장은 각각 계산 수단(150)에 입력된다. 계산 수단(150)에 입력된 수용장을 구성하는 각각의 데이터는 대응하는 곱셈기(141)에 매 클록 주기마다 입력된다.
곱셈기(141)는 매 클록 주기마다 입력된 데이터와 대응하는 파라미터 메모리(142)에 저장된 파리미터 값을 곱하고, 그 결과를 병렬 합산기(143)에 입력한다.
병렬 합산기(143)는 매 클록 주기마다 n x n 개의 곱셈기(141)로부터 입력되는 데이터를 모두 더하고, 그 결과를 메모리부(120)에 출력한다.
상술한 구조의 계산부(140)는 많은 수의 파라미터 메모리(142)가 계산 회로(예컨대, 곱셈기(141)) 주변에 제공되어 파라미터 메모리(142)와 계산 회로 사이의 경로를 줄이고 높은 메모리 접근 대역폭을 제공한다는 장점이 있다.
상술한 구조의 계산부(140)는 복수의 입력 유닛이 제공되어 복수의 출력 유닛을 출력하는 다양한 구조로 구현될 수도 있다. 그러나, 하나의 입력 유닛을 계산부(140)에 제공하기 위해서는 입력 유닛당 메모리부(120)와 리셉터부(130)가 각각 필요하다. 따라서, 복수의 입력 유닛을 동시에 계산부(140)에 제공하는 구조는 비효율적이고, 도 6에 도시된 바와 같이, 하나의 입력 유닛을 계산부(140)에 제공하여 복수의 출력 유닛으로 출력하는 구조가 더 효율적임을 알 수 있다.
한편, 상술한 구조의 파라미터 메모리(142)는, CNN의 모든 콘볼루션 계층의 파라미터 값을 저장해야 하므로, 통상적으로 수백만 개에서 수천만 개의 파라미터 값을 저장해야 하는 문제가 있다. 그에 따라, 다른 신경망 모델에 비해 적은 수의 파라미터로 구성되는 CNN의 장점에도 불구하고, 통상적으로 계산 기능을 구현하기 위한 실리콘 기술이 DRAM(Dynamic Random Access Memory)과 같은 메모리 전용 실리콘 기술과 다르기 때문에, 상술한 구조의 파라미터 메모리(142)가 많은 메모리 용량을 가지도록 구현하기가 어렵다는 현실적인 문제가 있다. 이러한 문제점은 3D 실리콘 기술이나 임베디드 DRAM과 같은 기술에 의해 극복될 수 있으나, FPGA(Field Programmable Gate Array)와 같은 기존 부품으로는 해결하기가 어려우며 신규 개발에 많은 투자비가 소요되는 문제점이 있다.
상기와 같은 문제점은 복수의 파라미터 메모리(142)를 중앙 파라미터 메모리(144)와 복수의 시프트레지스터(145, 146)로 대체하여 해결할 수 있다(도 7 참조).
도 7은 계산부(140)의 구조의 다른 예를 도시한 도면이다.
도 7에 도시된 바와 같이, 중앙 파라미터 메모리(144)는 서로 직렬로 연결된 n x n x Nout 개의 메인 메인 시프트레지스터(145)의 일측 종단과 연결되고, 연결된 메인 메인 시프트레지스터(145)에 파라미터 값을 입력한다.
도 7에 도시된 바와 같이, 서로 직렬로 연결된 n x n x Nout 개의 메인 메인 시프트레지스터(145)에 입력된 파리미터 값은 매 클록 주기마다 시프트되어, 메인 시프트레지스터(145)의 타측 종단에 입력된다.
도 7에 도시된 바와 같이, 각각의 메인 시프트레지스터(145)는 대응하는 분기 시프트레지스터(146)와 각각 연결되고, 저장된 파리미터 값을 대응하는 분기 시프트레지스터(146)에 전달한다.
각각의 곱셈기(141)는 대응하는 분기 시프트레지스터(146)와 각각 연결되고, 연결된 분기 시프트레지스터(146)로부터 파리미터 값을 입력받는다.
제어부(110)는 곱셈기(141)가 곱셈을 시작하기 전에(즉, 임의 부분 계층에 적용될 콘볼루션 계산을 하기 전) 중앙 파라미터 메모리(144)로부터 파라미터 값을 하나씩 출력하여 메인 시프트레지스터(145)를 통해 시프트시키고, 메인 시프트레지스터(145)의 타측 종단까지 파라미터 값이 시프트되었으면, 메인 시프트레지스터(145)에 저장된 파라미터 값을 분기 시프트레지스터(146)로 시프트시킨다. 그 다음, 곱셈기(141)는 분기 시프트레지스터(146)에 저장된 파라미터 값을 입력된 데이터와 곱한다.
콘볼루션 계산이 수행되는 동안에 제어부(110)는 다시 중앙 파라미터 메모리(144)에서 다음 부분 계층에 적용될 콘볼루션 계산에 사용할 파라미터 값을 메인 시프트레지스터(145)에 입력하고, 현재 콘볼루션 계산이 끝나자마자 분기 시프트레지스터(146)에 다음 부분 계층에 적용될 콘볼루션 계산에 사용할 파라미터 값을 시프트시킨다.
이와 같은 방식을 통해, 곱셈기(141)에 파라미터 값을 입력하기 위한 소요되는 시간이 전체 계산 시간에 영향을 주지 않는다. 예를 들어, 120 x 120 크기의 입력 유닛을 계산부(140)가 임의 부분 계층에서 콘볼루션 계산하는데 소요되는 시간은 총 14400 클록 주기이며, 계산부(140) 내의 곱셈기(141)의 개수가 총 150개이면, 14400 클록 주기 중 150 클록 주기만으로도 다음 부분 계층에서 콘볼루션 계산하는데 필요한 파라미터를 중앙 파라미터 메모리(144)로부터 메인 시프트레지스터(145)에 입력할 수 있다. 이러한 방식을 이용할 수 있는 이유는, 콘볼루션 신경망에서는 하나의 커널(파라미터 그룹)이 전체 수용장에 공통으로 적용되어 계산되기 때문이다.
상술한 바와 같은, 본 발명의 일 실시 예에 따른 콘볼루션 신경망 컴퓨팅 장치(100)는, CNN의 일부분을 하드웨어로 구현하고, 계산부(140)를 CNN의 모든 부분 계층 계산에 재사용하므로, 전체 CNN을 하드웨어로 구현할 수 있다. 그에 따라, CPU 또는 GPU 기반 시스템과 같이 전체 CNN을 하드웨어로 구현하기 위해 대규모의 하드웨어가 필요했던 문제점을 극복할 수 있다. 따라서, 본 발명의 일 실시 예에 따른 콘볼루션 신경망 컴퓨팅 장치(100)는 적은 수의 하드웨어를 이용하여 복잡한 CNN도 용이하게 설계할 수 있고, 원하는 복잡도의 CNN을 설계할 수 있는 장점이 있다. 그에 따라, 본 기술은 CNN의 설계시에 융통성을 제공할 수 있다.
이상과 같이 본 발명은 비록 한정된 실시 예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시 예에 한정되는 것은 아니며, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 다양한 치환, 변형 및 변경이 가능하다.
그러므로 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.

Claims (8)

  1. 복수의 입력 유닛과 복수의 출력 유닛을 구비하는 복수의 콘볼루션 계층으로 이루어진 콘볼루션 신경망에 있어서의 콘볼루션 신경망 컴퓨팅 장치로서,
    상기 각각의 콘볼루션 계층을 복수의 부분 계층으로 분할하는 계층 분할부;
    부분 계층을 사전 결정된 순서대로 콘볼루션 계산을 수행하는 계산부;
    외부 장치로부터의 화상 입력 데이터 및 상기 계산부로부터 계산된 출력 데이터를 저장하는 메모리부; 및
    상기 메모리부로부터 상기 입력 데이터 및 출력 데이터를 입력받아 상기 입력된 데이터를 n x n 크기의 데이터로 이루어진 수용장으로 변환하여 상기 계산부에 제공하는 리셉터부(여기서 n은 사전 설정된 정수)
    를 포함하는 콘볼루션 신경망 컴퓨팅 장치.
  2. 제 1 항에 있어서,
    상기 계층 분할부는,
    상기 부분 계층의 각각이 하나의 입력 유닛과 복수의 출력 유닛을 구비하도록, 각각의 콘볼루션 계층을 분할하는
    콘볼루션 신경망 컴퓨팅 장치.
  3. 제 1 항에 있어서,
    상기 리셉터부는,
    상기 메모리부로부터 상기 입력 데이터 및 출력 데이터를 입력받아 매 클록 주기마다 순차적으로 상기 입력된 데이터를 상기 n x n 크기의 데이터로 이루어진 수용장으로 변환하는 시프트레지스터부; 및
    상기 n x n 크기의 데이터로 이루어진 수용장의 데이터 중 일부 데이터를 사전 결정된 순서대로 공백값으로 설정하여, 상기 계산부에 제공하는 마스크부를 포함하는
    콘볼루션 신경망 컴퓨팅 장치.
  4. 제 3 항에 있어서,
    상기 시프트레지스터부는,
    이웃하는 상기 수용장들 간의 간격이 2 이상인 경우,
    상기 메모리부로부터 매 클록 주기마다 순차적으로 s x s 크기의 데이터를 입력받고(여기서 s는 이웃하는 수용장 간의 간격을 지칭함), 상기 입력된 s x s 크기의 데이터를 상기 n x n 크기의 데이터로 이루어진 수용장으로 변환하는
    콘볼루션 신경망 컴퓨팅 장치.
  5. 제 3 항 또는 제 4 항에 있어서,
    상기 마스크부는
    상기 메모리부로부터 상기 리셉터부에 입력되는 데이터의 개수를 카운트하는 데이터 입력 카운터; 및
    상기 데이터 입력 카운터의 카운트에 따라 n x n 크기 데이터의 행 또는 열을 공백값으로 설정하여, 상기 계산부에 제공하는 공백값 설정부를 포함하는
    콘볼루션 신경망 컴퓨팅 장치.
  6. 제 1 항에 있어서,
    상기 계산부는,
    상기 n x n 크기의 데이터로 이루어진 수용장에 대하여 콘볼루션 계산을 수행하는 복수의 계산기를 포함하는
    콘볼루션 신경망 컴퓨팅 장치.
  7. 제 6 항에 있어서,
    상기 계산기는
    상기 콘볼루션 계산을 위한 n x n 개의 사전 설정된 파라미터 값들이 각각 저장된 n x n 개의 파라미터 메모리;
    상기 n x n 크기의 데이터로 이루어진 수용장의 각 데이터와 상기 파라미터 메모리 내의 상기 각 데이터에 대응하는 상기 파라미터 값을 곱하는 n x n 개의 곱셈기; 및
    상기 n x n 개의 곱셈기의 출력 결과들을 모두 합산하는 병렬 합산기를 포함하는
    콘볼루션 신경망 컴퓨팅 장치.
  8. 제 6 항에 있어서,
    상기 계산기는
    상기 콘볼루션 계산을 위한 n x n 개의 사전 설정된 파라미터 값들이 모두 저장된 중앙 파라미터 메모리;
    상기 중앙 파라미터 메모리로부터 입력되는 상기 파라미터 값들이 일측 종단부터 타측 종단까지 시프트되는 메인 시트프레지스터;
    상기 메인 시트프레지스터에서 분기하고, 상기 메인 시트프레지스터로부터 시프트되는 상기 파라미터 값들을 상기 대응하는 n x n 개의 곱셈기에 제공하는 분기 시프트레지스터;
    상기 n x n 크기의 데이터로 이루어진 수용장의 각 데이터와 상기 파라미터 메모리 내의 상기 각 데이터에 대응하는 상기 파라미터 값을 곱하는 n x n 개의 곱셈기; 및
    상기 n x n 개의 곱셈기의 출력 결과들을 모두 합산하는 병렬 합산기;
    를 포함하는 콘볼루션 신경망 컴퓨팅 장치.
KR1020160021905A 2015-08-24 2016-02-24 콘볼루션 신경망 컴퓨팅 장치 KR101788829B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020150118910 2015-08-24
KR20150118910 2015-08-24

Publications (2)

Publication Number Publication Date
KR20170023708A true KR20170023708A (ko) 2017-03-06
KR101788829B1 KR101788829B1 (ko) 2017-10-20

Family

ID=58399004

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160021905A KR101788829B1 (ko) 2015-08-24 2016-02-24 콘볼루션 신경망 컴퓨팅 장치

Country Status (1)

Country Link
KR (1) KR101788829B1 (ko)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107704923A (zh) * 2017-10-19 2018-02-16 珠海格力电器股份有限公司 卷积神经网络运算电路
KR20180128267A (ko) 2017-05-23 2018-12-03 고려대학교 산학협력단 양방향 선입 선출 메모리와 이를 이용하는 컨볼루션 연산 처리 장치
WO2018218651A1 (en) * 2017-06-02 2018-12-06 Nokia Technologies Oy Artificial neural network
JP2019028616A (ja) * 2017-07-27 2019-02-21 トヨタ自動車株式会社 識別装置
KR20190028242A (ko) * 2017-09-08 2019-03-18 삼성전자주식회사 뉴럴 네트워크 학습 방법 및 장치
CN109558937A (zh) * 2017-09-27 2019-04-02 三星电子株式会社 神经网络系统和神经网络系统的操作方法
WO2019132308A1 (ko) * 2017-12-29 2019-07-04 포항공과대학교 산학협력단 커널 하드웨어 장치
CN111133457A (zh) * 2017-09-26 2020-05-08 三星电子株式会社 电子设备及其控制方法
KR20200054372A (ko) * 2018-11-06 2020-05-20 전자부품연구원 클라우드-엣지 시스템 및 이의 데이터 처리 방법
CN111295675A (zh) * 2017-11-14 2020-06-16 三星电子株式会社 用于使用内核来处理卷积运算的设备和方法
KR20200087157A (ko) * 2017-11-14 2020-07-20 어드밴스드 마이크로 디바이시즈, 인코포레이티드 저전력 컨볼루션 신경망 추론 애플리케이션을 위한 메모리 대역폭 감소 기술
CN112133342A (zh) * 2019-06-25 2020-12-25 中电海康集团有限公司 存储器
KR102548283B1 (ko) * 2021-12-22 2023-06-27 (주)뉴로컴즈 콘볼루션 신경망 컴퓨팅 장치

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102107077B1 (ko) 2018-11-20 2020-05-06 주식회사 아나패스 컨볼루션 신경망 추론에서 컨볼루션 연산을 수행하기 위한 라인 단위 메모리 관리 방법 및 그 추론 장치

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5376920B2 (ja) * 2008-12-04 2013-12-25 キヤノン株式会社 コンボリューション演算回路、階層的コンボリューション演算回路及び物体認識装置
US9202144B2 (en) 2013-10-30 2015-12-01 Nec Laboratories America, Inc. Regionlets with shift invariant neural patterns for object detection

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180128267A (ko) 2017-05-23 2018-12-03 고려대학교 산학협력단 양방향 선입 선출 메모리와 이를 이용하는 컨볼루션 연산 처리 장치
US10528640B2 (en) 2017-05-23 2020-01-07 Korea University Research And Business Foundation Bi-directional FIFO memory and convolution processing device using the same
WO2018218651A1 (en) * 2017-06-02 2018-12-06 Nokia Technologies Oy Artificial neural network
US11651230B2 (en) 2017-06-02 2023-05-16 Nokia Technologies Oy Artificial neural network
JP2019028616A (ja) * 2017-07-27 2019-02-21 トヨタ自動車株式会社 識別装置
US11586923B2 (en) 2017-09-08 2023-02-21 Samsung Electronics Co., Ltd. Neural network learning method and device
KR20190028242A (ko) * 2017-09-08 2019-03-18 삼성전자주식회사 뉴럴 네트워크 학습 방법 및 장치
CN111133457B (zh) * 2017-09-26 2023-10-24 三星电子株式会社 电子设备及其控制方法
CN111133457A (zh) * 2017-09-26 2020-05-08 三星电子株式会社 电子设备及其控制方法
CN109558937A (zh) * 2017-09-27 2019-04-02 三星电子株式会社 神经网络系统和神经网络系统的操作方法
CN109558937B (zh) * 2017-09-27 2023-11-28 三星电子株式会社 神经网络系统和神经网络系统的操作方法
CN107704923A (zh) * 2017-10-19 2018-02-16 珠海格力电器股份有限公司 卷积神经网络运算电路
CN111295675A (zh) * 2017-11-14 2020-06-16 三星电子株式会社 用于使用内核来处理卷积运算的设备和方法
KR20200087157A (ko) * 2017-11-14 2020-07-20 어드밴스드 마이크로 디바이시즈, 인코포레이티드 저전력 컨볼루션 신경망 추론 애플리케이션을 위한 메모리 대역폭 감소 기술
CN111295675B (zh) * 2017-11-14 2024-03-05 三星电子株式会社 用于使用内核来处理卷积运算的设备和方法
WO2019132308A1 (ko) * 2017-12-29 2019-07-04 포항공과대학교 산학협력단 커널 하드웨어 장치
KR20200054372A (ko) * 2018-11-06 2020-05-20 전자부품연구원 클라우드-엣지 시스템 및 이의 데이터 처리 방법
CN112133342A (zh) * 2019-06-25 2020-12-25 中电海康集团有限公司 存储器
CN112133342B (zh) * 2019-06-25 2022-05-06 中电海康集团有限公司 存储器
KR102548283B1 (ko) * 2021-12-22 2023-06-27 (주)뉴로컴즈 콘볼루션 신경망 컴퓨팅 장치

Also Published As

Publication number Publication date
KR101788829B1 (ko) 2017-10-20

Similar Documents

Publication Publication Date Title
KR101788829B1 (ko) 콘볼루션 신경망 컴퓨팅 장치
CN111667051B (zh) 适用边缘设备的神经网络加速器及神经网络加速计算方法
CN107578098B (zh) 基于脉动阵列的神经网络处理器
Yepez et al. Stride 2 1-D, 2-D, and 3-D Winograd for convolutional neural networks
CN110458279B (zh) 一种基于fpga的二值神经网络加速方法及系统
JP7007488B2 (ja) ハードウェアベースのプーリングのシステムおよび方法
US11645529B2 (en) Sparsifying neural network models
CN111897579B (zh) 图像数据处理方法、装置、计算机设备和存储介质
JP2021522565A (ja) 並列分散テンソル計算用のニューラル・ハードウェア・アクセラレータ
CN109844738A (zh) 运算处理电路和识别系统
WO2018132718A1 (en) Methods and apparatus for matrix processing in a convolutional neural network
CN107239824A (zh) 用于实现稀疏卷积神经网络加速器的装置和方法
CN108170640B (zh) 神经网络运算装置及应用其进行运算的方法
CN117933314A (zh) 处理装置、处理方法、芯片及电子装置
CN110580519B (zh) 一种卷积运算装置及其方法
CN114781629B (zh) 基于并行复用的卷积神经网络的硬件加速器及并行复用方法
Chang et al. VSCNN: Convolution neural network accelerator with vector sparsity
CN112016522B (zh) 一种视频数据处理方法、系统及相关组件
CN112541972B (zh) 一种视点图像处理方法及相关设备
US20230065725A1 (en) Parallel depth-wise processing architectures for neural networks
WO2023122896A1 (zh) 一种数据处理方法和装置
JP6888073B2 (ja) チップ装置および関連製品
CN113657587A (zh) 基于fpga的可变形卷积加速方法及装置
JP6888074B2 (ja) チップ装置および関連製品
Solovyev et al. Real-Time Recognition of Handwritten Digits in FPGA Based on Neural Network with Fixed Point Calculations

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