KR20200029661A - 뉴럴 프로세싱 시스템 - Google Patents

뉴럴 프로세싱 시스템 Download PDF

Info

Publication number
KR20200029661A
KR20200029661A KR1020180106917A KR20180106917A KR20200029661A KR 20200029661 A KR20200029661 A KR 20200029661A KR 1020180106917 A KR1020180106917 A KR 1020180106917A KR 20180106917 A KR20180106917 A KR 20180106917A KR 20200029661 A KR20200029661 A KR 20200029661A
Authority
KR
South Korea
Prior art keywords
end module
neural processing
data
module
processing unit
Prior art date
Application number
KR1020180106917A
Other languages
English (en)
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 KR1020180106917A priority Critical patent/KR20200029661A/ko
Priority to US16/507,995 priority patent/US11443183B2/en
Priority to TW108127870A priority patent/TWI805820B/zh
Priority to CN201910764175.2A priority patent/CN110889499A/zh
Publication of KR20200029661A publication Critical patent/KR20200029661A/ko
Priority to US17/895,190 priority patent/US11625606B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/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/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/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/06Clock generators producing several clock signals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof

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)
  • Molecular Biology (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Neurology (AREA)
  • Power Sources (AREA)
  • Image Analysis (AREA)
  • Hardware Redundancy (AREA)
  • Electrotherapy Devices (AREA)
  • Feedback Control In General (AREA)

Abstract

뉴럴 프로세싱 시스템(neural processing system)이 제공된다. 뉴럴 프로세싱 시스템은, 제1 특징 맵(feature map) 및 제1 가중치를 이용하여 특징 추출 연산을 수행하고 제1 연산 결과 및 제2 연산 결과를 출력하는 제1 프론트엔드 모듈; 제2 특징 맵 및 제2 가중치를 이용하여 특징 추출 연산을 수행하고 제3 연산 결과 및 제4 연산 결과를 출력하는 제2 프론트엔드 모듈; 상기 제1 프론트엔드 모듈로부터 제공되는 제1 연산 결과와, 제2 브릿지(bridge)를 통해 상기 제2 프론트엔드 모듈로부터 제공되는 제4 연산 결과를 입력받아 상기 제1 연산 결과 및 상기 제4 연산 결과를 합산 처리하는 제1 백엔드 모듈; 및 상기 제2 프론트엔드 모듈로부터 제공되는 제3 연산 결과와, 제1 브릿지를 통해 상기 제1 프론트엔드 모듈로부터 제공되는 제2 연산 결과를 입력받아 상기 제3 연산 결과 및 상기 제2 연산 결과를 합산 처리하는 제2 백엔드 모듈을 포함한다.

Description

뉴럴 프로세싱 시스템{NEURAL PROCESSING SYSTEM}
본 발명은 뉴럴 프로세싱 시스템에 관한 것이다.
딥 러닝(deep learning)은 다중 처리 계층을 갖는 심화 그래프(deep graph)를 이용하여 입력 데이터에서 높은 레벨의 추상화를 모델링하려는 알고리즘 집합에 기초한 연산 아키텍처를 말한다. 일반적으로 딥 러닝 아키텍처에는 다수의 뉴런 계층과 파라미터들을 포함할 수 있다. 딥 러닝 아키텍처 중 CNN(Convolutional Neural Network)은 이미지 분류, 이미지 캡션 생성, 시각적 질문 응답 및 자동 운전 차량과 같은, 많은 인공 지능 및 머신 러닝 어플리케이션에서 널리 사용되고 있다.
CNN 시스템은 예컨대 이미지의 분류를 위해 수많은 파라미터를 포함하고 수많은 연산을 필요로 하기 때문에 높은 복잡도를 가진다. 이에 따라 CNN 시스템을 구현하기 위해서는 하드웨어 리소스에 대한 비용이 문제가 되고, 하드웨어 리소스가 소모하는 전력의 양 역시 문제가 된다. 특히 최근 모바일 시스템에 구현되는 CNN의 경우 비용 및 전력 소모가 낮으면서도 인공 지능을 구현할 수 있는 아키텍처가 요구된다.
본 발명이 해결하고자 하는 기술적 과제는, 비용 및 전력 소모가 낮으면서도 인공 지능을 구현할 수 있는 뉴럴 네트워크 시스템을 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 해당 기술 분야의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 달성하기 위한 본 발명의 일 실시예에 따른 뉴럴 프로세싱 시스템은, 제1 특징 맵(feature map) 및 제1 가중치를 이용하여 특징 추출 연산을 수행하고 제1 연산 결과 및 제2 연산 결과를 출력하는 제1 프론트엔드 모듈; 제2 특징 맵 및 제2 가중치를 이용하여 특징 추출 연산을 수행하고 제3 연산 결과 및 제4 연산 결과를 출력하는 제2 프론트엔드 모듈; 제1 프론트엔드 모듈로부터 제공되는 제1 연산 결과와, 제2 브릿지(bridge)를 통해 제2 프론트엔드 모듈로부터 제공되는 제4 연산 결과를 입력받아 제1 연산 결과 및 제4 연산 결과를 합산 처리하는 제1 백엔드 모듈; 및 제2 프론트엔드 모듈로부터 제공되는 제3 연산 결과와, 제1 브릿지를 통해 제1 프론트엔드 모듈로부터 제공되는 제2 연산 결과를 입력받아 제3 연산 결과 및 제2 연산 결과를 합산 처리하는 제2 백엔드 모듈을 포함한다.
상기 기술적 과제를 달성하기 위한 본 발명의 다른 실시예에 따른 뉴럴 프로세싱 시스템은, 제1 프론트엔드 모듈 및 제1 백엔드 모듈을 포함하는 제1 뉴럴 프로세싱 유닛; 및 제1 뉴럴 프로세싱 유닛 및, 제1 뉴럴 프로세싱 유닛과 다른 클럭 도메인에서 동작하는 제2 뉴럴 프로세싱 유닛에 전기적으로 접속된 브릿지 유닛을 포함하고, 제1 프론트엔드 모듈은, 제1 특징 맵 및 제1 가중치를 이용하여 특징 추출 연산을 수행한 제1 연산 결과 중 일부를 제1 백엔드 모듈에 제공하고, 브릿지 유닛은, 제2 뉴럴 프로세싱 유닛에서 수행된 제2 연산 결과 중 일부를 제1 백엔드 모듈에 제공하고, 제1 백엔드 모듈은, 제1 연산 결과 중 일부와 제2 연산 결과 중 일부를 합산 처리한다.
상기 기술적 과제를 달성하기 위한 본 발명의 또 다른 실시예에 따른 뉴럴 프로세싱 시스템은, 제1 프론트엔드 모듈 및 제1 백엔드 모듈을 포함하는 제1 뉴럴 프로세싱 유닛; 제2 프론트엔드 모듈 및 제2 백엔드 모듈을 포함하는 제2 뉴럴 프로세싱 유닛; 및 특징 추출을 수행할 데이터 중 제1 데이터를 제1 뉴럴 프로세싱 유닛에 할당하고, 데이터 중 제2 데이터를 제2 뉴럴 프로세싱 유닛에 할당하는 워크로드 관리부를 포함하고, 제1 프론트엔드 모듈은, 제1 특징 맵 및 제1 가중치를 이용하여 제1 데이터에 대한 특징 추출 연산을 수행하고 제1 연산 결과 및 제2 연산 결과를 출력하고, 제2 프론트엔드 모듈은, 제2 특징 맵 및 제2 가중치를 이용하여 제2 데이터에 대한 특징 추출 연산을 수행하고 제3 연산 결과 및 제4 연산 결과를 출력하고, 제1 백엔드 모듈은, 제1 연산 결과 및 제4 연산 결과를 합산 처리하고, 제2 백엔드 모듈은 제3 연산 결과 및 제2 연산 결과를 합산 처리한다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
도 1은 본 발명의 일 실시예에 따른 컴퓨팅 시스템을 설명하기 위한 개략도이다.
도 2는 본 발명의 일 실시예에 따른 뉴럴 프로세싱 시스템을 설명하기 위한 블록도이다.
도 3은 본 발명의 일 실시예에 따른 뉴럴 프로세싱 시스템을 설명하기 위한 블록도이다.
도 4 및 도 5는 본 발명의 일 실시예에 따른 뉴럴 프로세싱 시스템의 프론트엔드 모듈을 설명하기 위한 블록도이다.
도 6은 본 발명의 일 실시예에 따른 뉴럴 프로세싱 시스템의 백엔드 모듈을 설명하기 위한 블록도이다.
도 7은 본 발명의 다른 실시예에 따른 컴퓨팅 시스템을 설명하기 위한 개략도이다.
도 8은 본 발명의 다른 실시예에 따른 뉴럴 프로세싱 시스템을 설명하기 위한 블록도이다.
도 9는 본 발명의 또 다른 실시예에 따른 컴퓨팅 시스템을 설명하기 위한 개략도이다.
도 10은 본 발명의 또 다른 실시예에 따른 뉴럴 프로세싱 시스템을 설명하기 위한 블록도이다.
도 11은 본 발명의 또 다른 실시예에 따른 컴퓨팅 시스템을 설명하기 위한 개략도이다.
도 12 및 도 13은 본 발명의 또 다른 실시예에 따른 뉴럴 프로세싱 시스템을 설명하기 위한 블록도이다.
도 14는 본 발명의 또 다른 실시예에 따른 컴퓨팅 시스템을 설명하기 위한 블록도이다.
도 15는 본 발명의 또 다른 실시예에 따른 컴퓨팅 시스템을 설명하기 위한 블록도이다.
도 16은 본 발명의 또 다른 실시예에 따른 컴퓨팅 시스템을 설명하기 위한 블록도이다.
도 1은 본 발명의 일 실시예에 따른 컴퓨팅 시스템을 설명하기 위한 개략도이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 컴퓨팅 시스템(1)은 뉴럴 프로세싱 시스템(neural processing system)(10), 클럭 관리 유닛(clock management unit, CMU)(20), 프로세서(30) 및 메모리(40)를 포함한다. 뉴럴 프로세싱 시스템(10), 프로세서(30) 및 메모리(40)는 버스(90)를 통해 데이터를 주고 받을 수 있다.
뉴럴 프로세싱 시스템(10)은 CNN(Convolutional Neural Network)을 구현하거나 실행할 수 있는 뉴럴 네트워크 프로세서이다. 그러나 본 발명이 이에 제한되는 것은 아니다. 즉, 뉴럴 프로세싱 시스템(10)은 임의의 벡터 연산, 매트릭스 연산 등을 처리하는 프로세서로 대체 구현될 수 있다.
본 실시예에서, 뉴럴 프로세싱 시스템(10)은 특징 추출 레이어(feature extraction layer), 특징 분류 레이어(feature classification layer) 등과 같은 복수의 레이어(layer)를 포함하는 뉴럴 네트워크를 처리할 수 있다. 여기서 특징 추출 레이어는 뉴럴 네트워크의 초기 레이어에 해당하며, 예컨대 입력 이미지로부터 모서리, 변화도(gradient)와 같은 저 레벨의 특징들을 추출하기 위해 사용될 수 있다. 한편 특징 분류 레이어는 뉴럴 네트워크의 차후 레이어에 해당하며, 예컨대 입력 이미지로부터 얼굴, 눈, 코와 같은 더 복잡하고 높은 레벨의 특징을 추출할 수 있다. 특징 분류 레이어는 완전 연결 레이어(fully-connected layers)에 해당한다.
뉴럴 프로세싱 시스템(10)은, 입력 이미지로부터 특징을 추출하기 위해, 입력 이미지 또는 특징 맵(feature map)을 필터(filter) 또는 커널(kernel)을 이용하여 연산을 수행할 수 있다. 예를 들어, 뉴럴 프로세싱 시스템(10)은 입력 이미지 또는 특징 맵을 컨볼루션 필터(convolution filter) 또는 컨볼루션 커널(convolution kernel)을 이용하여 컨볼브(convolve) 연산을 수행할 수 있다. 또한, 뉴럴 프로세싱 시스템(10)은 구체적인 구현 목적에 따라 정해지는, 특징 맵에 대응할 수 있는 가중치(weight)를 상기 연산에 이용할 수 있다.
본 실시예에서, 특히 주목할 점은, 뉴럴 프로세싱 시스템(10)은 복수의 뉴럴 프로세싱 유닛(neural processing unit)(100a, 100b)을 포함한다는 점이다. 설명의 편의를 위해, 본 실시예에서 뉴럴 프로세싱 시스템(10)은 2 개의 뉴럴 프로세싱 유닛(100a, 100b)을 포함하는 것으로 도시하였으나, 본 발명의 범위가 이에 제한되는 것은 아니다. 구체적인 구현 목적에 따라 뉴럴 프로세싱 시스템(10)은 n 개(여기서 n은 2 이상의 자연수)의 뉴럴 프로세싱 유닛을 포함할 수 있다.
클럭 관리 유닛(20)은 뉴럴 프로세싱 시스템(10)을 구동하기 위한 제1 클럭 신호(CLK1) 및 제2 클럭 신호(CLK2)를 생성하여, 제1 뉴럴 프로세싱 유닛(100a) 및 제2 뉴럴 프로세싱 유닛(100b)에 각각 제공한다. 이에 따라 제1 뉴럴 프로세싱 유닛(100a)은 제1 클럭 신호(CLK1)에 따라 구동되고, 제2 뉴럴 프로세싱 유닛(100b)은 제2 클럭 신호(CLK2)에 따라 구동된다.
본 발명의 몇몇의 실시예에서, 제1 클럭 신호(CLK1)와 제2 클럭 신호(CLK2)의 주파수는 서로 다를 수 있다. 다시 말해서, 제1 뉴럴 프로세싱 유닛(100a)이 동작하는 클럭 도메인과, 제2 뉴럴 프로세싱 유닛(100b)이 동작하는 클럭 도메인은 서로 다를 수 있다.
클럭 관리 유닛(20)은 필요에 따라 제1 클럭 신호(CLK1) 및 제2 클럭 신호(CLK2)의 주파수를 각각 제어할 수 있다. 또한, 클럭 관리 유닛(20)은 필요에 따라 제1 클럭 신호(CLK1) 및 제2 클럭 신호(CLK2)에 대한 클럭 게이팅(clock gating)을 수행할 수도 있다.
프로세서(30)는, 뉴럴 프로세싱 시스템(10)이 처리하는 인공지능 연산, 벡터 연산, 매트릭스 연산 등과 구별되는 일반적인 산술 연산을 수행하는 프로세서이다. 프로세서(30)는 예를 들어 CPU(Central Processing Unit), GPU(Graphic Processing Unit) 등을 포함할 수 있으나, 본 발명의 범위가 이에 제한되는 것은 아니다. 본 실시예에서, 프로세서(30)는 컴퓨팅 시스템(1)을 전반적으로 제어할 수 있다.
메모리(40)는, 프로세서(30)가 어플리케이션을 실행하거나, 컴퓨텅 시스템(1)을 제어하는 동안 사용되는 데이터가 저장될 수 있다. 메모리(40)는 예를 들어 DRAM(Dynamic Random Access Memory)일 수 있으나, 본 발명의 범위가 이에 제한되는 것은 아니다. 본 실시예에서, 메모리(40)에는, 예컨대 뉴럴 프로세싱 시스템(10)이 CNN을 이용하여 처리할 이미지 데이터가 저장될 수 있다.
도 2는 본 발명의 일 실시예에 따른 뉴럴 프로세싱 시스템을 설명하기 위한 블록도이다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 뉴럴 프로세싱 시스템(10)은 제1 뉴럴 프로세싱 유닛(100a) 및 제2 뉴럴 프로세싱 유닛(100b)을 포함한다. 제1 뉴럴 프로세싱 유닛(100a) 및 제2 뉴럴 프로세싱 유닛(100b) 사이에는 브릿지 유닛(bridge unit)(110)이 배치된다.
먼저, 브릿지 유닛(110)은 제1 뉴럴 프로세싱 유닛(100a)의 연산으로 생성된 중간 결과를 제2 뉴럴 프로세싱 유닛(100b)으로 전달하기 위한 제1 브릿지(111) 및, 제2 뉴럴 프로세싱 유닛(100b)의 연산으로 생성된 중간 결과를 제1 뉴럴 프로세싱 유닛(100a)으로 전달하기 위한 제2 브릿지(112)를 포함한다.
이를 위해, 제1 뉴럴 프로세싱 유닛(100a)과 제2 뉴럴 프로세싱 유닛(100b)이 서로 다른 클럭 도메인에서 동작하는 경우, 브릿지 유닛(110)은 제1 뉴럴 프로세싱 유닛(100a) 및, 제1 뉴럴 프로세싱 유닛(100a)과 다른 클럭 도메인에서 동작하는 제2 뉴럴 프로세싱 유닛(100b)에 전기적으로 접속된다.
이에 따라, 제1 뉴럴 프로세싱 유닛(100a)과 제2 뉴럴 프로세싱 유닛(100b)이 서로 다른 클럭 도메인에서 동작하는 경우, 브릿지 유닛(110)에 포함된 브릿지(111, 112)는 비동기식 브릿지(asynchronous bridge)로 구현되어, 서로 다른 클럭 도메인 사이에서 데이터 전달을 가능하도록 한다.
본 실시예에서, 제1 뉴럴 프로세싱 유닛(100a)은 제1 프론트엔드 모듈(102a) 및 제1 백엔드 모듈(104a)을 포함하고, 제2 뉴럴 프로세싱 유닛(100b)은 제2 프론트엔드 모듈(102b) 및 제2 백엔드 모듈(104b)을 포함한다. 제1 뉴럴 프로세싱 유닛(100a)은, 뉴럴 프로세싱 시스템(10)이 처리할 데이터 중 제1 데이터(DATA1)를 처리할 수 있고, 제2 뉴럴 프로세싱 유닛(100b)은, 뉴럴 프로세싱 시스템(10)이 처리할 데이터 중 제1 데이터(DATA1)를 처리할 수 있다.
구체적으로, 제1 프론트엔드 모듈(102a)은 제1 특징 맵 및 제1 가중치를 이용하여 제1 데이터(DATA1)에 대해 특징 추출 연산을 수행하고, 제1 연산 결과(R11) 및 제2 연산 결과(R12)를 출력한다. 그리고 제2 프론트엔드 모듈(102b)은 제2 특징 맵 및 제2 가중치를 이용하여 제2 데이터(DATA2)에 대해 특징 추출 연산을 수행하고, 제3 연산 결과(R21) 및 제4 연산 결과(R22)를 출력한다.
제1 백엔드 모듈(104a)은 제1 프론트엔드 모듈(102a)로부터 제공되는 제1 연산 결과(R11)와, 제2 브릿지(112)를 통해 제2 프론트엔드 모듈(102b)로부터 제공되는 제4 연산 결과(R22)를 입력받아, 제1 연산 결과(R11) 및 제4 연산 결과(R22)를 합산 처리한다. 한편, 제2 백엔드 모듈(104b)은 제2 프론트엔드 모듈(102b)로부터 제공되는 제3 연산 결과(R21)와, 제1 브릿지(111)를 통해 제1 프론트엔드 모듈(102a)로부터 제공되는 제2 연산 결과(R12)를 입력받아 제3 연산 결과(R21) 및 제2 연산 결과(R12)를 합산 처리한다.
본 발명의 몇몇의 실시예에서, 제1 프론트엔드 모듈(102a) 및 제1 백엔드 모듈(104a)은 제1 클럭 신호(CLK1)에 따라 구동되고, 제2 프론트엔드 모듈(102b) 및 제2 백엔드 모듈(104b)은 제1 클럭 신호(CLK1)와 주파수가 다른 제2 클럭 신호(CLK2)에 따라 구동될 수 있다. 즉, 제1 프론트엔드 모듈(102a) 및 제1 백엔드 모듈(104a)은 제2 프론트엔드 모듈(102b) 및 제2 백엔드 모듈(104b)과 다른 클럭 도메인에서 동작할 수 있다.
한편, 본 실시예에서, 제1 백엔드 모듈(104a)은 제1 프론트엔드 모듈(102a)에 제1 라이트백 데이터(WB DATA1)를 제공하고, 제2 백엔드 모듈(104b)은 제2 프론트엔드 모듈(102b)에 제2 라이트백 데이터(WB DATA2)를 제공할 수 있다. 제1 라이트백 데이터(WB DATA1) 및 제2 라이트백 데이터(WB DATA2)는 각각 제1 프론트엔드 모듈(102a) 및 제2 프론트엔드 모듈(102b)에 대한 입력이 되어, 특징 추출 연산을 반복할 수 있도록 한다.
이제 도 3을 참조하여, 본 발명의 일 실시예에 따른 뉴럴 프로세싱 시스템(10)의 더욱 상세한 구조를 설명하도록 한다.
도 3은 본 발명의 일 실시예에 따른 뉴럴 프로세싱 시스템을 설명하기 위한 블록도이다.
도 3을 참조하면, 본 발명의 일 실시예에 따른 뉴럴 프로세싱 시스템(10)의 제1 뉴럴 프로세싱 유닛(100a)에 포함된 제1 프론트엔드 모듈(102a)은, 복수의 제1 내부 메모리(1021a, 1022a), 복수의 제1 페치(fetch) 유닛(1023a, 1024a), 복수의 제1 디스패치(dispatch) 유닛(1025a, 1026a) 및 제1 MAC 어레이(multiplication and accumulation array)(1027a)를 포함한다.
복수의 제1 내부 메모리(1021a, 1022a)는 제1 프론트엔드 모듈(102a)이 데이터(DATA11, DATA12)에 대한 특징 추출 연산을 위해 이용하는 제1 특징 맵 및 제1 가중치를 저장할 수 있다. 본 실시예에서, 복수의 제1 내부 메모리(1021a, 1022a)는 SRAM(Static Random Access Memory)으로 구현될 수 있으나, 본 발명의 범위가 이에 제한되는 것은 아니다.
복수의 제1 페치 유닛(1023a, 1024a)은 제1 특징 맵 및 제1 가중치를 복수의 제1 내부 메모리(1021a, 1022a) 각각으로부터 페치하여, 복수의 제1 디스패치 유닛(1025a, 1026a)에 전달한다.
복수의 제1 디스패치 유닛(1025a, 1026a)은, 페치된 제1 특징 맵 및 제1 가중치를 채널 별로 제1 MAC 어레이(1027a)에 전달한다. 예를 들어, 복수의 제1 디스패치 유닛(1025a, 1026a)은, 예컨대 k 개의(여기서 k는 자연수) 채널 별로 가중치와 이에 대응하는 특징 맵을 선정하여 제1 MAC 어레이(1027a)에 전달할 수 있다.
제1 MAC 어레이(1027a)는 복수의 제1 디스패치 유닛(1025a, 1026a)으로부터 전달받은 데이터에 대해 곱셈 누적 연산을 수행한다. 예를 들어, 제1 MAC 어레이(1027a)는 k 개의 채널 별 데이터에 대해 각각 곱셈 누적 연산을 수행한다. 그리고 제1 MAC 어레이(1027a)는 제1 연산 결과(R11) 및 제2 연산 결과(R12)를 출력한다.
그러면, 앞서 설명한 바와 같이, 제1 연산 결과(R11)는 제1 백엔드 모듈(104a)에 제공되고, 제2 연산 결과(R12)는 제1 브릿지(111)를 통해 제2 뉴럴 프로세싱 유닛(100b)의 제2 백엔드 모듈(104b)에 제공될 수 있다.
한편, 본 발명의 일 실시예에 따른 뉴럴 프로세싱 시스템(10)의 제1 뉴럴 프로세싱 유닛(100a)에 포함된 제1 백엔드 모듈(104a)은, 제1 합산 유닛(1041a), 제1 활성 유닛(1043a) 및 제1 라이트백 유닛(1045a)을 포함한다.
제1 합산 유닛(1041a)은 제1 연산 결과(R11) 및 제4 연산 결과(R22)에 대한 합산 연산을 수행한다. 여기서 제4 연산 결과(R22)는 제2 브릿지(112)를 통해 제2 뉴럴 프로세싱 유닛(100b)의 제2 프론트엔드 모듈(102b)로부터 제공될 수 있다.
제1 활성 유닛(1043a)은 합산 연산의 수행 결과에 대해 활성 연산(activation)을 수행할 수 있다. 본 발명의 몇몇의 실시예에서, 활성 연산은 ReLU, Sigmoid, tanh 등의 활성 함수를 이용한 연산을 포함할 수 있으나, 본 발명의 범위가 이에 제한되는 것은 아니다.
제1 라이트백 유닛(1045a)은 활성 연산의 수행 결과를 제1 프론트엔드 모듈(102a)에 제공하는 라이트백 연산을 수행한다. 구체적으로, 제1 라이트백 유닛(1045a)은 활성 연산의 수행 결과를 복수의 제1 내부 메모리(1021a, 1022a)에 저장할 수 있다.
한편, 본 발명의 일 실시예에 따른 뉴럴 프로세싱 시스템(10)의 제2 뉴럴 프로세싱 유닛(100b)에 포함된 제2 프론트엔드 모듈(102b)은, 복수의 제1 내부 메모리(1021b, 1022b), 복수의 제2 페치 유닛(1023b, 1024b), 복수의 제2 디스패치 유닛(1025b, 1026b) 및 제2 MAC 어레이(1027b)를 포함한다.
복수의 제2 내부 메모리(1021b, 1022b)는 제2 프론트엔드 모듈(102b)이 데이터(DATA21, DATA22)에 대한 특징 추출 연산을 위해 이용하는 제2 특징 맵 및 제2 가중치를 저장할 수 있다. 본 실시예에서, 복수의 제2 내부 메모리(1021b, 1022b)는 SRAM으로 구현될 수 있으나, 본 발명의 범위가 이에 제한되는 것은 아니다.
복수의 제2 페치 유닛(1023b, 1024b)은 제2 특징 맵 및 제2 가중치를 복수의 제2 내부 메모리(1021b, 1022b) 각각으로부터 페치하여, 복수의 제2 디스패치 유닛(1025b, 1026b)에 전달한다.
복수의 제2 디스패치 유닛(1025b, 1026b)은, 페치된 제2 특징 맵 및 제2 가중치를 채널 별로 제2 MAC 어레이(1027b)에 전달한다. 예를 들어, 복수의 제2 디스패치 유닛(1025b, 1026b)은, 예컨대 k 개의(여기서 k는 자연수) 채널 별로 가중치와 이에 대응하는 특징 맵을 선정하여 제2 MAC 어레이(1027b)에 전달할 수 있다.
제2 MAC 어레이(1027b)는 복수의 제2 디스패치 유닛(1025b, 1026b)으로부터 전달받은 데이터에 대해 곱셈 누적 연산을 수행한다. 예를 들어, 제2 MAC 어레이(1027b)는 k 개의 채널 별 데이터에 대해 각각 곱셈 누적 연산을 수행한다. 그리고 제2 MAC 어레이(1027b)는 제3 연산 결과(R21) 및 제4 연산 결과(R22)를 출력한다.
그러면, 앞서 설명한 바와 같이, 제3 연산 결과(R21)는 제2 백엔드 모듈(104b)에 제공되고, 제4 연산 결과(R21)는 제2 브릿지(112)를 통해 제1 뉴럴 프로세싱 유닛(100a)의 제1 백엔드 모듈(104a)에 제공될 수 있다.
한편, 본 발명의 일 실시예에 따른 뉴럴 프로세싱 시스템(10)의 제2 뉴럴 프로세싱 유닛(100b)에 포함된 제2 백엔드 모듈(104b)은, 제2 합산 유닛(1041b), 제2 활성 유닛(1043b) 및 제2 라이트백 유닛(1045b)을 포함한다.
제2 합산 유닛(1041b)은 제3 연산 결과(R21) 및 제2 연산 결과(R12)에 대한 합산 연산을 수행한다. 여기서 제2 연산 결과(R12)는 제1 브릿지(111)를 통해 제1 뉴럴 프로세싱 유닛(100a)의 제1 프론트엔드 모듈(102a)로부터 제공될 수 있다.
제2 활성 유닛(1043b)은 합산 연산의 수행 결과에 대해 활성 연산을 수행할 수 있다. 본 발명의 몇몇의 실시예에서, 활성 연산은 ReLU, Sigmoid, tanh 등의 활성 함수를 이용한 연산을 포함할 수 있으나, 본 발명의 범위가 이에 제한되는 것은 아니다.
제2 라이트백 유닛(1045b)은 활성 연산의 수행 결과를 제2 프론트엔드 모듈(102b)에 제공하는 라이트백 연산을 수행한다. 구체적으로, 제2 라이트백 유닛(1045b)은 활성 연산의 수행 결과를 복수의 제2 내부 메모리(1021b, 1022b)에 저장할 수 있다.
도 4 및 도 5는 본 발명의 일 실시예에 따른 뉴럴 프로세싱 시스템의 프론트엔드 모듈을 설명하기 위한 블록도이다.
도 4를 참조하면, 복수의 제1 내부 메모리(1021a, 1022a)는 각각 데이터(DATA11) 및 데이터(DATA12)에 대한 특징 추출 연산을 위해 이용하는 제1 특징 맵 및 제1 가중치를 저장하고, 제1 페치 유닛(1023a, 1024a)은 제1 특징 맵 및 제1 가중치를 복수의 제1 내부 메모리(1021a, 1022a) 각각으로부터 페치하여, 복수의 제1 디스패치 유닛(1025a, 1026a)에 전달한다.
제1 디스패치 유닛(1025a)은 데이터(DATA11)의 6 개의 채널 별로 가중치와 이에 대응하는 특징 맵을 선정하여 제1 MAC 어레이(1027a)에 전달하고, 제1 디스패치 유닛(1026a)은 데이터(DATA12)의 6 개의 채널 별로 가중치와 이에 대응하는 특징 맵을 선정하여 제1 MAC 어레이(1027a)에 전달한다.
제1 MAC 어레이(1027a)는 6 개의 채널 각각에 대해, 복수의 제1 디스패치 유닛(1025a, 1026a)으로부터 전달받은 데이터에 대해 곱셈 누적 연산을 수행한다.
본 실시예에서, 제1 MAC 어레이(1027a)로부터 출력되는 연산 결과 중 제1 연산 결과(R11)는 1 번째, 3 번째 및 6 번째 채널에 대한 곱셈 누적 연산 결과에 해당하고, 제2 연산 결과(R12)는 2 번째, 4 번째 및 5 번째 채널에 대한 곱셈 누적 연산 결과에 해당한다.
제1 연산 결과(R11)는 제1 백엔드 모듈(104a)의 제1 합산 유닛(1041a)에 제공되고, 제2 연산 결과(R12)는, 다른 클럭 도메인에서 동작하는 제2 뉴럴 프로세싱 유닛(100b)에 전송하기 위해 제1 브릿지(111)에 제공된다. 한편, 제1 백엔드 모듈(104a)의 제1 합산 유닛(1041a)은, 제2 브릿지(112)를 통해 다른 클럭 도메인에서 동작하는 제2 뉴럴 프로세싱 유닛(100b)의 연산 결과, 예컨대 제4 연산 결과(R22)를 제공받는다.
이어서 도 5를 참조하면, 복수의 제2 내부 메모리(1021b, 1022b)는 각각 데이터(DATA21) 및 데이터(DATA22)에 대한 특징 추출 연산을 위해 이용하는 제2 특징 맵 및 제2 가중치를 저장하고, 제2 페치 유닛(1023b, 1024b)은 제2 특징 맵 및 제2 가중치를 복수의 제2 내부 메모리(1021b, 1022b) 각각으로부터 페치하여, 복수의 제2 디스패치 유닛(1025b, 1026b)에 전달한다.
제2 디스패치 유닛(1025b)은 데이터(DATA21)의 6 개의 채널 별로 가중치와 이에 대응하는 특징 맵을 선정하여 제2 MAC 어레이(1027b)에 전달하고, 제2 디스패치 유닛(1026b)은 데이터(DATA22)의 6 개의 채널 별로 가중치와 이에 대응하는 특징 맵을 선정하여 제2 MAC 어레이(1027b)에 전달한다.
제2 MAC 어레이(1027b)는 6 개의 채널 각각에 대해, 복수의 제2 디스패치 유닛(1025b, 1026b)으로부터 전달받은 데이터에 대해 곱셈 누적 연산을 수행한다.
본 실시예에서, 제2 MAC 어레이(1027b)로부터 출력되는 연산 결과 중 제3 연산 결과(R21)는 2 번째, 4 번째 및 5 번째 채널에 대한 곱셈 누적 연산 결과에 해당하고, 제4 연산 결과(R22)는 1 번째, 3 번째 및 6 번째 채널에 대한 곱셈 누적 연산 결과에 해당한다.
제3 연산 결과(R21)는 제2 백엔드 모듈(104b)의 제2 합산 유닛(1041b)에 제공되고, 제4 연산 결과(R22)는, 다른 클럭 도메인에서 동작하는 제1 뉴럴 프로세싱 유닛(100a)에 전송하기 위해 제2 브릿지(112)에 제공된다. 한편, 제2 백엔드 모듈(104b)의 제2 합산 유닛(1041b)은, 제1 브릿지(111)를 통해 다른 클럭 도메인에서 동작하는 제1 뉴럴 프로세싱 유닛(100a)의 연산 결과, 예컨대 제2 연산 결과(R12)를 제공받는다.
도 6은 본 발명의 일 실시예에 따른 뉴럴 프로세싱 시스템의 백엔드 모듈을 설명하기 위한 블록도이다.
도 6을 참조하면, 제1 합산 유닛(1041a)은 채널 별로 제1 연산 결과(R11) 및 제4 연산 결과(R22)에 대한 합산 연산을 수행한다. 앞서 도 4 및 도 5에서 총 제1 연산 결과(R11)는 6 개의 채널 중 3 개의 채널에 대한 값을 포함하고, 제4 연산 결과(R22) 역시 3 개의 채널에 대한 값을 포함하므로, 이들 각각에 대한 합산을 3 가지의 채널에 대해 수행한다.
이어서 제1 활성 유닛(1043a)은 합산 연산의 수행 결과에 대해 채널 별로 활성 연산을 수행하고, 제1 라이트백 유닛(1045a)은 활성 연산의 수행 결과를 제1 프론트엔드 모듈(102a)에 제공하는 라이트백 연산을 채널 별로 수행한다. 예를 들어, 제1 라이트백 유닛(1045a)은 활성 연산의 수행 결과 중 1 번째 채널에 대응하는 데이터를 제1 내부 메모리(1021a)에 라이트백하고, 2 번째 및 3 번째 채널에 대응하는 데이터를 제1 내부 메모리(1022a)에 라이트백할 수 있다.
한편, 제2 합산 유닛(1041b) 역시 채널 별로 제3 연산 결과(R21) 및 제2 연산 결과(R12)에 대한 합산 연산을 수행한다. 앞서 도 4 및 도 5에서 총 제3 연산 결과(R21)는 6 개의 채널 중 3 개의 채널에 대한 값을 포함하고, 제2 연산 결과(R12) 역시 3 개의 채널에 대한 값을 포함하므로, 이들 각각에 대한 합산을 3 가지의 채널에 대해 수행한다.
이어서 제2 활성 유닛(1043b)은 합산 연산의 수행 결과에 대해 채널 별로 활성 연산을 수행하고, 제2 라이트백 유닛(1045b)은 활성 연산의 수행 결과를 제2 프론트엔드 모듈(102b)에 제공하는 라이트백 연산을 채널 별로 수행한다. 예를 들어, 제2 라이트백 유닛(1045b)은 활성 연산의 수행 결과 중 1 번째 채널에 대응하는 데이터를 제2 내부 메모리(1021b)에 라이트백하고, 2 번째 및 3 번째 채널에 대응하는 데이터를 제2 내부 메모리(1022b)에 라이트백할 수 있다.
도 7은 본 발명의 다른 실시예에 따른 컴퓨팅 시스템을 설명하기 위한 개략도이고, 도 8은 본 발명의 다른 실시예에 따른 뉴럴 프로세싱 시스템을 설명하기 위한 블록도이다.
도 7 및 도 8을 참조하면, 도 1의 실시예와 달리, 본 실시예에 따른 컴퓨팅 시스템(2)의 뉴럴 프로세싱 시스템(10)은 워크로드 관리부(120)를 더 포함한다.
워크로드 관리부(120)는 특징 추출을 수행할 데이터(DATA) 중 제1 데이터(DATA1)를 제1 뉴럴 프로세싱 유닛(100a)에 할당하고, 데이터(DATA) 중 제2 데이터(DATA2)를 제2 뉴럴 프로세싱 유닛(100b)에 할당한다. 구체적으로, 워크로드 관리부(120)는 특징 추출을 수행할 데이터(DATA) 중 제1 데이터(DATA1)를 제1 프론트엔드 모듈(102a)에 할당하고, 데이터(DATA) 중 제2 데이터(DATA2)를 제2 프론트엔드 모듈(102b)에 할당한다.
이에 따라, 제1 프론트엔드 모듈(102a)은, 제1 특징 맵 및 제1 가중치를 이용하여 제1 데이터(DATA1)에 대한 특징 추출 연산을 수행하고, 제2 프론트엔드 모듈(102b)은 제2 특징 맵 및 제2 가중치를 이용하여 제2 데이터(DATA2)에 대한 특징 추출 연산을 수행할 수 있다.
특히, 본 발명의 몇몇의 실시예에서, 제1 데이터(DATA1)의 양(amount)과, 제2 데이터(DATA2)의 양은 서로 다를 수 있다.
클럭 관리 유닛(20)은, 제1 클럭 신호(CLK1) 및 제2 클럭 신호(CLK2) 중 적어도 하나의 주파수를 조절하여, 워크로드 관리부(120)의 할당 동작에 따라, 제1 뉴럴 프로세싱 유닛(100a) 및 제2 뉴럴 프로세싱 유닛(100b)에 대한 성능 및 전력 조절을 수행할 수 있다. 예를 들어, 클럭 관리 유닛(20)은, 워크로드 관리부(120)의 할당 동작에 따라 제1 프론트엔드 모듈(102a), 제1 백엔드 모듈(104a), 제2 프론트엔드 모듈(102b) 및 제2 백엔드 모듈(104b) 중 적어도 하나에 대한 클럭 게이팅을 수행할 수 있다.
이와 같은 방식으로, 본 발명의 다양한 실시예에 따른 뉴럴 프로세싱 시스템(10)은 그 내부의 복수의 뉴럴 프로세싱 유닛(100a, 100b)의 클럭 신호를 조절하여, 성능을 조절하거나 소모 전력을 조절할 수 있다. 예를 들어, 제1 뉴럴 프로세싱 유닛(100a)의 성능을 높이고 제2 뉴럴 프로세싱 유닛(100b)의 소모 전력을 낮추기 위해, 클럭 관리 유닛(20)은 제1 뉴럴 프로세싱 유닛(100a)을 구동하는 제1 클럭 신호(CLK1)의 주파수를 높이고 제2 뉴럴 프로세싱 유닛(100b)을 구동하는 제2 클럭 신호(CLK2)의 주파수를 낮출 수 있다. 또 다른 예로, 제1 뉴럴 프로세싱 유닛(100a)만을 사용하고 제2 뉴럴 프로세싱 유닛(100b)을 사용하지 않는 특수한 상황의 경우, 제2 뉴럴 프로세싱 유닛(100b)을 구동하는 제2 클럭 신호(CLK2)를 조절하여 클럭 게이팅을 수행할 수도 있다. 따라서 본 발명의 다양한 실시예에 따른 뉴럴 프로세싱 시스템(10)을 포함하는 컴퓨팅 시스템에 따르면 비용 및 전력 소모가 낮으면서도 인공 지능을 구현할 수 있게 된다.
도 9는 본 발명의 또 다른 실시예에 따른 컴퓨팅 시스템을 설명하기 위한 개략도이고, 도 10은 본 발명의 또 다른 실시예에 따른 뉴럴 프로세싱 시스템을 설명하기 위한 블록도이다.
도 9 및 도 10을 참조하면, 도 7 및 도 8의 실시예와 달리, 본 실시예에 따른 컴퓨팅 시스템(3)은 PMU(50)를 더 포함한다.
앞서 설명한 바와 같이, 워크로드 관리부(120)는 특징 추출을 수행할 데이터(DATA) 중 제1 데이터(DATA1)를 제1 프론트엔드 모듈(102a)에 할당하고, 데이터(DATA) 중 제2 데이터(DATA2)를 제2 프론트엔드 모듈(102b)에 할당한다.
이에 따라, 제1 프론트엔드 모듈(102a)은, 제1 특징 맵 및 제1 가중치를 이용하여 제1 데이터(DATA1)에 대한 특징 추출 연산을 수행하고, 제2 프론트엔드 모듈(102b)은 제2 특징 맵 및 제2 가중치를 이용하여 제2 데이터(DATA2)에 대한 특징 추출 연산을 수행할 수 있다.
전력 관리 유닛(50)은, 제1 뉴럴 프로세싱 유닛(100a)에 제1 파워 게이팅 신호(PG1)를 제공하고, 제2 뉴럴 프로세싱 유닛(100b)에 제2 파워 게이팅 신호(PG2)를 제공한다. 구체적으로, 전력 관리 유닛(50)은, 제1 프론트엔드 모듈(102a) 및 제1 백엔드 모듈(104a)에 제1 파워 게이팅 신호(PG1)를 제공하고, 제2 프론트엔드 모듈(102b) 및 제2 백엔드 모듈(104b)에 제2 파워 게이팅 신호(PG2)를 제공할 수 있다.
전력 관리 유닛(50)은 제1 파워 게이팅 신호(PG1) 및 제2 파워 게이팅 신호(PG2) 중 적어도 하나의 값을 제어하여, 워크로드 관리부(120)의 할당 동작에 따라, 제1 뉴럴 프로세싱 유닛(100a) 및 제2 뉴럴 프로세싱 유닛(100b)에 대한 전력 조절을 수행할 수 있다. 예를 들어, 전력 관리 유닛(50)은 제1 프론트엔드 모듈(102a), 제1 백엔드 모듈(104a), 제2 프론트엔드 모듈(102b) 및 제2 백엔드 모듈(104b) 중 적어도 하나에 대한 파워 게이팅을 수행할 수 있다.
이와 같은 방식으로, 본 발명의 다양한 실시예에 따른 뉴럴 프로세싱 시스템(10)은 필요에 따라 그 내부의 복수의 뉴럴 프로세싱 유닛(100a, 100b) 중 적어도 일부에 대해 파워 게이팅을 수행하여 뉴럴 프로세싱 시스템(10)의 소모 전력을 낮출 수 있다. 따라서 본 발명의 다양한 실시예에 따른 뉴럴 프로세싱 시스템(10)을 포함하는 컴퓨팅 시스템에 따르면 비용 및 전력 소모가 낮으면서도 인공 지능을 구현할 수 있게 된다.
도 11은 본 발명의 또 다른 실시예에 따른 컴퓨팅 시스템을 설명하기 위한 개략도이다.
도 11을 참조하면, 본 실시예에 따른 컴퓨팅 시스템(4)은 복수의 뉴럴 프로세싱 유닛(100a, 100b, 100c, 100d)을 포함한다. 설명의 편의를 위해, 본 실시예에서 뉴럴 프로세싱 시스템(10)은 4 개의 뉴럴 프로세싱 유닛(100a, 100b, 100c, 100d)을 포함하는 것으로 도시하였으나, 본 발명의 범위가 이에 제한되는 것은 아니다.
클럭 관리 유닛(20)은 뉴럴 프로세싱 시스템(10)을 구동하기 위한 제1 클럭 신호(CLK1) 내지 제4 클럭 신호(CLK4)를 생성하여, 제1 뉴럴 프로세싱 유닛(100a) 내지 제4 뉴럴 프로세싱 유닛(100d)에 각각 제공한다. 이에 따라 제1 뉴럴 프로세싱 유닛(100a)은 제1 클럭 신호(CLK1)에 따라 구동되고, 제2 뉴럴 프로세싱 유닛(100b)은 제2 클럭 신호(CLK2)에 따라 구동되고, 제3 뉴럴 프로세싱 유닛(100c)은 제3 클럭 신호(CLK3)에 따라 구동되고, 제4 뉴럴 프로세싱 유닛(100d)은 제4 클럭 신호(CLK4)에 따라 구동다.
본 발명의 몇몇의 실시예에서, 제1 클럭 신호(CLK1) 내지 제4 클럭 신호(CLK4)의 주파수는 모두 동일하지 않을 수 있다. 다시 말해서, 제1 뉴럴 프로세싱 유닛(100a) 내지 제4 뉴럴 프로세싱 유닛(100d)이 동작하는 클럭 도메인들은 모두 동일하지 않을 수 있다.
클럭 관리 유닛(20)은 필요에 따라 제1 클럭 신호(CLK1) 내지 제4 클럭 신호(CLK4)의 주파수를 각각 제어할 수 있다. 또한, 클럭 관리 유닛(20)은 필요에 따라 제1 클럭 신호(CLK1) 내지 제4 클럭 신호(CLK4) 중 적어도 하나에 대한 클럭 게이팅을 수행할 수도 있다.
도 12 및 도 13은 본 발명의 또 다른 실시예에 따른 뉴럴 프로세싱 시스템을 설명하기 위한 블록도이다.
도 12를 참조하면, 본 실시예에 따른 뉴럴 프로세싱 시스템(10)은 제1 뉴럴 프로세싱 유닛(100a) 내지 제4 뉴럴 프로세싱 유닛(100d)을 포함한다. 제1 뉴럴 프로세싱 유닛(100a) 내지 제4 뉴럴 프로세싱 유닛(100d) 사이에는 하나 이상의 브릿지(1112, 1113, 1114)가 배치된다.
브릿지(1112)는 제1 뉴럴 프로세싱 유닛(100a)의 연산으로 생성된 중간 결과(R12)를 제2 뉴럴 프로세싱 유닛(100b)으로 전달하고, 브릿지(1113)는 제1 뉴럴 프로세싱 유닛(100a)의 연산으로 생성된 중간 결과(R13)를 제3 뉴럴 프로세싱 유닛(100c)으로 전달한다. 그리고 브릿지(1114)는 제1 뉴럴 프로세싱 유닛(100a)의 연산으로 생성된 중간 결과(R14)를 제4 뉴럴 프로세싱 유닛(100d)으로 전달한다.
이를 위해, 제1 뉴럴 프로세싱 유닛(100a)과 제2 뉴럴 프로세싱 유닛(100b)이 서로 다른 클럭 도메인에서 동작하는 경우, 브릿지(1112)는 제1 뉴럴 프로세싱 유닛(100a) 및, 제1 뉴럴 프로세싱 유닛(100a)과 다른 클럭 도메인에서 동작하는 제2 뉴럴 프로세싱 유닛(100b)에 전기적으로 접속된다. 이와 마찬가지로, 브릿지(1113)는 제1 뉴럴 프로세싱 유닛(100a) 및, 제1 뉴럴 프로세싱 유닛(100a)과 다른 클럭 도메인에서 동작하는 제3 뉴럴 프로세싱 유닛(100c)에 전기적으로 접속하고, 브릿지(1114)는 제1 뉴럴 프로세싱 유닛(100a) 및, 제1 뉴럴 프로세싱 유닛(100a)과 다른 클럭 도메인에서 동작하는 제4 뉴럴 프로세싱 유닛(100d)에 전기적으로 접속한다.
이에 따라, 브릿지(1112, 1113, 1114)는 비동기식 브릿지로 구현되어, 서로 다른 클럭 도메인 사이에서 데이터 전달을 가능하도록 한다.
이어서 도 13을 참조하면, 제1 뉴럴 프로세싱 유닛(100a) 내지 제4 뉴럴 프로세싱 유닛(100d) 사이에는 하나 이상의 브릿지(1122, 1123, 1124)가 배치된다.
브릿지(1122)는 제2 뉴럴 프로세싱 유닛(100b)의 연산으로 생성된 중간 결과(R22)를 제1 뉴럴 프로세싱 유닛(100a)으로 전달하고, 브릿지(1123)는 제3 뉴럴 프로세싱 유닛(100c)의 연산으로 생성된 중간 결과(R33)를 제1 뉴럴 프로세싱 유닛(100a)으로 전달한다. 그리고 브릿지(1124)는 제4 뉴럴 프로세싱 유닛(100d)의 연산으로 생성된 중간 결과(R44)를 제1 뉴럴 프로세싱 유닛(100a)으로 전달한다.
이를 위해, 제1 뉴럴 프로세싱 유닛(100a)과 제2 뉴럴 프로세싱 유닛(100b)이 서로 다른 클럭 도메인에서 동작하는 경우, 브릿지(1122)는 제1 뉴럴 프로세싱 유닛(100a) 및, 제1 뉴럴 프로세싱 유닛(100a)과 다른 클럭 도메인에서 동작하는 제2 뉴럴 프로세싱 유닛(100b)에 전기적으로 접속된다. 이와 마찬가지로, 브릿지(1123)는 제1 뉴럴 프로세싱 유닛(100a) 및, 제1 뉴럴 프로세싱 유닛(100a)과 다른 클럭 도메인에서 동작하는 제3 뉴럴 프로세싱 유닛(100c)에 전기적으로 접속하고, 브릿지(1124)는 제1 뉴럴 프로세싱 유닛(100a) 및, 제1 뉴럴 프로세싱 유닛(100a)과 다른 클럭 도메인에서 동작하는 제4 뉴럴 프로세싱 유닛(100d)에 전기적으로 접속한다.
이에 따라, 브릿지(1112, 1113, 1114)는 비동기식 브릿지로 구현되어, 서로 다른 클럭 도메인 사이에서 데이터 전달을 가능하도록 한다.
도 12 및 도 13의 실시예에서는, 제1 뉴럴 프로세싱 유닛(100a)과 다른 뉴럴 프로세싱 유닛(100b, 100c, 100d) 사이의 브릿지에 대해 설명하였으나, 본 발명의 범위가 이에 제한되는 것은 아니고, 이와 같은 내용은 제2 뉴럴 프로세싱 유닛(100b)과 다른 뉴럴 프로세싱 유닛(100c, 100d) 사이, 그리고 제3 뉴럴 프로세싱 유닛(100c)과 제4 뉴럴 프로세싱 유닛(100d) 사이에도 동일하게 적용될 수 있다.
도 14는 본 발명의 또 다른 실시예에 따른 컴퓨팅 시스템을 설명하기 위한 블록도이다.
도 14를 참조하면, 본 실시예에 따른 컴퓨팅 시스템(5)의 뉴럴 프로세싱 시스템(10)은 워크로드 관리부(120)를 더 포함한다. 도 7 및 도 8에서 설명한 바와 유사하게, 워크로드 관리부(120)는 특징 추출을 수행할 데이터(DATA)를 제1 뉴럴 프로세싱 유닛(100a) 내지 제4 뉴럴 프로세싱 유닛(100d)에 분배 할당할 수 있다. 그리고 각각의 뉴럴 프로세싱 유닛(100a) 내지 제4 뉴럴 프로세싱 유닛(100d)에 분배되는 데이터의 양은 모두 동일하지 않을 수 있다.
클럭 관리 유닛(20)은, 제1 클럭 신호(CLK1) 내지 제4 클럭 신호(CLK4) 중 적어도 하나의 주파수를 조절하여, 워크로드 관리부(120)의 할당 동작에 따라, 도 7 및 도 8에서 설명한 바와 유사하게, 제1 뉴럴 프로세싱 유닛(100a) 내지 제4 뉴럴 프로세싱 유닛(100d)에 대한 성능 및 전력 조절을 수행할 수 있다.
이와 같은 방식으로, 본 발명의 다양한 실시예에 따른 뉴럴 프로세싱 시스템(10)은 그 내부의 복수의 뉴럴 프로세싱 유닛(100a, 100b, 100c, 100d)의 클럭 신호를 조절하여, 성능을 조절하거나 소모 전력을 조절할 수 있다. 예를 들어, 제1 뉴럴 프로세싱 유닛(100a) 내지 제3 뉴럴 프로세싱 유닛(100c)의 성능을 높이고 제4 뉴럴 프로세싱 유닛(100d)의 소모 전력을 낮추기 위해, 클럭 관리 유닛(20)은 제1 뉴럴 프로세싱 유닛(100a) 내지 제3 뉴럴 프로세싱 유닛(100c)을 구동하는 제1 클럭 신호(CLK1) 내지 제3 클럭 신호(CLK3)의 주파수를 높이고, 제4 뉴럴 프로세싱 유닛(100d)을 구동하는 제4 클럭 신호(CLK4)의 주파수를 낮출 수 있다. 또 다른 예로, 제1 뉴럴 프로세싱 유닛(100a) 및 제2 뉴럴 프로세싱 유닛(100b)만을 사용하고, 제3 뉴럴 프로세싱 유닛(100c) 및 제4 뉴럴 프로세싱 유닛(100d)을 사용하지 않는 경우, 제3 뉴럴 프로세싱 유닛(100c) 및 제4 뉴럴 프로세싱 유닛(100d)을 구동하는 제3 클럭 신호(CLK3) 및 제4 클럭 신호(CLK4)를 조절하여 클럭 게이팅을 수행할 수도 있다. 따라서 본 발명의 다양한 실시예에 따른 뉴럴 프로세싱 시스템(10)을 포함하는 컴퓨팅 시스템에 따르면 비용 및 전력 소모가 낮으면서도 인공 지능을 구현할 수 있게 된다.
도 15는 본 발명의 또 다른 실시예에 따른 컴퓨팅 시스템을 설명하기 위한 블록도이다.
도 15를 참조하면, 도 14의 실시예와 달리, 본 실시예에 따른 컴퓨팅 시스템(6)의 뉴럴 프로세싱 시스템(10)은 PMU(50)를 더 포함한다.
앞서 설명한 바와 같이, 워크로드 관리부(120)는 특징 추출을 수행할 데이터(DATA)를 제1 뉴럴 프로세싱 유닛(100a) 내지 제4 뉴럴 프로세싱 유닛(100d)에 분배 할당한다.
전력 관리 유닛(50)은, 제1 뉴럴 프로세싱 유닛(100a) 내지 제4 뉴럴 프로세싱 유닛(100d)에 제1 파워 게이팅 신호(PG1) 내지 제4 파워 게이팅 신호(PG4)를 제공한다.
전력 관리 유닛(50)은 제1 파워 게이팅 신호(PG1) 내지 제4 파워 게이팅 신호(PG4) 중 적어도 하나의 값을 제어하여, 워크로드 관리부(120)의 할당 동작에 따라, 도 9 및 도 10에서 설명한 바와 유사하게, 제1 뉴럴 프로세싱 유닛(100a) 내지 제4 뉴럴 프로세싱 유닛(100d)에 대한 전력 조절을 수행할 수 있다.
이와 같은 방식으로, 본 발명의 다양한 실시예에 따른 뉴럴 프로세싱 시스템(10)은 필요에 따라 그 내부의 복수의 뉴럴 프로세싱 유닛(100a, 100b, 100c, 100d) 중 적어도 일부에 대해 파워 게이팅을 수행하여 뉴럴 프로세싱 시스템(10)의 소모 전력을 낮출 수 있다. 따라서 본 발명의 다양한 실시예에 따른 뉴럴 프로세싱 시스템(10)을 포함하는 컴퓨팅 시스템에 따르면 비용 및 전력 소모가 낮으면서도 인공 지능을 구현할 수 있게 된다.
도 16은 본 발명의 또 다른 실시예에 따른 컴퓨팅 시스템을 설명하기 위한 블록도이다.
도 16을 참조하면, 본 실시예에 따른 컴퓨팅 시스템(7)은 뉴럴 프로세싱 시스템(10), 클럭 관리 유닛(20), 프로세서(30), 메모리(40), 전력 관리 유닛(50), 스토리지(60), 디스플레이(70) 및 카메라(80)를 포함하는 컴퓨팅 시스템일 수 있다. 뉴럴 프로세싱 시스템(10), 클럭 관리 유닛(20), 프로세서(30), 메모리(40), 전력 관리 유닛(50), 스토리지(60), 디스플레이(70) 및 카메라(80)는 버스(90)를 통해 데이터를 주고 받을 수 있다.
본 발명의 몇몇의 실시예에서, 컴퓨팅 시스템(7)은 모바일 컴퓨팅 시스템일 수 있다. 예를 들어, 컴퓨팅 시스템(7)은 스마트폰, 태블릿 컴퓨터, 노트북 컴퓨터 등을 비롯한 컴퓨팅 시스템일 수 있다. 물론 본 발명의 범위는 이에 한정되지 않는다.
이제까지 설명한 바와 같은 본 발명의 다양한 실시예에 따른 뉴럴 프로세싱 시스템(10)은 카메라(80)를 통해 생성한 이미지 데이터 또는 스토리지(60)에 저장된 이미지 데이터에 대해, 저 비용과 저 전력으로 CNN을 이용한 특징 추출 연산을 수행할 수 있다.
이제까지 설명한 바와 같이, 뉴럴 프로세싱 시스템(10)은 개별적으로 클럭 및 전력을 조절할 수 있는 복수의 뉴럴 프로세싱 유닛을 포함하는 아키텍처를 채택함으로써, 비용 및 전력 소모가 낮으면서도 인공 지능을 충실히 구현 및 실행할 수 있게 된다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였으나, 본 발명은 상기 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 제조될 수 있으며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
1, 2, 3, 4, 5, 6, 7: 컴퓨팅 시스템 10: 뉴럴 프로세싱 시스템
100: 뉴럴 프로세싱 유닛 102: 프론트엔드 모듈
1021, 1022: 내부 메모리 1023, 1024: 페치 유닛
1025, 1026: 디스패치 유닛 1027: MAC 어레이
1041: 합산 유닛 1043: 활성 유닛
1045: 라이트백 유닛 104: 백엔드 모듈
110: 브릿지 유닛 111, 112, 1112, 1113, 1114, 1122, 1123, 1124: 브릿지
120: 워크로드 관리부 20: 클럭 관리 유닛
30: 프로세서 40: 메모리
50: 전력 제어 유닛 60: 스토리지
70: 디스플레이 80: 카메라
90: 버스

Claims (20)

  1. 제1 특징 맵(feature map) 및 제1 가중치를 이용하여 특징 추출 연산을 수행하고 제1 연산 결과 및 제2 연산 결과를 출력하는 제1 프론트엔드 모듈;
    제2 특징 맵 및 제2 가중치를 이용하여 특징 추출 연산을 수행하고 제3 연산 결과 및 제4 연산 결과를 출력하는 제2 프론트엔드 모듈;
    상기 제1 프론트엔드 모듈로부터 제공되는 제1 연산 결과와, 제2 브릿지(bridge)를 통해 상기 제2 프론트엔드 모듈로부터 제공되는 제4 연산 결과를 입력받아 상기 제1 연산 결과 및 상기 제4 연산 결과를 합산 처리하는 제1 백엔드 모듈; 및
    상기 제2 프론트엔드 모듈로부터 제공되는 제3 연산 결과와, 제1 브릿지를 통해 상기 제1 프론트엔드 모듈로부터 제공되는 제2 연산 결과를 입력받아 상기 제3 연산 결과 및 상기 제2 연산 결과를 합산 처리하는 제2 백엔드 모듈을 포함하는 뉴럴 프로세싱 시스템.
  2. 제1항에 있어서,
    상기 제1 프론트엔드 모듈 및 상기 제1 백엔드 모듈은 제1 클럭 신호에 따라 구동되고,
    상기 제2 프론트엔드 모듈 및 상기 제2 백엔드 모듈은 상기 제1 클럭 신호와 주파수가 다른 제2 클럭 신호에 따라 구동되는 뉴럴 프로세싱 시스템.
  3. 제1항에 있어서,
    상기 제1 브릿지 및 상기 제2 브릿지는 비동기식 브릿지(asynchronous bridge)인 뉴럴 프로세싱 시스템.
  4. 제1항에 있어서,
    상기 제1 백엔드 모듈은 상기 제1 프론트엔드 모듈에 제1 라이트백 데이터를 제공하고,
    상기 제2 백엔드 모듈은 상기 제2 프론트엔드 모듈에 제2 라이트백 데이터를 제공하는 뉴럴 프로세싱 시스템.
  5. 제1항에 있어서,
    특징 추출을 수행할 데이터 중 제1 데이터를 상기 제1 프론트엔드 모듈에 할당하고, 상기 데이터 중 제2 데이터를 상기 제2 프론트엔드 모듈에 할당하는 워크로드 관리부를 더 포함하고,
    상기 제1 프론트엔드 모듈은 상기 제1 특징 맵 및 상기 제1 가중치를 이용하여 상기 제1 데이터에 대한 특징 추출 연산을 수행하고,
    상기 제2 프론트엔드 모듈은 상기 제2 특징 맵 및 상기 제2 가중치를 이용하여 상기 제2 데이터에 대한 특징 추출 연산을 수행하는 뉴럴 프로세싱 시스템.
  6. 제5항에 있어서,
    상기 제1 데이터의 양(amount)과, 상기 제2 데이터의 양은 서로 다른 뉴럴 프로세싱 시스템.
  7. 제5항에 있어서,
    상기 제1 프론트엔드 모듈 및 상기 제1 백엔드 모듈에 제1 클럭 신호를 제공하고, 상기 제2 프론트엔드 모듈 및 상기 제2 백엔드 모듈에 제2 클럭 신호를 제공하는 클럭 관리 유닛을 더 포함하고,
    상기 클럭 관리 유닛은 상기 제1 클럭 신호 및 상기 제2 클럭 신호 중 적어도 하나의 주파수를 조절하여, 상기 워크로드 관리부의 할당 동작에 따라, 상기 제1 프론트엔드 모듈, 상기 제1 백엔드 모듈, 상기 제2 프론트엔드 모듈 및 상기 제2 백엔드 모듈 중 적어도 하나에 대한 클럭 게이팅을 수행하는 뉴럴 프로세싱 시스템.
  8. 제5항에 있어서,
    상기 제1 프론트엔드 모듈 및 상기 제1 백엔드 모듈에 제1 파워 게이팅 신호를 제공하고, 상기 제2 프론트엔드 모듈 및 상기 제2 백엔드 모듈에 제2 파워 게이팅 신호를 제공하는 전력 관리 유닛을 더 포함하고,
    상기 전력 관리 유닛은 상기 제1 파워 게이팅 신호 및 상기 제2 파워 게이팅 신호 중 적어도 하나의 값을 제어하여, 상기 워크로드 관리부의 할당 동작에 따라, 상기 제1 프론트엔드 모듈, 상기 제1 백엔드 모듈, 상기 제2 프론트엔드 모듈 및 상기 제2 백엔드 모듈 중 적어도 하나에 대한 파워 게이팅을 수행하는 뉴럴 프로세싱 시스템.
  9. 제1 프론트엔드 모듈 및 제1 백엔드 모듈을 포함하는 제1 뉴럴 프로세싱 유닛; 및
    상기 제1 뉴럴 프로세싱 유닛 및, 상기 제1 뉴럴 프로세싱 유닛과 다른 클럭 도메인에서 동작하는 제2 뉴럴 프로세싱 유닛에 전기적으로 접속된 브릿지 유닛을 포함하고,
    상기 제1 프론트엔드 모듈은, 제1 특징 맵(feature map) 및 제1 가중치를 이용하여 특징 추출 연산을 수행한 제1 연산 결과 중 일부를 상기 제1 백엔드 모듈에 제공하고,
    상기 브릿지 유닛은, 상기 제2 뉴럴 프로세싱 유닛에서 수행된 제2 연산 결과 중 일부를 상기 제1 백엔드 모듈에 제공하고,
    상기 제1 백엔드 모듈은, 상기 제1 연산 결과 중 일부와 상기 제2 연산 결과 중 일부를 합산 처리하는 뉴럴 프로세싱 시스템.
  10. 제9항에 있어서,
    상기 브릿지 유닛은, 상기 제1 뉴럴 프로세싱 유닛과 다른 클럭 도메인에서 동작하는 제3 뉴럴 프로세싱 유닛에 전기적으로 접속되고,
    상기 제1 프론트엔드 모듈은 상기 제1 연산 결과 중 다른 일부를 상기 브릿지 유닛에 제공하고,
    상기 브릿지 유닛은, 상기 제1 연산 결과 중 일부를 상기 제3 뉴럴 프로세싱 유닛에 제공하는 뉴럴 프로세싱 시스템.
  11. 제9항에 있어서,
    상기 브릿지 유닛은 하나 이상의 비동기식 브릿지(asynchronous bridge)를 포함하는 뉴럴 프로세싱 시스템.
  12. 제9항에 있어서,
    상기 제1 백엔드 모듈은 상기 제1 프론트엔드 모듈에 제1 라이트백 데이터를 제공하는 뉴럴 프로세싱 시스템.
  13. 제1 프론트엔드 모듈 및 제1 백엔드 모듈을 포함하는 제1 뉴럴 프로세싱 유닛;
    제2 프론트엔드 모듈 및 제2 백엔드 모듈을 포함하는 제2 뉴럴 프로세싱 유닛; 및
    특징 추출을 수행할 데이터 중 제1 데이터를 제1 뉴럴 프로세싱 유닛에 할당하고, 상기 데이터 중 제2 데이터를 상기 제2 뉴럴 프로세싱 유닛에 할당하는 워크로드 관리부를 포함하고,
    상기 제1 프론트엔드 모듈은, 제1 특징 맵(feature map) 및 제1 가중치를 이용하여 상기 제1 데이터에 대한 특징 추출 연산을 수행하고 제1 연산 결과 및 제2 연산 결과를 출력하고,
    상기 제2 프론트엔드 모듈은, 제2 특징 맵 및 제2 가중치를 이용하여 상기 제2 데이터에 대한 특징 추출 연산을 수행하고 제3 연산 결과 및 제4 연산 결과를 출력하고,
    상기 제1 백엔드 모듈은, 상기 제1 연산 결과 및 상기 제4 연산 결과를 합산 처리하고, 상기 제2 백엔드 모듈은 상기 제3 연산 결과 및 상기 제2 연산 결과를 합산 처리하는 뉴럴 프로세싱 시스템.
  14. 제13항에 있어서,
    상기 제1 데이터의 양(amount)과, 상기 제2 데이터의 양은 서로 다른 뉴럴 프로세싱 시스템.
  15. 제13항에 있어서,
    상기 제1 프론트엔드 모듈 및 상기 제1 백엔드 모듈에 제1 클럭 신호를 제공하고, 상기 제2 프론트엔드 모듈 및 상기 제2 백엔드 모듈에 제2 클럭 신호를 제공하는 클럭 관리 유닛을 더 포함하고,
    상기 클럭 관리 유닛은 상기 제1 클럭 신호 및 상기 제2 클럭 신호 중 적어도 하나의 주파수를 조절하여, 상기 워크로드 관리부의 할당 동작에 따라, 상기 제1 프론트엔드 모듈, 상기 제1 백엔드 모듈, 상기 제2 프론트엔드 모듈 및 상기 제2 백엔드 모듈 중 적어도 하나에 대한 클럭 게이팅을 수행하는 뉴럴 프로세싱 시스템.
  16. 제13항에 있어서,
    상기 제1 프론트엔드 모듈 및 상기 제1 백엔드 모듈에 제1 파워 게이팅 신호를 제공하고, 상기 제2 프론트엔드 모듈 및 상기 제2 백엔드 모듈에 제2 파워 게이팅 신호를 제공하는 전력 관리 유닛을 더 포함하고,
    상기 전력 관리 유닛은 상기 제1 파워 게이팅 신호 및 상기 제2 파워 게이팅 신호 중 적어도 하나의 값을 제어하여, 상기 워크로드 관리부의 할당 동작에 따라, 상기 제1 프론트엔드 모듈, 상기 제1 백엔드 모듈, 상기 제2 프론트엔드 모듈 및 상기 제2 백엔드 모듈 중 적어도 하나에 대한 파워 게이팅을 수행하는 뉴럴 프로세싱 시스템.
  17. 제13항에 있어서,
    상기 제1 뉴럴 프로세싱 유닛은 제1 클럭 신호에 따라 구동되고,
    상기 제2 뉴럴 프로세싱 유닛은 상기 제1 클럭 신호와 주파수가 다른 제2 클럭 신호에 따라 구동되는 뉴럴 프로세싱 시스템.
  18. 제13항에 있어서,
    상기 제1 백엔드 모듈은 제2 브릿지를 통해 상기 제2 프론트엔드 모듈로부터 상기 제4 연산 결과를 제공받고,
    상기 제2 백엔드 모듈은 제1 브릿지를 통해 상기 제1 프론트엔드 모듈로부터 상기 제2 연산 결과를 제공받는 뉴럴 프로세싱 시스템.
  19. 제18항에 있어서,
    상기 제1 브릿지 및 상기 제2 브릿지는 비동기식 브릿지(asynchronous bridge)인 뉴럴 프로세싱 시스템.
  20. 제13항에 있어서,
    상기 제1 백엔드 모듈은 상기 제1 프론트엔드 모듈에 제1 라이트백 데이터를 제공하고,
    상기 제2 백엔드 모듈은 상기 제2 프론트엔드 모듈에 제2 라이트백 데이터를 제공하는 뉴럴 프로세싱 시스템.
KR1020180106917A 2018-09-07 2018-09-07 뉴럴 프로세싱 시스템 KR20200029661A (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020180106917A KR20200029661A (ko) 2018-09-07 2018-09-07 뉴럴 프로세싱 시스템
US16/507,995 US11443183B2 (en) 2018-09-07 2019-07-10 Neural processing system
TW108127870A TWI805820B (zh) 2018-09-07 2019-08-06 神經處理系統
CN201910764175.2A CN110889499A (zh) 2018-09-07 2019-08-19 神经处理系统
US17/895,190 US11625606B2 (en) 2018-09-07 2022-08-25 Neural processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180106917A KR20200029661A (ko) 2018-09-07 2018-09-07 뉴럴 프로세싱 시스템

Publications (1)

Publication Number Publication Date
KR20200029661A true KR20200029661A (ko) 2020-03-19

Family

ID=69718889

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180106917A KR20200029661A (ko) 2018-09-07 2018-09-07 뉴럴 프로세싱 시스템

Country Status (4)

Country Link
US (2) US11443183B2 (ko)
KR (1) KR20200029661A (ko)
CN (1) CN110889499A (ko)
TW (1) TWI805820B (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102506622B1 (ko) * 2022-04-01 2023-03-07 리벨리온 주식회사 뉴럴 프로세싱 장치의 퍼포먼스 측정 방법 및 퍼포먼스 측정 장치
US11907098B2 (en) 2022-04-01 2024-02-20 Rebellions Inc. Method for measuring performance of neural processing device and device for measuring performance

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11954587B2 (en) * 2023-08-30 2024-04-09 Deepx Co., Ltd. System-on-chip for artificial neural network being operated according to dynamically calibrated phase of clock signal

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5627943A (en) 1993-02-17 1997-05-06 Kawasaki Steel Corporation Neural network processor including systolic array of two-dimensional layers
US5799134A (en) 1995-03-13 1998-08-25 Industrial Technology Research Institute One dimensional systolic array architecture for neural network
US9477925B2 (en) 2012-11-20 2016-10-25 Microsoft Technology Licensing, Llc Deep neural networks training for speech and pattern recognition
KR102084547B1 (ko) 2013-01-18 2020-03-05 삼성전자주식회사 비휘발성 메모리 장치, 그것을 포함하는 메모리 시스템, 및 그것의 외부 전원 제어 방법
US10331997B2 (en) 2014-05-07 2019-06-25 Seagate Technology Llc Adaptive configuration of a neural network device
US20160026912A1 (en) * 2014-07-22 2016-01-28 Intel Corporation Weight-shifting mechanism for convolutional neural networks
EP3192015A1 (en) 2014-09-09 2017-07-19 Intel Corporation Improved fixed point integer implementations for neural networks
EP3035249B1 (en) * 2014-12-19 2019-11-27 Intel Corporation Method and apparatus for distributed and cooperative computation in artificial neural networks
US10373050B2 (en) 2015-05-08 2019-08-06 Qualcomm Incorporated Fixed point neural network based on floating point neural network quantization
US11244225B2 (en) * 2015-07-10 2022-02-08 Samsung Electronics Co., Ltd. Neural network processor configurable using macro instructions
CN105892989B (zh) 2016-03-28 2017-04-12 中国科学院计算技术研究所 一种神经网络加速器及其运算方法
US10650303B2 (en) 2017-02-14 2020-05-12 Google Llc Implementing neural networks in fixed point arithmetic computing systems

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102506622B1 (ko) * 2022-04-01 2023-03-07 리벨리온 주식회사 뉴럴 프로세싱 장치의 퍼포먼스 측정 방법 및 퍼포먼스 측정 장치
US11907098B2 (en) 2022-04-01 2024-02-20 Rebellions Inc. Method for measuring performance of neural processing device and device for measuring performance

Also Published As

Publication number Publication date
US20200082263A1 (en) 2020-03-12
TWI805820B (zh) 2023-06-21
CN110889499A (zh) 2020-03-17
US20220405593A1 (en) 2022-12-22
US11625606B2 (en) 2023-04-11
US11443183B2 (en) 2022-09-13
TW202011279A (zh) 2020-03-16

Similar Documents

Publication Publication Date Title
Kala et al. High-performance CNN accelerator on FPGA using unified winograd-GEMM architecture
CN110245751B (zh) 一种gemm运算方法及装置
CN109543832B (zh) 一种计算装置及板卡
CN109447241B (zh) 一种面向物联网领域的动态可重构卷积神经网络加速器架构
CN111898733B (zh) 一种深度可分离卷积神经网络加速器架构
CN107085562B (zh) 一种基于高效复用数据流的神经网络处理器及设计方法
KR20200029661A (ko) 뉴럴 프로세싱 시스템
CN111105023B (zh) 数据流重构方法及可重构数据流处理器
Xu et al. Efficient fast convolution architectures for convolutional neural network
CN111047022A (zh) 一种计算装置及相关产品
CN110580519B (zh) 一种卷积运算装置及其方法
KR20220015813A (ko) 딥러닝 연산 수행 방법 및 장치
CN110059797B (zh) 一种计算装置及相关产品
Que et al. Recurrent neural networks with column-wise matrix–vector multiplication on FPGAs
CN109753319B (zh) 一种释放动态链接库的装置及相关产品
CN111860773A (zh) 处理装置和用于信息处理的方法
CN110059809B (zh) 一种计算装置及相关产品
CN114519425A (zh) 一种规模可扩展的卷积神经网络加速系统
Ando et al. A multithreaded CGRA for convolutional neural network processing
US20230195836A1 (en) One-dimensional computational unit for an integrated circuit
CN109948787B (zh) 用于神经网络卷积层的运算装置、芯片及方法
Iliev et al. Low latency CMOS hardware acceleration for fully connected layers in deep neural networks
CN112801276B (zh) 数据处理方法、处理器及电子设备
JP6888073B2 (ja) チップ装置および関連製品
Qiu et al. An FPGA‐Based Convolutional Neural Network Coprocessor

Legal Events

Date Code Title Description
A201 Request for examination