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)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Algebra (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biophysics (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- Neurology (AREA)
- Complex Calculations (AREA)
- Mobile Radio Communication Systems (AREA)
- Cable Transmission Systems, Equalization Of Radio And Reduction Of Echo (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 (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/KR2023/015677 WO2024237399A1 (ko) | 2022-06-24 | 2023-10-12 | 모바일 환경을 위한 저지연 합성곱 연산 장치 및 방법 |
| US19/377,100 US20260057035A1 (en) | 2022-06-24 | 2025-11-03 | Low-latency convolution operation apparatus and method for mobile environments |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020220077387 | 2022-06-24 | ||
| KR20220077387 | 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 (3)
| Country | Link |
|---|---|
| US (1) | US20260057035A1 (ko) |
| 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 not_active Ceased
-
2025
- 2025-11-03 US US19/377,100 patent/US20260057035A1/en active Pending
Also Published As
| Publication number | Publication date |
|---|---|
| US20260057035A1 (en) | 2026-02-26 |
| KR20240001028A (ko) | 2024-01-03 |
| WO2024237399A1 (ko) | 2024-11-21 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| Elsen et al. | Fast sparse convnets | |
| CN111831254B (zh) | 图像处理加速方法、图像处理模型存储方法及对应装置 | |
| JP6726246B2 (ja) | 畳み込みニューラルネットワークにおいて演算を実行する方法および装置並びに非一時的な記憶媒体 | |
| CN113986816B (zh) | 可重构计算芯片 | |
| US20250156159A1 (en) | Computation graph optimization method, data processing method and related product | |
| CN113821208A (zh) | 用于深度学习算子的编译优化方法及系统 | |
| CN106846235B (zh) | 一种利用NVIDIA Kepler GPU汇编指令加速的卷积优化方法及系统 | |
| CN118278474B (zh) | 一种基于多核处理器的三维卷积并行计算方法、装置和设备 | |
| CN118643253B (zh) | 数据处理方法、装置、设备和存储介质 | |
| CN116028384A (zh) | 一种基于多张量核心处理器的卷积计算数据重用方法 | |
| CN117112145A (zh) | 训练模型分配方法、装置、计算机设备和存储介质 | |
| CN114117150B (zh) | 一种基于gpu的图分析算法通用优化方法 | |
| CN109447239B (zh) | 一种基于arm的嵌入式卷积神经网络加速方法 | |
| CN117273099B (zh) | 一种可重构阵列下Transformer网络模型数据复用方案与实现方法 | |
| CN117786412A (zh) | 大型语言模型的弹性训练方法、集群系统、产品及介质 | |
| KR102733737B1 (ko) | 모바일 환경을 위한 저지연 합성곱 연산 장치 및 방법 | |
| CN118171710B (zh) | 一种稀疏矩阵乘法的npu加速方法 | |
| KR102802168B1 (ko) | 트리플-희소성 처리와 트랜스포머 가속을 위한 어텐션 퓨전을 지원하는 pim 구조 | |
| CN116974729B (zh) | 大数据作业的任务调度方法、装置及电子设备和存储介质 | |
| Li et al. | Optimizing data layout for training deep neural networks | |
| CN118378003A (zh) | 基于宽度优先搜索的任务执行方法、装置、设备及介质 | |
| Pawłowski et al. | Combinatorial tiling for sparse neural networks | |
| CN115272991B (zh) | 一种基于多核dsp的智能交通目标检测方法 | |
| TW202416187A (zh) | 用於多階層快取架構上的層融合和張量分塊的多目標自動調整 | |
| US20230376562A1 (en) | Integrated circuit apparatus for matrix multiplication operation, computing device, system, and method |
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 |