KR20180093969A - 스파스 연결용 인공 신경망 계산 장치와 방법 - Google Patents

스파스 연결용 인공 신경망 계산 장치와 방법 Download PDF

Info

Publication number
KR20180093969A
KR20180093969A KR1020187018864A KR20187018864A KR20180093969A KR 20180093969 A KR20180093969 A KR 20180093969A KR 1020187018864 A KR1020187018864 A KR 1020187018864A KR 20187018864 A KR20187018864 A KR 20187018864A KR 20180093969 A KR20180093969 A KR 20180093969A
Authority
KR
South Korea
Prior art keywords
input
neuron
output
connection
neural network
Prior art date
Application number
KR1020187018864A
Other languages
English (en)
Other versions
KR102166775B1 (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 KR20180093969A publication Critical patent/KR20180093969A/ko
Application granted granted Critical
Publication of KR102166775B1 publication Critical patent/KR102166775B1/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/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/15Correlation function computation including computation of convolution operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • 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/3802Instruction prefetching
    • 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
    • G06F9/3887Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
    • 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/48Indexing scheme relating to groups G06F7/48 - G06F7/575
    • G06F2207/4802Special implementations
    • G06F2207/4818Threshold devices
    • G06F2207/4824Neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements
    • G06F2212/621Coherency control relating to peripheral accessing, e.g. from DMA or I/O device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields

Abstract

스파스 연결용 인공 신경망 계산 장치는 매핑 유닛(5), 저장 장치(1), 및 연산 유닛(7)이 포함되되, 매핑 유닛(5)은 입력 데이터를 입력 뉴런과 가중치가 일대일 대응하는 저장 포맷으로 전환하는데 사용되고; 저장 장치(1)는 데이터와 명령을 저장하는 데 사용되고; 연산 유닛(7)은 명령에 의거하여 상응하는 연산을 실행하는 데에 사용되며; 상기 연산 유닛은 주로 3단계 연산을 실행하고, 제1단계는 입력된 뉴런과 가중치 데이터를 곱하고; 제2단계는 덧셈 트리 연산을 실행하고, 제1단계 처리한 가중치 출력 뉴런을 덧셈 트리를 통하여 단계적으로 더하거나, 또는 출력 뉴런에 오프셋을 더하여 오프셋 추가 출력 뉴런을 얻는 데 사용되고; 제3단계는 활성 함수 연산을 실행하여 최종 출력 뉴런을 얻는다. 본 발명의 부족한 CPU와 GPU 연산 성능, 높은 전단 디코딩 비용의 문제를 해결하였으며, 다층 인공 신경망 연산 알고리즘에 대한 지원을 효과적으로 향상시켰으며, 메모리 대역폭이 다층 인공 신경망 연산 및 그 트레이닝 알고리즘 성능 병목이 되는 현상을 방지하였다.

Description

스파스 연결용 인공 신경망 계산 장치와 방법 {ARTIFICIAL NEURAL NETWORK CALCULATING DEVICE AND METHOD FOR SPARSE CONNECTION}
본 발명은 데이터 처리 기술 분야에 관한 것으로서, 더욱 상세하게는 스파스(sparse) 연결용 인공 신경망 계산 장치와 방법에 관한 것이다.
인공 신경망(Artificial Neural Networks, ANNs)은 줄여서 신경망(NNs)라고 부른다. 이는 일종의 동물 신경망 행위 특성을 모방하여 분산형 병렬 정보 처리를 진행하는 알고리즘 수학 모델이다. 이러한 망은 시스템의 복잡도에 의존하며 내부 대량 노드 간의 상호 연결성을 조절함으로써 정보 처리의 목적을 달성한다. 신경망에 사용하는 알고리즘은 바로 벡터 곱하기이며 부호 함수 및 그 각종 근사가 광범위하게 채택된다.
대뇌 속의 신경망과 마찬가지로 신경망은 일부 상호 연결된 노드로 구성된다. 도 1에서 도시하는 바와 같이, 각각의 동그라미는 하나의 뉴런을 나타내며, 각각의 화살표는 2개 뉴런 사이의 연결을 나타내는데 가중치라고 부르기도 한다.
뉴런의 계산 공식은 간단하게 설명하면
Figure pat00001
이다. 여기에서 x는 모든 출력 뉴런과 연결되는 입력 뉴런을 나타내고, w는 x와 출력 뉴런 사이에 대응하는 가중치를 나타낸다. f(x)는 하나의 비선형 함수이며 통상적으로 활성 함수라고 불리고, 통상적으로 사용하는 함수는
Figure pat00002
,
Figure pat00003
등과 같다.
신경망은 컴퓨터 비전, 음성 인식과 자연어 처리 등과 같은 각종 응용 장면에 광범위하게 응용된다. 최근 몇 년 동안 신경망의 규모는 지속 성장세에 있다. 1998년 Lecun이 수기 문자부호 식별에 사용한 신경망의 규모는 1M개 가중치보다 작았음, 2012년 krizhevsky가 ImageNet 대회 참여에 사용한 규모는 60M개 가중치였다.
신경망은 높은 계산량과 높은 메모리의 응용으로서 가중치가 많을수록 계산량과 메모리량도 증대된다. 계산량과 가중치 수량을 줄여 메모리량을 감소시키기 위하여 스파스 연결 신경망이 등장하였다. 도 2는 스파스의 신경망을 도시한 것이다.
신경망 계산량과 메모리량이 급증함에 따라 종래 기술에서는 통상적으로 범용 프로세서를 채택하여 스파스의 인공 신경망을 계산한다. 범용 프로세서에 있어서, 입력 뉴런, 출력 뉴런 및 가증치를 각각 3개 배열 내에 저장하고, 동시에 하나의 색인 배열이 더 있고, 색인 배열은 각 출력과 입력 연결의 연결 관계를 저장한다. 계산 시, 주요한 연산은 뉴런과 가중치의 곱이다. 가중치와 뉴런은 일대일 대응하는 관계가 아니기 때문에, 매번 연산에서 색인 배열을 통해 뉴런에 대응하는 가중치를 찾아야 한다. 범용 프로세서 계산 능력과 메모리 능력이 모두 아주 약하기 때문에 신경망의 수요를 충족시킬 수 없다. 복수개의 범용 프로세서를 병렬 실행할 경우 범용 프로세서 간 상호 통신 역시 성능 병목 현상을 초래한다. 프루닝(pruning)한 신경망 계산 시, 매번 곱하기 연산에 색인 배열 내에서 다시 가중치에 대응하는 위치를 찾아야 하기 때문에 추가적인 계산량과 메모리 비용을 추가된다. 따라서 신경망 계산에 소요되는 시간이 길고 출력이 높다. 범용 프로세서는 다층 인공 신경망 연산을 하나의 긴 열 연산 및 메모리 명령 시퀀스로 디코딩해야 하므로, 프로세스 전단 디코딩에 비교적 큰 전력 소모가 초래된다.
스파스 연결 인공 신경망 연산 및 그 트레이닝 알고리즘을 지원하는 공지된 또 다른 방법은 그래픽 처리 장치(GPU)를 사용하는 것이다. 상기 방법은 범용 레지스터 파일과 범용 스트림 프로세서를 통하여 범용 SIMD 명령을 실행함으로써 상기 알고리즘을 지원한다. 그러나 GPU는 그래픽 이미지 연산 및 과학 계산을 전문적으로 실행하는 설비이기 때문에, 스파스의 인공 신경망 연산을 전문적으로 지원하지 않으므로, 여전히 대량의 전단 디코딩 작업이 있어야만 스파스의 인공 신경망 연산을 실행할 수 있어 대량의 추가적 비용이 발생한다. 그 외 GPU는 비교적 작은 온칩(on-chip) 캐시만 있기 때문에 다층 인공 신경망의 모델 데이터(가중치)를 반복적으로 칩 외부에서 운반해야 하므로 오프칩(off-chip) 대역폭이 주요 성능의 병목 현상을 일으키며, 동시에 엄청난 전력이 소모된다.
본 발명의 목적은 스파스 연결용 인공 신경망 계산 장치와 방법을 제공하는 데에 있다.
상기 목적을 구현하기 위하여, 본 발명의 일측면에서 본 발명은 스파스 연결용 인공 신경망 계산 장치를 제공하며, 여기에는 매핑 유닛, 저장 장치, 및 연산 유닛이 포함되되,
상기 매핑 유닛은 입력 데이터를 입력 뉴런과 가중치가 일대일 대응하는 저장 포맷으로 전환하고, 저장 장치 및/또는 캐시 내에 저장하는 데 사용되고;
상기 저장 장치는 데이터와 명령을 저장하는 데 사용되고;
상기 연산 유닛은 상기 저장 장치에 저장된 명령에 의거하여 상기 데이터에 대하여 상응하는 연산을 실행하는 데에 사용되며; 상기 연산 유닛은 주로 3단계 연산을 실행하고, 제1단계는 상기 입력 뉴런과 가중치 데이터를 곱하고; 제2단계는 덧셈 트리 연산을 실행하고, 제1단계 처리한 가중치 출력 뉴런을 덧셈 트리를 통하여 단계적으로 더하거나, 또는 가중치 출력 뉴런에 오프셋을 더하여 오프셋 추가 출력 뉴런을 얻는 데 사용되고; 제3단계는 활성 함수 연산을 실행하여 최종 출력 뉴런을 얻는다.
여기에서, 상기 매핑 유닛 중의 일대일 대응 관계는 이하의 상황으로 표시된다.
제1종 상황:
1은 연결되었음을 나타내고, 0은 연결되지 않았음을 나타내며, 각 출력 뉴런과 모든 입력 뉴런의 연결 상태는 하나의 0과 1의 문자열을 구성하여 상기 출력 뉴런의 연결 관계를 나타내거나; 또는
1은 연결되었음을 나타내고, 0은 연결되지 않았음을 나타내며, 각 입력 뉴런과 모든 출력 뉴런의 연결 상태는 하나의 0과 1의 문자열을 구성하여 상기 입력 뉴런의 연결 관계를 나타낸다.
제2종 상황:
하나의 출력 뉴런의 제1 연결이 소재한 입력 뉴런의 위치에서 제1 입력 뉴런까지의 거리, 상기 출력 뉴런의 제2 입력 뉴런에서 이전 입력 뉴런까지의 거리, 상기 출력 뉴런의 제3 입력 뉴런에서 이전 입력 뉴런까지의 거리, ……, 순서대로 유추하여, 상기 출력 뉴런의 모든 입력 뉴런까지 무작위 대위하여, 상기 출력 뉴런의 연결 관계를 나타낸다.
본 발명의 다른 일측면에서, 본 발명은 스파스 연결용 인공 신경망의 계산 방법을 더 제공하며, 여기에는 이하의 단계가 포함된다.
단계 1: 입력 데이터를 입력 뉴런과 가중치가 일대일 대응하는 저장 포맷으로 전환하며, 여기에서 상기 대응 관계는 이하를 포함한다.
제1종 상황:
1은 연결되었음을 나타내고, 0은 연결되지 않았음을 나타내며, 각 출력 뉴런과 모든 입력 뉴런의 연결 상태는 하나의 0과 1의 문자열을 구성하여 상기 출력 뉴런의 연결 관계를 나타내거나; 또는
1은 연결되었음을 나타내고, 0은 연결되지 않았음을 나타내며, 각 입력 뉴런과 모든 출력 뉴런의 연결 상태는 하나의 0과 1의 문자열을 구성하여 상기 입력 뉴런의 연결 관계를 나타낸다.
제2종 상황:
하나의 출력 뉴런의 제1 연결이 소재한 입력 뉴런의 위치에서 제1 입력 뉴런까지의 거리, 상기 출력 뉴런의 제2 입력 뉴런에서 이전 입력 뉴런까지의 거리, 상기 출력 뉴런의 제3 입력 뉴런에서 이전 입력 뉴런까지의 거리, ……, 순서대로 유추하여, 상기 출력 뉴런의 모든 입력 뉴런까지 무작위 대위하여, 상기 출력 뉴런의 연결 관계를 나타낸다.
단계 2: 입력한 뉴런과 가중치 데이터를 곱한다.
단계 3: 덧셈 트리 연산을 실행하고, 제1단계 처리한 가중치 출력 뉴런을 덧셈 트리를 통하여 단계적으로 더하거나, 또는 가중치 출력 뉴런에 오프셋을 더하여 오프셋 추가 출력 뉴런을 얻는다.
단계 4: 활성 함수 연산을 실행하여 최종 출력 뉴런을 얻고; 여기에서 상기 활성 함수는 sigmoid 함수, tanh 함수 또는 ReLU 함수를 포함한다.
상기 기술방안에서 알 수 있듯이, 본 발명의 인공 신경망 계산 장치와 방법은 이하의 유익한 효과를 가진다.
(1) 스파스의 다층 인공 신경망 연산에 대한 전용 SIMD 명령과 맞춤제작한 연산 유닛을 채택함으로써, 부족한 CPU와 GPU 연산 성능, 높은 전단 디코딩 비용의 문제를 해결하였으며, 다층 인공 신경망 연산 알고리즘에 대한 지원을 효과적으로 향상시켰다.
(2) 다층 인공 신경망 연산 알고리즘에 대한 전용 칩온 캐시를 채택하여, 입력 뉴런과 가중치 데이터의 재사용성을 충분히 발굴하였으며, 반복적으로 메모리가 이러한 데이터를 판독하는 것을 방지하고 메모리 엑세스 대역폭을 낮추며 메모리 대역폭이 다층 인공 신경망 연산 및 그 트레이닝 알고리즘 성능 병목이 되는 현상을 방지하였다.
도 1은 신경망의 노드 구조도이고;
도 2는 스파스 연결 신경망의 노드 구조도이고;
도 3은 본 발명 일실시예 전체 구조의 블록 다이어그램이고;
도 4는 본 발명 일실시예에 있어서 스파스 연결 신경망의 노드 구조도이고;
도 5는 도 4에 있어서 신경망의 연결 관계도이고;
도 6은 본 발명의 또 하나의 일실시예에 있어서 스파스 연결 신경망의 연결 관계도이고;
도 7은 본 발명의 일실시예에 있어서 컨볼루션(convolution) 연산의 설명도이고;
도 8은 컨볼루션 신경망의 스파스 변경 시 입력, 출력 및 가중치의 변화도이고;
도 9는 본 발명의 일실시예에 있어서 스파스 연결의 인공 신경망 연산 장치의 구조도이고;
도 10은 본 발명의 일실시예에 있어서 매핑 유닛의 구조도이고;
도 11은 본 발명의 일실시예에 있어서 스파스 연결의 인공 신경망 연산 과정의 흐름도이고;
도 12는 본 발명의 다른 일실시예에 있어서 스파스 연결의 인공 신경망 연산 장치의 구조도이고;
도 13은 본 발명의 다른 일실시예에 있어서 매핑 유닛의 구조도이고;
도 14는 본 발명의 또 다른 일실시예에 있어서 스파스 연결의 인공 신경망 연산 장치의 구조도이고;
도 15는 본 발명의 또 다른 일실시예에 있어서 매핑 유닛의 구조도이고;
도 16은 본 발명의 또 다른 일실시예에 있어서 스파스 연결의 인공 신경망 연산 장치의 구조도이고; 및
도 17은 본 발명의 또 다른 일실시예에 있어서 매핑 유닛의 구조도이다.
이하에서는, 본 발명의 예시적인 실시형태들을 도면을 통해 보다 본 발명의 목적, 기술방안 및 장점을 상세히 설명한다.
본 발명은 스파스 연결용 인공 신경망 계산 장치에 관한 것으로서, 매핑 유닛, 저장 장치, 및 연산 유닛을 포함한다.
매핑 유닛은 입력 데이터를 입력 뉴런과 가중치가 일대일 대응하는 저장 포맷으로 전환하고, 저장 장치 및/또는 캐시 내에 저장하는 데 사용된다.
저장 장치는 데이터와 명령을 저장하는 데 사용된다.
연산 유닛은 상기 저장 장치에 저장된 명령에 의거하여 상기 데이터에 대하여 상응하는 연산을 실행하는 데에 사용되며, 상기 연산 유닛은 주로 3단계 연산을 실행한다. 제1단계는 입력한 뉴런과 가중치 데이터를 곱한다. 제2단계는 덧셈 트리 연산을 실행하고, 제1단계 처리한 가중치 출력 뉴런을 덧셈 트리를 통하여 단계적으로 더하거나, 또는 가중치 출력 뉴런에 오프셋을 더하여 오프셋 추가 출력 뉴런을 얻는 데 사용된다. 제3단계는 활성 함수 연산을 실행하여 최종 출력 뉴런을 얻는다.
여기에서 상기 매핑 유닛 중의 일대일 대응 관계는 이하의 상황으로 표시된다.
제1종 상황:
1은 연결되었음을 나타내고, 0은 연결되지 않았음을 나타내며, 각 출력 뉴런과 모든 입력 뉴런의 연결 상태는 하나의 0과 1의 문자열을 구성하여 상기 출력 뉴런의 연결 관계를 나타내거나; 또는
1은 연결되었음을 나타내고, 0은 연결되지 않았음을 나타내며, 각 입력 뉴런과 모든 출력 뉴런의 연결 상태는 하나의 0과 1의 문자열을 구성하여 상기 입력 뉴런의 연결 관계를 나타낸다.
제2종 상황:
하나의 출력 뉴런의 제1 연결이 소재한 입력 뉴런의 위치에서 제1 입력 뉴런까지의 거리, 상기 출력 뉴런의 제2 입력 뉴런에서 이전 입력 뉴런까지의 거리, 상기 출력 뉴런의 제3 입력 뉴런에서 이전 입력 뉴런까지의 거리, ……, 순서대로 유추하여, 상기 출력 뉴런의 모든 입력 뉴런까지 무작위 대위하여, 상기 출력 뉴런의 연결 관계를 나타낸다.
바람직하게는, 상기 인공 신경망 계산 장치에는 직접 메모리 엑세스(direct memory access, DMA)가 더 포함되며, 상기 저장 장치와 캐시 중 데이터를 진행하거나 명령을 판독 입력하는 데 사용된다.
바람직하게는, 상기 인공 신경망 계산 장치는
전용 명령을 저장하는 명령 캐시; 및
상기 명령 캐시에서 전용 명령을 판독하고 이를 각 연산 유닛 명령으로 디코딩하는 제어 유닛을 더 포함한다.
바람직하게는, 상기 인공 신경망 계산 장치는
상기 연산 유닛의 입력 뉴런 데이터를 캐시 입력하는 입력 뉴런 캐시; 및
가중치 데이터를 캐싱하는 가중치 캐시를 더 포함한다.
바람직하게는, 상기 인공 신경망 계산 장치는
상기 연산 유닛이 출력하는 출력 뉴런을 캐싱하는 출력 뉴런 캐시를 더 포함한다.
바람직하게는, 상기 매핑 유닛은 입력 데이터를 입력 뉴런과 가중치가 일대일 대응하는 저장 포맷으로 전환하는 데 사용되며, 저장 장치에 저장하는 것이 아니라 상기 연산 유닛에 출력한다.
바람직하게는, 상기 인공 신경망 계산 장치는 입력 뉴런 캐시 및/또는 가중치 캐시를 더 포함하고, 상기 입력 뉴런 캐시는 상기 연산 유닛에 입력한 입력 뉴런 데이터를 캐싱하는 데 사용되고, 상기 가중치는 가중치 데이터를 캐싱하는 데 사용되고, 상기 매핑 유닛은 입력 데이터를 입력 뉴런과 가중치가 일대일 대응되는 저장 포맷으로 전환하는 데 사용되며, 상기 입력 뉴런 캐시 및/또는 가중치 캐시에 출력한다.
바람직하게는, 상기 연산 유닛이 제3단계에서 실행하는 활성 함수는 sigmoid 함수, tanh 함수 또는 ReLU 함수를 포함한다.
본 발명은 스파스 연결용 인공 신경망의 계산 방법을 더 공개하며, 여기에는 이하의 단계가 포함된다.
단계 1: 입력 데이터를 입력 뉴런과 가중치가 일대일 대응하는 저장 포맷으로 전환하고; 여기에서 상기 대응 관계는 이하를 포함한다.
제1종 상황:
1은 연결되었음을 나타내고, 0은 연결되지 않았음을 나타내며, 각 출력 뉴런과 모든 입력 뉴런의 연결 상태는 하나의 0과 1의 문자열을 구성하여 상기 출력 뉴런의 연결 관계를 나타내거나; 또는
1은 연결되었음을 나타내고, 0은 연결되지 않았음을 나타내며, 각 입력 뉴런과 모든 출력 뉴런의 연결 상태는 하나의 0과 1의 문자열을 구성하여 상기 입력 뉴런의 연결 관계를 나타낸다.
제2종 상황:
하나의 출력 뉴런의 제1 연결이 소재한 입력 뉴런의 위치에서 제1 입력 뉴런까지의 거리, 상기 출력 뉴런의 제2 입력 뉴런에서 이전 입력 뉴런까지의 거리, 상기 출력 뉴런의 제3 입력 뉴런에서 이전 입력 뉴런까지의 거리, ......, 순서대로 유추하여, 상기 출력 뉴런의 모든 입력 뉴런까지 무작위 대위하여, 상기 출력 뉴런의 연결 관계를 나타낸다.
단계 2: 입력한 뉴런과 가중치 데이터를 곱한다.
단계 3: 덧셈 트리 연산을 실행하고, 제1단계 처리한 가중치 출력 뉴런을 덧셈 트리를 통하여 단계적으로 더하거나, 또는 가중치 출력 뉴런에 오프셋을 더하여 오프셋 추가 출력 뉴런을 얻는다.
단계 4: 가중치 출력 뉴런 또는 오프셋 추가 출력 뉴런에 대하여 활성 함수 연산을 실행하고, 최종 출력 뉴런을 얻고; 여기에서 상기 활성 함수는 sigmoid 함수, tanh 함수 또는 ReLU 함수를 포함한다.
이하에서는 첨부 도면과 구체적인 실시예를 통하여 본 발명의 기술방안을 더욱 상세하게 설명한다.
도 3은 본 발명 일실시예 전체 구조의 블록 다이어그램을 도시한 것이다.
I/O 인터페이스(1)은 I/O 데이터가 CPU3를 거쳐 스파스의 다층 인공 신경망 연산 장치로 발송되는 데 사용되며, 그 후 스파스의 다층 인공 신경망 연산 장치(4)에서 저장 장치에 기록하고, 스파스의 다층 인공 신경망 연산 장치(4)에 필요한 전용 프로그램도 CPU3에서 스파스의 다층 인공 신경망 연산 장치(4)로 전송한다.
저장 장치(2)는 스파스의 다층 인공 신경망 모델과 뉴런 데이터를 임시 저장하는 데 사용되는데, 특히 모든 모델이 스파스의 다층 인공 신경망 연산 장치(4)의 캐시에 놓을 수 없을 때 사용된다.
중앙 처리 장치(CPU3)는 데이터 운반 및 스파스의 다층 인공 신경망 연산 장치(4) 가동 정지 등 기본 제어에 사용되며, 스파스의 다층 인공 신경망 연산 장치(4)와 외부 제어의 인터페이스가 된다.
스파스의 인공 신경망 연산 장치(4)는 스파스의 다층 인공 신경망 연산 유닛에 사용되며, CPU3에서 유래한 데이터와 프로그램을 수신하고, 상기 스파스의 다층 인공 신경망 연산 알고리즘을 실행하고, 스파스의 인공 신경망 연산 장치(4)의 실행 결과를 CPU3에 전송한다.
범용 시스템 구조: 스파스의 인공 신경망 연산 장치(4)를 CPU3 또는 GPU의 보조 프로세서로 삼아 스파스의 다층 인공 신경망 연산 알고리즘을 실행한다.
복수개 스파스의 인공 신경망 연산 장치 상호접속 시스템 주고: 복수개 스파스의 인공 신경망 연산 장치(4)는 PCIE 버스를 통하여 상호접속되어 더 큰 규모의 스파스 다층 인공 신경망 연산을 지원할 수 있으며, 동일 호스트 CPU를 함께 사용하거나 각각 자신의 호스트 CPU를 가질 수 있고, 메모리를 공유할 수 있고 각 가속기에 각자의 메모리가 있을 수도 있다. 또한 상호연결 방식은 임의 상호접속 토폴로지(interconnection topology)일 수 있다.
스파스 연결의 신경망은 도 4에서 도시하는 바와 같이, 4개의 입력 뉴런 i1, i2, i3, i4, 2개의 출력 뉴런 o1, o2가 있다. 여기에서, o1과 i1, i3, i4는 연결되고, 연결된 가중치는 각각 w11, w31, w41로 표시되고, o2는 i2, i3과 연결되고, 연결된 가중치는 각각 w22, w32로 표시된다.
상기 스파스 신경망의 연결 관계를 표시할 수 있는 2가지 방법이 있는데, 하나는 각 입력과 출력 뉴런 사이에 모두 하나의 비트를 사용해 연결 여부를 표시하는 것이며, 다른 하나는 연결 사이의 거리를 이용해 각 연결의 위치를 표시하는 것이다.
제1종 연결 표시:
도 4의 신경망에 있어서, 도 5에서 도시하는 바와 같이, 출력 뉴런 o1의 연결 관계는 1011이며, 각 비트는 입력 뉴런이 연결됐는지 여부를 표시한다. 1은 연결되었음을, 0은 연결되지 않았음을 표시하고, 출력 뉴런 o2의 연결 관계는 0110이다. 연산 시 연결 관계 0에 대응하는 입력 뉴런은 연산을 진행하지 않는다.
연결 관계 저장 시, 우선 입력 뉴런 또는 출력 뉴런의 순서에 따라 연결 관계를 저장한다. 구체적인 저장 포맷에는 이하의 몇 가지가 있다.
포맷 1: 각 출력 뉴런의 모든 입력 뉴런을 순서대로 놓고, 상기 예시에서 놓은 순서는 10110110이다.
포맷 2: 각 입력 뉴런의 모든 출력 뉴런을 순서대로 놓고, 상기 예시에서 놓은 순서는 10011110이다.
제2종 연결 표시:
예를 들어, 도 6의 신경망에 있어서, 출력 뉴런 o1과 입력 뉴런 i1, i3, i4가 연결되면, 연결 관계는 0, 2, 1이다. 0은 제1 연결이 소재한 위치에서 제1 입력 뉴런의 거리가 0, 즉 제1 입력 뉴런을 나타내고, 2는 제2 입력 뉴런에서 이전 입력 뉴런의 거리가 2, 즉 제3 입력 뉴런을 나타내고, 1은 제3 입력 뉴런에서 이전 입력 뉴런의 거리가 1, 즉 제4 입력 뉴런을 나타낸다. 같은 원리로, o2의 연결 관계는 1, 1이다.
본 발명의 매핑 유닛은 이하의 연결 관계를 포함하나 이에 국한되지 않는다.
컨볼루션 신경망은 인공 신경망의 일종이며, 컨볼루션층에는 복수개의 필터가 포함되는데 바로 컨볼루션 커널이다. 상기 컨볼루션 커널은 반복적으로 모든 입력 이미지에 작용하여 국부적 특징을 추출한다. 다른 컨볼루션 커널은 다른 종류의 국부적 특징을 추출하며, 하나의 입력 이미지는 컨볼루션층을 거친 후 일부 더욱 잘 이해될 수 있는 추상적 특징으로 바뀐다.
자연 이미지는 고유의 특성이 있다. 다시 말해 이미지 일부분의 통계적 특성은 기타 부분과 같다. 이는 상기 부분에서 학습한 특징을 다른 부분에 사용할 수도 있다는 것을 의미한다. 따라서 상기 이미지 상의 모든 위치는 동일한 학습 특징을 사용할 수 있다. 하나의 큰 사이즈 이미지 중 무작위로 작은 블록을 선택하는 경우, 예를 들어 8*8을 샘플로 삼고 이 작은 블록 샘플본에서 일부 특징을 학습한다. 이때 상기 8*8 샘플본에서 학습한 특징을 검출기로 삼고 상기 이미지의 임의 지점에 응용할 수 있다. 특히, 8*8 샘플본에서 학습한 특징을 이용하여 원본의 큰 사이즈 이미지와 컨볼루션을 진행할 수 있기 때문에, 상기 큰 사이즈 이미지의 임의 위치에 대하여 하나의 다른 특징의 활성값을 얻을 수 있다. 상기 8*8 샘플본 특징을 컨볼루션 커널로 삼는다.
도 7은 컨볼루션 연산의 예시를 도시한 것이다. 컨볼루션 커널은 하나의 2*2 행렬이고, 컨볼루션 커널은 입력 이미지에서 슬라이딩한다.
매회 하나의 픽셀 포인트가 슬라이딩한다고 가정하면, 총 4회의 컨볼루션 연산이 있을 수 있다. 매회 컨볼루션 연산에 있어서, 컨볼루션 커널 행렬과 대응하는 입력 이미지 데이터에 대하여 곱셈 덧셈 연산을 진행한다.
컨볼루션 커널의 가중치가 스파스로 변경되고, 이전의 2*2에서 2개의 파라미터만 있도록 변경된다고 가정하며, 이는 도 8에서 도시하는 바와 같다. 출력 o0에 있어서, 필요한 입력 뉴런은 i0, i1, i3, i4이고, 입력 가중치는 w0, w3이고, 연결 관계는 1001 또는 0, 2이다.
출력 o3에 있어서, 필요한 입력 뉴런은 i3, i5, i7, i8이고, 입력 가중치는 w0, w3이고, 연결 관계는 1001 또는 0, 2이다.
여기에서 알 수 있듯이, 같은 출력 특징도 상의 다른 출력 뉴런에 있어서, 필요한 입력 뉴런은 다르나, 가중치와 연결 관계는 같다.
실행 가능한 스파스 연결의 인공 신경망 연산 장치는 각종 스파스 연결 표시의 스파스 연결의 인공 신경망을 처리할 수 있으며, 실행 가능한 스파스 연결의 인공 신경망 연산 장치 중에는 하나의 스파스 연결 처리 전용 유닛이 있는데, 여기에서 매핑 유닛이라 부르며, 다른 스파스 연결 관계와 처리 방법에 있어서 스파스 연결의 인공 신경망 연산 장치 구조는 약간 다를 수 있는데, 이하에서는 다른 구조와 방법을 설명한다.
구조와 방법 1
도 9에서 도시하는 바와 같이, 매핑 유닛(1)은 입력 데이터를 입력 뉴런과 가중치가 일대일 대응하는 저장 포맷으로 전환하는 데 사용된다.
저장 장치(2)는 데이터와 명령을 저장하는 데 사용되며, 특히 신경망 규모가 아주 큰 경우 명령 캐시(4), 입력 뉴런 캐시(6), 출력 뉴런 캐시(9), 가중치 캐시(8)는 이렇게 많은 데이터를 거치할 수 없기 때문에, 데이터를 저장 장치(2)에 임시 저장할 수만 있다.
DMA3은 저장 장치 중의 데이터 또는 명령을 각 캐시로 운반하는 데 사용된다.
명령 캐시(4)는 전용 명령을 저장하는 데 사용된다.
제어 유닛(5)은 명령 캐시(4)에서 전용 명령을 판독하고 이를 각 연산 유닛 명령으로 디코딩한다.
입력 뉴런 캐시(6)는 연산의 입력 뉴런 데이터를 저장하는 데 사용된다.
연산 유닛(7)은 구체적인 연산을 실행하는 데 사용된다. 연산 유닛은 주로 3단계로 나뉜다. 제1단계는 곱하기 연산을 실행하며, 입력한 뉴런과 가중치 데이터를 곱하는 데 사용된다. 제2단계는 덧셈 트리 연산을 실행하고, 제1, 2단계를 합하여 벡터 내적 연산을 완료한다. 제3단계는 활성 함수 연산을 실행하며, 활성 함수는 sigmoid 함수, tanh 함수 등일 수 있다. 제3단계는 출력 뉴런을 얻어 출력 뉴런 캐시에 기록한다.
가중치 캐시(8)는 가중치 데이터를 저장하는 데 사용된다.
출력 뉴런 캐시(9)는 연산한 출력 뉴런을 저장하는 데 사용된다.
매핑 유닛의 구조는 도 10에서 도시하는 바와 같다.
상기 스파스 연결의 신경망을 예로 들면, 연결 관계는 상기의 2가지 스파스 표시 중 하나일 수 있으며, 매핑 유닛은 연결 관계에 의거하여 입력 뉴런과 입력 가중치를 연결 관계에 따라 매핑한 후의 뉴런과 가중치를 출력하고, 매핑한 후의 뉴런과 가중치는 연산 시 연결 관계를 고려할 필요 없이 곧바로 사용할 수 있으며, 출력 뉴런 o1 매핑의 구체적인 과정은 이하와 같다.
입력 뉴런은 i1, i2, i3, i4이고, 입력 가중치는 w11, w31, w41이고, 연결 관계는 1001 또는 0, 2, 1일 수 있다. 매핑 유닛은 연결 관계에 의거하여 입력 뉴런과 가중치를 서로 대응하는 관계로 변경하며, 출력에는 2가지 상황이 있는데, 하나는 연결되지 않은 입력 뉴런을 제거하는 것으로, 매핑한 후의 뉴런은 i1, i3, i4이고, 매핑한 후의 가중치는 w11, w31, w41이고; 다른 하나는 가중치에서 연결되지 않은 부분에 0을 보완하는 것으로, 매핑한 후의 뉴런은 i1, i2, i3, i4이고, 매핑한 후의 가중치는 w11, 0, w31, w41이다.
연산 유닛은 제1부분 곱셈기, 제2부분 덧셈 트리, 제3부분 선형 함수 유닛의 3개 부분을 포함하나 이에 국한되지 않는다. 제1부분은 입력 뉴런(in)에 가중치(w)를 곱하여 가중치 출력 뉴런(out)을 얻고, 과정은 out=w*in이다. 제2부분은 가중치 출력 뉴런에 덧셈 트리를 이용하여 단계적으로 더하고, 그 외 출력 뉴런(in)에 오프셋(b)을 더하여 오프셋 추가 출력 뉴런(out)을 얻고, 과정은 out=out+b이다. 제3부분은 출력 뉴런(in)에 활성 함수(active)로 연산하여 활성 출력 뉴런(out)을 얻고, 과정은 out=active(in)이고, 활성 함수 active는 sigmoid, tanh, relu, softmax 등일 수 있다. 활성 연산 이외에 제3부분은 기타의 비선형 함수를 구현할 수 있으며, 입력 뉴런(in)을 연산(f)을 통하여 출력 뉴런(out)을 얻을 수 있고, 과정은 out=f(in)이다.
연산 과정은 도 11에서 도시하는 바와 같다.
구조와 방법 2
도 12에서 도시하는 바와 같이, 저장 장치(1)는 데이터와 명령을 저장하는 데 사용되며, 특히 신경망 규모가 아주 큰 경우 명령 캐시(3), 입력 뉴런 캐시(6), 출력 뉴런 캐시(9), 가중치 캐시(8)는 이렇게 많은 데이터를 거치할 수 없기 때문에, 데이터를 저장 장치(1)에 임시 저장할 수만 있다.
DMA2는 저장 장치 중의 데이터 또는 명령을 각 캐시로 운반하는 데 사용된다.
명령 캐시(3)는 전용 명령을 저장하는 데 사용된다.
제어 유닛(4)은 명령 캐시(3)에서 전용 명령을 판독하고 이를 각 연산 유닛 명령으로 디코딩한다.
매핑 유닛(5)은 입력 데이터를 입력 뉴런과 가중치가 일대일 대응하는 저장 포맷으로 전환하는 데 사용된다.
입력 뉴런 캐시(6)는 연산의 입력 뉴런 데이터를 저장하는 데 사용된다.
연산 유닛(7)은 구체적인 연산을 실행하는 데 사용된다. 연산 유닛은 주로 3단계로 나뉜다. 제1단계는 곱하기 연산을 실행하며, 입력한 뉴런과 가중치 데이터를 곱하는 데 사용된다. 제2단계는 덧셈 트리 연산을 실행하고, 제1, 2단계를 합하여 벡터 내적 연산을 완료한다. 제3단계는 활성 함수 연산을 실행하며, 활성 함수는 sigmoid 함수, tanh 함수 등일 수 있다. 제3단계는 출력 뉴런을 얻어 출력 뉴런 캐시에 기록한다.
가중치 캐시(8)는 가중치 데이터를 저장하는 데 사용된다.
출력 뉴런 캐시(9)는 연산한 출력 뉴런을 저장하는 데 사용된다.
매핑 유닛의 구조는 도 13에서 도시하는 바와 같다.
상기 스파스 연결의 신경망을 예로 들면, 연결 관계는 상기의 2가지 스파스 표시 중 하나일 수 있으며, 매핑 유닛은 연결 관계에 의거하여 입력 뉴런과 입력 가중치를 연결 관계에 따라 매핑된 후의 뉴런과 가중치를 매핑하고, 매핑한 후의 뉴런과 가중치를 출력한다. 매핑한 후의 뉴런과 가중치는 연산 시 연결 관계를 고려할 필요 없이 곧바로 사용할 수 있으며, 출력 뉴런 o1 매핑의 구체적인 과정은 이하와 같다.
입력 뉴런은 i1, i2, i3, i4이고, 입력 가중치는 w11, w31, w41이고, 연결 관계는 1011 또는 0, 2, 1일 수 있다. 매핑 유닛은 연결 관계에 의거하여 입력 뉴런과 가중치를 서로 대응하는 관계로 변경하며, 출력에는 2가지 상황이 있다. 하나는 연결되지 않은 입력 뉴런을 제거하는 것으로, 매핑한 후의 뉴런은 i1, i3, i4이고, 매핑한 후의 가중치는 w11, w31, w41이고; 다른 하나는 가중치에서 연결되지 않은 부분에 0을 보완하는 것으로, 매핑한 후의 뉴런은 i1, i2, i3, i4이고, 매핑한 후의 가중치는 w11, 0, w31, w41이다.
구조와 방법 1과 구조와 방법 2에서 매핑 유닛의 중 차이점은, 구조와 방법 1의 매핑 유닛은 계산 전에 미리 입력 뉴런과 가중치를 매핑시킨 후 저장 장치에 저장하나, 구조와 방법 2는 계산 중에 매핑을 진행하며 매핑한 데이터를 곧바로 연산 유닛에 연결하여 연산을 진행한다는 것이다.
구조와 방법 3:
구조와 방법 2를 기반으로 약간의 수정을 가하여 도 14에서 도시하는 구조로 변경할 수 있으며, 매핑 유닛은 입력 뉴런에 대해서만 매핑을 진행할 수 있다.
여기에서 매핑 유닛의 구조도는 도 15에서 도시하는 바와 같다.
출력 뉴런 o1 매핑의 구체적인 과정은 이하와 같다.
입력 뉴런은 i1, i2, i3, i4이고, 연결 관계는 1011 또는 0, 2, 1일 수 있다. 매핑 유닛은 연결 관계에 의거하여 입력 뉴런과 가중치를 서로 대응하는 관계로 변경하고, 연결되지 않은 입력 뉴런을 제거하며, 매핑한 후의 뉴런은 i1, i3, i4이다.
구조와 방법 4:
구조와 방법 2를 기반으로 약간의 수정을 가하여 도 16에서 도시하는 구조로 변경할 수 있으며, 매핑 유닛은 입력 가중치에 대해서만 매핑을 진행할 수 있다.
여기에서 매핑 유닛의 구조도는 도 17에서 도시하는 바와 같다.
출력 뉴런 o1 매핑의 구체적인 과정은 이하와 같다.
입력 가중치는 w11, w31, w41이고, 연결 관계는 1011 또는 0, 2, 1일 수 있다. 매핑 유닛은 연결 관계에 의거하여 입력 뉴런과 가중치를 서로 대응하는 관계로 변경하며, 매핑한 후의 가중치는 w11, 0, w31, w41이다.
상기의 구체적인 실시예는 본 발명의 목적, 기술방안 및 유익한 효과를 더욱 상세하게 설명하기 위한 것이다. 상기 내용은 본 발명의 구체적인 실시예에 불과하므로 본 발명을 제한하지 않는다. 본 발명의 정신과 원칙 내에서 진행한 모든 수정, 동등한 치환, 개선 등은 모두 본 발명의 보호범위 내에 속한다.

Claims (10)

  1. 매핑 유닛, 저장 장치, 및 연산 유닛을 포함하되,
    상기 매핑 유닛은 입력 데이터를 입력 뉴런과 가중치가 일대일 대응하는 저장 포맷으로 전환하고, 저장 장치 및/또는 캐시 내에 저장하는 데 사용되고;
    상기 저장 장치는 데이터와 명령을 저장하는 데 사용되고;
    상기 연산 유닛은 상기 저장 장치에 저장된 명령에 의거하여 상기 데이터에 대하여 상응하는 연산을 실행하는 데에 사용되며; 상기 연산 유닛은 주로 3단계 연산을 실행하고, 제1단계는 상기 입력 뉴런과 가중치 데이터를 곱하고; 제2단계는 덧셈 트리 연산을 실행하고, 제1단계 처리한 가중치 출력 뉴런을 덧셈 트리를 통하여 단계적으로 더하거나, 또는 출력 뉴런에 오프셋을 더하여 오프셋 추가 출력 뉴런을 얻는 데 사용되고; 제3단계는 활성 함수 연산을 실행하여 최종 출력 뉴런을 얻는 것을 특징으로 하는 스파스 연결용 인공 신경망 계산 장치.
  2. 제1항에 있어서,
    상기 매핑 유닛 중의 일대일 대응 관계는,
    제1종 상황:
    1은 연결되었음을 나타내고, 0은 연결되지 않았음을 나타내며, 각 출력과 모든 입력의 연결 상태는 하나의 0과 1의 문자열을 구성하여 상기 출력의 연결 관계를 나타내거나; 또는
    1은 연결되었음을 나타내고, 0은 연결되지 않았음을 나타내며, 각 입력과 모든 출력의 연결 상태는 하나의 0과 1의 문자열을 구성하여 상기 입력의 연결 관계를 나타내고;
    제2종 상황:
    하나의 출력의 제1 연결이 소재한 위치에서 제1 입력 뉴런까지의 거리, 상기 출력의 제2 입력 뉴런에서 이전 입력 뉴런까지의 거리, 상기 출력의 제3 입력 뉴런에서 이전 입력 뉴런까지의 거리, ……, 순서대로 유추하여, 상기 출력의 모든 입력까지 무작위 대위하여, 상기 출력의 연결 관계를 나타내는 상황으로 표시되는 것을 특징으로 하는 스파스 연결용 인공 신경망 계산 장치.
  3. 제1항에 있어서,
    상기 인공 신경망 계산 장치에는 직접 메모리 엑세스(direct memory access, DMA)가 더 포함되며, 상기 저장 장치와 캐시 중 데이터를 진행하거나 명령을 판독 입력하는 데 사용되는 것을 특징으로 하는 스파스 연결용 인공 신경망 계산 장치.
  4. 제3항에 있어서,
    상기 인공 신경망 계산 장치는,
    전용 명령을 저장하는 명령 캐시; 및
    상기 명령 캐시에서 전용 명령을 판독하고 이를 각 연산 유닛 명령으로 디코딩하는 제어 유닛을 더 포함하는 것을 특징으로 하는 스파스 연결용 인공 신경망 계산 장치.
  5. 제3항에 있어서,
    상기 인공 신경망 계산 장치는,
    상기 연산 유닛의 입력 뉴런 데이터를 캐시 입력하는 입력 뉴런 캐시; 및
    가중치 데이터를 캐싱하는 가중치 캐시를 더 포함하는 것을 특징으로 하는 스파스 연결용 인공 신경망 계산 장치.
  6. 제3항에 있어서,
    상기 인공 신경망 계산 장치는,
    상기 연산 유닛이 출력하는 출력 뉴런을 캐싱하는 출력 뉴런 캐시를 더 포함하는 것을 특징으로 하는 스파스 연결용 인공 신경망 계산 장치.
  7. 제1항에 있어서,
    상기 매핑 유닛은 입력 데이터를 입력 뉴런과 가중치가 일대일 대응하는 저장 포맷으로 전환하는 데 사용되며, 저장 장치에 저장하는 것이 아니라 상기 연산 유닛에 출력하는 것을 특징으로 하는 스파스 연결용 인공 신경망 계산 장치.
  8. 제7항에 있어서,
    상기 인공 신경망 계산 장치는 입력 뉴런 캐시 및/또는 가중치 캐시를 더 포함하고, 상기 입력 뉴런 캐시는 상기 연산 유닛에 입력한 입력 뉴런 데이터를 캐싱하는 데 사용되고, 상기 가중치는 가중치 데이터를 캐싱하는 데 사용되고, 상기 매핑 유닛은 입력 데이터를 입력 뉴런과 가중치가 일대일 대응되는 저장 포맷으로 전환하는 데 사용되며, 상기 입력 뉴런 캐시 및/또는 가중치 캐시에 출력하는 것을 특징으로 하는 스파스 연결용 인공 신경망 계산 장치.
  9. 제1항에 있어서,
    상기 연산 유닛이 제3단계에서 실행하는 활성 함수는 sigmoid 함수, tanh 함수 또는 ReLU 함수인 것을 특징으로 하는 스파스 연결용 인공 신경망 계산 장치.
  10. 스파스 연결용 인공 신경망의 계산 방법에 있어서,
    단계 1: 입력 데이터를 입력 뉴런과 가중치가 일대일 대응하는 저장 포맷으로 전환하며, 여기에서, 상기 대응 관계는,
    제1종 상황:
    1은 연결되었음을 나타내고, 0은 연결되지 않았음을 나타내며, 각 출력과 모든 입력의 연결 상태는 하나의 0과 1의 문자열을 구성하여 상기 출력의 연결 관계를 나타내거나; 또는
    1은 연결되었음을 나타내고, 0은 연결되지 않았음을 나타내며, 각 입력과 모든 출력의 연결 상태는 하나의 0과 1의 문자열을 구성하여 상기 입력의 연결 관계를 나타내고;
    제2종 상황:
    하나의 출력의 제1 연결이 소재한 위치에서 제1 입력 뉴런까지의 거리, 상기 출력의 제2 입력 뉴런에서 이전 입력 뉴런까지의 거리, 상기 출력의 제3 입력 뉴런에서 이전 입력 뉴런까지의 거리, ……, 순서대로 유추하여, 상기 출력의 모든 입력까지 무작위 대위하여, 상기 출력의 연결 관계를 나타내는 것으로 표시되고;
    단계 2: 입력한 뉴런과 가중치 데이터를 곱하고;
    단계 3: 덧셈 트리 연산을 실행하고, 제1단계 처리한 가중치 출력 뉴런을 덧셈 트리를 통하여 단계적으로 더하거나, 또는 출력 뉴런에 오프셋을 더하여 오프셋 추가 출력 뉴런을 얻고;
    단계 4: 활성 함수 연산을 실행하여 최종 출력 뉴런을 얻고; 여기에서 상기 활성 함수는 sigmoid 함수, tanh 함수 또는 ReLU 함수인
    단계를 포함하는 것을 특징으로 하는 스파스 연결용 인공 신경망의 계산 방법.
KR1020187018864A 2016-01-20 2016-04-06 스파스 연결용 인공 신경망 계산 장치와 방법 KR102166775B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201610039162.5 2016-01-20
CN201610039162.5A CN105512723B (zh) 2016-01-20 2016-01-20 一种用于稀疏连接的人工神经网络计算装置和方法
PCT/CN2016/078545 WO2017124646A1 (zh) 2016-01-20 2016-04-06 一种用于稀疏连接的人工神经网络计算装置和方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020187015437A Division KR102142889B1 (ko) 2016-01-20 2016-04-06 스파스 연결용 인공 신경망 계산 장치와 방법

Publications (2)

Publication Number Publication Date
KR20180093969A true KR20180093969A (ko) 2018-08-22
KR102166775B1 KR102166775B1 (ko) 2020-10-16

Family

ID=55720686

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020187015437A KR102142889B1 (ko) 2016-01-20 2016-04-06 스파스 연결용 인공 신경망 계산 장치와 방법
KR1020187018864A KR102166775B1 (ko) 2016-01-20 2016-04-06 스파스 연결용 인공 신경망 계산 장치와 방법
KR1020187018866A KR102163561B1 (ko) 2016-01-20 2016-04-06 스파스 연결용 인공 신경망 계산 장치와 방법

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020187015437A KR102142889B1 (ko) 2016-01-20 2016-04-06 스파스 연결용 인공 신경망 계산 장치와 방법

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020187018866A KR102163561B1 (ko) 2016-01-20 2016-04-06 스파스 연결용 인공 신경망 계산 장치와 방법

Country Status (5)

Country Link
US (3) US20180260710A1 (ko)
EP (1) EP3407266B1 (ko)
KR (3) KR102142889B1 (ko)
CN (6) CN107563497B (ko)
WO (1) WO2017124646A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11294677B2 (en) 2020-02-20 2022-04-05 Samsung Electronics Co., Ltd. Electronic device and control method thereof

Families Citing this family (127)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107301453B (zh) * 2016-04-15 2021-04-20 中科寒武纪科技股份有限公司 支持离散数据表示的人工神经网络正向运算装置和方法
CN105930902B (zh) * 2016-04-18 2018-08-10 中国科学院计算技术研究所 一种神经网络的处理方法、系统
CN111860811B (zh) * 2016-04-27 2024-01-16 中科寒武纪科技股份有限公司 一种用于执行人工神经网络全连接层正向运算的装置和方法
WO2017185256A1 (zh) * 2016-04-27 2017-11-02 北京中科寒武纪科技有限公司 一种用于执行RMSprop梯度下降算法的装置及方法
CN107341542B (zh) * 2016-04-29 2021-06-11 中科寒武纪科技股份有限公司 用于执行循环神经网络和lstm运算的装置和方法
CN107341541B (zh) * 2016-04-29 2021-01-29 中科寒武纪科技股份有限公司 一种用于执行全连接层神经网络训练的装置和方法
CN107329734B (zh) 2016-04-29 2020-08-07 中科寒武纪科技股份有限公司 一种用于执行卷积神经网络正向运算的装置和方法
EP3451239A4 (en) * 2016-04-29 2020-01-01 Cambricon Technologies Corporation Limited APPARATUS AND METHOD FOR PERFORMING RECURRENT NEURONAL NETWORK AND LTSM CALCULATIONS
CN107341546B (zh) * 2016-04-29 2021-06-08 中科寒武纪科技股份有限公司 一种用于执行batch normalization运算的装置和方法
CN111860812B (zh) * 2016-04-29 2024-03-01 中科寒武纪科技股份有限公司 一种用于执行卷积神经网络训练的装置和方法
US20170330069A1 (en) * 2016-05-11 2017-11-16 Kneron Inc. Multi-layer artificial neural network and controlling method thereof
JP6913388B2 (ja) * 2016-05-19 2021-08-04 国立大学法人東京工業大学 ニューラルネットワーク回路及びニューラルネットワーク集積回路
CN105893159B (zh) * 2016-06-21 2018-06-19 北京百度网讯科技有限公司 数据处理方法和装置
CN107678781B (zh) * 2016-08-01 2021-02-26 北京百度网讯科技有限公司 处理器以及用于在处理器上执行指令的方法
CN107688853B (zh) * 2016-08-05 2020-01-10 中科寒武纪科技股份有限公司 一种用于执行神经网络运算的装置及方法
US11238337B2 (en) * 2016-08-22 2022-02-01 Applied Brain Research Inc. Methods and systems for implementing dynamic neural networks
CN107808664B (zh) * 2016-08-30 2021-07-30 富士通株式会社 基于稀疏神经网络的语音识别方法、语音识别装置和电子设备
CN106485317A (zh) * 2016-09-26 2017-03-08 上海新储集成电路有限公司 一种神经网络加速器以及神经网络模型的实现方法
CN107886167B (zh) * 2016-09-29 2019-11-08 北京中科寒武纪科技有限公司 神经网络运算装置及方法
WO2018058427A1 (zh) * 2016-09-29 2018-04-05 北京中科寒武纪科技有限公司 神经网络运算装置及方法
CN106529670B (zh) * 2016-10-27 2019-01-25 中国科学院计算技术研究所 一种基于权重压缩的神经网络处理器、设计方法、芯片
CN108022281B (zh) * 2016-10-31 2021-02-23 龙芯中科技术股份有限公司 渲染三维图形的方法及装置
CN108073550A (zh) * 2016-11-14 2018-05-25 耐能股份有限公司 缓冲装置及卷积运算装置与方法
WO2018103736A1 (en) 2016-12-09 2018-06-14 Beijing Horizon Information Technology Co., Ltd. Systems and methods for data management
EP3557484B1 (en) * 2016-12-14 2021-11-17 Shanghai Cambricon Information Technology Co., Ltd Neural network convolution operation device and method
WO2018112699A1 (zh) * 2016-12-19 2018-06-28 上海寒武纪信息科技有限公司 人工神经网络反向训练装置和方法
CN108205706B (zh) * 2016-12-19 2021-04-23 上海寒武纪信息科技有限公司 人工神经网络反向训练装置和方法
EP3561736A4 (en) * 2016-12-20 2020-09-09 Shanghai Cambricon Information Technology Co., Ltd MULTIPLICATION AND ADDITION DEVICE FOR MATRICES, COMPUTER DEVICE WITH NEURONAL NETWORK AND PROCESS
EP3340129B1 (en) * 2016-12-21 2019-01-30 Axis AB Artificial neural network class-based pruning
EP3561732A4 (en) 2016-12-23 2020-04-01 Cambricon Technologies Corporation Limited OPERATING DEVICE AND METHOD FOR AN ARTIFICIAL NEURONAL NETWORK
WO2018121472A1 (zh) 2016-12-28 2018-07-05 上海寒武纪信息科技有限公司 一种运算方法
CN113537480B (zh) * 2016-12-30 2024-04-02 上海寒武纪信息科技有限公司 用于执行lstm神经网络运算的装置和运算方法
WO2018120016A1 (zh) * 2016-12-30 2018-07-05 上海寒武纪信息科技有限公司 用于执行lstm神经网络运算的装置和运算方法
TWI630544B (zh) * 2017-02-10 2018-07-21 耐能股份有限公司 卷積神經網路的運算裝置及方法
CN107633297B (zh) * 2017-03-10 2021-04-06 南京风兴科技有限公司 一种基于并行快速fir滤波器算法的卷积神经网络硬件加速器
CN106951962B (zh) * 2017-03-22 2020-09-01 南京地平线机器人技术有限公司 用于神经网络的复合运算单元、方法和电子设备
WO2018171899A1 (en) * 2017-03-24 2018-09-27 Huawei Technologies Co., Ltd. Neural network data processing apparatus and method
US11010338B2 (en) 2017-04-06 2021-05-18 Shanghai Cambricon Information Technology Co., Ltd Data screening device and method
CN109409515B (zh) * 2017-04-06 2022-08-09 上海寒武纪信息科技有限公司 运算装置和方法
US10795836B2 (en) * 2017-04-17 2020-10-06 Microsoft Technology Licensing, Llc Data processing performance enhancement for neural networks using a virtualized data iterator
EP3786786B1 (en) 2017-04-19 2023-06-07 Shanghai Cambricon Information Technology Co., Ltd Processing device, processing method, chip, and electronic apparatus
CN108734288B (zh) * 2017-04-21 2021-01-29 上海寒武纪信息科技有限公司 一种运算方法及装置
CN109104876B (zh) * 2017-04-20 2021-06-25 上海寒武纪信息科技有限公司 一种运算装置及相关产品
CN108734279B (zh) * 2017-04-20 2021-04-23 上海寒武纪信息科技有限公司 一种运算装置和方法
CN108733348B (zh) * 2017-04-21 2022-12-09 寒武纪(西安)集成电路有限公司 融合向量乘法器和使用其进行运算的方法
CN114970827A (zh) * 2017-04-21 2022-08-30 上海寒武纪信息科技有限公司 一种运算装置和方法
CN109146069B (zh) * 2017-06-16 2020-10-13 上海寒武纪信息科技有限公司 运算装置、运算方法和芯片
CN109389218B (zh) * 2017-08-09 2021-09-03 上海寒武纪信息科技有限公司 数据压缩方法及压缩装置
CN109478251B (zh) * 2017-05-23 2021-01-05 安徽寒武纪信息科技有限公司 处理方法及加速装置
EP3657398A1 (en) 2017-05-23 2020-05-27 Shanghai Cambricon Information Technology Co., Ltd Weight quantization method for a neural network and accelerating device therefor
CN108960415B (zh) * 2017-05-23 2021-04-20 上海寒武纪信息科技有限公司 处理装置和处理系统
CN110175673B (zh) * 2017-05-23 2021-02-09 上海寒武纪信息科技有限公司 处理方法及加速装置
CN109117455A (zh) 2017-06-26 2019-01-01 上海寒武纪信息科技有限公司 计算装置及方法
CN109102074B (zh) * 2017-06-21 2021-06-01 上海寒武纪信息科技有限公司 一种训练装置
CN109102073A (zh) 2017-06-21 2018-12-28 上海寒武纪信息科技有限公司 一种稀疏训练方法
EP3637327B1 (en) 2017-06-13 2023-09-13 Shanghai Cambricon Information Technology Co., Ltd Computing device and method
CN109426553A (zh) 2017-08-21 2019-03-05 上海寒武纪信息科技有限公司 任务切分装置及方法、任务处理装置及方法、多核处理器
CN110413551B (zh) 2018-04-28 2021-12-10 上海寒武纪信息科技有限公司 信息处理装置、方法及设备
CN109214616B (zh) 2017-06-29 2023-04-07 上海寒武纪信息科技有限公司 一种信息处理装置、系统和方法
EP3637272A4 (en) 2017-06-26 2020-09-02 Shanghai Cambricon Information Technology Co., Ltd DATA-SHARING SYSTEM AND RELATED DATA-SHARING PROCESS
CN109583577B (zh) * 2017-09-29 2021-04-23 上海寒武纪信息科技有限公司 运算装置及方法
CN109284822B (zh) * 2017-07-20 2021-09-21 上海寒武纪信息科技有限公司 一种神经网络运算装置及方法
CN109615061B (zh) * 2017-08-31 2022-08-26 中科寒武纪科技股份有限公司 一种卷积运算方法及装置
EP3654208A1 (en) * 2017-08-31 2020-05-20 Cambricon Technologies Corporation Limited Chip device and related products
CN107590535A (zh) * 2017-09-08 2018-01-16 西安电子科技大学 可编程神经网络处理器
US10366322B2 (en) 2017-10-06 2019-07-30 DeepCube LTD. System and method for compact and efficient sparse neural networks
CN107766643B (zh) * 2017-10-16 2021-08-03 华为技术有限公司 数据处理方法及相关装置
EP3667569A1 (en) * 2017-10-20 2020-06-17 Shanghai Cambricon Information Technology Co., Ltd Processing method and device, operation method and device
CN109697135B (zh) * 2017-10-20 2021-03-26 上海寒武纪信息科技有限公司 存储装置及方法、数据处理装置及方法、电子装置
CN109697507B (zh) * 2017-10-24 2020-12-25 安徽寒武纪信息科技有限公司 处理方法及装置
CN109086075B (zh) * 2017-10-30 2021-06-08 上海寒武纪信息科技有限公司 人工智能处理器及使用处理器执行矩阵乘向量指令的方法
GB2560600B (en) * 2017-11-06 2020-03-04 Imagination Tech Ltd Nueral Network Hardware
CN110020716A (zh) 2017-11-06 2019-07-16 畅想科技有限公司 神经网络硬件
CN110097180B (zh) * 2018-01-29 2020-02-21 上海寒武纪信息科技有限公司 计算机设备、数据处理方法及存储介质
CN109902815B (zh) 2017-12-11 2020-05-19 中科寒武纪科技股份有限公司 神经网络运算设备和方法
CN109993291B (zh) * 2017-12-30 2020-07-07 中科寒武纪科技股份有限公司 集成电路芯片装置及相关产品
EP3624019A4 (en) * 2017-12-30 2021-03-24 Cambricon Technologies Corporation Limited CHIP DEVICE WITH INTEGRATED CIRCUIT AND ASSOCIATED PRODUCT
CN109993292B (zh) 2017-12-30 2020-08-04 中科寒武纪科技股份有限公司 集成电路芯片装置及相关产品
CN113807510A (zh) * 2017-12-30 2021-12-17 中科寒武纪科技股份有限公司 集成电路芯片装置及相关产品
CN109993290B (zh) * 2017-12-30 2021-08-06 中科寒武纪科技股份有限公司 集成电路芯片装置及相关产品
CN108021537B (zh) * 2018-01-05 2022-09-16 南京大学 一种基于硬件平台的softmax函数计算方法
EP3743813A4 (en) * 2018-01-24 2021-11-10 Qomplx, Inc. PLATFORM FOR HIERARCHICAL GROUP IT
CN110163357B (zh) * 2018-02-13 2021-06-25 上海寒武纪信息科技有限公司 一种计算装置及方法
CN111767996B (zh) * 2018-02-27 2024-03-05 上海寒武纪信息科技有限公司 集成电路芯片装置及相关产品
CN110197263B (zh) * 2018-02-27 2020-10-09 上海寒武纪信息科技有限公司 集成电路芯片装置及相关产品
CN108171328B (zh) * 2018-03-02 2020-12-29 中国科学院计算技术研究所 一种神经网络处理器和采用其执行的卷积运算方法
CN110414663B (zh) * 2018-04-28 2022-03-25 深圳云天励飞技术有限公司 神经网络的卷积实现方法及相关产品
US11645529B2 (en) * 2018-05-01 2023-05-09 Hewlett Packard Enterprise Development Lp Sparsifying neural network models
CN108764468A (zh) * 2018-05-03 2018-11-06 中国科学院计算技术研究所 用于智能识别的人工神经网络处理器
CN108647777A (zh) * 2018-05-08 2018-10-12 济南浪潮高新科技投资发展有限公司 一种实现并行卷积计算的数据映射系统及方法
CN108647155B (zh) * 2018-05-14 2020-08-21 瑞芯微电子股份有限公司 一种基于深度学习的多级cache共享的方法和装置
CN108647660A (zh) * 2018-05-16 2018-10-12 中国科学院计算技术研究所 一种使用神经网络芯片处理图像的方法
CN108921012B (zh) * 2018-05-16 2022-05-03 中国科学院计算技术研究所 一种利用人工智能芯片处理图像视频帧的方法
CN108566537A (zh) * 2018-05-16 2018-09-21 中国科学院计算技术研究所 用于对视频帧进行神经网络运算的图像处理装置
CN108764465B (zh) * 2018-05-18 2021-09-24 中国科学院计算技术研究所 一种进行神经网络运算的处理装置
CN108764470B (zh) * 2018-05-18 2021-08-31 中国科学院计算技术研究所 一种人工神经网络运算的处理方法
CN108647781B (zh) * 2018-05-18 2021-08-27 中国科学院计算技术研究所 一种人工智能芯片处理装置
CN108846142A (zh) * 2018-07-12 2018-11-20 南方电网调峰调频发电有限公司 一种文本聚类方法、装置、设备及可读存储介质
CN110738316A (zh) * 2018-07-20 2020-01-31 北京三星通信技术研究有限公司 基于神经网络的操作方法、装置及电子设备
EP3640810A4 (en) * 2018-08-28 2021-05-05 Cambricon Technologies Corporation Limited DATA PRE-PROCESSING PROCESS AND APPARATUS, COMPUTER DEVICE AND STORAGE MEDIA
CN110865950B (zh) * 2018-08-28 2021-01-12 中科寒武纪科技股份有限公司 数据预处理方法、装置、计算机设备和存储介质
CN110874550A (zh) * 2018-08-31 2020-03-10 华为技术有限公司 数据处理方法、装置、设备和系统
US10817042B2 (en) * 2018-09-27 2020-10-27 Intel Corporation Power savings for neural network architecture with zero activations during inference
CN111078624B (zh) * 2018-10-18 2022-03-25 上海寒武纪信息科技有限公司 片上网络处理系统和片上网络数据处理方法
CN111078625B (zh) * 2018-10-18 2022-03-29 上海寒武纪信息科技有限公司 片上网络处理系统和片上网络数据处理方法
CN111078623B (zh) * 2018-10-18 2022-03-29 上海寒武纪信息科技有限公司 片上网络处理系统和片上网络数据处理方法
KR102637733B1 (ko) * 2018-10-31 2024-02-19 삼성전자주식회사 뉴럴 네트워크 프로세서 및 그것의 컨볼루션 연산 방법
CN111198670B (zh) 2018-11-20 2021-01-29 华为技术有限公司 执行矩阵乘法运算的方法、电路及soc
JP6852141B2 (ja) * 2018-11-29 2021-03-31 キヤノン株式会社 情報処理装置、撮像装置、情報処理装置の制御方法、および、プログラム
CN111290698B (zh) * 2018-12-07 2022-05-03 上海寒武纪信息科技有限公司 数据存取方法、数据处理方法、数据存取电路和运算装置
CN109657788A (zh) * 2018-12-18 2019-04-19 北京中科寒武纪科技有限公司 数据处理方法、装置及相关产品
KR102579883B1 (ko) 2018-12-28 2023-09-18 엘지전자 주식회사 냉장고
US10900708B2 (en) * 2018-12-28 2021-01-26 Lg Electronics Inc. Refrigerator
CN109740739B (zh) * 2018-12-29 2020-04-24 中科寒武纪科技股份有限公司 神经网络计算装置、神经网络计算方法及相关产品
KR102360452B1 (ko) * 2019-06-18 2022-02-11 주식회사 퓨리오사에이아이 뉴럴 네트워크 프로세서의 컨벌루션 연산 처리 방법 및 장치
US11630992B2 (en) 2019-07-05 2023-04-18 Electronics And Telecommunications Research Institute Neural network generation method for neuromorphic computing and apparatus for the same
CN110929627B (zh) * 2019-11-18 2021-12-28 北京大学 基于宽模型稀疏数据集的高效gpu训练模型的图像识别方法
US11422803B2 (en) * 2020-01-07 2022-08-23 SK Hynix Inc. Processing-in-memory (PIM) device
US11537323B2 (en) 2020-01-07 2022-12-27 SK Hynix Inc. Processing-in-memory (PIM) device
CN113222103A (zh) * 2020-02-05 2021-08-06 北京三星通信技术研究有限公司 神经网络的更新方法、分类方法和电子设备
CN111312270B (zh) * 2020-02-10 2022-11-22 腾讯科技(深圳)有限公司 语音增强方法及装置、电子设备和计算机可读存储介质
US11556384B2 (en) 2020-03-13 2023-01-17 Cisco Technology, Inc. Dynamic allocation and re-allocation of learning model computing resources
CN111292322B (zh) * 2020-03-19 2024-03-01 中国科学院深圳先进技术研究院 医学图像处理方法、装置、设备及存储介质
CN111966405B (zh) * 2020-07-03 2022-07-26 北京航空航天大学杭州创新研究院 一种基于GPU的Polar码高速并行译码方法
CN112288085B (zh) * 2020-10-23 2024-04-09 中国科学院计算技术研究所 一种基于卷积神经网络的图像检测方法及系统
CN112994840B (zh) * 2021-02-03 2021-11-02 白盒子(上海)微电子科技有限公司 一种基于神经网络的译码器
CN116863490B (zh) * 2023-09-04 2023-12-12 之江实验室 面向FeFET存储阵列的数字识别方法及硬件加速器

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5517596A (en) * 1991-05-17 1996-05-14 International Business Machines Corporation Learning machine synapse processor system apparatus
KR20150016089A (ko) * 2013-08-02 2015-02-11 안병익 신경망 컴퓨팅 장치 및 시스템과 그 방법

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR930009066B1 (ko) * 1990-08-18 1993-09-22 정호선 다층신경회로망 및 그 회로설계방법
US5293456A (en) * 1991-06-28 1994-03-08 E. I. Du Pont De Nemours And Company Object recognition system employing a sparse comparison neural network
US5926566A (en) * 1996-11-15 1999-07-20 Synaptics, Inc. Incremental ideographic character input method
AU2001283397A1 (en) * 2000-08-16 2002-02-25 Research Foundation Of State University Of New York Neural network device for evolving appropriate connections
US20020143720A1 (en) * 2001-04-03 2002-10-03 Anderson Robert Lee Data structure for improved software implementation of a neural network
JP4513865B2 (ja) * 2008-01-25 2010-07-28 セイコーエプソン株式会社 並列演算装置および並列演算方法
CN101527010B (zh) * 2008-03-06 2011-12-07 上海理工大学 人工神经网络算法的硬件实现方法及其系统
US9015093B1 (en) * 2010-10-26 2015-04-21 Michael Lamport Commons Intelligent control with hierarchical stacked neural networks
CN102201188A (zh) * 2011-05-25 2011-09-28 华侨大学 一种面向楼宇电视广告系统的智能控制装置和方法
CN103460220A (zh) * 2012-01-23 2013-12-18 松下电器产业株式会社 神经网络电路的学习方法
US8903746B2 (en) * 2012-03-22 2014-12-02 Audrey Kudritskiy System and method for viewing, modifying, storing, and running artificial neural network components
US9679258B2 (en) * 2013-10-08 2017-06-13 Google Inc. Methods and apparatus for reinforcement learning
JP6236296B2 (ja) * 2013-11-14 2017-11-22 株式会社デンソーアイティーラボラトリ 学習装置、学習プログラム、及び学習方法
US10339447B2 (en) * 2014-01-23 2019-07-02 Qualcomm Incorporated Configuring sparse neuronal networks
US20150269479A1 (en) * 2014-03-24 2015-09-24 Qualcomm Incorporated Conversion of neuron types to hardware
CN104077595B (zh) * 2014-06-15 2017-06-20 北京工业大学 基于贝叶斯正则化的深度学习网络图像识别方法
CN104200224A (zh) * 2014-08-28 2014-12-10 西北工业大学 基于深度卷积神经网络的无价值图像去除方法
US10169073B2 (en) * 2015-12-20 2019-01-01 Intel Corporation Hardware accelerators and methods for stateful compression and decompression operations
EP3444757B1 (en) * 2016-04-15 2021-07-07 Cambricon Technologies Corporation Limited Discrete data representation supported device and method for forward operation of artificial neural network
US10949736B2 (en) * 2016-11-03 2021-03-16 Intel Corporation Flexible neural network accelerator and methods therefor
CN107688850B (zh) * 2017-08-08 2021-04-13 赛灵思公司 一种深度神经网络压缩方法
US10719932B2 (en) * 2018-03-01 2020-07-21 Carl Zeiss Meditec, Inc. Identifying suspicious areas in ophthalmic data

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5517596A (en) * 1991-05-17 1996-05-14 International Business Machines Corporation Learning machine synapse processor system apparatus
KR20150016089A (ko) * 2013-08-02 2015-02-11 안병익 신경망 컴퓨팅 장치 및 시스템과 그 방법

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"연결강도분석접근법에 의한 부도예측용 인공신경망 모형의 입력노드 선정에 관한 연구", 한국지능정보시스템학회논문지 제7권 제2호(pp. 19-33), 2001년 12월. *
"연결강도판별분석에 의한 부도예측용 신경망 모형의 입력노드 설계 : 강체연결뉴론 선정 및 약체연결뉴론 제거 접근법", 한국지능정보시스템학회 학술대회논문집(pp. 469-477), 2000년 11월* *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11294677B2 (en) 2020-02-20 2022-04-05 Samsung Electronics Co., Ltd. Electronic device and control method thereof

Also Published As

Publication number Publication date
EP3407266A1 (en) 2018-11-28
CN107609642A (zh) 2018-01-19
EP3407266B1 (en) 2023-08-09
KR102142889B1 (ko) 2020-08-10
CN105512723A (zh) 2016-04-20
CN107506828A (zh) 2017-12-22
KR102163561B1 (ko) 2020-10-08
US20180260709A1 (en) 2018-09-13
US20180260711A1 (en) 2018-09-13
CN107545303B (zh) 2021-09-07
CN107563497A (zh) 2018-01-09
KR20180093970A (ko) 2018-08-22
CN107578099A (zh) 2018-01-12
EP3407266A4 (en) 2019-09-18
CN107545303A (zh) 2018-01-05
CN107563497B (zh) 2021-03-19
CN107578099B (zh) 2021-06-11
KR20180101334A (ko) 2018-09-12
CN107506828B (zh) 2020-11-03
CN105512723B (zh) 2018-02-16
CN107609642B (zh) 2021-08-31
KR102166775B1 (ko) 2020-10-16
US20180260710A1 (en) 2018-09-13
WO2017124646A1 (zh) 2017-07-27

Similar Documents

Publication Publication Date Title
KR20180093970A (ko) 스파스 연결용 인공 신경망 계산 장치와 방법
US11308398B2 (en) Computation method
US11307865B2 (en) Data processing apparatus and method
CN109104876B (zh) 一种运算装置及相关产品
US11307864B2 (en) Data processing apparatus and method
CN108427990B (zh) 神经网络计算系统和方法
CN114365185A (zh) 使用一个或更多个神经网络生成图像
CN109726806A (zh) 信息处理方法及终端设备
CN108171328B (zh) 一种神经网络处理器和采用其执行的卷积运算方法
US20190311266A1 (en) Device and method for artificial neural network operation
CN111353591A (zh) 一种计算装置及相关产品
CN114821096A (zh) 一种图像处理方法、神经网络的训练方法以及相关设备
CN112348182A (zh) 一种神经网络maxout层计算装置
CN114841361A (zh) 一种模型训练方法及其相关设备
US20200110635A1 (en) Data processing apparatus and method
CN111382835A (zh) 一种神经网络压缩方法、电子设备及计算机可读介质
CN117217982A (zh) 一种视觉任务处理方法及其相关设备
CN116362301A (zh) 一种模型的量化方法以及相关设备
CN116343004A (zh) 一种图像处理方法及其相关设备
CN111222632A (zh) 计算装置、计算方法及相关产品
CN116758572A (zh) 一种文本获取方法及其相关设备

Legal Events

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