KR102762717B1 - 범용 기계 학습 가속을 위한 혼합 정밀도 벡터 프로세서 시스템 - Google Patents
범용 기계 학습 가속을 위한 혼합 정밀도 벡터 프로세서 시스템 Download PDFInfo
- Publication number
- KR102762717B1 KR102762717B1 KR1020230046153A KR20230046153A KR102762717B1 KR 102762717 B1 KR102762717 B1 KR 102762717B1 KR 1020230046153 A KR1020230046153 A KR 1020230046153A KR 20230046153 A KR20230046153 A KR 20230046153A KR 102762717 B1 KR102762717 B1 KR 102762717B1
- Authority
- KR
- South Korea
- Prior art keywords
- bit
- operand
- vector
- mixed
- partial
- 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
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
- 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; CALCULATING OR 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
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 Analysis (AREA)
- Computing Systems (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Neurology (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Complex Calculations (AREA)
Abstract
Description
도 2는 본 발명의 실시예에 따른 혼합 정밀도 벡터 프로세서를 설명하기 위한 도면이다.
도 3은 본 발명의 실시예에 따른 혼합 정밀도 벡터 프로세서에 포함된 벡터 레인을 설명하기 위한 도면이다.
도 4는 본 발명의 실시예에 따른 혼합 정밀도 벡터 프로세서에 포함된 벡터 레인의 동작을 설명하기 위한 도면이다.
도 5는 본 발명의 실시예에 따른 혼합 정밀도 벡터 프로세서에 포함된 룩업 테이블 연산기의 동작을 설명하기 위한 도면이다.
도 6은 본 발명의 실시예에 따른 룩업 테이블 연산기의 동작을 설명하기 위한 그래프이다.
도 7은 본 발명의 실시예에 따른 혼합 정밀도 벡터 프로세서를 포함하는 범용 기계 학습 가속 장치로 입력되는 CISC 타입의 명령어와 디코딩을 통해 생성된 RISC 타입의 명령어의 예시이다.
도 8은 본 발명의 실시예에 따른 혼합 정밀도 벡터 프로세서가 호스트 컨트롤러로부터 제공된 CISC 타입의 명령어를 디코딩하여 RISC 타입의 명령어를 생성하는 동작을 설명하기 위한 도면이다.
110: 인터페이스 120: 호스트 컨트롤러
130: 메모리 컨트롤러 140: DMA 장치
200: 혼합 정밀도 벡터 프로세서 220: 벡터 레인 컨트롤러
210: 특수 연산 혼합 정밀도 벡터 프로세서
260: DMA 장치 버퍼 300: 벡터 레인
Claims (18)
- 적어도 2개 이상의 정밀도를 갖는 벡터 연산을 수행하는 복수의 벡터 레인; 및
상기 복수의 벡터 레인을 제어하는 벡터 레인 컨트롤러를 포함하되,
상기 복수의 벡터 레인 각각은,
제1 연산 모드에서, 제3 비트 길이의 제1 피연산자에 포함된 제1 비트 길이의 제1 부분 비트 피연산자와 제2 부분 비트 피연산자, 상기 제3 비트 길이의 제2 피연산자에 포함된 상기 제1 비트 길이의 제3 부분 비트 피연산자와 제4 부분 비트 피연산자에 대해,
부호 확장된 상기 제1 부분 비트 피연산자에 상기 제3 부분 비트 피연산자를 곱셈 연산한 결과로부터 제2 비트 길이의 제1 부분 비트 곱셈 결과값을 산출하고,
상기 제2 부분 비트 피연산자에 0으로 하위 비트를 추가하여 상기 제4 부분 비트 피연산자를 곱셈 연산한 결과로부터 상기 제2 비트 길이의 제2 부분 비트 곱셈 결과값을 산출하고,
상기 제1 부분 비트 곱셈 결과값에 제1 부분 비트 누적 연산값을 덧셈 연산하여 제1 부분 비트 결과값을 산출하고, 상기 제2 부분 비트 곱셈 결과값에 제2 부분 비트 누적 연산값을 덧셈 연산하여 제2 부분 비트 결과값을 산출하고,
제2 연산 모드에서,
상기 제1 피연산자에 상기 제3 부분 비트 피연산자를 곱셈 연산한 결과 및 상기 제1 피연산자에 제4 부분 비트 피연산자를 곱셈 연산한 결과에 기반하여 제4 비트 길이의 곱셈 결과값을 산출하는,
혼합 정밀도 벡터 프로세서. - 삭제
- 제 1항에 있어서,
상기 제1 부분 비트 곱셈 결과값은 상기 부호 확장된 제1 부분 비트 피연산자와 상기 제3 부분 비트 피연산자를 곱셈 연산한 제5 비트 길이의 결과값을 상기 제2 비트 길이로 절단한 값이고,
상기 제2 부분 비트 곱셈 결과값은 상기 0으로 하위 비트가 추가된 제2 부분 비트 피연산자와 상기 제4 부분 비트 피연산자를 곱셈 연산한 상기 제5 비트 길이의 결과값을 상기 제2 비트 길이로 절단한 값인,
혼합 정밀도 벡터 프로세서. - 제 1항에 있어서,
상기 복수의 벡터 레인 각각은, 상기 제2 연산 모드에서,
상기 제1 피연산자에 대하여 상기 제2 피연산자의 상위 비트로 곱셈 연산을 수행한 제5 비트 길이의 결과값을 시프트 연산한 상위 비트 결과값과,
상기 제1 피연산자에 대하여 상기 제2 피연산자의 하위 비트로 곱셈 연산을 수행한 결과값인 상기 제5 비트 길이의 하위 비트 결과값을 덧셈 연산하여 제4 비트 길이의 결과값을 산출하는,
혼합 정밀도 벡터 프로세서. - 제 1항에 있어서,
상기 복수의 벡터 레인 각각은,
서로 다른 크기의 범위를 갖는 제1 보간 영역 및 제2 보간 영역에 기초하여, 룩업 테이블에 저장된 비선형 함수의 선형 근사에 의해 미리 계산된 기울기 및 절편을 탐색하는 룩업 테이블 연산기를 더 포함하는,
혼합 정밀도 벡터 프로세서. - 제 5항에 있어서,
상기 제1 보간 영역 및 제2 보간 영역의 범위의 크기는 상기 비선형 함수의 복잡도에 기초하여 설정되는,
혼합 정밀도 벡터 프로세서. - 제 1항에 있어서,
상기 벡터 레인 컨트롤러는,
입력받은 CISC(Complex Instruction Set Computer) 타입 명령어를 디코딩하여 RISC(Reduced Instruction Set Computer) 타입 명령어 시퀀스를 생성하는 마이크로코드 생성기를 포함하는,
혼합 정밀도 벡터 프로세서. - 제 7항에 있어서,
상기 벡터 레인 컨트롤러는, 연산에 필요한 벡터 레인의 대기 시간 및 인터페이스를 통한 데이터 액세스 횟수를 최적화하여 상기 RISC 타입 명령어 시퀀스를 생성하는,
혼합 정밀도 벡터 프로세서. - 제1 그룹의 복수의 혼합 정밀도 벡터 프로세서를 포함하는 제1 로직 영역;
상기 제1 로직 영역과 분리되고, 제2 그룹의 복수의 혼합 정밀도 벡터 프로세서를 포함하는 제2 로직 영역; 및
상기 제1 로직 영역 및 제2 로직 영역에 의해 액세스되는 메모리를 포함하고,
상기 복수의 혼합 정밀도 벡터 프로세서 각각은,
적어도 2 이상의 정밀도를 갖는 벡터 연산을 수행하는 복수의 벡터 레인; 및
상기 복수의 벡터 레인을 제어하는 벡터 레인 컨트롤러를 포함하되,
상기 복수의 벡터 레인 각각은,
제1 연산 모드에서, 제3 비트 길이의 제1 피연산자에 포함된 제1 비트 길이의 제1 부분 비트 피연산자와 제2 부분 비트 피연산자, 상기 제3 비트 길이의 제2 피연산자에 포함된 상기 제1 비트 길이의 제3 부분 비트 피연산자와 제4 부분 비트 피연산자에 대해,
부호 확장된 상기 제1 부분 비트 피연산자에 상기 제3 부분 비트 피연산자를 곱셈 연산한 결과로부터 제2 비트 길이의 제1 부분 비트 곱셈 결과값을 산출하고,
상기 제2 부분 비트 피연산자에 0으로 하위 비트를 추가하여 상기 제4 부분 비트 피연산자를 곱셈 연산한 결과로부터 상기 제2 비트 길이의 제2 부분 비트 곱셈 결과값을 산출하고,
상기 제1 부분 비트 곱셈 결과값에 제1 부분 비트 누적 연산값을 덧셈 연산하여 제1 부분 비트 결과값을 산출하고, 상기 제2 부분 비트 곱셈 결과값에 제2 부분 비트 누적 연산값을 덧셈 연산하여 제2 부분 비트 결과값을 산출하고,
제2 연산 모드에서,
상기 제1 피연산자에 상기 제3 부분 비트 피연산자를 곱셈 연산한 결과 및 상기 제1 피연산자에 제4 부분 비트 피연산자를 곱셈 연산한 결과에 기반하여 제4 비트 길이의 곱셈 결과값을 산출하는,
혼합 정밀도 벡터 프로세서를 포함하는 범용 기계 학습 가속 장치. - 삭제
- 제 9항에 있어서,
상기 제1 부분 비트 곱셈 결과값은 상기 부호 확장된 제1 부분 비트 피연산자와 상기 제3 부분 비트 피연산자를 곱셈 연산한 제5 비트 길이의 결과값을 상기 제2 비트 길이로 절단한 값이고,
상기 제2 부분 비트 곱셈 결과값은 상기 0으로 하위 비트가 추가된 제2 부분 비트 피연산자와 상기 제4 부분 비트 피연산자를 곱셈 연산한 상기 제5 비트 길이의 결과값을 상기 제2 비트 길이로 절단한 값인,
혼합 정밀도 벡터 프로세서를 포함하는 범용 기계 학습 가속 장치. - 제 9항에 있어서,
상기 복수의 벡터 레인 각각은, 상기 제2 연산 모드에서,
상기 제1 피연산자에 대하여 상기 제2 피연산자의 상위 비트로 곱셈 연산을 수행한 제5 비트 길이의 결과값을 시프트 연산한 상위 비트 결과값과,
상기 제1 피연산자에 대하여 상기 제2 피연산자의 하위 비트로 곱셈 연산을 수행한 결과값인 상기 제5 비트 길이의 하위 비트 결과값을 덧셈 연산하여 상기 제4 비트 길이의 결과값을 산출하는,
혼합 정밀도 벡터 프로세서를 포함하는 범용 기계 학습 가속 장치. - 제 9항에 있어서,
상기 제1 로직 영역과 제2 로직 영역 각각은,
비선형 활성 함수 연산을 수행하는 특수 연산 벡터 프로세서를 더 포함하고,
상기 특수 연산 벡터 프로세서는,
서로 다른 크기의 범위를 갖는 제1 보간 영역 및 제2 보간 영역에 기초하여, 룩업 테이블에 저장된 비선형 함수의 선형 근사에 의해 미리 계산된 기울기 및 절편을 탐색하는 룩업 테이블 연산기를 포함하는,
혼합 정밀도 벡터 프로세서를 포함하는 범용 기계 학습 가속 장치. - 제 13항에 있어서,
상기 제1 보간 영역 및 제2 보간 영역의 범위의 크기는 상기 비선형 함수의 복잡도에 기초하여 설정되는,
혼합 정밀도 벡터 프로세서를 포함하는 범용 기계 학습 가속 장치. - 제 9항에 있어서,
상기 벡터 레인 컨트롤러는,
입력받은 CISC(Complex Instruction Set Computer) 타입 명령어를 디코딩하여 RISC(Reduced Instruction Set Computer) 타입 명령어 시퀀스를 생성하는 마이크로코드 생성기를 포함하는,
혼합 정밀도 벡터 프로세서를 포함하는 범용 기계 학습 가속 장치. - 제 15항에 있어서,
상기 벡터 레인 컨트롤러는, 연산에 필요한 벡터 레인의 대기 시간 및 인터페이스를 통한 데이터 액세스 횟수를 최적화하여 상기 RISC 타입 명령어 시퀀스를 생성하는,
혼합 정밀도 벡터 프로세서를 포함하는 범용 기계 학습 가속 장치. - 제 9항에 있어서,
상기 제1 로직 영역과 상기 제2 로직 영역은 서로 다른 다이(die), 칩(chip), 패키지 중 어느 하나에 각각 배치되는,
혼합 정밀도 벡터 프로세서를 포함하는 범용 기계 학습 가속 장치. - 제 17항에 있어서,
상기 제1 그룹의 복수의 혼합 정밀도 벡터 프로세서의 개수와 상기 제2 그룹의 복수의 혼합 정밀도 벡터 프로세서의 개수는 서로 다른,
혼합 정밀도 벡터 프로세서를 포함하는 범용 기계 학습 가속 장치.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020230046153A KR102762717B1 (ko) | 2023-04-07 | 2023-04-07 | 범용 기계 학습 가속을 위한 혼합 정밀도 벡터 프로세서 시스템 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020230046153A KR102762717B1 (ko) | 2023-04-07 | 2023-04-07 | 범용 기계 학습 가속을 위한 혼합 정밀도 벡터 프로세서 시스템 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20240150181A KR20240150181A (ko) | 2024-10-15 |
KR102762717B1 true KR102762717B1 (ko) | 2025-02-07 |
Family
ID=93115005
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020230046153A Active KR102762717B1 (ko) | 2023-04-07 | 2023-04-07 | 범용 기계 학습 가속을 위한 혼합 정밀도 벡터 프로세서 시스템 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102762717B1 (ko) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100343530B1 (ko) * | 1992-03-31 | 2002-11-27 | 트랜스메타 코포레이션 | 씨아이에스씨-알아이에스씨명령어번역정렬및디코딩 |
US20030065699A1 (en) * | 2001-10-01 | 2003-04-03 | Koninklijke Philips Electronics N.V. | Split multiplier for efficient mixed-precision DSP |
US20050027773A1 (en) | 2003-07-31 | 2005-02-03 | Machnicki Erik P. | Method and system for performing parallel integer multiply accumulate operations on packed data |
JP2022548046A (ja) | 2019-09-10 | 2022-11-16 | コーナミ,インコーポレ-テッド | 再構成可能プロセッサ回路アーキテクチャ |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8943114B2 (en) * | 2011-08-17 | 2015-01-27 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Method for implementing 32 bit complex multiplication by using 16-bit complex multipliers |
-
2023
- 2023-04-07 KR KR1020230046153A patent/KR102762717B1/ko active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100343530B1 (ko) * | 1992-03-31 | 2002-11-27 | 트랜스메타 코포레이션 | 씨아이에스씨-알아이에스씨명령어번역정렬및디코딩 |
US20030065699A1 (en) * | 2001-10-01 | 2003-04-03 | Koninklijke Philips Electronics N.V. | Split multiplier for efficient mixed-precision DSP |
US20050027773A1 (en) | 2003-07-31 | 2005-02-03 | Machnicki Erik P. | Method and system for performing parallel integer multiply accumulate operations on packed data |
JP2022548046A (ja) | 2019-09-10 | 2022-11-16 | コーナミ,インコーポレ-テッド | 再構成可能プロセッサ回路アーキテクチャ |
Non-Patent Citations (1)
Title |
---|
B. Moons 등. "ENVISION: A 0.26-to-10TOPS/W Subword-Parallel Dynamic-Voltage-Accuracy-Frequency-Scalable Convolutional Neural Network Processor in 28nm FDSOI". 2017 ISSCC* |
Also Published As
Publication number | Publication date |
---|---|
KR20240150181A (ko) | 2024-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Talpes et al. | Compute solution for tesla's full self-driving computer | |
KR102539893B1 (ko) | 다차원 어레이로부터 요소들의 다차원 블록을 프리페치하는 하드웨어 장치들 및 방법들 | |
KR102252137B1 (ko) | 계산 장치 및 방법 | |
US20210216318A1 (en) | Vector Processor Architectures | |
US5440749A (en) | High performance, low cost microprocessor architecture | |
US7447720B2 (en) | Method for finding global extrema of a set of bytes distributed across an array of parallel processing elements | |
US7454451B2 (en) | Method for finding local extrema of a set of values for a parallel processing element | |
WO2018192500A1 (zh) | 处理装置和处理方法 | |
CN110678840A (zh) | 张量寄存器文件 | |
CN110678841A (zh) | 张量处理器指令集架构 | |
Park et al. | AttAcc! Unleashing the power of PIM for batched transformer-based generative model inference | |
US12032925B1 (en) | Latency processing unit | |
JP2021507352A (ja) | メモリ装置及びそれを制御するための方法 | |
CN113270126B (zh) | 流访问存储器设备、系统和方法 | |
CN114691217A (zh) | 用于8位浮点矩阵点积指令的装置、方法和系统 | |
KR20250026790A (ko) | 인공지능 코어, 인공지능 코어 시스템 및 인공지능 코어 시스템의 로드/스토어 방법 | |
Yu et al. | Optimizing FPGA-based convolutional encoder-decoder architecture for semantic segmentation | |
KR102762717B1 (ko) | 범용 기계 학습 가속을 위한 혼합 정밀도 벡터 프로세서 시스템 | |
EP3839736B1 (en) | Unified programming interface for regrained tile execution | |
Kim et al. | A 409.6 GOPS and 204.8 GFLOPS mixed-precision vector processor system for general-purpose machine learning acceleration | |
US20210209462A1 (en) | Method and system for processing a neural network | |
KR20210113762A (ko) | 연산량에 따른 가변 데이터 동작 주파수 기반 인공지능 연산기 시스템 | |
Zheng et al. | Hardware architecture exploration for deep neural networks | |
KR20220049325A (ko) | 가속기 및 이를 포함한 전자 장치 | |
KR20210113761A (ko) | 인공지능 연산기에 의한 내부와 외부 메모리 간의 연산 특성 기반 데이터 전송 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20230407 |
|
PA0201 | Request for examination |
Patent event code: PA02011R01I Patent event date: 20230407 Comment text: Patent Application |
|
PA0302 | Request for accelerated examination |
Patent event date: 20240405 Patent event code: PA03022R01D Comment text: Request for Accelerated Examination |
|
PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20240703 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: 20250122 |
|
PG1601 | Publication of registration |