KR102737112B1 - 컴퓨팅 장치 및 이의 동작 방법 - Google Patents
컴퓨팅 장치 및 이의 동작 방법 Download PDFInfo
- Publication number
- KR102737112B1 KR102737112B1 KR1020220168833A KR20220168833A KR102737112B1 KR 102737112 B1 KR102737112 B1 KR 102737112B1 KR 1020220168833 A KR1020220168833 A KR 1020220168833A KR 20220168833 A KR20220168833 A KR 20220168833A KR 102737112 B1 KR102737112 B1 KR 102737112B1
- Authority
- KR
- South Korea
- Prior art keywords
- value
- bit
- activation
- received
- bits
- 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/74—Selecting or encoding within a word the position of one or more bits having a specified value, e.g. most or least significant one or zero detection, priority encoders
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/30018—Bit or string instructions
-
- 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/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/01—Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/01—Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
- G06F5/012—Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising in floating-point computations
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/01—Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
- G06F5/015—Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising having at least two separately controlled shifting levels, e.g. using shifting matrices
-
- 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/52—Multiplying; Dividing
- G06F7/523—Multiplying only
- G06F7/533—Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even
- G06F7/5334—Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by using multiple bit scanning, i.e. by decoding groups of successive multiplier bits in order to select an appropriate precalculated multiple of the multiplicand as a partial product
-
- 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
- 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 OR CALCULATING; 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/30025—Format conversion instructions, e.g. Floating-Point to Integer, decimal conversion
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
-
- 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/045—Combinations of networks
- G06N3/0455—Auto-encoder networks; Encoder-decoder networks
-
- 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/3804—Details
- G06F2207/3808—Details concerning the type of numbers or the way they are handled
- G06F2207/3812—Devices capable of handling different types of numbers
- G06F2207/3824—Accepting both fixed-point and floating-point numbers
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/3804—Details
- G06F2207/3808—Details concerning the type of numbers or the way they are handled
- G06F2207/3832—Less usual number representations
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Neurology (AREA)
- Nonlinear Science (AREA)
- Executing Machine-Instructions (AREA)
- Image Generation (AREA)
Abstract
Description
도 2는 일 실시 예에 따른 제1 숫자 포맷을 설명하는 도면이다.
도 3과 도 4는 일 실시 예에 따른 제1 숫자 포맷과 제2 숫자 포맷의 맵핑을 설명하는 흐름도이다.
도 5a와 도 5b는 일 실시 예에 따른 컴퓨팅 장치의 연산기의 예시를 설명하는 블록도이다.
도 6은 일 실시 예에 따른 컴퓨팅 장치의 연산기의 다른 예시를 설명하는 블록도이다.
도 7은 일 실시 예에 따른 컴퓨팅 장치가 제1 숫자 포맷의 가중치값 및 제1 숫자 포맷의 활성화값을 기초로 연산을 수행하는 예시를 설명하는 흐름도이다.
도 8은 일 실시 예에 따른 컴퓨팅 장치가 제1 숫자 포맷의 가중치값과 제2 숫자 포맷의 활성화값을 기초로 연산을 수행하는 예시를 설명하는 흐름도이다.
도 9는 일 실시 예에 따른 컴퓨팅 장치의 숫자 포맷 변환을 설명하는 도면이다.
도 10은 일 실시 예에 따른 처리 시스템의 개략적인 블록도이다.
| unsigned 제1 숫자 포맷 | 제2 숫자 포맷 | 제3 숫자 포맷 |
| 11xxxxx | 1.xxxxx… *2-1 | 0.1xxxxx… |
| 10xxxxx | 1.xxxxx… *2-2 | 0.01xxxxx… |
| 011xxxx | 1.xxxx… *2-3 | 0.001xxxx… |
| 010xxxx | 1.xxxx…*2-4 | 0.0001xxxx… |
| 0011xxx | 1.xxx…*2-5 | 0.00001xxx… |
| 0010xxx | 1.xxx…*2-6 | 0.000001xxx… |
| 00011xx | 1.xx…*2-7 | 0.0000001xx… |
| 00010xx | 1.xx…*2-8 | 0.00000001xx… |
| 000011x | 1.x…*2-9 | 0.000000001x… |
| 000010x | 1.x…*2-10 | 0.0000000001x… |
| 000001x | 1.x…*2-11 | 0.00000000001x… |
| 0000001 | 1.0…*2-12 | 0.000000000001… |
| 0000000 | 0.0…*2-12 | 0.000000000000… |
| unsigned 제1 숫자 포맷 | 제2 숫자 포맷 | 제3 숫자 포맷 |
| 11xxxxx | 1.xxxxx…*2-1 | 0.1xxxxx… |
| 101xxxx | 1.xxxxx…*2-2 | 0.01xxxxx… |
| 100xxxx | 1.xxxx…*2-3 | 0.001xxxx… |
| 011xxxx | 1.xxxx…*2-4 | 0.0001xxxx… |
| 0101xxx | 1.xxx…*2-5 | 0.00001xxx… |
| 0100xxx | 1.xxx…*2-6 | 0.000001xxx… |
| 0011xxx | 1.xxx…*2-7 | 0.0000001xxx… |
| 00101xx | 1.xx…*2-8 | 0.00000001xx… |
| 00100xx | 1.xx…*2-9 | 0.000000001xx… |
| 00011xx | 1.xx…*2-10 | 0.0000000001xx… |
| 000101x | 1.x…*2-11 | 0.00000000001x… |
| 000100x | 1.x…*2-12 | 0.000000000001x… |
| 000011x | 1.x…*2-13 | 0.0000000000001x… |
| 000010x | 1.x…*2-14 | 0.00000000000001x… |
| 000001x | 1.x…*2-15 | 0.000000000000001x… |
| 0000001 | 1.0…*2-16 | 0.0000000000000001… |
| 0000000 | 0.0…*2-16 | 0.0000000000000000… |
| 깊이 필드 | 변환값 |
| 01 | 1 |
| 001 | 2 |
| 0001 | 3 |
| … | … |
| 부동 소수점 | 부동 소수점 | 고정 소수점 | 제1 숫자 포맷 | |||||
| bitwidth | 32 (baseline) |
16 (half) |
10 | 11 | 8 | 11 | 8 | 9 |
| 가수부 | 23 | 10 | 4 | 5 | 7 | 10 | 5 | 6 |
| 히든 비트 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 1 |
| 정확도(%) | 79.814 | 79.8 | 79.69 | 79.718 | 79.188 | 79.8 | 79.748 | 79.812 |
| 정확도 차이(%) | - | 0.014 | 0.124 | 0.096 | 0.626 | 0.014 | 0.066 | 0.002 |
| Consistency(%) | - | 99.922 | 96.646 | 98.376 | 94.096 | 99.282 | 97.826 | 99.012 |
| 1-consistency(%) | - | 0.078 | 3.354 | 1.624 | 5.904 | 0.718 | 2.174 | 0.988 |
| 원시 가중치값의 지수값과 미리 설정된 인자 사이의 나눗셈 연산을 통해 도출된 나머지 | 나머지에 대응되는 비트(들) | |
| k=2 | 1 | 1 |
| 0 | 0 | |
| k=3 | 2 | 01 |
| 1 | 1 | |
| 0 | 00 | |
| … | … | … |
Claims (20)
- 가중치값을 저장하는 제1 버퍼;
활성화값을 저장하는 제2 버퍼; 및
상기 제1 버퍼로부터 상기 가중치값을 수신하고, 상기 제2 버퍼로부터 상기 활성화값을 수신하며, 상기 수신된 가중치값에서 상기 수신된 가중치값의 범위와 관련된 깊이 필드를 검출하고, 상기 수신된 활성화값에서 상기 수신된 활성화값의 범위와 관련된 깊이 필드를 검출하고, 상기 검출된 각 깊이 필드를 기초로 출력 데이터의 깊이 필드를 결정하고, 상기 수신된 가중치값을 처리하여 제1 피연산자(operand)를 결정하고, 상기 수신된 활성화값을 처리하여 제2 피연산자를 결정하고, 상기 결정된 제1 및 제2 피연산자를 기초로 연산을 수행하고, 상기 연산 결과 및 상기 결정된 깊이 필드를 기초로 상기 출력 데이터를 결정하는 연산기
를 포함하는,
컴퓨팅 장치.
- 제1항에 있어서,
상기 연산기는,
상기 수신된 가중치값의 비트들 중 최상위 비트(most significant bit)를 제외한 나머지에서 처음으로 제1 값을 갖는 제1 타겟 비트를 검출하고, 상기 수신된 가중치값의 차상위 비트(second most significant bit)부터 상기 제1 타겟 비트까지의 비트들을 상기 수신된 가중치값의 깊이 필드로 검출하는 제1 깊이 필드 검출기; 및
상기 수신된 활성화값의 비트들 중 최상위 비트를 제외한 나머지에서 처음으로 제1 값을 갖는 제2 타겟 비트를 검출하고, 상기 수신된 활성화값의 차상위 비트부터 상기 제2 타겟 비트까지의 비트들을 상기 수신된 활성화값의 깊이 필드로 검출하는 제2 깊이 필드 검출기
를 포함하는,
컴퓨팅 장치.
- 제2항에 있어서,
상기 제1 깊이 필드 검출기는,
상기 수신된 가중치값의 차상위 비트가 처음으로 제1 값을 갖는 경우 상기 수신된 가중치값의 차상위 비트를 상기 수신된 가중치값의 깊이 필드로 검출하고,
상기 제2 깊이 필드 검출기는,
상기 수신된 활성화값의 차상위 비트가 처음으로 제1 값을 갖는 경우 상기 수신된 활성화값의 차상위 비트를 상기 수신된 활성화값의 깊이 필드로 검출하는,
컴퓨팅 장치.
- 제2항에 있어서,
상기 연산기는,
상기 제1 타겟 비트의 다음 비트가 상기 제1 값을 갖는지 여부를 판단하는 제1 비트 체크 회로; 및
상기 다음 비트가 상기 제1 값을 갖는 경우 상기 제1 타겟 비트의 값을 상기 제1 값에서 제2 값으로 변경하며, 상기 제2 값을 갖는 상기 제1 타겟 비트, 상기 다음 비트, 및 상기 다음 비트의 이후 비트를 포함하는 상기 제1 피연산자를 결정하고, 상기 다음 비트가 상기 제2 값을 갖는 경우 상기 다음 비트의 값을 상기 제2 값에서 상기 제1 값으로 변경하고, 상기 제1 타겟 비트의 값을 상기 제1 값에서 제2 값으로 변경하며, 상기 제2 값을 갖는 상기 제1 타겟 비트, 상기 제1 값을 갖는 상기 다음 비트, 및 상기 다음 비트의 이후 비트를 포함하는 상기 제1 피연산자를 결정하는 제1 마스킹 회로
를 포함하는,
컴퓨팅 장치.
- 제2항에 있어서,
상기 연산기는,
상기 제2 타겟 비트의 다음 비트가 상기 제1 값을 갖는지 여부를 판단하는 제2 비트 체크 회로; 및
상기 다음 비트가 상기 제1 값을 갖는 경우 상기 제2 타겟 비트의 값을 상기 제1 값에서 제2 값으로 변경하며, 상기 제2 값을 갖는 상기 제2 타겟 비트, 상기 다음 비트, 및 상기 다음 비트의 이후 비트를 포함하는 상기 제2 피연산자를 결정하고, 상기 다음 비트가 상기 제2 값을 갖는 경우 상기 다음 비트의 값을 상기 제2 값에서 상기 제1 값으로 변경하고, 상기 제2 타겟 비트의 값을 상기 제1 값에서 제2 값으로 변경하며, 상기 제2 값을 갖는 상기 제2 타겟 비트, 상기 제1 값을 갖는 상기 다음 비트, 및 상기 다음 비트의 이후 비트를 포함하는 상기 제2 피연산자를 결정하는 제2 마스킹 회로
를 포함하는,
컴퓨팅 장치.
- 제1항에 있어서,
상기 연산기는,
상기 검출된 각 깊이 필드에 대응되는 변환값을 결정하고, 상기 결정된된 각 변환값을 합산하며, 상기 합산 결과를 이용하여 상기 출력 데이터의 깊이 필드를 결정하는,
컴퓨팅 장치.
- 제1항에 있어서,
상기 연산기는,
상기 수신된 가중치값의 가수부 필드의 리딩(leading) 비트와 상기 수신된 활성화값의 가수부 필드의 리딩 비트 각각이 제2 값을 갖는 경우, 상기 연산 결과에 2-비트 시프트를 수행하고, 상기 수신된 가중치값의 가수부 필드의 리딩 비트 및 상기 수신된 활성화값의 가수부 필드의 리딩 비트 중 어느 하나가 상기 제2 값을 갖고 다른 하나가 제1 값을 갖는 경우, 상기 연산 결과에 1-비트 시프트를 수행하며, 상기 수신된 가중치값의 가수부 필드의 리딩 비트 및 상기 수신된 활성화값의 가수부 필드의 리딩 비트 각각이 상기 제1 값을 갖는 경우 상기 연산 결과에 시프트를 수행하지 않는 시프트 회로
를 포함하는,
컴퓨팅 장치.
- 제1항에 있어서,
상기 연산기는,
상기 연산 결과에서 일부 비트들을 추출하고, 상기 추출된 일부 비트들, 상기 결정된 깊이 필드, 상기 수신된 가중치값의 부호 비트, 및 상기 수신된 활성화값의 부호 비트를 이용하여 상기 출력 데이터를 결정하는 인코더
를 포함하는,
컴퓨팅 장치.
- 제1항에 있어서,
상기 가중치값과 상기 활성화값은 제1 숫자 포맷을 갖고,
상기 컴퓨팅 장치는,
상기 제1 숫자 포맷이 아닌 다른 숫자 포맷의 원시(raw) 가중치값 및 상기 제1 숫자 포맷이 아닌 다른 숫자 포맷의 원시 활성화값 각각을 상기 제1 숫자 포맷의 상기 가중치값과 상기 제1 숫자 포맷의 활성화값 각각으로 변환하는 변환기
를 더 포함하는,
컴퓨팅 장치.
- 제9항에 있어서,
상기 변환기는,
상기 원시 가중치값의 지수값과 미리 설정된 인자를 기초로 상기 가중치값의 깊이 필드를 결정하고, 상기 원시 가중치값의 지수값과 상기 미리 설정된 인자 사이의 나눗셈 연산을 통해 도출된 제1 나머지에 대응되는 비트를 결정하며, 상기 제1 나머지에 대응되는 비트와 상기 원시 가중치값의 가수부 비트들의 일부 비트들을 통해 상기 가중치값의 가수부 필드를 결정하고,
상기 원시 활성화값의 지수값과 상기 미리 설정된 인자를 기초로 상기 활성화값의 깊이 필드를 결정하고, 상기 원시 활성화값의 지수값과 상기 미리 설정된 인자 사이의 나눗셈 연산을 통해 도출된 제2 나머지에 대응되는 비트를 결정하고, 상기 제2 나머지에 대응되는 비트와 상기 원시 활성화값의 가수부 비트들의 일부 비트들을 통해 상기 활성화값의 가수부 필드를 결정하는,
컴퓨팅 장치.
- 제1 숫자 포맷의 가중치값을 저장하는 제1 버퍼;
제2 숫자 포맷의 활성화값을 저장하는 제2 버퍼; 및
상기 제1 버퍼로부터 상기 가중치값을 수신하고, 상기 제2 버퍼로부터 상기 활성화값을 수신하며, 상기 수신된 가중치값에서 상기 수신된 가중치값의 범위와 관련된 깊이 필드를 검출하고, 상기 수신된 가중치값을 처리하여 피연산자를 결정하고, 상기 결정된 피연산자와 상기 수신된 활성화값의 가수부를 기초로 연산을 수행하고, 상기 검출된 깊이 필드, 상기 수신된 가중치값의 기반(base)값, 상기 수신된 활성화값의 지수부, 및 상기 연산 결과를 시프트하기 위한 시프트값을 기초로 출력 데이터의 지수부를 결정하고, 상기 결정된 지수부 및 상기 연산 결과를 기초로 상기 출력 데이터를 결정하는 연산기
를 포함하는,
컴퓨팅 장치.
- 제11항에 있어서,
상기 연산기는,
상기 수신된 가중치값의 비트들 중 최상위 비트를 제외한 나머지에서 처음으로 제1 값을 갖는 타겟 비트를 검출하고, 상기 수신된 가중치값의 차상위 비트부터 상기 타겟 비트까지의 비트들을 상기 수신된 가중치값의 깊이 필드로 검출하는 깊이 필드 검출기
를 포함하는,
컴퓨팅 장치.
- 제12항에 있어서,
상기 깊이 필드 검출기는,
상기 차상위 비트가 처음으로 제1 값을 갖는 경우 상기 수신된 가중치값의 차상위 비트를 상기 수신된 가중치값의 깊이 필드로 검출하는,
컴퓨팅 장치.
- 제12항에 있어서,
상기 연산기는,
상기 타겟 비트의 다음 비트가 상기 제1 값을 갖는지 여부를 판단하는 비트 체크 회로; 및
상기 다음 비트가 상기 제1 값을 갖는 경우 상기 타겟 비트의 값을 상기 제1 값에서 제2 값으로 변경하며, 상기 제2 값을 갖는 상기 타겟 비트, 상기 다음 비트, 및 상기 다음 비트의 이후 비트를 포함하는 상기 피연산자를 결정하고, 상기 다음 비트가 상기 제2 값을 갖는 경우 상기 다음 비트의 값을 상기 제2 값에서 상기 제1 값으로 변경하고, 상기 타겟 비트의 값을 상기 제1 값에서 제2 값으로 변경하며, 상기 제2 값을 갖는 상기 타겟 비트, 상기 제1 값을 갖는 상기 다음 비트, 및 상기 다음 비트의 이후 비트를 포함하는 상기 피연산자를 결정하는 마스킹 회로
를 포함하는,
컴퓨팅 장치.
- 제11항에 있어서,
상기 연산기는,
상기 검출된 깊이 필드에 대응되는 변환값을 결정하고, 상기 결정된 변환값, 상기 기반값을 2의 k승(power)으로 표현했을 때 상기 k, 상기 수신된 가중치값의 가수부 필드의 리딩(leading) 비트에 따라 결정된 값, 상기 시프트값, 및 상기 수신된 활성화값의 지수부를 이용하여 상기 출력 데이터의 지수부를 결정하는,
컴퓨팅 장치.
- 제15항에 있어서,
상기 연산기는,
상기 결정된 변환값과 상기 k 사이의 곱셈 결과에 상기 수신된 활성화값의 지수부의 부호(sign)를 적용하고, 상기 부호가 적용된 곱셈 결과, 상기 수신된 활성화값의 지수부, 상기 리딩 비트에 따라 결정된 값, 및 상기 시프트값을 합산하여 상기 출력 데이터의 지수부를 결정하는,
컴퓨팅 장치.
- 제16항에 있어서,
상기 리딩 비트가 제2 값을 갖는 경우 상기 리딩 비트에 따라 결정된 값은 마이너스 1에 해당하고, 상기 리딩 비트가 제1 값을 갖는 경우 상기 리딩 비트에 따라 결정된 값은 0에 해당하는,
컴퓨팅 장치.
- 제11항에 있어서,
상기 연산기는,
상기 연산 결과에서 일부 비트들을 추출하고, 상기 추출된 일부 비트들 및 상기 결정된 지수부를 이용하여 상기 출력 데이터를 결정하는,
컴퓨팅 장치.
- 컴퓨팅 장치의 동작 방법에 있어서,
가중치값에서 상기 가중치값의 범위와 관련된 깊이 필드를 검출하는 단계;
활성화값에서 상기 활성화값의 범위와 관련된 깊이 필드를 검출하는 단계;
상기 검출된 각 깊이 필드를 기초로 출력 데이터의 깊이 필드를 결정하는 단계;
상기 가중치값을 처리하여 제1 피연산자를 결정하는 단계;
상기 활성화값을 처리하여 제2 피연산자를 결정하는 단계;
상기 결정된 제1 및 제2 피연산자를 기초로 연산을 수행하는 단계; 및
상기 연산 결과 및 상기 결정된 깊이 필드를 기초로 상기 출력 데이터를 결정하는 단계
를 포함하는,
컴퓨팅 장치의 동작 방법.
- 제19항에 있어서,
상기 가중치값의 값의 범위와 관련된 깊이 필드를 검출하는 단계는,
상기 가중치값의 차상위 비트부터 처음으로 제1 값을 갖는 비트까지의 비트들을 상기 가중치값의 깊이 필드로 검출하는 단계
를 포함하고,
상기 활성화값의 값의 범위와 관련된 깊이 필드를 검출하는 단계는,
상기 활성화값의 차상위 비트부터 처음으로 제1 값을 갖는 비트까지의 비트들을 상기 활성화값의 깊이 필드로 검출하는 단계
를 포함하는,
컴퓨팅 장치의 동작 방법.
Priority Applications (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020220168833A KR102737112B1 (ko) | 2022-12-06 | 2022-12-06 | 컴퓨팅 장치 및 이의 동작 방법 |
| US18/326,563 US20240184533A1 (en) | 2022-12-06 | 2023-05-31 | Apparatus and method with data processing |
| CN202311477991.8A CN118153646A (zh) | 2022-12-06 | 2023-11-08 | 计算设备及其操作方法 |
| EP23213890.9A EP4383062A1 (en) | 2022-12-06 | 2023-12-04 | Apparatus and method with data processing |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020220168833A KR102737112B1 (ko) | 2022-12-06 | 2022-12-06 | 컴퓨팅 장치 및 이의 동작 방법 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| KR20240084631A KR20240084631A (ko) | 2024-06-14 |
| KR102737112B1 true KR102737112B1 (ko) | 2024-12-02 |
Family
ID=89076282
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020220168833A Active KR102737112B1 (ko) | 2022-12-06 | 2022-12-06 | 컴퓨팅 장치 및 이의 동작 방법 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US20240184533A1 (ko) |
| EP (1) | EP4383062A1 (ko) |
| KR (1) | KR102737112B1 (ko) |
| CN (1) | CN118153646A (ko) |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN110852416A (zh) | 2019-09-30 | 2020-02-28 | 成都恒创新星科技有限公司 | 基于低精度浮点数数据表现形式的cnn加速计算方法及系统 |
| JP2020521192A (ja) | 2017-05-17 | 2020-07-16 | グーグル エルエルシー | ハードウェアにおける行列乗算の実行 |
| US20200302271A1 (en) | 2019-03-18 | 2020-09-24 | Microsoft Technology Licensing, Llc | Quantization-aware neural architecture search |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20220156569A1 (en) * | 2020-11-13 | 2022-05-19 | Samsung Electronics Co., Ltd. | Weight-sparse neural processing unit with multi-dimensional routing of non-zero values |
-
2022
- 2022-12-06 KR KR1020220168833A patent/KR102737112B1/ko active Active
-
2023
- 2023-05-31 US US18/326,563 patent/US20240184533A1/en active Pending
- 2023-11-08 CN CN202311477991.8A patent/CN118153646A/zh active Pending
- 2023-12-04 EP EP23213890.9A patent/EP4383062A1/en active Pending
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2020521192A (ja) | 2017-05-17 | 2020-07-16 | グーグル エルエルシー | ハードウェアにおける行列乗算の実行 |
| US20200302271A1 (en) | 2019-03-18 | 2020-09-24 | Microsoft Technology Licensing, Llc | Quantization-aware neural architecture search |
| CN110852416A (zh) | 2019-09-30 | 2020-02-28 | 成都恒创新星科技有限公司 | 基于低精度浮点数数据表现形式的cnn加速计算方法及系统 |
Also Published As
| Publication number | Publication date |
|---|---|
| KR20240084631A (ko) | 2024-06-14 |
| US20240184533A1 (en) | 2024-06-06 |
| EP4383062A1 (en) | 2024-06-12 |
| CN118153646A (zh) | 2024-06-07 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN106990937B (zh) | 一种浮点数处理装置和处理方法 | |
| CN111492343B (zh) | 浮点乘法运算处理的系统和方法 | |
| JP5731937B2 (ja) | ベクトル浮動小数点引数削減 | |
| JP7244186B2 (ja) | 改良された低精度の2進浮動小数点形式設定 | |
| US9519460B1 (en) | Universal single instruction multiple data multiplier and wide accumulator unit | |
| CN112241291B (zh) | 用于指数函数实施的浮点单元 | |
| US10095475B2 (en) | Decimal and binary floating point rounding | |
| CN1928809A (zh) | 用于执行浮点运算的系统、设备和方法 | |
| CN112835551A (zh) | 用于处理单元的数据处理方法、电子设备和计算机可读存储介质 | |
| US9430190B2 (en) | Fused multiply add pipeline | |
| KR102481418B1 (ko) | 단일 곱셈-누산 방법 및 장치 | |
| CN103135960A (zh) | 一种基于fpga的集成浮点运算器的设计方法 | |
| KR102737112B1 (ko) | 컴퓨팅 장치 및 이의 동작 방법 | |
| US9720648B2 (en) | Optimized structure for hexadecimal and binary multiplier array | |
| US9141586B2 (en) | Method, apparatus, system for single-path floating-point rounding flow that supports generation of normals/denormals and associated status flags | |
| US20230161555A1 (en) | System and method performing floating-point operations | |
| US7814138B2 (en) | Method and apparatus for decimal number addition using hardware for binary number operations | |
| US8924447B2 (en) | Double precision approximation of a single precision operation | |
| CN111324856B (zh) | 计算机可读存储介质、计算机实施的方法和计算机器 | |
| Vanashree et al. | Design of a Simplified Floating Point Adder for Complex Computation | |
| TW202528922A (zh) | 使用整數運算執行編碼格式轉換的方法與系統 | |
| CN116368462A (zh) | 高精度锚定隐式处理 | |
| WO2019199442A1 (en) | Computing device performance of low precision arithmetic functions with arrays of pre-calculated values | |
| JP2020513612A (ja) | 符号絶対値データ形式で結果を生み出すための回路、方法およびコンピュータ・プログラム製品 |
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 |
|
| D13-X000 | Search requested |
St.27 status event code: A-1-2-D10-D13-srh-X000 |
|
| D14-X000 | Search report completed |
St.27 status event code: A-1-2-D10-D14-srh-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 |
|
| 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 |
|
| P22-X000 | Classification modified |
St.27 status event code: A-4-4-P10-P22-nap-X000 |