KR20180125283A - 확률적 컴퓨팅 곱셈 알고리즘을 이용한 신경망 가속 방법 및 신경망 가속기 - Google Patents
확률적 컴퓨팅 곱셈 알고리즘을 이용한 신경망 가속 방법 및 신경망 가속기 Download PDFInfo
- Publication number
- KR20180125283A KR20180125283A KR1020170059986A KR20170059986A KR20180125283A KR 20180125283 A KR20180125283 A KR 20180125283A KR 1020170059986 A KR1020170059986 A KR 1020170059986A KR 20170059986 A KR20170059986 A KR 20170059986A KR 20180125283 A KR20180125283 A KR 20180125283A
- Authority
- KR
- South Korea
- Prior art keywords
- multiplier
- present
- input
- number generator
- bit
- Prior art date
Links
- 238000004422 calculation algorithm Methods 0.000 title claims abstract description 16
- 238000000034 method Methods 0.000 title claims description 45
- 238000013528 artificial neural network Methods 0.000 title claims description 19
- 238000013527 convolutional neural network Methods 0.000 claims description 32
- 239000011159 matrix material Substances 0.000 claims description 14
- 238000012545 processing Methods 0.000 claims description 14
- 230000001133 acceleration Effects 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 2
- 238000013461 design Methods 0.000 description 13
- 238000004364 calculation method Methods 0.000 description 12
- 238000006243 chemical reaction Methods 0.000 description 8
- 230000008901 benefit Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 238000002474 experimental method Methods 0.000 description 6
- 230000009467 reduction Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 238000012549 training Methods 0.000 description 4
- 238000009825 accumulation Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 3
- 230000000295 complement effect Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 239000000872 buffer Substances 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 230000002596 correlated effect Effects 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000003708 edge detection Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 229920006395 saturated elastomer Polymers 0.000 description 1
- 238000009738 saturating Methods 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/047—Probabilistic or stochastic networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Probability & Statistics with Applications (AREA)
- Complex Calculations (AREA)
Abstract
Description
도 2a 는 기존의 SC곱셈기 및 본 발명의 SC 곱셈기를 비교 설명하기 위한 도면이다.
도 2b 는 본 발명의 일 실시예에 따른 SC 곱셈기를 나타낸다.
도 3 은 본 발명의 일 실시예에 따른 확률수 생성기를 보다 상세히 설명하기 위한 도면이다.
도 4 는 본 발명의 일 실시예에 따른 BISC-MVM 을 설명하기 위한 도면이다.
도 5 는 본 발명의 일 실시예에 따른 컨볼루션 레이어를 설명하기 위한 것이다.
도 6 은 여러가지 SC 곱셈기의 오류 통계를 나타낸 것이다.
도 7 은 본 발명의 일 실시예에 따른 정확도 실험 결과를 나타낸 그래프이다.
도 8 은 본 발명의 일 실시예에 따른 MAC 배열의 비교를 나타낸다.
Claims (18)
- 확률적 컴퓨팅 곱셈 알고리즘을 이용한 SC(Stochastic Computing) 곱셈기로서,
제1 입력(x)을 획득하여 이진수(Binary Number)를 확률수(Stochastic Number)로 변환하는 확률수 생성기(Stochastic Number Generator);
제2 입력(w)을 획득하며 0 에 도달하면 정지되는 다운 카운터(Down Counter);
상기 확률수 생성기로부터의 입력에 기초하여 x·w을 출력하는 카운터;
를 포함하고,
상기 SC 곱셈기는 상기 제2 입력(w)에 기초하여 변동 지연 시간(variable latency)을 갖는, SC 곱셈기. - 제 1 항의 SC 곱셈기;
상기 SC 곱셈기를 벡터화 형태로 변환하는 매트릭스 벡터 곱셈기;
상기 매트릭스 벡터 곱셈기를 사용하여 컨볼루션 신경망(convolutional neural network)을 가속화하는 가속기;
를 포함하는, 신경망 가속기. - 제 1 항에 있어서,
상기 SC 곱셈기는 유니폴라 인코딩(unipolar encoding)에서 기본적으로 동작하며, 바이폴라 인코딩(bipolar encoding)으로 확장 가능한, SC 곱셈기. - 제 1 항에 있어서,
상기 SC 곱셈기의 카운터는 곱셈 결과를 누적하는, SC 곱셈기. - 제 1 항에 있어서,
상기 확률수 생성기는 이는 N 비트 유한상태기계(Finite-State Machine) 및 하나의 멀티플렉서(MUX)로 이루어지는, SC 곱셈기. - 제 6 항에 있어서,
상기 유한상태기계는 비트너비(bitwidth) N 마다 2N 개의 상태(state)를 가지는, SC 곱셈기. - 제 1 항에 있어서,
상기 SC 곱셈기는 상기 제1 입력(x)에 대해 결정적(deterministic)인, SC 곱셈기. - 제 1 항에 있어서,
상기 확률수 생성기는 변환된 확률수의 비트 스트림에서 1 이 균일하게 분포되도록 설계되는, SC 곱셈기. - 제 1 항에 있어서,
상기 확률수 생성기는 비트 병렬 처리를 지원하는, SC 곱셈기. - 확률적 컴퓨팅 곱셈 알고리즘을 이용한 신경망 가속 방법으로서,
제1 입력(x) 및 제2 입력(w)를 획득하여 확률적 컴퓨팅으로 x·w를 출력하는 SC 곱셈기를 제공하는 SC 곱셈 단계;
상기 SC 곱셈기를 벡터화 형태로 변환하는 매트릭스 벡터 곱셈 단계;
상기 매트릭스 벡터 곱셈 단계의 결과를 사용하여 컨볼루션 신경망(convolutional neural network)을 가속화하는 가속 단계;
를 포함하고,
상기 SC 곱셈기는,
상기 제1 입력(x)을 획득하여 이진수(Binary Number)를 확률수(Stochastic Number)로 변환하는 확률수 생성기(Stochastic Number Generator);
상기 제2 입력(w)을 획득하며 0 에 도달하면 정지되는 다운 카운터(Down Counter);
상기 확률수 생성기로부터의 입력에 기초하여 x·w을 출력하는 카운터;
를 포함하는, 신경망 가속 방법. - 제 10 항에 있어서,
상기 SC 곱셈기는 유니폴라 인코딩(unipolar encoding)에서 기본적으로 동작하며, 바이폴라 인코딩(bipolar encoding)으로 확장 가능한, 신경망 가속 방법. - 제 10 항에 있어서,
상기 SC 곱셈기의 카운터는 곱셈 결과를 누적하는, 신경망 가속 방법. - 제 10 항에 있어서,
상기 확률수 생성기는 이는 N 비트 유한상태기계(Finite-State Machine) 및 하나의 멀티플렉서(MUX)로 이루어지는, 신경망 가속 방법. - 제 13 항에 있어서,
상기 유한상태기계는 비트너비(bitwidth) N 마다 2N 개의 상태(state)를 가지는, 신경망 가속 방법. - 제 10 항에 있어서,
상기 SC 곱셈기는 상기 제1 입력(x)에 대해 결정적(deterministic)인, 신경망 가속기. - 제 10 항에 있어서,
상기 확률수 생성기는 변환된 확률수의 비트 스트림에서 1 이 균일하게 분포되도록 설계되는, 신경망 가속기. - 제 10 항에 있어서,
상기 확률수 생성기는 비트 병렬 처리를 지원하는, 신경망 가속기. - 제10항 내지 제16항 중 어느 한 항에 따른 방법을 실행하기 위한 컴퓨터 프로그램을 기록하는 컴퓨터 판독 가능한 기록 매체.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170059986A KR102023095B1 (ko) | 2017-05-15 | 2017-05-15 | 확률적 컴퓨팅 곱셈 알고리즘을 이용한 신경망 가속 방법 및 신경망 가속기 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170059986A KR102023095B1 (ko) | 2017-05-15 | 2017-05-15 | 확률적 컴퓨팅 곱셈 알고리즘을 이용한 신경망 가속 방법 및 신경망 가속기 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20180125283A true KR20180125283A (ko) | 2018-11-23 |
KR102023095B1 KR102023095B1 (ko) | 2019-09-19 |
Family
ID=64565586
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170059986A KR102023095B1 (ko) | 2017-05-15 | 2017-05-15 | 확률적 컴퓨팅 곱셈 알고리즘을 이용한 신경망 가속 방법 및 신경망 가속기 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102023095B1 (ko) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200125226A (ko) | 2019-04-26 | 2020-11-04 | 울산과학기술원 | 확률컴퓨팅 회로의 정확도를 높이기 위한 장치 |
KR20210133545A (ko) * | 2020-04-29 | 2021-11-08 | 한국항공대학교산학협력단 | 신경망 모델의 추론 속도 향상 장치 및 방법 |
CN114997381A (zh) * | 2022-04-26 | 2022-09-02 | 河海大学 | 神经网络全连接层硬件电路及其设计方法和使用方法 |
US11531893B2 (en) | 2019-06-03 | 2022-12-20 | Samsung Electronics Co., Ltd. | Method and apparatus with neural network parameter quantization |
US11836463B2 (en) | 2020-07-17 | 2023-12-05 | Samsung Electronics Co., Ltd. | Method and apparatus with neural network processing |
US12197891B2 (en) | 2021-11-15 | 2025-01-14 | Samsung Electronics Co., Ltd. | Computing device for performing digital pulse-based crossbar operation and method of operating the computing device |
-
2017
- 2017-05-15 KR KR1020170059986A patent/KR102023095B1/ko active IP Right Grant
Non-Patent Citations (2)
Title |
---|
Ren, Ao, et al. Sc-dcnn: Highly-scalable deep convolutional neural network using stochastic computing. ASPLOS 2017. ACM. 2017.4.12. * |
Sim, Hyeonuk, et al. Scalable stochastic-computing accelerator for convolutional neural networks. 2017 22nd Asia and South Pacific Design Automation Conference (ASP-DAC). IEEE, 2017.1.19. * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200125226A (ko) | 2019-04-26 | 2020-11-04 | 울산과학기술원 | 확률컴퓨팅 회로의 정확도를 높이기 위한 장치 |
US11531893B2 (en) | 2019-06-03 | 2022-12-20 | Samsung Electronics Co., Ltd. | Method and apparatus with neural network parameter quantization |
KR20210133545A (ko) * | 2020-04-29 | 2021-11-08 | 한국항공대학교산학협력단 | 신경망 모델의 추론 속도 향상 장치 및 방법 |
US11836463B2 (en) | 2020-07-17 | 2023-12-05 | Samsung Electronics Co., Ltd. | Method and apparatus with neural network processing |
US12197891B2 (en) | 2021-11-15 | 2025-01-14 | Samsung Electronics Co., Ltd. | Computing device for performing digital pulse-based crossbar operation and method of operating the computing device |
CN114997381A (zh) * | 2022-04-26 | 2022-09-02 | 河海大学 | 神经网络全连接层硬件电路及其设计方法和使用方法 |
Also Published As
Publication number | Publication date |
---|---|
KR102023095B1 (ko) | 2019-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102023095B1 (ko) | 확률적 컴퓨팅 곱셈 알고리즘을 이용한 신경망 가속 방법 및 신경망 가속기 | |
Nguyen et al. | A high-throughput and power-efficient FPGA implementation of YOLO CNN for object detection | |
Sim et al. | A new stochastic computing multiplier with application to deep convolutional neural networks | |
Samimi et al. | Res-DNN: A residue number system-based DNN accelerator unit | |
Kim et al. | Dynamic energy-accuracy trade-off using stochastic computing in deep neural networks | |
Sim et al. | Scalable stochastic-computing accelerator for convolutional neural networks | |
CN108133270A (zh) | 卷积神经网络加速方法及装置 | |
Dadda et al. | Pipelined adders | |
Garland et al. | Low complexity multiply accumulate unit for weight-sharing convolutional neural networks | |
Sim et al. | Cost-effective stochastic MAC circuits for deep neural networks | |
Maor et al. | An FPGA implementation of stochastic computing-based LSTM | |
KR102340412B1 (ko) | 스토캐스틱 연산을 위한 로그-양자화된 곱셈 및 누적기와 이를 포함하는 가속기 | |
CN110647309B (zh) | 一种高速大位宽乘法器 | |
Kang et al. | An overview of sparsity exploitation in CNNs for on-device intelligence with software-hardware cross-layer optimizations | |
Nobari et al. | FPGA-based implementation of deep neural network using stochastic computing | |
Chen et al. | Hybrid stochastic-binary computing for low-latency and high-precision inference of CNNs | |
Miao et al. | A parallel stochastic computing system with improved accuracy | |
Li et al. | GEO: Generation and execution optimized stochastic computing accelerator for neural networks | |
Zhang et al. | A scalable, fast and programmable neural decoder for fault-tolerant quantum computation using surface codes | |
Cai et al. | Convolution without multiplication: A general speed up strategy for CNNs | |
KR102037043B1 (ko) | 세밀한 정밀도 조정이 가능한 곱셈누적기 | |
Yuan et al. | Vlsi architectures for the restricted boltzmann machine | |
Asim et al. | Centered Symmetric Quantization for Hardware-Efficient Low-Bit Neural Networks. | |
Denton et al. | Direct spatial implementation of sparse matrix multipliers for reservoir computing | |
Joseph et al. | Power and delay-efficient matrix vector multiplier units for the LSTM networks using activity span reduction technique and recursive adders |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20170515 |
|
PA0201 | Request for examination | ||
PG1501 | Laying open of application | ||
E902 | Notification of reason for refusal | ||
PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20181127 Patent event code: PE09021S01D |
|
E902 | Notification of reason for refusal | ||
PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20190529 Patent event code: PE09021S01D |
|
E701 | Decision to grant or registration of patent right | ||
PE0701 | Decision of registration |
Patent event code: PE07011S01D Comment text: Decision to Grant Registration Patent event date: 20190827 |
|
PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 20190911 Patent event code: PR07011E01D |
|
PR1002 | Payment of registration fee |
Payment date: 20190916 End annual number: 3 Start annual number: 1 |
|
PG1601 | Publication of registration | ||
PR1001 | Payment of annual fee |
Payment date: 20220621 Start annual number: 4 End annual number: 4 |
|
PR1001 | Payment of annual fee |
Payment date: 20230621 Start annual number: 5 End annual number: 5 |
|
PR1001 | Payment of annual fee |
Payment date: 20240702 Start annual number: 6 End annual number: 6 |