KR20230067027A - 고정확도 딥러닝 연산 장치 - Google Patents

고정확도 딥러닝 연산 장치 Download PDF

Info

Publication number
KR20230067027A
KR20230067027A KR1020210152666A KR20210152666A KR20230067027A KR 20230067027 A KR20230067027 A KR 20230067027A KR 1020210152666 A KR1020210152666 A KR 1020210152666A KR 20210152666 A KR20210152666 A KR 20210152666A KR 20230067027 A KR20230067027 A KR 20230067027A
Authority
KR
South Korea
Prior art keywords
data
exponent
converter
buffer
adder tree
Prior art date
Application number
KR1020210152666A
Other languages
English (en)
Inventor
이상설
박종희
장성준
성민용
Original Assignee
한국전자기술연구원
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 한국전자기술연구원 filed Critical 한국전자기술연구원
Priority to PCT/KR2021/016178 priority Critical patent/WO2023085442A1/ko
Priority to KR1020210152666A priority patent/KR20230067027A/ko
Publication of KR20230067027A publication Critical patent/KR20230067027A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/01Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/01Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
    • G06F5/015Methods 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/02Comparing digital values
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/491Computations with decimal numbers radix 12 or 20.
    • G06F7/498Computations with decimal numbers radix 12 or 20. using counter-type accumulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/50Adding; Subtracting
    • G06F7/501Half or full adders, i.e. basic adder cells for one denomination
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/50Adding; Subtracting
    • G06F7/505Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
    • G06F7/509Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination for multiple operands, e.g. digital integrators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/53Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Optimization (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Neurology (AREA)
  • Complex Calculations (AREA)

Abstract

고정확도 딥러닝 연산 장치가 제공된다. 본 발명의 실시예에 따른 Adder Tree 연산 장치는, 제1 데이터를 입력받는 제1 레지스터, 제2 데이터를 입력받는 제2 레지스터, 제1 데이터의 exponent와 제2 데이터의 exponent를 비교하는 비교기, 비교기의 비교 결과를 기초로 제1 데이터와 제2 데이터 중 하나는 변환기로 전달하고 다른 하나는 버퍼로 전달하는 스위치, 전달되는 데이터의 exponent를 변환하는 변환기, 전달되는 데이터를 저장하였다가 그대로 출력하는 버퍼 및 변환기에서 출력되는 데이터와 버퍼에서 출력되는 데이터를 덧셈하는 덧셈기를 포함한다. 이에 의해, Adder Tree 연산에서 덧셈할 두 데이터의 exponent를 더 작은 exponent로 변환하여 덧셈함으로써, 연산에 필요한 메모리를 획기적으로 줄여, 리소스에 제한이 있는 디바이스의 딥너링 가속장치에서도 문제 없는 Adder Tree 연산을 가능하게 한다.

Description

고정확도 딥러닝 연산 장치{High-accuracy deep learning processing device}
본 발명은 딥러닝 가속장치에 관한 것으로, 더욱 상세하게는 딥러닝 학습 및 추론을 위한 연산을 수행함에 있어 연산 경량화를 위한 방법 및 하드웨어 구조에 관한 것이다.
딥러닝 하드웨어 가속장치는 입력 데이터(input feature map), 입력 컨볼루션 파라미터(weight)를 입력받아 딥러닝 연산을 빠르게 수행하는 것을 목표로 하고 있다.
딥러닝 연산 중 Adder Tree 연산은 입력되는 두 데이터들을 덧셈하는 것을 계층적으로 반복해야 하므로 많은 덧셈 연산을 요하고 있다. 하드웨어 로직을 이용한 덧셈은 곱셈 보다 더 많은 리소스를 요구하고 있는데, 이는 덧셈할 데이터들의 exponent가 다른 경우에 더욱 그러하다.
메모리와 GPU가 충분한 서버의 경우에는 위 경우에도 아무런 문제가 되지 않는다. 하지만 모바일 디바이스와 같이 리소스에 제한이 있는 디바이스에 적용할 딥너링 가속장치의 경우에는 위 경우 연산이 불가능하거나 가능하더라도 많은 연산 시간과 전력을 요한다는 문제가 있다.
본 발명은 상기와 같은 문제점을 해결하기 위하여 안출된 것으로서, 본 발명의 목적은, 리소스에 제한이 있는 디바이스의 딥너링 가속장치에서 Adder Tree 연산을 리소스 부족 문제 없이 빠르게 수행하는 방법을 제공함에 있다.
상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른, Adder Tree 연산 장치는, 제1 데이터를 입력받는 제1 레지스터; 제2 데이터를 입력받는 제2 레지스터; 제1 데이터의 exponent와 제2 데이터의 exponent를 비교하는 비교기; 비교기의 비교 결과를 기초로, 제1 데이터와 제2 데이터 중 하나는 변환기로 전달하고, 다른 하나는 버퍼로 전달하는 스위치; 전달되는 데이터의 exponent를 변환하는 변환기; 전달되는 데이터를 저장하였다가 그대로 출력하는 버퍼; 및 변환기에서 출력되는 데이터와 버퍼에서 출력되는 데이터를 덧셈하는 덧셈기;를 포함한다.
스위치는, exponent가 큰 데이터를 변환기로 전달하고, exponent가 작은 데이터를 버퍼로 전달할 수 있다.
변환기는, 전달되는 데이터의 exponent를 exponent가 작은 데이터의 exponent로 변환할 수 있다.
변환기는, 전달되는 데이터의 exponent 비트를 시프트하여 exponent가 작은 데이터의 exponent로 변환할 수 있다.
제1 데이터와 제2 데이터가 포함된 데이터들은, 최대 값과 최소 값의 분포가 일정 범위 내일 수 있다.
덧셈기는, 비교기에서 제1 데이터의 exponent와 제2 데이터의 exponent가 동일한 것으로 판단되면, 제1 데이터를 변환기로 전달하고, 제2 데이터를 버퍼로 전달할 수 있다.
그리고, 변환기는, 비교기에서 제1 데이터의 exponent와 제2 데이터의 exponent가 동일한 것으로 판단되면, 제1 데이터를 저장하였다가 그대로 출력할 수 있다.
한편, 본 발명의 다른 실시예에 따른, Adder Tree 연산 방법은, 제1 데이터와 제2 데이터를 입력받는 단계; 제1 데이터의 exponent와 제2 데이터의 exponent를 비교하는 단계; 비교 결과를 기초로, 제1 데이터와 제2 데이터 중 하나를 변환하는 단계; 변환된 데이터와 다른 데이터를 덧셈하는 단계;를 포함한다.
이상 설명한 바와 같이, 본 발명의 실시예들에 따르면, Adder Tree 연산에서 덧셈할 두 데이터의 exponent를 더 작은 exponent로 변환하여 덧셈함으로써, 연산에 필요한 메모리를 획기적으로 줄여, 리소스에 제한이 있는 디바이스의 딥너링 가속장치에서도 문제 없는 Adder Tree 연산을 가능하게 한다.
도 1은 본 발명이 적용 가능한 딥러닝 가속장치를 도시한 도면,
도 2은, 도 1에 도시된 연산기의 상세 구조를 도시한 블럭도,
도 3은 데이터 표현형을 예시한 도면,
도 4는, 도 2에 도시된 연산기의 Adder Tree 모듈의 상세 구조를 도시한 도면, 그리고,
도 5는, 도 4에 도시된 CHK/BS 모듈의 상세 구조를 도시한 도면이다.
이하에서는 도면을 참조하여 본 발명을 보다 상세하게 설명한다.
도 1은 본 발명이 적용 가능한 딥러닝 가속장치를 도시한 도면이다. 도시된 딥러닝 가속장치는, RDMA(Read Direct Memory Access)(110), 입력 버퍼(120), 연산기(130), 출력 버퍼(140), WDMA(Write Direct Memory Access)(150)를 포함하여 구성된다.
딥러닝 가속장치는 외부 메모리(10)로부터 데이터를 입력받아 딥러닝 연산을 수행하고, 연산 결과를 외부 메모리(10)로 출력하여 저장한다.
외부 메모리(10)로부터 입력받는 데이터는 IFmap(Input Feature map : 입력 영상의 특징 데이터)와 Weight(딥러닝 모델의 컨볼루션 파라미터)이고, 외부 메모리(10)로 출력하는 딥러닝 연산 결과는 OFmap(Outut Feature map)이다.
따라서 RDMA(110)는 외부 메모리(10)에 저장된 IFmap과 Weight를 읽어들여 입력 버퍼(120)에 저장하고, WDMA(150)는 출력 버퍼(140)에 저장된 OFmap을 읽어들여 외부 메모리(10)에 저장한다.
연산기(130)는 입력 버퍼(120)에 저장된 데이터로 딥러닝 연산을 수행한다. 도 2은, 도 1에 도시된 연산기(130)의 상세 구조를 도시한 블럭도이다.
도시된 바와 같이, 연산기(130)는 딥러닝 연산을 위해 필요한 컨볼루션 연산 모듈(131), Adder Tree 모듈(132), 배치 정규화(Batch Normalization) 모듈(133), Add Bias 모듈(134), Activation 모듈(135) 및 Maxpool 모듈(136)을 포함한다.
저전력의 동작을 위하여 외부 메모리(10)와의 데이터 송수신을 줄여 주는 방향이 최고의 효과를 얻을 수 있어, 성능 열화가 적은 선에서 양자화(Quantization)를 최대한 많이 적용된 데이터를 이용한다. 양자화가 적용되어 Floating point 연산이 Fixed point 연산으로 변환되면 곱셈/덧셈에서의 연산이 줄어들 수 있다.
한편, 위에서 설명한 바와 같이 다수의 연산을 수행하는 구조에서는 IFmap, Weight가 외부 메모리(10)로부터의 데이터 입력이 필요로 하며, OFmap의 경우에는 외부 메모리(10)로의 저장을 필요로 하는데, 충분한 데이터의 입출력을 위한 입출력 Bandwidth가 매우 중요하다. 데이터가 부족할 경우 연산기(130)의 리소스가 충분하더라도 연산이 불가능하여 쉬는 시간이 많아져 연산 능력 대비 연산 시간이 늘어나게 된다.
이를 해결하기 위해, 대부분 적은 비트수로 데이터를 표현하여 연산하는 하드웨어 장치를 주로 이용하게 된다. 구체적으로, 도 3에 도시된 바와 같이 Fixed point(채널별/레이어별 common exponent 포함)를 사용하되, 채널 혹은 레이어 단위로 exponent를 중앙 제어기에서 관장하여, 실제 곱셈 연산에서는 단순 Fixed point 곱셈 연산만을 이용하게 처리하게 한다.
하지만 덧셈 연산에서는 두 개의 다른 exponent를 동일하게 맞춰서 연산해야 하므로, 연산기 자체의 비트수가 exponent가 나타내닌 비트까지 표현할 수 있어야 하기 때문에, 덧셈 하드웨어 크기가 상당히 커지게 된다. 아울러 비트를 맞추기 위해서는 시프트 연산을 이용하여 비트 extention을 수행해야 하는데 이를 위한 하드웨어 크기도 상당히 커지게 된다.
도 4는, 도 2에 도시된 연산기(130)의 구성들 중 Adder Tree 모듈(132)의 상세 구조를 도시한 도면이다. 도시된 바와 같이, Adder Tree 모듈(132)은 많은 덧셈 연산을 수행하여야 한다.
구체적으로, Adder Tree의 레이어 1에서는 데이터 #0과 데이터 #32의 덧셈 연산, 데이터 #16과 데이터 #48의 덧셈 연산, 데이터 #8과 데이터 #40의 덧셈 연산, ..., 데이터 #28과 데이터 #60의 덧셈 연산이 수행된다.
그리고, Adder Tree의 레이어 2에서는 레이어 1에서의 1번째 덧셈 연산 결과와 2번째 덧셈 연산 결과의 덧셈 연산, 레이어 1에서의 3번째 덧셈 연산 결과와 4번째 덧셈 연산 결과의 덧셈 연산, ..., 레이어 1에서의 7번째 덧셈 연산 결과와 8번째 덧셈 연산 결과의 덧셈 연산, 레이어 2에서의 1번째 덧셈 연산 결과와 2번째 덧셈 연산 결과의 덧셈 연산, 레이어 2에서의 3번째 덧셈 연산 결과와 4번째 덧셈 연산 결과의 덧셈 연산, 레이어 2에서의 5번째 덧셈 연산 결과와 6번째 덧셈 연산 결과의 덧셈 연산이 수행된다.
적은 리소스로 덧셈 연산이 가능하도록 Adder Tree 모듈(132)의 각 노드들에는 뎃셈기(220)외에 CHK/BS 모듈(210)을 더 포함한다.
CHK/BS 모듈(210)은 뎃셈 연산할 두 데이터들의 exponent를 확인한 후 exponent가 큰 데이터의 exponent를 작은 데이터의 exponent로 변환하여 뎃셈기(220)에 인가한다.
도 5는 CHK/BS 모듈(210)의 상세 구조를 도시한 도면이다. Adder Tree 모듈(132)에 구비되는 CHK/BS 모듈(210)은 동일하게 구현 가능하므로, 도 5에는 하나의 CHK/BS 모듈(210)에 대한 구조만을 도시하였다.
CHK/BS 모듈(210)는 도시된 바와 같이, 레지스터 A(211), 레지스터 B(212), exponent 비교기(213), 스위치(214), 변환기(215) 및 버퍼(216)를 포함하여 구성된다.
레지스터 A(211)와 레지스터 B(212)는 데이터 A와 데이터 B를 각각 입력받아 저장한다. exponent 비교기(213)는 레지스터 A(211)에 저장된 데이터 A의 exponent와 레지스터 B(212)에 저장된 데이터 B의 exponent를 비교한다.
exponent 비교기(213)의 비교 결과를 기초로, 스위치(214)는 데이터 A와 데이터 B 중 하나는 변환기(215)로 전달하고, 다른 하나는 버퍼(216)로 전달한다. 구체적으로, 스위치(214)는 exponent가 큰 데이터를 변환기(215)로 전달하고, exponent가 작은 데이터를 버퍼(216)로 전달하는 것
만약, 데이터 A의 exponent가 더 크다면 데이터 A는 변환기(215)로 전달되고, 데이터 B는 버퍼(216)로 전달된다. 반면, 데이터 B의 exponent가 더 크다면 데이터 B는 변환기(215)로 전달되고, 데이터 A가 버퍼(216)로 전달된다.
변환기(215)는 스위치(214)를 통해 전달되는 데이터의 exponent와 mantissa를 변환한다.
구체적으로, 변환기(215)는 전달되는 데이터의 exponent를 exponent가 작은 상대 데이터의 exponent로 변환한다. 이는, 데이터의 exponent 비트를 시프트하여 exponent가 작은 데이터의 exponent로 변환할 수 있다. 예를 들어, 큰 exponent가 "1110"이고 작은 exponent가 "1101"이면, "1110"의 2번째 비트를 우측으로 시프트하여 "1101"로 변환하는 것이다.
다음 변환기(215)는 exponent의 변환에 따른 mantissa를 변환을 수행하여, 데이터 값이 변화가 없도록 한다.
버퍼(216)는 전달되는 데이터를 저장하였다가 그대로 출력한다.
이에 의해, 덧셈기(220)에서는 변환기(215)에서 출력되는 변환된 데이터와 버퍼(216)에서 출력되는 변환되지 않은 데이터가 덧셈 연산된다.
한편, 데이터 A의 exponent와 데이터 B의 exponent가 동일한 것으로 판단되면, 스위치(214)는 데이터 A를 변환기(215)로 전달하고, 데이터 B를 버퍼(216)로 전달한다. 이 경우, 변환기(215)는 데이터 A를 변환하지 않고 저장하였다가 그대로 출력한다.
통상적으로 딥러닝 모델의 학습 데이터들은 최대 값과 최소 값의 분포가 유사한 경향을 보인다. 즉, 데이터 값들의 차이가 크지 않음을 의미한다. 따라서, common exponent의 값을 전체를 확장하여 덧셈 연산을 수행하는 것이 아니라 common exponent 포인트를 유지한 채 덧셈을 수행하면 덧셈을 위한 연산량을 줄일 수 있다.
또한, Adder tree에서 두 개의 데이터 모두 exponent를 변경하지 않고 작은 exponent를 찾고 해당 값에 하나의 데이터를 맞춰서 덧셈을 진행하면, shiter register 연산량을 기존보다 절반으로 줄일 수 있다. 아울러 연산을 위한 공간을 덜 차지하게 되어 하드웨어 크기를 감소시킬 수 있다. 모든 덧셈 연산을 위해서는 exponent를 변경해야 하는 range가 넓은데 반하여, 유사한 데이터들 간의 연산에서는 통계적으로 min/max variation이 크지 않아 변경 로직도 작은 하드웨어로 설계가 가능하다. 하드웨어 크기의 감소는 칩의 면적이 줄어들 뿐만 아니라 저전력 동작이 가능하여, 가격/성능 면에서도 큰 이점이 있다.
지금까지, 리소스에 제한이 있는 디바이스의 딥너링 가속장치에서 Adder Tree 연산을 문제 없이 빠르게 수행하는 방법에 대해 바람직한 실시예를 들어 상세히 설명하였다.
또한, 이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.
130 : 연산기
132 : Adder Tree 모듈
210 : CHK/BS 모듈
211 : 레지스터 A
212 : 레지스터 B
213 : exponent 비교기
214 : 스위치
215 : 변환기
216 : 버퍼
220 : 뎃셈기

Claims (8)

  1. 제1 데이터를 입력받는 제1 레지스터;
    제2 데이터를 입력받는 제2 레지스터;
    제1 데이터의 exponent와 제2 데이터의 exponent를 비교하는 비교기;
    비교기의 비교 결과를 기초로, 제1 데이터와 제2 데이터 중 하나는 변환기로 전달하고, 다른 하나는 버퍼로 전달하는 스위치;
    전달되는 데이터의 exponent를 변환하는 변환기;
    전달되는 데이터를 저장하였다가 그대로 출력하는 버퍼; 및
    변환기에서 출력되는 데이터와 버퍼에서 출력되는 데이터를 덧셈하는 덧셈기;를 포함하는 것을 특징으로 하는 Adder Tree 연산 장치.
  2. 청구항 1에 있어서,
    스위치는,
    exponent가 큰 데이터를 변환기로 전달하고, exponent가 작은 데이터를 버퍼로 전달하는 것을 특징으로 하는 Adder Tree 연산 장치.
  3. 청구항 2에 있어서,
    변환기는,
    전달되는 데이터의 exponent를 exponent가 작은 데이터의 exponent로 변환하는 것을 특징으로 하는 Adder Tree 연산 장치.
  4. 청구항 3에 있어서,
    변환기는,
    전달되는 데이터의 exponent 비트를 시프트하여 exponent가 작은 데이터의 exponent로 변환하는 것을 특징으로 하는 Adder Tree 연산 장치.
  5. 청구항 1에 있어서,
    제1 데이터와 제2 데이터가 포함된 데이터들은,
    최대 값과 최소 값의 분포가 일정 범위 내인 것을 특징으로 하는 Adder Tree 연산 장치.
  6. 청구항 1에 있어서,
    덧셈기는,
    비교기에서 제1 데이터의 exponent와 제2 데이터의 exponent가 동일한 것으로 판단되면, 제1 데이터를 변환기로 전달하고, 제2 데이터를 버퍼로 전달하는 것을 특징으로 하는 Adder Tree 연산 장치.
  7. 청구항 6에 있어서,
    변환기는,
    비교기에서 제1 데이터의 exponent와 제2 데이터의 exponent가 동일한 것으로 판단되면, 제1 데이터를 저장하였다가 그대로 출력하는 것을 특징으로 하는 Adder Tree 연산 장치.
  8. 제1 데이터와 제2 데이터를 입력받는 단계;
    제1 데이터의 exponent와 제2 데이터의 exponent를 비교하는 단계;
    비교 결과를 기초로, 제1 데이터와 제2 데이터 중 하나를 변환하는 단계;
    변환된 데이터와 다른 데이터를 덧셈하는 단계;를 포함하는 것을 특징으로 하는 Adder Tree 연산 방법.
KR1020210152666A 2021-11-09 2021-11-09 고정확도 딥러닝 연산 장치 KR20230067027A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/KR2021/016178 WO2023085442A1 (ko) 2021-11-09 2021-11-09 고정확도 딥러닝 연산 장치
KR1020210152666A KR20230067027A (ko) 2021-11-09 2021-11-09 고정확도 딥러닝 연산 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210152666A KR20230067027A (ko) 2021-11-09 2021-11-09 고정확도 딥러닝 연산 장치

Publications (1)

Publication Number Publication Date
KR20230067027A true KR20230067027A (ko) 2023-05-16

Family

ID=86335935

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210152666A KR20230067027A (ko) 2021-11-09 2021-11-09 고정확도 딥러닝 연산 장치

Country Status (2)

Country Link
KR (1) KR20230067027A (ko)
WO (1) WO2023085442A1 (ko)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11880760B2 (en) * 2019-05-01 2024-01-23 Samsung Electronics Co., Ltd. Mixed-precision NPU tile with depth-wise convolution
KR20210037569A (ko) * 2019-09-27 2021-04-06 삼성전자주식회사 컨볼루션 신경망 가속기 아키텍처를 위한 전력 효율적인 하이브리드 트래버설 장치 및 방법
CN112862091B (zh) * 2021-01-26 2022-09-27 合肥工业大学 一种基于快速卷积的资源复用型神经网络硬件加速电路

Also Published As

Publication number Publication date
WO2023085442A1 (ko) 2023-05-19

Similar Documents

Publication Publication Date Title
KR102258566B1 (ko) 프로세싱 엘리먼트, 이의 동작 방법, 및 이를 포함하는 가속기
CN109063825B (zh) 卷积神经网络加速装置
US20200218509A1 (en) Multiplication Circuit, System on Chip, and Electronic Device
CN114626516A (zh) 一种基于对数块浮点量化的神经网络加速系统
JP2020027611A (ja) ニューラルネットワークのためのデータ処理方法および装置
US11586438B2 (en) Multiplication and accumulation (MAC) operator
CN110363291B (zh) 神经网络的运算方法、装置、计算机设备和存储介质
KR20230067027A (ko) 고정확도 딥러닝 연산 장치
US20230244442A1 (en) Normalizer and multiplication and accumulation (mac) operator including the normalizer
CN116932202B (zh) 一种访存方法、处理器、电子设备及可读存储介质
Zhu et al. An optimized logarithmic converter with equal distribution of relative errors
WO2023029464A1 (zh) 数据处理装置、方法、芯片、计算机设备及存储介质
US11210322B2 (en) Method and apparatus for reducing storage space of parameter table, device, and computer-readable storage medium
US20220229633A1 (en) Multiplication and accumulation(mac) operator and processing-in-memory (pim) device including the mac operator
Ayhan et al. A power efficient system design methodology employing approximate arithmetic units
KR102635978B1 (ko) 생성형 거대 언어 모델의 연산 가속을 위해 메모리대역폭 사용을 극대화하기 위한 혼합정밀도 mac 트리 구조
CN111310909A (zh) 一种浮点数转换电路
US11327764B2 (en) Information processing system and method for controlling information processing system
CN117114055B (zh) 面向工业应用场景的fpga二值神经网络加速方法
KR102667790B1 (ko) 뉴럴 네트워크 회로, 에지 디바이스 및 뉴럴 네트워크 연산 방법
CN113709064B (zh) P4交换机及其数据处理方法
US20220342637A1 (en) Multiple operation circuits, multiplication/accumulation operators having the multiple operation circuits, and processing-in-memory devices having the multiple operation circuits
CN111639045B (zh) 数据处理方法、装置、介质和设备
US11657324B2 (en) Method, electronic device, and computer program product for processing data
US20230229505A1 (en) Hardware accelerator for performing computations of deep neural network and electronic device including the same