KR102331978B1 - 인공 신경망 정방향 연산 실행용 장치와 방법 - Google Patents

인공 신경망 정방향 연산 실행용 장치와 방법 Download PDF

Info

Publication number
KR102331978B1
KR102331978B1 KR1020207034359A KR20207034359A KR102331978B1 KR 102331978 B1 KR102331978 B1 KR 102331978B1 KR 1020207034359 A KR1020207034359 A KR 1020207034359A KR 20207034359 A KR20207034359 A KR 20207034359A KR 102331978 B1 KR102331978 B1 KR 102331978B1
Authority
KR
South Korea
Prior art keywords
module
unit
neuron
vector
cache unit
Prior art date
Application number
KR1020207034359A
Other languages
English (en)
Other versions
KR20200136514A (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 KR20200136514A publication Critical patent/KR20200136514A/ko
Application granted granted Critical
Publication of KR102331978B1 publication Critical patent/KR102331978B1/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/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/061Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using biological neurons, e.g. biological neurons connected to an integrated circuit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

본 발명은 인공 신경망 정방향 연산 실행용 장치에 관한 것으로서, 명령 캐시 유닛, 컨트롤러 유닛, 직접 메모리 엑세스 유닛, H 트리 모듈, 1차 연산 모듈, 및 복수개의 2차 연산 모듈을 포함한다. 상기 장치를 사용하여 다층 인공 신경망 정방향 연산을 구현할 수 있다. 각 한 층에 있어서, 먼저 입력 뉴런 벡터에 대하여 가중 합산을 진행하여 본 층의 중간 결과 벡터를 계산한다. 상기 중간 결과 벡터에 오프셋을 추가하고 활성화하여 출력 뉴런 벡터를 얻는다. 출력 뉴런 벡터는 다음 층의 입력 뉴런 벡터로 삼는다.

Description

인공 신경망 정방향 연산 실행용 장치와 방법 {DEVICE AND METHOD FOR EXECUTING FORWARD CALCULATION OF ARTIFICIAL NEURAL NETWORK}
본 발명은 인공 신경망 분야에 관한 것으로서, 더욱 상세하게는 인공 신경망 정방향 트레이닝 실행용 장치와 방법에 관한 것이다.
다층 인공 신경망은 패턴 인식, 이미지 처리, 함수 근사, 최적화 계산 등 분야에서 광범위하게 응용되며, 다층 인공망은 최근 몇 년 동안 비교적 높은 식별 정확도와 비교적 우수한 병렬 가능성으로 인해 학술계와 산업계에서 갈수록 많은 주목을 받고 있다.
다층 인공 신경망 정방향 트레이닝을 지원하는 종래의 방법은 범용 프로세서를 사용하는 것이다. 상기 방법은 범용 레지스터 파일과 범용 기능 부품을 통하여 범용 명령을 실행하여 상기 알고리즘을 지원한다. 상기 방법의 단점 중 하나는 단일 범용 프로세서의 연산 성능이 비교적 낮아 통상적인 다층 인공 신경망 연상의 성능 수요를 충족시킬 수 없다는 것이다. 복수 개의 범용 프로세서를 병렬 실행할 경우, 범용 프로세서 간 상호 통신도 성능 병목 현상을 만든다. 또한 범용 프로세서는 다층 인공 신경망 정방향 연산을 긴 열 연산 및 메모리 엑세스 명령 시퀀스로 디코딩하기 때문에 프로세스 전단 디코딩에 비교적 큰 전력이 소모된다.
다층 인공 신경망 정방향 트레이닝을 지원하는 또 다른 종래의 방법은 그래픽 처리 유닛(GPU)을 사용하는 것이다. 상기 방법은 범용 레지스터 파일과 범용 스트림 프로세서를 통하여 범용 SIMD 명령을 실행함으로써 상기 알고리즘을 지원한다. GPU는 그래픽 이미지 연산 및 과학 계산을 전문적으로 실행하는 설비이기 때문에, 다층 인공 신경망 연산을 전문적으로 지원할 수 없어 여전히 대량의 전단 디코딩 작업이 있어야 다층 인공 신경망 연산을 실행할 수 있으므로 대량의 추가적 비용이 든다. 또한 GPU는 비교적 작은 온칩(on-chip) 캐시만 있기 때문에 다층 인공 신경망의 모델 데이터(가중치)를 반복적으로 칩 외부에서 운반해야 하므로 오프칩(off-chip) 대역폭이 주요 성능의 병목 현상을 일으키며, 동시에 엄청난 전력이 소모된다.
본 발명은 한편으로 인공 신경망 정방향 트레이닝 실행용 장치에 관한 것으로서, 명령 캐시 유닛, 컨트롤러 유닛, 직접 메모리 엑세스 유닛, H 트리 모듈, 1차 연산 모듈, 및 복수 개의 2차 연산 유닛을 포함한다. 여기에서, 상기 명령 캐시 유닛은 상기 직접 메모리 엑세스 유닛을 통하여 명령을 판독하고 캐싱하는 데 사용된다. 상기 컨트롤러 유닛은 명령 캐시 유닛에서 명령을 판독하고 상기 명령을 디코딩하는데 사용되며, 상기 명령은 H 트리 모듈, 1차 연산 모듈, 및 2차 연산 모듈 행위를 제어하는 마이크로 명령임. 직접 메모리 엑세스 유닛은 외부 주소 공간에서 1차 연산 모듈과 각 2차 연산 모듈에 상응하는 데이터 캐시 유닛의 데이터를 작성하거나 상기 데이터 캐시 유닛에서 외부 주소 공간으로 데이터를 판독하는데 사용된다. H 트리 모듈은 각층 신경망 정방향 트레이닝 계산 시작의 단계에서 1차 연산 모듈이 H 트리 모듈을 통해 모든 2차 연산 모듈로 본 층의 입력 뉴런 벡터를 전송하는 데에 사용되고, 2차 연산 모듈의 계산 과정이 종료된 후 H 트리 모듈은 단계적으로 각 2차 연산 모듈의 출력 뉴런 값을 중간 결과 벡터로 합산하며; 1차 연산 모듈은 중간 결과 벡터를 이용하여 후속 계산을 완성한다.
본 발명은 다른 한편으로 상기 장치를 사용하여 단층 인공 신경망 정방향 트레이닝을 실행하는 방법을 제공한다.
본 발명은 또 다른 한편으로 상기 장치를 사용하여 다층 인공 신경망 정방향 트레이닝을 실행하는 방법을 제공한다.
이하에서는, 본 발명의 도면을 통해 발명 및 본 발명의 장점을 더욱 상세하게 설명한다.
도 1은 본 발명 실시예에 따른 인공 신경망 정방향 트레이닝 실행용 장치의 전체 구조에 대한 블록 다이어그램이고;
도 2는 본 발명 실시예에 따른 인공 신경망 정방향 트레이닝 실행용 장치 중 H 트리 모듈의 구조이고;
도 3은 본 발명 실시예에 따른 인공 신경망 정방향 트레이닝 실행용 장치 중 1차 연산 모듈 구조의 블록 다이어그램이고;
도 4는 본 발명 실시예에 따른 인공 신경망 정방향 트레이닝 실행용 장치 중 2차 연산 모듈 구조의 블록 다이어그램이고;
도 5는 본 발명 실시예에 따른 신경망 정방향 트레이닝 과정의 블록 다이어그램이고; 및
도 6은 본 발명 실시예에 따른 단층 인공 신경망 연산의 흐름도이다.
상기 도면에서 동일한 장치, 부품, 유닛 등은 동일한 부호로 표시하였다.
이하에서는, 본 발명의 예시적인 실시형태들을 도면을 통해 보다 상세히 설명한다. 본 발명의 기타 측면, 장점 및 특징은 본 발명이 속한 기술분야의 당업자가 쉽게 이해할 수 있다.
본 발명에 있어서, 전문용어 “포함”과 “함유” 및 그 파생어의 뜻은 포괄하며 제한적이지 않다는 것이고, 전문용어 “또는”은 “및/또는”의 뜻으로서 포함성을 가진다.
본 발명의 설명에 있어서, 이하의 내용은 본 발명 원리의 각종 실시예를 설명하기 위한 것에 불과하므로 어떠한 방식으로든 본 발명의 보호범위를 제한하지 않는다. 이하의 첨부 도면을 참조하여 특허청구범위 및 그와 동등한 물건으로 한정되는 본 발명의 예시적 실시예를 전면적으로 이해하도록 한다. 이하의 설명에는 이해를 돕기 위하여 다양한 구체적인 세부사항을 포함하나, 이러한 세부사항은 예시적인 것에 불과하다. 따라서 본 발명이 속한 기술분야의 당업자는 본 발명의 범위와 정신에서 위배되지 않는 상황에서 본 발명에서 설명한 실시예에 대하여 변경과 수식을 진행할 수 있다는 것을 이해하여야 한다. 그 외, 명확함과 간결함을 위하여 공지된 기능과 구조에 대한 설명은 생략하였다. 또한 첨부 도면에서 일관되게 동일한 참고 숫자는 유사한 기능과 조작에 사용하였다.
본 발명 실시예에 따른 다층 인공 신경망의 정방향 연산은 2층 이상의 복수 개 뉴런을 포함한다. 각 층에 있어서, 입력 뉴런 벡터는 먼저 가중치 벡터와 내적 연산(dot product operation)을 진행하고, 결과는 활성 함수를 거쳐 출력 뉴런을 얻는다. 여기에서, 활성 함수는 sigmoid 함수, tanh, relu, softmax 함수 등일 수 있다.
도 1은 본 발명 실시예에 따른 인공 신경망 정방향 트레이닝 실행용 장치의 전체 구조에 대한 블록 다이어그램을 도시한 것이다. 도 1에서 도시하는 바와 같이, 상기 장치는 명령 캐시 유닛(1), 컨트롤러 유닛(2), 직접 메모리 엑세스 유닛(3), H 트리 모듈(4), 1차 연산 모듈(5), 및 복수 개의 2차 연산 유닛(6)을 포함한다. 명령 캐시 유닛(1), 컨트롤러 유닛(2), 직접 메모리 엑세스 유닛(3), H 트리 모듈(4), 1차 연산 모듈(5), 및 2차 연산 유닛(6)은 모두 하드웨어 회로(예를 들어 전용 집적회로 ASIC)를 통하여 구현할 수 있다.
명령 캐시 유닛(1)은 직접 메모리 엑세스 유닛(3)을 통하여 명령을 판독하여 입력하고, 판독하여 입력한 명령을 캐싱하는 데 사용된다.
컨트롤러 유닛(2)은 명령 캐시 유닛(1)에서 명령을 판독하고, 명령을 기타 모듈 행위를 제어하는 마이크로 명령으로 디코딩하고, 상기 기타 모듈에는 예를 들어 직접 메모리 엑세스 유닛(3), 1차 연산 모듈(5), 및 2차 연산 유닛(6) 등이 있다.
직접 메모리 엑세스 유닛(3)은 외부 주소 공간을 메모리 엑세스하고 장치 내부의 각 캐시 유닛에 직접 데이터를 판독하여 기록함으로써 데이터의 로딩과 저장을 완료할 수 있다.
도 2는 H 트리 모듈(4)의 구조를 도시한 것이다. H 트리 모듈(4)은 1차 연산 모듈(5)과 복수 개의 2차 연산 모듈(6) 사이의 데이터 통로를 구성하고, H 트리형의 구조를 가진다. H 트리는 복수 개의 노드로 구성된 2진 트리 통로이고, 각 노드는 업스트림의 데이터를 마찬가지로 다운스트림의 2개 노드로 발급하고, 다운스트림의 2개 노드에서 반환하는 데이터를 병합하여 업스트림의 노드에 반환한다. 예를 들어 각 층의 인공 신경망 계산 시작 단계에서 1차 연산 모듈(5) 내의 뉴런 데이터는 H 트리 모듈(4)을 통하여 각 2차 연산 모듈(6)에 발송한다. 2차 연산 모듈(6)의 계산 과정이 완료된 후, 각 2차 연산 모듈이 출력하는 뉴런의 값은 H 트리에서 단계적으로 뉴런으로 구성되는 하나의 완전한 벡터로 합쳐져 중간 결과 벡터로 삼을 수 있다. 신경망 완전 연결층(MLP)으로 설명할 경우, 장치 중에 총 N개의 2차 연산 모듈이 있다고 가정하면 중간 결과 벡터는 N 구간으로 나누고, 각 구간에는 N개 원소가 있고, 제i번째 2차 연산 모듈은 각 구간 중의 제i번째 원소를 계산한다. N개 원소는 H 트리 모듈을 거쳐 길이가 N인 벡터로 합쳐지고 1차 연산 모듈로 반환된다. 따라서 만약 망에 N개 출력 뉴런밖에 없다면 각 2차 연산 유닛은 단일 뉴런의 값만 출력하면 된다. 만약 망에 m*N개 출력 뉴런이 있다면 각 2차 연산 유닛은 m개 뉴런 값을 출력해야 한다.
도 3은 본 발명 실시예에 따른 인공 신경망 정방향 연산 실행용 장치 중 1차 연산 모듈(5) 구조의 블록 다이어그램이다. 도 3에서 도시하는 바와 같이, 1차 연산 모듈(5)은 연산 유닛(51), 데이터 종속성 판단 유닛(52) 및 뉴런 캐시 유닛(53)을 포함한다.
뉴런 캐시 유닛(53)은 1차 연산 모듈(5)이 계산 과정에서 사용한 입력 데이터와 출력 데이터를 캐싱하는 데 사용된다. 연산 유닛(51)은 1차 연산 모듈의 각종 연산 기능을 완료한다. 데이터 종속성 판단 유닛(52)은 연산 유닛(51)이 뉴런 캐시 유닛(53)을 판독하여 기록하는 포트이며, 동시에 뉴런 캐시 유닛 중 데이터의 판독 기록에 일치성을 보장할 수 있다. 또한, 데이터 종속성 판단 유닛(52)은 판독한 데이터를 H 트리 모듈(4)을 통해 계산 모듈로 발송하는 것도 책임지며, 2차 연산 모듈(6)의 출력 데이터는 H 트리 모듈(4)을 통해 곧바로 연산 유닛(51)으로 이송된다. 컨트롤러 유닛(2)이 출력하는 명령은 계산 유닛(51)과 데이터 종속성 판단 유닛(52)에 발송하여 그 행위를 제어한다.
도 4는 본 발명 실시예에 따른 인공 신경망 정방향 연산 실행용 장치 중 2차 연산 모듈(6) 구조의 블록 다이어그램이다. 도 4에서 도시하는 바와 같이, 각 2차 연산 모듈(6)은 연산 유닛(61), 데이터 종속성 판단 유닛(62), 뉴런 캐시 유닛(63), 및 가중치 캐시 유닛(64)을 포함한다.
연산 유닛(61)은 컨트롤러 유닛(2)에서 발송하는 마이크로 명령을 수신하고 산술 논리 연산을 진행한다.
데이터 종속성 판단 유닛(62)은 계산 과정 중 뉴런 캐시 유닛의 판독 기록 조작을 책임진다. 데이터 종속성 판단 유닛(62)은 판독 기록 조작 실행 전에 먼저 명령 간에 사용하는 데이터에 판독 기록의 일치성 충돌이 존재하지 않도록 보장한다. 예를 들어, 데이터 종속성 판단 유닛(62)으로 발송되는 모든 마이크로 명령은 데이터 종속성 판단 유닛(62) 내부의 명령 큐(instruction queue) 내에 저장될 수 있고, 상기 큐에 있어서, 판독 명령 판독 데이터의 범위는 만약 큐 위치에서 앞쪽에 가까운 기록 명령 기록 데이터의 범위와 충돌이 일어나는 경우, 상기 명령은 반드시 종속되는 기록 명령이 실행된 후에만 실행될 수 있다.
뉴런 캐시 유닛(63)은 상기 2차 연산 모듈(6)의 입력 뉴런 벡터 데이터와 출력 뉴런 값 데이터를 캐싱한다.
가중치 캐시 유닛(64)은 상기 2차 연산 모듈(6)이 계산 과정에서 필요한 가중치 데이터를 캐싱한다. 각 2차 연산 모듈(6)은 전체 입력 뉴런과 부분 출력 뉴런 사이의 가중치만 저장할 수 있다. 완전 연결층을 예를 들면, 출력 뉴런은 2차 연산 유닛의 개수 N에 따라 구간을 나누며, 각 구간의 제n번째 출력 뉴런에 대응하는 가중치는 제n번째 2차 연산 유닛 내에 저장한다.
2차 연산 모듈(6)은 각 층 인공 신경망 정방향 연산 과정 중 병렬 가능한 전반 부분을 구현한다. 인공 신경망의 완전 연결층(MLP)을 예를 들면, 과정은 y=f(wx+b)이고, 여기에서 가중치 행렬 w와 입력 뉴럭 벡터 x의 곱셈은 상관없는 병렬 연산 서브태스크로 나눌 수 있으며, out과 in은 열 벡터이고, 각 2차 연산 모듈(6)은 in 중 상응하는 부분 스칼라(scalar) 원소와 가중치 행렬 w에 대응하는 열의 곱만 계산하고, 수득한 각 출력 벡터는 모두 최종 결과의 하나의 누적 대기 부분합이고, 이러한 부분합은 H 트리 모듈(4)에서 단계적으로 2개씩 서로 더하여 최후의 결과를 얻는다. 상기 계산 과정은 부분합을 병렬 연산하는 과정과 후속의 누적하는 과정으로 된다. 각 2차 연산 모듈(6)은 출력 뉴런 값을 계산하고, 모든 출력 뉴런 값은 H 트리 모듈(4)에서 합하여 중간 결과 벡터를 얻는다. 각 2차 연산 모듈(6)은 중간 결과 벡터 y 중의 본 모듈에 대응하는 출력 뉴런 값만 계산하면 된다. H 트리 모듈(4)은 모든 2차 연산 모듈(6)에 대하여 출력하는 뉴런 값을 더하여 최종적인 중간 결과 벡터 y를 얻는다. 1차 연산 모듈(5)은 중간 결과 벡터 y를 기반으로 후속 계산을 진행하는데, 예를 들어 오프셋 추가, 풀링(예를 들어 최대값 풀링(MAXPOOLING) 또는 평균값 풀링(AVGPOOLING 등), 활성화 및 샘플링 등이 있다.
본 발명 실시예에 의거하여 전술한 장치에서 인공 신경망 정방향 연산을 실행하는 명령 집합을 더 제공한다. 명령 집합 내에는 CONFIG 명령, COMPUTE 명령, IO 명령, NOP 명령, JUMP 명령, 및 MOVE 명령이 포함된다.
여기에서, CONFIG 명령은 각층 인공 신경망 계산 시작 전에 현재 층 계산에 필요한 각종 상수를 배치한다.
COMPUTE 명령은 각층 인공 신경망의 산술 논리 연산을 완료한다.
IO 명령은 외부 주소 공간에서 계산에 필요한 입력 데이터를 판독하여 입력하고, 및 계산 완료 후 데이터를 외부 공간에 저장한다.
NOP 명령은 현재 내부 모든 마이크로 명령 캐시 큐(queue) 내에 담긴 마이크로 명령을 정리하여 NOP 명령 전의 모든 명령이 전부 완료되도록 보장한다. NOP 명령 자체에는 어떠한 조작도 포함되지 않는다.
JUMP 명령은 컨트롤러가 명령 캐시 유닛에서 판독한 다음 명령 주소로 건너뛰는 것을 책임져 제어 흐름의 점프를 구현하는 데 사용된다.
MOVE 명령은 장치 내부 주소 공간의 특정 주소 데이터를 장치 내부 주소 공간의 다른 주소로 옮기는 것을 책임지며, 상기 과정은 연산 유닛에 독립적이고 실행 과정 중 연산 유닛의 자원을 점용하지 않는다.
도 5는 본 발명 실시예에 따른 신경망 정방향 연산 과정의 블록 다이어그램이다. 다른 2차 연산 모듈(6)에서 입력 뉴런 벡터는 각각 상기 2차 연산 모듈(6)의 가중치 벡터와 내적 연산을 진행하여 대응하는 출력 뉴런 값을 얻고, 모든 이러한 출력 뉴런 값은 중간 결과 벡터를 구성하며, 상기 중간 경과 벡터는 오프셋 추가 벡터 및 활성 연산을 거쳐 상기 층 신경망의 최종 출력 뉴런 벡터를 얻는다. 공식은 out=f(w*in+b)이고, 여기에서 out은 출력 뉴런 벡터이고, in은 입력 뉴런 벡터이며, b는 오프셋 벡터이고, w는 가중치 행렬이며, f는 활성 함수이다. 각 2차 연산 모듈(6)의 가중치 벡터는 가중치 행렬 중의 상기 2차 연산 모듈(6)에 대응하는 열 벡터이다. H 트리 모듈은 입력 뉴런 벡터[in0,…,inN]를 모든 2차 연산 유닛에 발송하고, 뉴런 캐시 유닛 내에 일시 저장한다. 제i번째 2차 연산 유닛에 있어서, 그 상응하는 가중치 벡터[w_i0,…,w_iN]와 입력 뉴런 벡터의 내적을 계산한다. 2차 연산 유닛이 출력하는 결과는 H 트리 모듈을 거쳐 완전한 출력 벡터로 합쳐져 1차 연산 유닛으로 반환하고, 1차 연산 유닛에서 활성 연산을 진행하여 마지막의 출력 뉴런 벡터[out0,out1,out2,…,outN]를 얻는다.
도 5는 본 발명 실시예에 따른 단층 인공 신경망 정방향 연산 흐름도를 도시한 것이다. 상기 흐름도는 본 발명의 장치와 명령 집합을 이용하여 도 4에서 도시하는 단층 신경망 정방향 연산을 구현하는 과정에 관한 것이다.
단계 S1: 명령 캐시 유닛(1)의 첫 주소에 하나의 IO 명령을 사전 저장한다.
단계 S2: 연산을 시작하며, 컨트롤러 유닛(2)은 명령 캐시 유닛(1)의 첫 주소에서 상기 IO 명령을 판독하고, 디코딩한 마이크로 명령에 의거하여 직접 메모리 엑세스 유닛(3)은 외부 주소 공간에서 상응하는 모든 인공 신경망 연산 명령을 판독하며, 이를 명령 캐시 유닛(1) 내에 캐싱한다.
단계 S3: 컨트롤러 유닛(2)은 이어서 명령 캐시 유닛에서 다음 IO 명령을 판독하여 입력하고, 디코딩한 마이크로 명령에 의거하여 직접 메모리 엑세스 유닛(3)이 외부 주소 공간에서 1차 연산 모듈(5)이 필요하는 모든 데이터(예를 들어 입력 뉴런 벡터, 보간표, 상수표, 오프셋 등을 포함)를 1차 연산 모듈(5)의 뉴런 캐시 유닛(53)까지 판독한다.
단계 S4: 컨트롤러 유닛(2)은 이어서 명령 캐시 유닛에서 다음 IO 명령을 판독하여 입력하고, 디코딩한 마이크로 명령에 의거하여 직접 메모리 엑세스 유닛(3)이 외부 주소 공간에서 2차 연산 모듈(6)에 필요하는 가중치 행렬 데이터를 판독한다.
단계 S5: 컨트롤러 유닛(2)은 이어서 명령 캐시 유닛에서 다음 CONFIG 명령을 판독하여 입력하고, 디코딩한 마이크로 명령에 의거하여 장치는 상기 층 신경망 계산에 필요하는 각종 상수를 배치한다. 예를 들어 연산 유닛(51, 61)은 마이크로 명령 내의 파라미터에 의거하여 유닛 내부 레지스터의 값을 배치하고, 상기 파라미터에는 예를 들어 본 층 계산의 정밀도 설정, 활성 함수의 데이터(예를 들어 본 층 계싼의 정밀도 비트, Lrn층 알고리즘의 rang 파라미터, AveragePooling층 알고리즘 윈도 사이즈의 역수 등)가 포함된다.
단계 S6: 컨트롤러 유닛(2)은 이어서 명령 캐시 유닛에서 다음 COMPUTE 명령을 판독하여 입력하고, 디코딩한 마이크로 명령에 의거하여 1차 연산 모듈(5)은 먼저 H 트리 모듈(4)을 통하여 뉴런 벡터를 각 2차 연산 모듈(6)로 전송하고, 2차 연산 모듈(6)의 뉴런 캐시 유닛(63)에 저장한다.
단계 S7: COMPUTE 명령이 디코딩한 마이크로 명령에 의거하여, 2차 연산 모듈(6)의 연산 유닛(61)은 가중치 캐시 유닛(64)에서 가중치 벡터(가중치 행렬 중 상기 2차 연산 모듈(6)에 대응하는 열 벡터)를 판독하고, 뉴런 캐시 유닛에서 입력 뉴런 벡터를 판독하여 가중치 벡터와 입력 뉴런 벡터의 내적 연산을 완료하고 중간 결과를 H 트리를 통해 반환한다.
단계 S8: H 트리 모듈(4)에 있어서, 각 2차 연산 모듈(6)에서 반환되는 중간 결과는 단계적으로 완전한 중간 결과 벡터로 합산된다.
단계 S9: 1차 연산 모듈(5)은 H 트리 모듈(5)의 반환 값을 획득하고, COMPUTE 명령이 디코딩한 마이크로 명령에 의거하여 뉴런 캐시 유닛(53)에서 오프셋 벡터를 판독하고, H 트리 모듈(4)에서 반환되는 벡터와 서로 더한 후 더한 결과를 다시 활성화하고, 최종의 출력 뉴런 벡터를 뉴런 캐시 유닛(53)에 기록한다.
단계 S10: 컨트롤러 유닛(2)은 이어서 명령 캐시 유닛에서 다음 IO 명령을 판독하여 입력하고, 디코딩한 마이크로 명령에 의거하여 직접 메모리 엑세스 유닛(3)은 뉴런 캐시 유닛(53) 중의 출력 뉴런 벡터를 외부 주소 공간에 지정되는 주소에 저장하고, 연산을 종료한다.
다층 인공 신경망은 그 구현 과정이 단층 신경망과 유사하며, 이전 층 인공 신경망 실행을 완료한 후, 다음 층의 연산 명령은 1차 연산 모듈 중에 저장되는 이전 층의 출력 뉴런 주소를 본 층의 입력 뉴런 주소로 삼는다. 마찬가지로, 명령 중의 가중치 주소와 오프셋 주소도 본 층에서 대응하는 주소로 변경될 수 있다.
인공 신경망 정방향 트레이닝 실행용 장치와 명령 집합을 채택하여 CPU와 GPU 연산 성능 부족과 전단 디코딩 비용이 큰 문제를 해결하였다. 또한 다층 인공 신경망 정방향 트레이닝에 대한 지원을 효과적으로 향상시킨다.
다층 인공 신경망 정방향 트레이닝 전용 온칩 캐시를 채택하여 입력 뉴런과 가중치 데이터의 재사용성을 충분히 발굴하며, 반복적으로 메모리가 이러한 데이터를 판독하는 것을 방지하고 메모리 엑세스 대역폭을 낮추며 메모리 대역폭이 다층 인공 신경망 정방향 트레이닝 성능 병목이 되는 현상을 방지한다.
앞서 도면에서 기재한 진행과정 또는 방법에는 하드웨어(예를 들어 회로, 전용 논리 등), 펌웨어, 소프트웨어(예를 들어 구체화된 비일시적 컴퓨터 판독 가능 매체)를 포함할 수 있으며, 또는 양자 조합의 처리 논리(processing logic)로 실행할 수 있다. 비록 상기 내용이 특정 순서 조작에 따라 진행과정 또는 방법을 설명하기는 하나, 상기에서 설명한 특정 조작은 다른 순서로 실행할 수 있다. 그 외 병렬하여 비(非)순서적으로 일부 조작을 실행할 수 있다.
상기 발명의 설명에서는 특정한 예시적 실시예를 참조하여 본 발명의 각 실시예를 설명하였다. 각 실시예에 대하여 진행할 수 있는 각종 수식은 상기 첨부한 특허청구범위에 있어서 본 발명의 더욱 광범위한 정신과 범위에 위배되지 않는다. 이에 상응하여, 발명의 설명과 첨부 도면은 설명을 위한 것이므로 본 발명을 제한하지 않는다.

Claims (10)

  1. 명령 캐시 유닛, 컨트롤러 유닛, 직접 메모리 엑세스 유닛, H 트리 모듈, 1차 연산 모듈, 및 복수 개의 2차 연산 유닛을 포함하되;
    상기 명령 캐시 유닛은 상기 직접 메모리 엑세스 유닛을 통하여 명령을 판독하고 캐싱하는 데 사용되고;
    상기 컨트롤러 유닛은 명령 캐시 유닛에서 명령을 판독하고 상기 명령을 디코딩하는데 사용되며; 상기 명령은 H 트리 모듈, 1차 연산 모듈, 및 2차 연산 모듈 행위를 제어하는 마이크로 명령임;
    상기 직접 메모리 엑세스 유닛은 외부 주소 공간에서 1차 연산 모듈과 각 2차 연산 모듈에 상응하는 데이터 캐시 유닛에 데이터를 작성하거나 상기 데이터 캐시 유닛에서 외부 주소 공간으로 데이터를 판독하는데 사용되고;
    상기 H 트리 모듈은 각층 신경망 정방향 트레이닝 계산 시작의 단계에서 1차 연산 모듈이 H 트리 모듈을 통해 모든 2차 연산 모듈로 본 층의 입력 뉴런 벡터를 전송하는 데에 사용되고, 2차 연산 모듈의 계산 과정이 종료된 후 H 트리 모듈은 단계적으로 각 2차 연산 모듈의 출력 뉴런 값을 중간 결과 벡터로 합산하며;
    1차 연산 모듈은 중간 결과 벡터를 이용하여 후속 계산을 완성하도록 구비되고,
    상기 1차 연산 모듈은
    중간 결과 벡터에 대하여;
    중간 결과 벡터 상에 오프셋을 추가하는 오프셋 추가 조작;
    활성 함수 active가 sigmoid, tanh, relu, softmax 중 어느 하나인 중간 결과 벡터를 활성화시키는 조작;
    중간 결과 벡터를 난수와 비교하여 난수보다 크면 1을 출력하고 난수보다 작으면 0을 출력하는 샘플링 조작; 또는
    최대값 풀링 또는 평균값 풀링(AVGPOOLING)을 포함하는 풀링 조작 중의 어느 한 조작을 실행하며,
    상기 H 트리 모듈은 1차 연산 모듈과 상기 복수개의 2차 연산 모듈 사이의 데이터 통로를 구성하도록 구비되는 것을 특징으로 하는 인공 신경망 정방향 연산 실행용 장치.
  2. 제1항에 있어서,
    복수 개의 2차 연산 모듈은 동일한 입력 뉴런 벡터와 각자 다른 가중치의 벡터를 이용하여 각자의 출력 뉴런값을 병렬으로 계산하는 것을 특징으로 하는 인공 신경망 정방향 연산 실행용 장치.
  3. 삭제
  4. 제1항에 있어서,
    상기 2차 연산 모듈은 입력 뉴런 데이터를 캐싱하는 입력 뉴런 캐시 유닛을 포함하는 것을 특징으로 하는 인공 신경망 정방향 연산 실행용 장치.
  5. 제1항에 있어서,
    H 트리 모듈은 H 트리형의 구조를 가지며, H 트리는 복수 개의 노드로 구성된 2진 트리 통로이고, 각 노드는 업스트림의 데이터를 마찬가지로 다운스트림의 2개 노드로 발급하고, 다운스트림의 2개 노드에서 반환하는 데이터를 더하여 업스트림의 노드에 반환하는 것을 특징으로 하는 인공 신경망 정방향 연산 실행용 장치.
  6. 제1항에 있어서,
    1차 연산 모듈은 연산 유닛, 데이터 종속성 판단 유닛 및 뉴런 캐시 유닛을 포함하고;
    상기 뉴런 캐시 유닛은 1차 연산 모듈이 계산 과정에서 사용한 입력 데이터와 출력 데이터를 캐싱하는 데 사용되고;
    상기 연산 유닛은 1차 연산 모듈의 각종 연산 기능을 완료하고;
    상기 데이터 종속성 판단 유닛은 연산 유닛이 뉴런 캐시 유닛을 판독하여 기록하는 포트이며, 뉴런 캐시 유닛 중 데이터의 판독 기록에 일치성 충돌이 존재하지 않도록 보장하고, 뉴런 캐시 유닛에서 입력 뉴런 벡터를 판독하여 H 트리 모듈을 통하여 2차 연산 모듈에 발송하는 것을 책임지고; 및
    상기 H 트리 모듈에서 온 중간 결과 벡터는 연산 유닛에 발송되는 것을 특징으로 하는 인공 신경망 정방향 연산 실행용 장치.
  7. 제1항에 있어서,
    각 2차 연산 모듈은 연산 유닛, 데이터 종속성 판단 유닛, 뉴런 캐시 유닛, 및 가중치 캐시 유닛을 포함하고;
    상기 연산 유닛은 컨트롤러 유닛에서 발송하는 마이크로 명령을 수신하고 산술 논리 연산을 진행하고;
    상기 데이터 종속성 판단 유닛은 계산 과정 중에 있어서, 뉴런 캐시 유닛과 가중치 캐시 유닛의 판독 기록 조작을 책임지며, 뉴런 캐시 유닛과 가중치 캐시 유닛의 판독 기록에 일치성 충돌이 존재하지 않도록 보장하고;
    상기 뉴런 캐시 유닛은 입력 뉴런 벡터 데이터 및 상기 2차 연산 모듈에서 계산하여 얻은 출력 뉴런 값을 캐싱하고; 및
    상기 가중치 캐시 유닛은 상기 2차 연산 모듈이 계산 과정에서 필요하는 가중치 벡터를 캐싱하는 것을 특징으로 하는 인공 신경망 정방향 연산 실행용 장치.
  8. 제6항 또는 제7항에 있어서,
    아직 실행하지 않은 마이크로 명령과 현재 실행 과정에 있는 마이크로 명령의 데이터 간에 종속성이 존재하는지 여부를 판단하고, 만약 존재하지 않으면 상기 마이크로 명령을 즉각 송출하는 것을 허용하고, 그렇지 않은 경우에는 상기 마이크로 명령이 종속된 모든 마이크로 명령이 전부 실행될 때까지 기다린 후 상기 마이크로 명령이 송출되는 것을 허용하는 방식을 통하여 판독 기록에 일치성 충돌이 존재하지 않도록 보장하는 것을 특징으로 하는 인공 신경망 정방향 연산 실행용 장치.
  9. 제1항, 제2항, 제4항 내지 제7항 중 어느 한 항의 장치를 사용하여 단층 인공 신경망 정방향 연산을 실행하는 방법에 있어서,
    직접 메모리 엑세스 유닛은 외부 주소 공간에서 상기 단층 인공 신경망 정방향 연산과 관련된 모든 인공 신경망 연산 명령을 판독하며, 이를 명령 캐시 유닛 내에 캐싱하는 단계;
    직접 메모리 엑세스 유닛은 외부 주소 공간에서 1차 연산 모듈이 필요하는 상기 단층 인공 신경망 정방향 연산과 관련된 모든 데이터를 1차 연산 모듈의 뉴런 캐시 유닛까지 판독하는 단계;
    직접 메모리 엑세스 유닛은 외부 주소 공간에서 2차 연산 모듈에 필요하는 가중치 행렬 데이터를 판독하는 단계;
    상기 단층 인공 신경망 정방향 연산에 필요하는 각종 상수를 배치하는 단계;
    1차 연산 모듈은 먼저 H 트리 모듈을 통하여 입력 뉴런 벡터를 각 2차 연산 모듈로 전송하고, 2차 연산 모듈의 뉴런 캐시 유닛에 저장하는 단계;
    2차 연산 모듈의 연산 유닛은 가중치 캐시 유닛에서 가중치 벡터를 판독하고, 뉴런 캐시 유닛에서 입력 뉴런 벡터를 판독하고, 가중치 벡터와 입력 뉴런 벡터의 내적 연산을 완료하고, 얻은 뉴런 값은 H 트리 모듈을 통하여 반환하는 단계;
    H 트리 모듈에 있어서, 각 2차 연산 모듈에서 반환된 뉴런 값을 단계적으로 합하여 완전한 중간 결과 벡터를 얻는 단계;
    1차 연산 모듈은 뉴런 캐시 유닛에서 오프셋 벡터를 판독하고, H 트리 모듈에서 반환된 중간 결과 벡터를 더한 후 더한 결과에 대해 다시 활성화를 진행하고, 출력 뉴런 벡터를 얻어 뉴런 캐시 유닛에 기록하는 단계; 및
    직접 메모리 엑세스 유닛은 뉴런 캐시 유닛 중의 출력 뉴런 벡터를 외부 주소 공간에 지정되는 주소에 저장하는 단계; 를 포함하고,
    상기 1차 연산 모듈에서
    중간 결과 벡터에 대하여;
    중간 결과 벡터 상에 오프셋을 추가하는 오프셋 추가 조작;
    활성 함수 active가 sigmoid, tanh, relu, softmax 중 어느 하나인 중간 결과 벡터를 활성화시키는 조작;
    중간 결과 벡터를 난수와 비교하여 난수보다 크면 1을 출력하고 난수보다 작으면 0을 출력하는 샘플링 조작; 또는
    최대값 풀링 또는 평균값 풀링(AVGPOOLING)을 포함하는 풀링 조작 중의 어느 한 조작을 실행하며,
    상기 H 트리 모듈에서 1차 연산 모듈과 상기 복수개의 2차 연산 모듈 사이의 데이터 통로를 구성하도록 구비되는
    것을 특징으로 하는 단층 인공 신경망 정방향 연산을 실행하는 방법.
  10. 다층 인공 신경망 정방향 연산 실행용 방법에 있어서,
    각 층에 대하여 청구항 9의 상기 방법을 실행하는 단계를 포함하고,
    이전 다층 인공 신경망 실행 완료 후, 1차 연산 모듈 중에 저장한 다음 층 출력 뉴런 주소는 본 층의 입력 뉴런 주소로 되고, 상기 본 층에 대하여 청구항 9의 상기 방법을 다시 실행하는 것을 특징으로 하는 다층 인공 신경망 정방향 연산 실행용 방법.
KR1020207034359A 2016-01-20 2016-04-01 인공 신경망 정방향 연산 실행용 장치와 방법 KR102331978B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
CN201610037645.1 2016-01-20
CN201610037645.1A CN106991476B (zh) 2016-01-20 2016-01-20 用于执行人工神经网络正向运算的装置和方法
PCT/CN2016/078281 WO2017124642A1 (zh) 2016-01-20 2016-04-01 用于执行人工神经网络正向运算的装置和方法
KR1020187015434A KR102203746B1 (ko) 2016-01-20 2016-04-01 인공 신경망 정방향 연산 실행용 장치와 방법

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020187015434A Division KR102203746B1 (ko) 2016-01-20 2016-04-01 인공 신경망 정방향 연산 실행용 장치와 방법

Publications (2)

Publication Number Publication Date
KR20200136514A KR20200136514A (ko) 2020-12-07
KR102331978B1 true KR102331978B1 (ko) 2021-12-01

Family

ID=59361382

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020207034359A KR102331978B1 (ko) 2016-01-20 2016-04-01 인공 신경망 정방향 연산 실행용 장치와 방법
KR1020187015434A KR102203746B1 (ko) 2016-01-20 2016-04-01 인공 신경망 정방향 연산 실행용 장치와 방법

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020187015434A KR102203746B1 (ko) 2016-01-20 2016-04-01 인공 신경망 정방향 연산 실행용 장치와 방법

Country Status (5)

Country Link
US (2) US10410112B2 (ko)
EP (2) EP3407265B1 (ko)
KR (2) KR102331978B1 (ko)
CN (4) CN109242094B (ko)
WO (1) WO2017124642A1 (ko)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111353588B (zh) 2016-01-20 2024-03-05 中科寒武纪科技股份有限公司 用于执行人工神经网络反向训练的装置和方法
CN109375951B (zh) * 2016-04-27 2020-10-09 中科寒武纪科技股份有限公司 一种用于执行全连接层神经网络正向运算的装置和方法
EP3451239A4 (en) * 2016-04-29 2020-01-01 Cambricon Technologies Corporation Limited APPARATUS AND METHOD FOR PERFORMING RECURRENT NEURONAL NETWORK AND LTSM CALCULATIONS
CN111860815A (zh) 2017-08-31 2020-10-30 中科寒武纪科技股份有限公司 一种卷积运算方法及装置
CN107748914A (zh) * 2017-10-19 2018-03-02 珠海格力电器股份有限公司 人工神经网络运算电路
CN109063831A (zh) * 2017-10-30 2018-12-21 上海寒武纪信息科技有限公司 人工智能处理器及使用处理器执行向量加和指令的方法
CN109726807B (zh) * 2017-10-31 2023-11-24 上海寒武纪信息科技有限公司 神经网络处理器、运算方法及存储介质
TW201926147A (zh) * 2017-12-01 2019-07-01 阿比特電子科技有限公司 電子裝置、加速器、適用於神經網路運算的加速方法及神經網路加速系統
CN109961138B (zh) * 2017-12-14 2020-04-14 中科寒武纪科技股份有限公司 神经网络训练方法及相关产品
WO2019114842A1 (zh) 2017-12-14 2019-06-20 北京中科寒武纪科技有限公司 一种集成电路芯片装置
CN110097181B (zh) * 2018-01-30 2023-07-11 上海寒武纪信息科技有限公司 用于执行人工神经网络正向运算的装置和方法
CN110163363B (zh) * 2018-02-13 2021-05-11 上海寒武纪信息科技有限公司 一种计算装置及方法
CN110472734B (zh) * 2018-05-11 2024-03-29 上海寒武纪信息科技有限公司 一种计算装置及相关产品
US11663461B2 (en) 2018-07-05 2023-05-30 International Business Machines Corporation Instruction distribution in an array of neural network cores
US20220004854A1 (en) * 2018-10-08 2022-01-06 Deeper-I Co., Inc. Artificial neural network computation acceleration apparatus for distributed processing, artificial neural network acceleration system using same, and artificial neural network acceleration method therefor
CN111079925B (zh) * 2018-10-19 2021-04-09 中科寒武纪科技股份有限公司 运算方法、装置及相关产品
CN111176582A (zh) * 2019-12-31 2020-05-19 北京百度网讯科技有限公司 矩阵存储方法、矩阵访问方法、装置和电子设备

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9205587D0 (en) * 1992-03-13 1992-04-29 Pilkington Micro Electronics Improved artificial digital neuron,neuron network and network algorithm
JPH06195322A (ja) * 1992-10-29 1994-07-15 Hitachi Ltd 汎用型ニューロコンピュータとして用いられる情報処理装置
GB9902115D0 (en) * 1999-02-01 1999-03-24 Axeon Limited Neural networks
CN1516070A (zh) * 2003-01-08 2004-07-28 剑 王 一种联想记忆神经网络
US7747070B2 (en) * 2005-08-31 2010-06-29 Microsoft Corporation Training convolutional neural networks on graphics processing units
CN101639901A (zh) * 2009-09-03 2010-02-03 王连明 基于多核技术的前馈神经网络硬件实现方法
US8515885B2 (en) * 2010-10-29 2013-08-20 International Business Machines Corporation Neuromorphic and synaptronic spiking neural network with synaptic weights learned using simulation
CN201927073U (zh) * 2010-11-25 2011-08-10 福建师范大学 一种可编程硬件bp神经元处理器
CN102012893B (zh) * 2010-11-25 2012-07-18 中国人民解放军国防科学技术大学 一种可扩展向量运算装置
US9222348B2 (en) * 2011-08-05 2015-12-29 Halliburton Energy Services, Inc. Methods for monitoring the formation and transport of an acidizing fluid using opticoanalytical devices
US8442825B1 (en) * 2011-08-16 2013-05-14 The United States Of America As Represented By The Director, National Security Agency Biomimetic voice identifier
CN102426293A (zh) * 2011-09-08 2012-04-25 天津理工大学 基于神经网络最小方均根的apf谐波检测系统及检测方法
KR20130090147A (ko) * 2012-02-03 2013-08-13 안병익 신경망 컴퓨팅 장치 및 시스템과 그 방법
CN102866982A (zh) * 2012-09-14 2013-01-09 复旦大学 基于fpga的8位复杂指令集中央处理器
CN103971163B (zh) * 2014-05-09 2017-02-15 哈尔滨工程大学 一种基于归一化最小均方自适应滤波的自适应学习率小波神经网络控制方法
CN104036451B (zh) * 2014-06-20 2018-12-11 深圳市腾讯计算机系统有限公司 基于多图形处理器的模型并行处理方法及装置
CN104297504A (zh) * 2014-10-22 2015-01-21 上海申腾信息技术有限公司 一种自动化气相色谱控制系统
CN104463324A (zh) * 2014-11-21 2015-03-25 长沙马沙电子科技有限公司 一种基于大规模高性能集群的卷积神经网络并行处理方法
CN104612898B (zh) * 2014-11-27 2017-09-08 江苏科技大学 一种风电变桨距多变量模糊神经网络pid控制方法
CN104376262B (zh) * 2014-12-08 2018-01-09 中国科学院深圳先进技术研究院 一种基于Dalvik指令和权限组合的安卓恶意软件检测方法
CN105095967B (zh) * 2015-07-16 2018-02-16 清华大学 一种多模态神经形态网络核
CN105095966B (zh) * 2015-07-16 2018-08-21 北京灵汐科技有限公司 人工神经网络和脉冲神经网络的混合计算系统
CN105184366B (zh) * 2015-09-15 2018-01-09 中国科学院计算技术研究所 一种时分复用的通用神经网络处理器

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Chen, Tianshi, et al. A high-throughput neural network accelerator. IEEE Micro 35.3. 2015.*
Domingos, Pedro O., Fernando M. Silva, and Horácio C. Neto. An efficient and scalable architecture for neural networks with backpropagation learning. IEEE. 2005.*

Also Published As

Publication number Publication date
US20190294951A1 (en) 2019-09-26
CN109242094B (zh) 2020-05-08
WO2017124642A1 (zh) 2017-07-27
EP3407265B1 (en) 2021-11-10
EP3407265A1 (en) 2018-11-28
CN111353589A (zh) 2020-06-30
CN111353589B (zh) 2024-03-01
CN109242094A (zh) 2019-01-18
EP3407265A4 (en) 2019-09-04
KR20200136514A (ko) 2020-12-07
CN106991476B (zh) 2020-04-10
KR102203746B1 (ko) 2021-01-15
US20180322381A1 (en) 2018-11-08
KR20180102059A (ko) 2018-09-14
US10410112B2 (en) 2019-09-10
CN111340200A (zh) 2020-06-26
CN109993285B (zh) 2020-02-07
CN109993285A (zh) 2019-07-09
CN106991476A (zh) 2017-07-28
EP3971789A1 (en) 2022-03-23
US10860917B2 (en) 2020-12-08

Similar Documents

Publication Publication Date Title
KR102331978B1 (ko) 인공 신경망 정방향 연산 실행용 장치와 방법
KR102175044B1 (ko) 인공 신경망 역방향 트레이닝 실행용 장치와 방법
US11574195B2 (en) Operation method
KR102486030B1 (ko) 완전연결층 신경망 정방향 연산 실행용 장치와 방법
CN107341542B (zh) 用于执行循环神经网络和lstm运算的装置和方法
WO2017185391A1 (zh) 一种用于执行卷积神经网络训练的装置和方法
WO2017185347A1 (zh) 用于执行循环神经网络和lstm运算的装置和方法
WO2017185248A1 (zh) 用于执行人工神经网络自学习运算的装置和方法
CN109993276B (zh) 用于执行人工神经网络反向训练的装置和方法
CN111340200B (en) Apparatus and method for performing artificial neural network forward operations

Legal Events

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