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

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

Info

Publication number
KR102163561B1
KR102163561B1 KR1020187018866A KR20187018866A KR102163561B1 KR 102163561 B1 KR102163561 B1 KR 102163561B1 KR 1020187018866 A KR1020187018866 A KR 1020187018866A KR 20187018866 A KR20187018866 A KR 20187018866A KR 102163561 B1 KR102163561 B1 KR 102163561B1
Authority
KR
South Korea
Prior art keywords
neuron data
input neuron
data
changed
weights
Prior art date
Application number
KR1020187018866A
Other languages
English (en)
Other versions
KR20180093970A (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 KR20180093970A publication Critical patent/KR20180093970A/ko
Application granted granted Critical
Publication of KR102163561B1 publication Critical patent/KR102163561B1/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
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • 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 or 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 or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3887Concurrent instruction execution, e.g. pipeline or 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/04Architecture, e.g. interconnection topology
    • G06N3/0495Quantised networks; Sparse networks; Compressed networks
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Neurology (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Evolutionary Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Image Analysis (AREA)
  • Memory System (AREA)
  • Devices For Executing Special Programs (AREA)
  • Machine Translation (AREA)
  • Complex Calculations (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

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 112018064914298-pat00001
이다. 여기에서 x는 모든 출력 뉴런과 연결되는 입력 뉴런을 나타내고, w는 x와 출력 뉴런 사이에 대응하는 가중치를 나타낸다. f(x)는 하나의 비선형 함수이며 통상적으로 활성 함수라고 불리고, 통상적으로 사용하는 함수는
Figure 112018064914298-pat00002
,
Figure 112018064914298-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에 있어서, 필요한 입력 뉴런은 i4, 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이고, 연결 관계는 1011 또는 0, 2, 1일 수 있다. 매핑 유닛은 연결 관계에 의거하여 입력 뉴런과 가중치를 서로 대응하는 관계로 변경하며, 출력에는 2가지 상황이 있는데, 하나는 연결되지 않은 입력 뉴런을 제거하는 것으로, 매핑한 후의 뉴런은 i1, i3, i4이고, 매핑한 후의 가중치는 w11, w31, w41이고; 다른 하나는 가중치에서 연결되지 않은 부분에 0을 보완하는 것으로, 매핑한 후의 뉴런은 i1, i2, i3, i4이고, 매핑한 후의 가중치는 w11, 0, w31, w41이다.
연산 유닛은 제1부분 곱셈기, 제2부분 덧셈 트리, 제3부분 선형 함수 유닛의 3개 부분을 포함하나 이에 국한되지 않는다. 제1부분은 입력 뉴런(in1)에 가중치(w)를 곱하여 가중치 출력 뉴런(out1)을 얻고, 과정은 out1=w*in1이다. 제2부분은 가중치 출력 뉴런에 덧셈 트리를 이용하여 단계적으로 더하여 out2를 얻고, 그 외 출력 뉴런(out2)에 오프셋(b)을 더하여 오프셋 추가 출력 뉴런(out3)을 얻고, 과정은 out3=out2+b이다. 제3부분은 가중치 출력 뉴런(out2 또는 out3)에 활성 함수(active)로 연산하여 활성 출력 뉴런(out4)을 얻고, 과정은 out4=active(out2 or out3)이고, 활성 함수 active는 sigmoid, tanh, relu, softmax 등일 수 있다. 활성 연산 이외에 제3부분은 기타의 비선형 함수를 구현할 수 있으며, out4를 새로운 입력 뉴런으로 연산(f)을 통하여 출력 뉴런(out5)을 얻을 수 있고, 과정은 out5=f(out4)이다.
연산 과정은 도 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 (40)

  1. 한 개 이상의 입력 뉴런 데이터를 수신하고, 상기 한 개 이상의 입력 뉴런 데이터에 기초하여 한 개 이상의 출력 뉴런 데이터를 계산하기 위한 한 개 이상의 가중치를 수신하고, 각각이 상기 한 개 이상의 출력 뉴런 데이터 중의 하나와 상기 한 개 이상의 입력 뉴런 데이터 중의 하나가 서로 연결되어 있는지 여부를 나타내는 한 개 이상의 연결 관계 비트를 포함하는 연결 관계 데이터를 수신하고, 상기 연결 관계 데이터에 기초하여 상기 한 개 이상의 입력 뉴런 데이터 및 상기 한 개 이상의 가중치를 변경하여 변경된 입력 뉴런 데이터 및 변경된 가중치들을 생성하는 매핑 유닛; 및
    상기 매핑 유닛으로부터 상기 변경된 입력 뉴런 데이터 및 상기 변경된 가중치들을 수신하고, 상기 변경된 입력 뉴런 데이터 및 상기 변경된 가중치들에 기초하여 상기 한 개 이상의 출력 뉴런 데이터를 계산하는 연산 유닛을 포함하고,
    상기 매핑 유닛은,
    상기 한 개 이상의 입력 뉴런 데이터 중에서 상기 한 개 이상의 출력 뉴런 데이터 중의 하나와 상기 한 개 이상의 입력 뉴런 데이터 중의 하나가 서로 연결되지 아니한 한 개 이상의 입력 뉴런 데이터 및 가중치를 제거하여 변경된 입력 뉴런 데이터 및 변경된 가중치를 생성하고,
    상기 연산 유닛은
    상기 한 개 이상의 출력 뉴런 데이터 중의 하나와 상기 한 개 이상의 입력 뉴런 데이터 중의 하나가 서로 연결되지 아니한 상기 한 개 이상의 입력 뉴런 데이터 및 가중치에 대해 출력 뉴런 데이터를 연산하지 아니하도록 하는 인공 신경망 계산 장치.
  2. 제1항에 있어서, 상기 한 개 이상의 가중치 중에서 0의 값을 갖는 상기 연결 관계 비트에 상응하는 입력 뉴런 데이터와 출력 뉴런 데이터 사이의 가중치는 0에 상응하는 인공 신경망 계산 장치.
  3. 삭제
  4. 제1항에 있어서, 상기 매핑 유닛은 상기 한 개 이상의 가중치 중에서 0의 값을 갖는 상기 연결 관계 비트에 상응하는 적어도 하나의 가중치에 0을 입력하여 상기 변경된 가중치들을 생성하는 인공 신경망 계산 장치.
  5. 삭제
  6. 제1항에 있어서, 상기 매핑 유닛은 상기 한 개 이상의 입력 뉴런 데이터 중에서 0의 값을 갖는 상기 연결 관계 비트에 상응하는 적어도 하나의 입력 뉴런 데이터에 0을 입력하여 상기 변경된 입력 뉴런 데이터를 생성하는 인공 신경망 계산 장치.
  7. 제1항에 있어서, 상기 연산 유닛은 상기 변경된 입력 뉴런 데이터와 상기 변경된 가중치들을 곱하여 한 개 이상의 가중 입력 뉴런 데이터를 생성하는 적어도 하나의 곱셈기; 및
    상기 한 개 이상의 가중 입력 뉴런 데이터를 합하여 총 가중값을 생성하는 적어도 하나의 덧셈기를 포함하고,
    상기 하나의 덧셈기는
    상기 총 가중값에 오프셋을 더하여 오프셋 추가 총 가중값을 생성하는 인공 신경망 계산 장치.
  8. 삭제
  9. 삭제
  10. 제7항에 있어서, 상기 연산 유닛은
    상기 오프셋 추가 총 가중값에 활성 함수 연산을 실행하여 상기 한 개 이상의 출력 뉴런 데이터를 생성하는 활성 함수 유닛을 더 포함하는 인공 신경망 계산 장치.
  11. 제1항에 있어서,
    상기 한 개 이상의 입력 뉴런 데이터, 상기 변경된 입력 뉴런 데이터, 상기 연결 관계 데이터, 상기 한 개 이상의 가중치, 상기 변경된 가중치들, 명령들, 및 상기 한 개 이상의 출력 뉴런 데이터를 저장하는 저장 장치를 더 포함하는 인공 신경망 계산 장치.
  12. 제1항에 있어서,
    전용 명령을 저장하는 명령 캐시;
    상기 명령 캐시로부터 상기 전용 명령을 독출하고, 상기 전용 명령을 디코드하는 제어 유닛;
    상기 변경된 입력 뉴런 데이터를 저장하는 입력 뉴런 캐시;
    상기 변경된 가중치들을 저장하는 가중치 캐시;
    상기 한 개 이상의 출력 뉴런 데이터를 저장하는 출력 뉴런 캐시; 및
    저장 장치와 상기 명령 캐시, 상기 제어 유닛, 상기 입력 뉴런 캐시, 상기 가중치 캐시, 및 상기 출력 뉴런 캐시 사이에 데이터를 송수신하는 직접 메모리 엑세스 모듈을 더 포함하는 인공 신경망 계산 장치.
  13. 컴퓨터로 구현되는 인공 신경망 계산 장치에 의해 수행되는 인공 신경망 계산 방법에 있어서
    한 개 이상의 입력 뉴런 데이터를 수신하는 단계;
    상기 한 개 이상의 입력 뉴런 데이터에 기초하여 한 개 이상의 출력 뉴런 데이터를 계산하기 위한 한 개 이상의 가중치를 수신하는 단계;
    각각이 상기 한 개 이상의 출력 뉴런 데이터 중의 하나와 상기 한 개 이상의 입력 뉴런 데이터 중의 하나가 서로 연결되어 있는지 여부를 나타내는 한 개 이상의 연결 관계 비트를 포함하는 연결 관계 데이터를 수신하는 단계;
    상기 연결 관계 데이터에 기초하여 상기 한 개 이상의 입력 뉴런 데이터 및 상기 한 개 이상의 가중치를 변경하여 변경된 입력 뉴런 데이터 및 변경된 가중치들을 생성하는 단계; 및
    상기 변경된 입력 뉴런 데이터 및 상기 변경된 가중치들에 기초하여 상기 한 개 이상의 출력 뉴런 데이터를 계산하는 단계를 포함하고,
    상기 변경된 입력 뉴런 데이터 및 변경된 가중치를 생성하는 단계는
    상기 한 개 이상의 입력 뉴런 데이터 중에서 상기 한 개 이상의 출력 뉴런 데이터 중의 하나와 상기 한 개 이상의 입력 뉴런 데이터 중의 하나가 서로 연결되지 아니한 한 개 이상의 입력 뉴런 데이터 및 가중치를 제거하여 변경된 입력 뉴런 데이터 및 변경된 가중치를 생성하고,
    상기 한 개 이상의 출력 뉴런 데이터를 계산하는 단계는
    상기 한 개 이상의 출력 뉴런 데이터 중의 하나와 상기 한 개 이상의 입력 뉴런 데이터 중의 하나가 서로 연결되지 아니한 입력 뉴런 데이터 및 가중치에 대해 상기 출력 뉴런 데이터를 연산하지 아니하도록 하는 인공 신경망 계산 방법.
  14. 삭제
  15. 제13항에 있어서, 상기 변경된 입력 뉴런 데이터 및 상기 변경된 가중치들을 생성하는 단계는, 상기 한 개 이상의 가중치 중에서 0의 값을 갖는 상기 연결 관계 비트에 상응하는 적어도 하나의 가중치에 0을 입력하여 상기 변경된 가중치들을 생성하는 단계를 포함하는 인공 신경망 계산 방법.
  16. 삭제
  17. 제13항에 있어서, 상기 변경된 입력 뉴런 데이터 및 상기 변경된 가중치들을 생성하는 단계는, 상기 한 개 이상의 입력 뉴런 데이터 중에서 0의 값을 갖는 상기 연결 관계 비트에 상응하는 적어도 하나의 입력 뉴런 데이터에 0을 입력하여 상기 변경된 입력 뉴런 데이터를 생성하는 단계를 포함하는 인공 신경망 계산 방법.
  18. 제13항에 있어서, 상기 한 개 이상의 출력 뉴런 데이터를 계산하는 단계는,
    상기 변경된 입력 뉴런 데이터와 상기 변경된 가중치들을 곱하여 한 개 이상의 가중 입력 뉴런 데이터를 생성하는 단계;
    상기 한 개 이상의 가중 입력 뉴런 데이터를 합하여 총 가중값을 생성하는 단계;
    상기 총 가중값에 오프셋을 더하여 오프셋 추가 총 가중값을 생성하는 단계; 및
    상기 오프셋 추가 총 가중값에 활성 함수 연산을 실행하여 상기 한 개 이상의 출력 뉴런 데이터를 생성하는 단계를 포함하는 인공 신경망 계산 방법.
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
  37. 삭제
  38. 삭제
  39. 삭제
  40. 삭제
KR1020187018866A 2016-01-20 2016-04-06 스파스 연결용 인공 신경망 계산 장치와 방법 KR102163561B1 (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
KR20180093970A KR20180093970A (ko) 2018-08-22
KR102163561B1 true KR102163561B1 (ko) 2020-10-08

Family

ID=55720686

Family Applications (3)

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

Family Applications After (2)

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

Country Status (5)

Country Link
US (3) US20180260709A1 (ko)
EP (1) EP3407266B1 (ko)
KR (3) KR102163561B1 (ko)
CN (6) CN107578099B (ko)
WO (1) WO2017124646A1 (ko)

Families Citing this family (131)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107301453B (zh) * 2016-04-15 2021-04-20 中科寒武纪科技股份有限公司 支持离散数据表示的人工神经网络正向运算装置和方法
CN108510064B (zh) * 2016-04-18 2021-12-10 中国科学院计算技术研究所 包括多个核心处理模块的人工神经网络的处理***及方法
WO2017185256A1 (zh) * 2016-04-27 2017-11-02 北京中科寒武纪科技有限公司 一种用于执行RMSprop梯度下降算法的装置及方法
CN109375951B (zh) * 2016-04-27 2020-10-09 中科寒武纪科技股份有限公司 一种用于执行全连接层神经网络正向运算的装置和方法
CN111860812B (zh) * 2016-04-29 2024-03-01 中科寒武纪科技股份有限公司 一种用于执行卷积神经网络训练的装置和方法
CN107341541B (zh) * 2016-04-29 2021-01-29 中科寒武纪科技股份有限公司 一种用于执行全连接层神经网络训练的装置和方法
CN107341546B (zh) * 2016-04-29 2021-06-08 中科寒武纪科技股份有限公司 一种用于执行batch normalization运算的装置和方法
CN110929863B (zh) * 2016-04-29 2023-11-28 中科寒武纪科技股份有限公司 用于执行lstm运算的装置和方法
CN107329734B (zh) * 2016-04-29 2020-08-07 中科寒武纪科技股份有限公司 一种用于执行卷积神经网络正向运算的装置和方法
WO2017185347A1 (zh) * 2016-04-29 2017-11-02 北京中科寒武纪科技有限公司 用于执行循环神经网络和lstm运算的装置和方法
US20170330069A1 (en) * 2016-05-11 2017-11-16 Kneron Inc. Multi-layer artificial neural network and controlling method thereof
US11507821B2 (en) * 2016-05-19 2022-11-22 Tokyo Institute Of Technology Neural network circuit and neural network integrated circuit
CN105893159B (zh) * 2016-06-21 2018-06-19 北京百度网讯科技有限公司 数据处理方法和装置
CN107678781B (zh) * 2016-08-01 2021-02-26 北京百度网讯科技有限公司 处理器以及用于在处理器上执行指令的方法
CN111310893B (zh) 2016-08-05 2023-11-21 中科寒武纪科技股份有限公司 一种用于执行神经网络运算的装置及方法
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 上海新储集成电路有限公司 一种神经网络加速器以及神经网络模型的实现方法
CN110298443B (zh) * 2016-09-29 2021-09-17 中科寒武纪科技股份有限公司 神经网络运算装置及方法
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 耐能股份有限公司 缓冲装置及卷积运算装置与方法
CN111860826A (zh) * 2016-11-17 2020-10-30 北京图森智途科技有限公司 一种低计算能力处理设备的图像数据处理方法及装置
CN110050267B (zh) 2016-12-09 2023-05-26 北京地平线信息技术有限公司 用于数据管理的***和方法
WO2018108126A1 (zh) * 2016-12-14 2018-06-21 上海寒武纪信息科技有限公司 神经网络卷积运算装置及方法
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
CN108320018B (zh) 2016-12-23 2020-03-06 中科寒武纪科技股份有限公司 一种人工神经网络运算的装置及方法
EP3564866A4 (en) * 2016-12-28 2020-03-25 Shanghai Cambricon Information Technology Co., Ltd CALCULATION PROCEDURE
EP3564863B1 (en) * 2016-12-30 2024-03-13 Shanghai Cambricon Information Technology Co., Ltd Apparatus for executing lstm neural network operation, and operational method
CN113537480B (zh) * 2016-12-30 2024-04-02 上海寒武纪信息科技有限公司 用于执行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
US11551067B2 (en) 2017-04-06 2023-01-10 Shanghai Cambricon Information Technology Co., Ltd Neural network processor and neural network computation method
CN108734280A (zh) * 2017-04-21 2018-11-02 上海寒武纪信息科技有限公司 一种运算装置和方法
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
WO2018192500A1 (zh) 2017-04-19 2018-10-25 上海寒武纪信息科技有限公司 处理装置和处理方法
CN108734288B (zh) * 2017-04-21 2021-01-29 上海寒武纪信息科技有限公司 一种运算方法及装置
US11977968B2 (en) 2017-04-20 2024-05-07 Shanghai Cambricon Information Technology Co., Ltd. Sparse processing in neural network processors
CN108734279B (zh) * 2017-04-20 2021-04-23 上海寒武纪信息科技有限公司 一种运算装置和方法
CN117933314A (zh) 2017-04-21 2024-04-26 上海寒武纪信息科技有限公司 处理装置、处理方法、芯片及电子装置
WO2018214913A1 (zh) * 2017-05-23 2018-11-29 上海寒武纪信息科技有限公司 处理方法及加速装置
CN109389218B (zh) * 2017-08-09 2021-09-03 上海寒武纪信息科技有限公司 数据压缩方法及压缩装置
CN110175673B (zh) * 2017-05-23 2021-02-09 上海寒武纪信息科技有限公司 处理方法及加速装置
CN109478251B (zh) * 2017-05-23 2021-01-05 安徽寒武纪信息科技有限公司 处理方法及加速装置
CN109146069B (zh) * 2017-06-16 2020-10-13 上海寒武纪信息科技有限公司 运算装置、运算方法和芯片
CN108960415B (zh) * 2017-05-23 2021-04-20 上海寒武纪信息科技有限公司 处理装置和处理***
EP3637327B1 (en) 2017-06-13 2023-09-13 Shanghai Cambricon Information Technology Co., Ltd Computing device and method
CN109117455A (zh) 2017-06-26 2019-01-01 上海寒武纪信息科技有限公司 计算装置及方法
CN109102073A (zh) 2017-06-21 2018-12-28 上海寒武纪信息科技有限公司 一种稀疏训练方法
CN109102074B (zh) * 2017-06-21 2021-06-01 上海寒武纪信息科技有限公司 一种训练装置
CN110413551B (zh) 2018-04-28 2021-12-10 上海寒武纪信息科技有限公司 信息处理装置、方法及设备
CN109214616B (zh) 2017-06-29 2023-04-07 上海寒武纪信息科技有限公司 一种信息处理装置、***和方法
WO2019001418A1 (zh) * 2017-06-26 2019-01-03 上海寒武纪信息科技有限公司 数据共享***及其数据共享方法
CN109426553A (zh) 2017-08-21 2019-03-05 上海寒武纪信息科技有限公司 任务切分装置及方法、任务处理装置及方法、多核处理器
CN109583577B (zh) * 2017-09-29 2021-04-23 上海寒武纪信息科技有限公司 运算装置及方法
CN107844322B (zh) * 2017-07-20 2020-08-04 上海寒武纪信息科技有限公司 用于执行人工神经网络正向运算的装置和方法
CN109615061B (zh) * 2017-08-31 2022-08-26 中科寒武纪科技股份有限公司 一种卷积运算方法及装置
EP3654210A1 (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 华为技术有限公司 数据处理方法及相关装置
CN109697507B (zh) * 2017-10-24 2020-12-25 安徽寒武纪信息科技有限公司 处理方法及装置
KR102434729B1 (ko) 2017-10-20 2022-08-19 상하이 캠브리콘 인포메이션 테크놀로지 컴퍼니 리미티드 처리방법 및 장치
CN109697135B (zh) * 2017-10-20 2021-03-26 上海寒武纪信息科技有限公司 存储装置及方法、数据处理装置及方法、电子装置
CN109086075B (zh) * 2017-10-30 2021-06-08 上海寒武纪信息科技有限公司 人工智能处理器及使用处理器执行矩阵乘向量指令的方法
GB2560600B (en) * 2017-11-06 2020-03-04 Imagination Tech Ltd Nueral Network Hardware
US11574171B2 (en) 2017-11-06 2023-02-07 Imagination Technologies Limited Neural network architecture using convolution engines
CN110097180B (zh) * 2018-01-29 2020-02-21 上海寒武纪信息科技有限公司 计算机设备、数据处理方法及存储介质
CN109902811B (zh) * 2017-12-11 2020-03-10 中科寒武纪科技股份有限公司 神经网络运算设备和方法
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
CN109993290B (zh) * 2017-12-30 2021-08-06 中科寒武纪科技股份有限公司 集成电路芯片装置及相关产品
CN109993289B (zh) * 2017-12-30 2021-09-21 中科寒武纪科技股份有限公司 集成电路芯片装置及相关产品
CN109993292B (zh) 2017-12-30 2020-08-04 中科寒武纪科技股份有限公司 集成电路芯片装置及相关产品
CN108021537B (zh) * 2018-01-05 2022-09-16 南京大学 一种基于硬件平台的softmax函数计算方法
EP3743813A4 (en) * 2018-01-24 2021-11-10 Qomplx, Inc. PLATFORM FOR HIERARCHICAL GROUP IT
CN110163356B (zh) * 2018-02-13 2020-10-09 上海寒武纪信息科技有限公司 一种计算装置及方法
CN110197263B (zh) * 2018-02-27 2020-10-09 上海寒武纪信息科技有限公司 集成电路芯片装置及相关产品
CN111767996B (zh) * 2018-02-27 2024-03-05 上海寒武纪信息科技有限公司 集成电路芯片装置及相关产品
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共享的方法和装置
CN108566537A (zh) * 2018-05-16 2018-09-21 中国科学院计算技术研究所 用于对视频帧进行神经网络运算的图像处理装置
CN108921012B (zh) * 2018-05-16 2022-05-03 中国科学院计算技术研究所 一种利用人工智能芯片处理图像视频帧的方法
CN108647660A (zh) * 2018-05-16 2018-10-12 中国科学院计算技术研究所 一种使用神经网络芯片处理图像的方法
CN108764470B (zh) * 2018-05-18 2021-08-31 中国科学院计算技术研究所 一种人工神经网络运算的处理方法
CN108764465B (zh) * 2018-05-18 2021-09-24 中国科学院计算技术研究所 一种进行神经网络运算的处理装置
CN108647781B (zh) * 2018-05-18 2021-08-27 中国科学院计算技术研究所 一种人工智能芯片处理装置
CN108846142A (zh) * 2018-07-12 2018-11-20 南方电网调峰调频发电有限公司 一种文本聚类方法、装置、设备及可读存储介质
CN110738316B (zh) * 2018-07-20 2024-05-14 北京三星通信技术研究有限公司 基于神经网络的操作方法、装置及电子设备
EP3757896B1 (en) * 2018-08-28 2023-01-11 Cambricon Technologies Corporation Limited Method and device for pre-processing data in a neural network
CN112732601B (zh) * 2018-08-28 2024-06-18 中科寒武纪科技股份有限公司 数据预处理方法、装置、计算机设备和存储介质
CN110874550A (zh) * 2018-08-31 2020-03-10 华为技术有限公司 数据处理方法、装置、设备和***
US20210098001A1 (en) 2018-09-13 2021-04-01 Shanghai Cambricon Information Technology Co., Ltd. Information processing method and terminal device
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 北京中科寒武纪科技有限公司 数据处理方法、装置及相关产品
KR102663561B1 (ko) * 2018-12-28 2024-05-08 엘지전자 주식회사 냉장고
KR102579883B1 (ko) 2018-12-28 2023-09-18 엘지전자 주식회사 냉장고
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训练模型的图像识别方法
US11537323B2 (en) 2020-01-07 2022-12-27 SK Hynix Inc. Processing-in-memory (PIM) device
US11422803B2 (en) 2020-01-07 2022-08-23 SK Hynix Inc. Processing-in-memory (PIM) device
CN113222103A (zh) * 2020-02-05 2021-08-06 北京三星通信技术研究有限公司 神经网络的更新方法、分类方法和电子设备
CN111312270B (zh) 2020-02-10 2022-11-22 腾讯科技(深圳)有限公司 语音增强方法及装置、电子设备和计算机可读存储介质
KR20210106131A (ko) 2020-02-20 2021-08-30 삼성전자주식회사 전자 장치 및 그의 제어 방법
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存储阵列的数字识别方法及硬件加速器
CN117689025B (zh) * 2023-12-07 2024-06-14 上海交通大学 适用于消费级显卡的快速大模型推理服务方法和***

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR930009066B1 (ko) * 1990-08-18 1993-09-22 정호선 다층신경회로망 및 그 회로설계방법
US5517596A (en) * 1991-05-17 1996-05-14 International Business Machines Corporation Learning machine synapse processor system apparatus
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
US7080053B2 (en) * 2000-08-16 2006-07-18 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
KR20150016089A (ko) * 2013-08-02 2015-02-11 안병익 신경망 컴퓨팅 장치 및 시스템과 그 방법
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
WO2017177442A1 (zh) * 2016-04-15 2017-10-19 北京中科寒武纪科技有限公司 支持离散数据表示的人工神经网络正向运算装置和方法
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

Non-Patent Citations (2)

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

Also Published As

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

Similar Documents

Publication Publication Date Title
KR102163561B1 (ko) 스파스 연결용 인공 신경망 계산 장치와 방법
US11308398B2 (en) Computation method
CN108427990B (zh) 神经网络计算***和方法
CN112840356B (zh) 运算加速器、处理方法及相关设备
KR101298393B1 (ko) 그래픽 처리 유닛 상에서 콘볼루션 신경망을 트레이닝하는방법
CN107992329A (zh) 一种计算方法及相关产品
US11775832B2 (en) Device and method for artificial neural network operation
JP2021140733A (ja) 深層学習処理装置、方法、デバイス及び記憶媒体
CN108171328B (zh) 一种神经网络处理器和采用其执行的卷积运算方法
WO2023236977A1 (zh) 一种数据处理方法及相关设备
CN112508190A (zh) 结构化稀疏参数的处理方法、装置、设备及存储介质
CN111353591A (zh) 一种计算装置及相关产品
KR20190089685A (ko) 데이터를 처리하는 방법 및 장치
KR20210014561A (ko) 다수 컨벌루션 윈도우 중의 이미지 데이터를 추출하는 방법, 장치, 기기 및 컴퓨터 판독 가능한 저장매체
CN112348182A (zh) 一种神经网络maxout层计算装置
WO2018112892A1 (zh) 一种支持快速人工神经网络运算的装置及方法
CN112132281A (zh) 一种基于人工智能的模型训练方法、装置、服务器及介质
US20230012127A1 (en) Neural network acceleration
CN113869517A (zh) 一种基于深度学习模型的推理方法
CN116843006A (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