KR102380437B1 - 정밀도 스케일링을 이용한 알고리즘 성능 최적화 방법 - Google Patents
정밀도 스케일링을 이용한 알고리즘 성능 최적화 방법 Download PDFInfo
- Publication number
- KR102380437B1 KR102380437B1 KR1020200113285A KR20200113285A KR102380437B1 KR 102380437 B1 KR102380437 B1 KR 102380437B1 KR 1020200113285 A KR1020200113285 A KR 1020200113285A KR 20200113285 A KR20200113285 A KR 20200113285A KR 102380437 B1 KR102380437 B1 KR 102380437B1
- Authority
- KR
- South Korea
- Prior art keywords
- precision
- available
- required time
- scaling
- unit
- 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
- 238000000034 method Methods 0.000 title claims abstract description 41
- 238000010977 unit operation Methods 0.000 claims abstract description 58
- 238000005457 optimization Methods 0.000 claims description 17
- 230000006870 function Effects 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44568—Immediately runnable code
- G06F9/44578—Preparing or optimising for loading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
- G06F9/30014—Arithmetic instructions with variable precision
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3419—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
- G06F11/3423—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time where the assessed time is active or idle time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3428—Benchmarking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/362—Debugging of software
- G06F11/3628—Debugging of software of optimised code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/362—Debugging of software
- G06F11/3636—Debugging of software by tracing the execution of the program
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3419—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Complex Calculations (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
Description
도 2는 본 명세서의 일 실시예에 따른 프레임워크에 관한 도면이다.
도 3은 본 명세서의 일 실시예에 따른 정밀도 스케일링을 이용한 알고리즘 성능 최적화 방법에 관한 순서도이다.
도 4는 본 명세서의 일 실시예에 따른 알고리즘의 초기 연산에 대응되는 단위 연산을 반복 수행하여 최적 정밀도를 결정하는 단계에 관한 순서도이다.
도 5는 본 명세서의 일 실시예에 따른 최적화 방법의 실행 시나리오에 관한 도면이다.
110: 어플리케이션 프로파일러
120: 시스템 인스펙터
130: 정밀도 탐색부
140: 데이터 스케일링부
150: 컴파일러
200: 메모리
Claims (10)
- 프로세서 및 메모리를 구비하는 알고리즘 성능 최적화 시스템에 의해 수행되는 정밀도 스케일링을 이용한 알고리즘 성능 최적화 방법에 있어서,
반복 수행되는 단위 연산을 포함하는 알고리즘의 정밀도에 따른 상기 단위 연산의 연산 횟수를 획득하는 단계 - 상기 정밀도는 제1 정밀도 및 제2 정밀도를 포함하고, 상기 연산 횟수는 상기 제1 정밀도에 대응되는 제1 횟수 및 상기 제2 정밀도에 대응되는 제2 횟수를 포함함 - ;
상기 알고리즘이 실행될 디바이스의 가용 정밀도를 파악하는 단계 - 상기 가용 정밀도는 상기 제1 정밀도에 대응되는 제1 가용 정밀도 및 상기 제2 정밀도에 대응되는 제2 가용 정밀도를 포함함 - ;
상기 알고리즘의 초기 연산에 대응되는 상기 단위 연산을 상기 파악된 가용 정밀도를 이용하여 반복 수행하여 최적 정밀도를 결정하는 정밀도 탐색 단계; 및
상기 알고리즘의 후속 연산에 대응되는 상기 단위 연산을 상기 최적 정밀도로 반복 수행하는 단계를 포함하는
정밀도 스케일링을 이용한 알고리즘 성능 최적화 방법.
- 제1 항에 있어서,
상기 정밀도 탐색 단계는, 상기 제1 가용 정밀도 및 상기 제2 가용 정밀도 중 상기 최적 정밀도를 선택하는 단계를 포함하는
정밀도 스케일링을 이용한 알고리즘 성능 최적화 방법.
- 제1 항에 있어서,
상기 제1 정밀도 및 상기 제2 정밀도 각각은 배정밀도(double precision), 단일정밀도(single precision) 및 반정밀도(half precision) 중 하나인
정밀도 스케일링을 이용한 알고리즘 성능 최적화 방법.
- 제1 항에 있어서,
상기 가용 정밀도에 따라 데이터를 스케일링하기 위한 스케일링 함수를 어플리케이션 내에 삽입하는 단계를 더 포함하는
정밀도 스케일링을 이용한 알고리즘 성능 최적화 방법.
- 제1 항에 있어서,
상기 정밀도 탐색 단계는,
상기 제1 가용 정밀도로 스케일링된 데이터를 이용하여 상기 단위 연산을 수행하여 상기 제1 가용 정밀도에 대응되는 제1 단위 소요 시간을 획득하는 단계;
상기 제1 가용 정밀도의 데이터를 상기 제2 가용 정밀도로 스케일링하는 단계;
상기 제2 가용 정밀도로 스케일링된 데이터를 이용하여 상기 단위 연산을 수행하여 상기 제2 가용 정밀도에 대응되는 제2 단위 소요 시간을 획득하는 단계;
상기 제1 횟수 및 상기 제1 단위 소요 시간에 기초하여 상기 제1 가용 정밀도에 대응되는 제1 예상 소요 시간을 산출하는 단계;
상기 제2 횟수 및 상기 제2 단위 소요 시간에 기초하여 상기 제2 가용 정밀도에 대응되는 제2 예상 소요 시간을 산출하는 단계; 및
상기 제1 예상 소요 시간 및 상기 제2 예상 소요 시간을 비교하여 상기 최적 정밀도를 결정하는 단계를 포함하는
정밀도 스케일링을 이용한 알고리즘 성능 최적화 방법.
- 제5 항에 있어서,
상기 제1 단위 소요 시간을 획득하는 단계 및 상기 제2 단위 소요 시간을 획득하는 단계는 상기 단위 연산을 1회 수행하는 것을 특징으로 하는
정밀도 스케일링을 이용한 알고리즘 성능 최적화 방법.
- 제5 항에 있어서,
상기 제1 예상 소요 시간을 산출하는 단계는 상기 제1 횟수 및 상기 제1 단위 소요 시간을 곱하여 상기 제1 예상 소요 시간을 산출하는 단계를 포함하고,
상기 제2 예상 소요 시간을 산출하는 단계는 상기 제2 횟수 및 상기 제2 단위 소요 시간을 곱하여 상기 제2 예상 소요 시간을 산출하는 단계를 포함하는
정밀도 스케일링을 이용한 알고리즘 성능 최적화 방법.
- 제5 항에 있어서,
상기 정밀도는 제3 정밀도를 더 포함하고,
상기 연산 횟수는 상기 제3 정밀도에 대응되는 제3 횟수를 더 포함하는
정밀도 스케일링을 이용한 알고리즘 성능 최적화 방법.
- 제8 항에 있어서,
상기 가용 정밀도는 상기 제3 정밀도에 대응되는 제3 가용 정밀도를 더 포함하고,
상기 정밀도 탐색 단계는,
상기 제2 가용 정밀도의 데이터를 상기 제3 가용 정밀도로 스케일링하는 단계;
상기 제3 가용 정밀도로 스케일링된 데이터를 이용하여 상기 단위 연산을 수행하여 상기 제3 가용 정밀도에 대응되는 제3 단위 소요 시간을 획득하는 단계; 및
상기 제3 횟수 및 상기 제3 단위 소요 시간에 기초하여 상기 제3 가용 정밀도에 대응되는 제3 예상 소요 시간을 산출하는 단계를 더 포함하되,
상기 최적 정밀도를 결정하는 단계는 상기 제1 예상 소요 시간, 상기 제2 예상 소요 시간 및 상기 제3 예상 소요 시간을 비교하여 상기 최적 정밀도를 결정하는
정밀도 스케일링을 이용한 알고리즘 성능 최적화 방법.
- 제9 항에 있어서,
상기 최적 정밀도를 결정하는 단계는 상기 제1 가용 정밀도, 상기 제2 가용 정밀도 및 상기 제3 가용 정밀도 중 상기 최적 정밀도를 선택하는 단계를 포함하는
정밀도 스케일링을 이용한 알고리즘 성능 최적화 방법.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200113285A KR102380437B1 (ko) | 2020-09-04 | 2020-09-04 | 정밀도 스케일링을 이용한 알고리즘 성능 최적화 방법 |
US17/519,079 US11537395B2 (en) | 2020-09-04 | 2021-11-04 | Method for optimizing performance of algorithm using precision scaling |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200113285A KR102380437B1 (ko) | 2020-09-04 | 2020-09-04 | 정밀도 스케일링을 이용한 알고리즘 성능 최적화 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20220031408A KR20220031408A (ko) | 2022-03-11 |
KR102380437B1 true KR102380437B1 (ko) | 2022-03-29 |
Family
ID=80814753
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200113285A Active KR102380437B1 (ko) | 2020-09-04 | 2020-09-04 | 정밀도 스케일링을 이용한 알고리즘 성능 최적화 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11537395B2 (ko) |
KR (1) | KR102380437B1 (ko) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102037043B1 (ko) | 2018-08-02 | 2019-10-28 | 울산과학기술원 | 세밀한 정밀도 조정이 가능한 곱셈누적기 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20080096306A (ko) * | 2007-04-27 | 2008-10-30 | 재단법인서울대학교산학협력재단 | 규칙에 기반하여 스케일링 쉬프트의 최적의 위치를 찾는컴파일 방법 및 시스템 |
WO2017156669A1 (en) * | 2016-03-14 | 2017-09-21 | Mediatek Singapore Pte. Ltd. | Methods for motion vector storage in video coding |
US12169782B2 (en) * | 2018-11-12 | 2024-12-17 | Advanced Micro Devices, Inc. | Dynamic precision scaling at epoch granularity in neural networks |
-
2020
- 2020-09-04 KR KR1020200113285A patent/KR102380437B1/ko active Active
-
2021
- 2021-11-04 US US17/519,079 patent/US11537395B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102037043B1 (ko) | 2018-08-02 | 2019-10-28 | 울산과학기술원 | 세밀한 정밀도 조정이 가능한 곱셈누적기 |
Non-Patent Citations (2)
Title |
---|
Woongki Baek 외 1명. GREEN: A Framework for Supporting Energy-Conscious Programming using Controlled Approximation. 2010년 |
강석원 외 1명. Autoscale: 자동화 명령어-레벨 정밀도 스케일링 프레임워크. 2018년 |
Also Published As
Publication number | Publication date |
---|---|
US20220236987A1 (en) | 2022-07-28 |
US11537395B2 (en) | 2022-12-27 |
KR20220031408A (ko) | 2022-03-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10540142B2 (en) | Accuracy-conserving floating-point value aggregation | |
US7966609B2 (en) | Optimal floating-point expression translation method based on pattern matching | |
JP5731937B2 (ja) | ベクトル浮動小数点引数削減 | |
US8219605B2 (en) | Decimal floating-pointing quantum exception detection | |
US10296290B2 (en) | Digital signal processor | |
US10831958B2 (en) | Integrated circuit design with optimized timing constraint configuration | |
US11086604B2 (en) | Source code splitting device, source code analyzing device, source code splitting method, and computer readable medium | |
CN114861579A (zh) | 集成电路中时序瓶颈节点分析和时序优化方法及系统 | |
US20200012250A1 (en) | Program editing device, program editing method, and computer readable medium | |
KR102560424B1 (ko) | 와이드 데이터 타입들의 비교 | |
KR102380437B1 (ko) | 정밀도 스케일링을 이용한 알고리즘 성능 최적화 방법 | |
US10268798B2 (en) | Condition analysis | |
JP6789844B2 (ja) | 類似関数抽出装置および類似関数抽出プログラム | |
US8516453B2 (en) | Partition-based static analysis of computer software applications | |
CN115470922B (zh) | 量子比特校准方法及装置、量子控制系统、量子计算机 | |
JP6682036B2 (ja) | 規模算出装置及び規模算出プログラム | |
KR101559651B1 (ko) | 동적 분석 방법 및 장치 | |
US11487506B2 (en) | Condition code anticipator for hexadecimal floating point | |
JP6548848B2 (ja) | 情報処理装置、情報処理方法及び情報処理プログラム | |
US10108476B2 (en) | Self diagnosis method, compile apparatus and compiler | |
KR102370851B1 (ko) | 벡터 연산 명령어를 통해 문자열을 고속으로 추출하는 방법 | |
US8805904B2 (en) | Method and apparatus for calculating the number of leading zero bits of a binary operation | |
KR101850775B1 (ko) | 해시 기반 그룹을 이용한 핵심 인자 추출 가속화 방법 및 이를 기록한 기록매체 | |
JP6971835B2 (ja) | 要素類似判定装置、要素類似判定方法及び要素類似判定プログラム | |
CN113296735A (zh) | 一种浮点数处理方法、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20200904 |
|
PA0201 | Request for examination | ||
PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20210929 Patent event code: PE09021S01D |
|
PG1501 | Laying open of application | ||
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: 20220322 |
|
GRNT | Written decision to grant | ||
PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 20220325 Patent event code: PR07011E01D |
|
PR1002 | Payment of registration fee |
Payment date: 20220325 End annual number: 3 Start annual number: 1 |
|
PG1601 | Publication of registration | ||
PR1001 | Payment of annual fee |
Payment date: 20241224 Start annual number: 4 End annual number: 4 |