KR102733737B1 - 모바일 환경을 위한 저지연 합성곱 연산 장치 및 방법 - Google Patents
모바일 환경을 위한 저지연 합성곱 연산 장치 및 방법 Download PDFInfo
- Publication number
- KR102733737B1 KR102733737B1 KR1020230062180A KR20230062180A KR102733737B1 KR 102733737 B1 KR102733737 B1 KR 102733737B1 KR 1020230062180 A KR1020230062180 A KR 1020230062180A KR 20230062180 A KR20230062180 A KR 20230062180A KR 102733737 B1 KR102733737 B1 KR 102733737B1
- Authority
- KR
- South Korea
- Prior art keywords
- matrix
- filter
- input
- output
- dimension
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/544—Methods 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/5443—Sum of products
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/15—Correlation function computation including computation of convolution operations
- G06F17/153—Multidimensional correlation or convolution
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Neurology (AREA)
- Complex Calculations (AREA)
- Cable Transmission Systems, Equalization Of Radio And Reduction Of Echo (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
Description
도 2는 일반적인 2D CNN 연산에서 출력 너비(Wout) 차원을 반복 진행하는 것을 도식화한 것이다.
도 3은 본 발명의 일 실시예에 따른 모바일 환경을 위한 저지연 합성곱 연산 장치의 구조를 설명하는 도면이다.
도 4는 본 발명의 일 실시예에 따른 행렬 연산 유닛의 구조를를 설명하는 도면이다.
도 5는 도 4의 행렬 연산 유닛의 연산 방법을 설명하는 순서도이다.
도 6은 기존의 CNN을 GEMM으로 변환하는 방식 중 Im2Col과 GEMM이 조합된 구조의 연산 방법을 설명하는 도면이다.
도 7은 도 4의 행렬 연산 유닛의 연산 방법을 설명하기 위한 도면이다.
도 8은 본 발명의 일 실시예에 따른 저지연 합성곱 신경망 연산 방법의 알고리즘을 도시한 것이다.
도 9는 본 발명의 일 실시예에 따른 저지연 합성곱 연산 방법과 기존의 방식을 비교한 결과를 도시한 것이다.
110: 행렬 연산 유닛
200: 입력 매트릭스
300: 필터 매트릭스
400: 출력 매트릭스
Claims (6)
- 저지연 합성곱 연산 장치에 있어서,
행렬 연산 프로그램이 저장된 메모리; 및
상기 메모리에 저장된 프로그램을 실행하는 프로세서를 포함하며,
상기 행렬 연산 프로그램은,
입력 매트릭스와 필터 매트릭스의 각 요소별 행렬 연산에 따라 출력 매트릭스를 생성하는 행렬 연산 유닛을 포함하며,
상기 행렬 연산 유닛은 스트라이드(stride) 및 딜레이션(dilation)을 포함한 컨볼루션 파라미터를 고려하여 상기 입력 매트릭스의 행과 상기 필터 매트릭스의 열을 매칭하는 (a) 단계, 필터 텐서의 너비 차원에 대하여 깊이 방향으로 이동하는 필터 블록과 가로 방향으로 이동하는 입력 블록을 연산하여 출력 블록을 생성하는 (b) 단계, 및 상기 (a) 단계와 상기 (b) 단계를 반복하여 산출된 모든 출력 블록을 하나의 행렬로 합산하여 상기 출력 매트릭스를 생성하는 (c) 단계를 포함하며,
상기 입력 매트릭스는 너비 차원과 채널 차원이 각각 가로 방향과 세로 방향으로 나열된 상기 입력 블록을 포함하는 것이고,
상기 필터 매트릭스는 채널 차원이 가로 방향 및 세로 방향으로 나열되며, 너비 차원이 깊이 방향으로 나열된 상기 필터 블록을 포함하는 것인, 저지연 합성곱 연산 장치.
- 제1항에 있어서,
상기 행렬 연산 유닛은
대상 계산에 대한 합성곱 연산 차원을 GEMM 연산 차원에 매핑하고, 상기 입력 매트릭스 및 필터 매트릭스를 소정 크기의 복수의 블록으로 타일링하는 것인, 저지연 합성곱 연산 장치.
- 제1항에 있어서,
상기 행렬 연산 유닛은
수식1에 의해, 상기 입력 블록의 가로 방향 위치와 상기 필터 블록의 깊이 방향 위치를 기초로 상기 출력 블록을 산출하는 것인, 저지연 합성곱 연산 장치.
<수식1>
Wo+Wf-1
여기서, Wo는 출력 너비 차원, Wf는 필터 너비 차원이다.
- 저지연 합성곱 연산 장치에 의해 수행되는 저지연 합성곱 연산 방법에 있어서,
행렬 연산 유닛이 입력 매트릭스와 필터 매트릭스의 각 요소별 행렬 연산에 따라 출력 매트릭스를 생성하는 단계를 포함하되,
상기 생성 단계는
(a) 상기 행렬 연산 유닛은 스트라이드(stride) 및 딜레이션(dilation)을 포함한 컨볼루션 파라미터를 고려하여 상기 입력 매트릭스의 행과 상기 필터 매트릭스의 열을 매칭하는 단계,
(b) 필터 텐서의 너비 차원에 대하여 깊이 방향으로 이동하는 필터 블록과 가로 방향으로 이동하는 입력 블록을 연산하여 출력 블록을 생성하는 단계, 및
(c) 상기 (a) 단계와 상기 (a) 단계를 반복하여 산출된 모든 출력 블록을 하나의 행렬로 합산하여 상기 출력 매트릭스를 생성하는 단계를 포함하며,
상기 입력 매트릭스는 너비 차원과 채널 차원이 각각 가로 방향과 세로 방향으로 나열된 상기 입력 블록을 포함하는 것이고,
상기 필터 매트릭스는 채널 차원이 가로 방향 및 세로 방향으로 나열되며, 너비 차원이 깊이 방향으로 나열된 상기 필터 블록을 포함하는 것인, 저지연 합성곱 연산 방법.
- 제4항에 있어서,
상기 (a) 단계 전에
상기 행렬 연산 유닛은 대상 계산에 대한 합성곱 연산 차원을 GEMM 연산 차원에 매핑하고, 상기 입력 매트릭스 및 필터 매트릭스를 소정 크기의 복수의 블록으로 타일링하는 단계를 더 포함하는 것인, 저지연 합성곱 연산 방법.
- 제4항에 있어서,
상기 행렬 연산 유닛은
수식1에 의해, 상기 입력 블록의 가로 방향 위치와 상기 필터 블록의 깊이 방향 위치를 기초로 상기 출력 블록을 산출하는 것인, 저지연 합성곱 연산 방법.
<수식1>
Wo+Wf-1
여기서, Wo는 출력 너비 차원, Wf는 필터 너비 차원이다.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/KR2023/015677 WO2024237399A1 (ko) | 2022-06-24 | 2023-10-12 | 모바일 환경을 위한 저지연 합성곱 연산 장치 및 방법 |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR20220077387 | 2022-06-24 | ||
| KR1020220077387 | 2022-06-24 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| KR20240001028A KR20240001028A (ko) | 2024-01-03 |
| KR102733737B1 true KR102733737B1 (ko) | 2024-11-26 |
Family
ID=89538810
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020230062180A Active KR102733737B1 (ko) | 2022-06-24 | 2023-05-15 | 모바일 환경을 위한 저지연 합성곱 연산 장치 및 방법 |
Country Status (2)
| Country | Link |
|---|---|
| KR (1) | KR102733737B1 (ko) |
| WO (1) | WO2024237399A1 (ko) |
Family Cites Families (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE10260655B3 (de) * | 2002-12-23 | 2004-06-24 | Infineon Technologies Ag | Vorrichtung und Verfahren zum Berechnen einer Multiplikation mit einer Verschiebung des Multiplikanden, insbesondere bei der kryptographischen Berechnung |
| JP4891252B2 (ja) * | 2004-11-10 | 2012-03-07 | エヌヴィディア コーポレイション | 汎用乗算加算機能ユニット |
| US10186011B2 (en) * | 2017-04-28 | 2019-01-22 | Intel Corporation | Programmable coarse grained and sparse matrix compute hardware with advanced scheduling |
| KR102225308B1 (ko) * | 2017-11-28 | 2021-03-09 | 주식회사 날비컴퍼니 | 컨볼루션 신경망 내 필터 프루닝 장치 및 방법 |
| KR102153167B1 (ko) * | 2018-07-02 | 2020-09-07 | 한양대학교 산학협력단 | 인공 신경망을 위한 행렬 연산기 및 행렬 연산 방법 |
| KR102535599B1 (ko) * | 2019-11-15 | 2023-05-23 | 한밭대학교 산학협력단 | 합성곱 신경망을 이용한 초광대역 시스템의 거리 추정 장치 및 방법 |
| CN111339490B (zh) * | 2020-02-18 | 2024-04-19 | 三星(中国)半导体有限公司 | 矩阵乘法计算方法和装置 |
| KR102827870B1 (ko) * | 2020-03-26 | 2025-06-30 | 서강대학교산학협력단 | 전치 합성곱 신경망의 가속 장치 및 동작 방법 |
| KR102447445B1 (ko) * | 2021-03-08 | 2022-09-26 | 공재섭 | 행렬 연산의 효율적 병렬처리를 위한 연산 장치 및 이를 포함하는 메모리 장치 |
-
2023
- 2023-05-15 KR KR1020230062180A patent/KR102733737B1/ko active Active
- 2023-10-12 WO PCT/KR2023/015677 patent/WO2024237399A1/ko active Pending
Also Published As
| Publication number | Publication date |
|---|---|
| KR20240001028A (ko) | 2024-01-03 |
| WO2024237399A1 (ko) | 2024-11-21 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| Elsen et al. | Fast sparse convnets | |
| JP6726246B2 (ja) | 畳み込みニューラルネットワークにおいて演算を実行する方法および装置並びに非一時的な記憶媒体 | |
| CN111831254B (zh) | 图像处理加速方法、图像处理模型存储方法及对应装置 | |
| CN109993299B (zh) | 数据训练方法及装置、存储介质、电子装置 | |
| CN113986816B (zh) | 可重构计算芯片 | |
| CN113821208A (zh) | 用于深度学习算子的编译优化方法及系统 | |
| CN106846235B (zh) | 一种利用NVIDIA Kepler GPU汇编指令加速的卷积优化方法及系统 | |
| CN111562977A (zh) | 神经网络模型拆分方法、装置、存储介质和计算机系统 | |
| CN109993293B (zh) | 一种适用于堆叠式沙漏网络的深度学习加速器 | |
| CN118643253B (zh) | 数据处理方法、装置、设备和存储介质 | |
| CN117112145B (zh) | 训练模型分配方法、装置、计算机设备和存储介质 | |
| CN116028384A (zh) | 一种基于多张量核心处理器的卷积计算数据重用方法 | |
| CN110058882A (zh) | 一种用于cnn加速的opu指令集定义方法 | |
| CN114117150B (zh) | 一种基于gpu的图分析算法通用优化方法 | |
| CN118278474B (zh) | 一种基于多核处理器的三维卷积并行计算方法、装置和设备 | |
| CN120670107A (zh) | 基于动态拓扑映射的异构计算线程块优化调度方法及系统 | |
| CN112200310A (zh) | 智能处理器、数据处理方法及存储介质 | |
| CN109447239B (zh) | 一种基于arm的嵌入式卷积神经网络加速方法 | |
| CN117273099B (zh) | 一种可重构阵列下Transformer网络模型数据复用方案与实现方法 | |
| KR20230071481A (ko) | 딥러닝 기반 그래프 신경망 추론 가속을 위한 고성능 컴퓨팅 시스템 및 그의 방법 | |
| KR102733737B1 (ko) | 모바일 환경을 위한 저지연 합성곱 연산 장치 및 방법 | |
| CN109840306B (zh) | 一种基于递归的并行快速傅里叶变换通信优化方法和系统 | |
| CN118171710B (zh) | 一种稀疏矩阵乘法的npu加速方法 | |
| KR102802168B1 (ko) | 트리플-희소성 처리와 트랜스포머 가속을 위한 어텐션 퓨전을 지원하는 pim 구조 | |
| CN119537381A (zh) | 一种基于gpgpu的奇异值分解加速方法及设备 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PA0109 | Patent application |
St.27 status event code: A-0-1-A10-A12-nap-PA0109 |
|
| PA0201 | Request for examination |
St.27 status event code: A-1-2-D10-D11-exm-PA0201 |
|
| PG1501 | Laying open of application |
St.27 status event code: A-1-1-Q10-Q12-nap-PG1501 |
|
| P22-X000 | Classification modified |
St.27 status event code: A-2-2-P10-P22-nap-X000 |
|
| P11-X000 | Amendment of application requested |
St.27 status event code: A-2-2-P10-P11-nap-X000 |
|
| P13-X000 | Application amended |
St.27 status event code: A-2-2-P10-P13-nap-X000 |
|
| E701 | Decision to grant or registration of patent right | ||
| PE0701 | Decision of registration |
St.27 status event code: A-1-2-D10-D22-exm-PE0701 |
|
| R18-X000 | Changes to party contact information recorded |
St.27 status event code: A-3-3-R10-R18-oth-X000 |
|
| GRNT | Written decision to grant | ||
| PR0701 | Registration of establishment |
St.27 status event code: A-2-4-F10-F11-exm-PR0701 |
|
| PR1002 | Payment of registration fee |
St.27 status event code: A-2-2-U10-U11-oth-PR1002 Fee payment year number: 1 |
|
| PG1601 | Publication of registration |
St.27 status event code: A-4-4-Q10-Q13-nap-PG1601 |
|
| R18-X000 | Changes to party contact information recorded |
St.27 status event code: A-5-5-R10-R18-oth-X000 |
|
| R18 | Changes to party contact information recorded |
Free format text: ST27 STATUS EVENT CODE: A-5-5-R10-R18-OTH-X000 (AS PROVIDED BY THE NATIONAL OFFICE) |
|
| R18-X000 | Changes to party contact information recorded |
St.27 status event code: A-5-5-R10-R18-oth-X000 |