KR20220091987A - 딥러닝 하드웨어 가속기를 구비하는 bspe 및 bspe 코어 - Google Patents
딥러닝 하드웨어 가속기를 구비하는 bspe 및 bspe 코어 Download PDFInfo
- Publication number
- KR20220091987A KR20220091987A KR1020200183290A KR20200183290A KR20220091987A KR 20220091987 A KR20220091987 A KR 20220091987A KR 1020200183290 A KR1020200183290 A KR 1020200183290A KR 20200183290 A KR20200183290 A KR 20200183290A KR 20220091987 A KR20220091987 A KR 20220091987A
- Authority
- KR
- South Korea
- Prior art keywords
- weight
- bspe
- bit
- bit serial
- processing element
- Prior art date
Links
Images
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
- 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
-
- 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/22—Microcontrol or microprogram arrangements
- G06F9/28—Enhancement of operational speed, e.g. by using several microcontrol devices operating in parallel
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Computational Mathematics (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Neurology (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Mathematical Physics (AREA)
- Complex Calculations (AREA)
Abstract
본 발명은 딥러닝 하드웨어 가속기를 구비하는 BSPE 및 BSPE 코어에 관한 것이다.
본 발명에서는 딥러닝에서 수행되는 다수의 뉴런값 및 가중치의 곱셈을 수행하는 비트 시리얼 프로세싱 엘리먼트(Bit Serial Processing Element)로서, 뉴런값과 가중치 곱셈을 비트 시리얼 곱셈기로 처리하는 것을 특징으로 하는 비트 시리얼 프로세싱 엘리먼트가 개시된다.
본 발명에 따른 딥러닝 하드웨어 가속기를 구비하는 BSPE 코어에 의하면 종래 곱셈 알고리즘인 MBS보다 적은 하드웨어 자원과 전력을 소모하여 컨벌루션 연산을 수행할 수 있게 되었다.
본 발명에서는 딥러닝에서 수행되는 다수의 뉴런값 및 가중치의 곱셈을 수행하는 비트 시리얼 프로세싱 엘리먼트(Bit Serial Processing Element)로서, 뉴런값과 가중치 곱셈을 비트 시리얼 곱셈기로 처리하는 것을 특징으로 하는 비트 시리얼 프로세싱 엘리먼트가 개시된다.
본 발명에 따른 딥러닝 하드웨어 가속기를 구비하는 BSPE 코어에 의하면 종래 곱셈 알고리즘인 MBS보다 적은 하드웨어 자원과 전력을 소모하여 컨벌루션 연산을 수행할 수 있게 되었다.
Description
본 발명은 딥러닝 하드웨어 가속기를 구비하는 BSPE 및 BSPE 코어에 관한 것으로서, 보다 구체적으로는 LOA를 적용하여 MOA의 자원 사용량 및 전력사용량을 줄인 딥러닝 하드웨어 가속기를 구비하는 BSPE 및 BSPE 코어에 관한 것이다.
딥러닝 알고리즘은 수많은 MAC(Multiply-Accumulate operation)으로 이루어져 있다. 이러한 계산 집약적인 알고리즘을 수행하기 위해서는 전용 하드웨어 가속기가 필요하다. 과거에 선행 연구된 TPU, Diannao, Eyeriss는 딥러닝 알고리즘을 효율적으로 연산하기 위해 dot product 연산에 적합한 array 구조를 갖고 있다.
Array는 많은 데이터를 병렬연산하기 위해 여러 개의 PE(Processing Element)로 구성된 PE 그룹들로 구성된다. 하드웨어 가속기의 PE 그룹들로부터 많은 부분 합이 발생하며, 이 값들을 더하기 위해 많은 MOA(Multi-Operand Adders) 가 필요하다.
딥러닝 알고리즘을 연산하는 가속기를 구성하는 로직에서 많게는 69% 이상이 부분 합을 구하고, 그 부분 합을 더하는 MOA로 구성된다. MOA는 모두 전가산기 형태의 Precise Adder로 구성되어 많은 로직을 소모한다. MOA의 크기를 줄이기 위해 입력 데이터를 Full precision 이 아닌 Quantization 하여 작은 데이터 타입을 사용하지만 그럼에도 MOA는 여전히 많은 자원을 차지하는 문제점이 있었다.
Abdelouahab, Kamel, Maxime Pelcat, and Francois Berry. "The chalenge of multi-operand adders in CNNs on FPGAs: how not to solve it!." Proceedings of the 18th International Conference on Embeded Computer Systems: Architectures, Modeling, and Simulation. 2018.
본 발명은 상기 문제점을 해결하고자 하는 것으로서, 딥러닝 알고리즘의 정확도는 유지하면서 자원 사용량 및 전력사용량을 줄인 딥러닝 하드웨어 가속기를 구비하는 BSPE 및 BSPE 코어를 제시하는 것을 목적으로 한다.
본 발명의 상기 목적은 딥러닝에서 수행되는 다수의 뉴런값 및 가중치의 곱셈을 수행하는 비트 시리얼 프로세싱 엘리먼트(Bit Serial Processing Element)로서, 뉴런값과 가중치 곱셈을 비트 시리얼 곱셈기로 처리하는 것을 특징으로 하는 비트 시리얼 프로세싱 엘리먼트에 의해서 달성 가능하다.
바람직하게는 가중치가 '0'인지 여부를 판별하는 제로판별기 및 가중치의 최상위 비트, 제로판별기 및 비트 시리얼 곱셈기로부터 곱셈 결과를 입력받은 후, (1) 가중치가 '0'인 경우에는 '0'값을 출력하고, (2) 가중치가 '0'이 아니면서 가중치의 부호가 양인 경우에는 상기 비트 시리얼 곱셈기로부터 곱셈 결과를 그대로 출력하고, (3) 가중치가 '0'이 아니면서 가중치의 부호가 음인 경우에는 상기 비트 시리얼 곱셈기로부터 곱셈 결과를 1의 보수로 변환한 후 출력하는 1-보수기를 더 포함하는 것이 좋다.
본 발명의 또 다른 목적은 전술한 비트 시리얼 프로세싱 엘리먼트 및 1-보수기의 출력값을 더하는 애드 트리(adder tree)를 포함하고, 애드 트리는 상기 1-보수기의 출력값의 최하위 비트부터 p비트까지는 Or 게이트를 이용하여 근사값으로 더하고 나머지 p비트를 초과하는 상위비트는 전가산기(full adder)를 이용하여 더하는 LOA(Lower-part OR approximation Adder)로 구성되는 것을 특징으로 하는 비트 시리얼 프로세싱 엘리먼트 코어에 의해서 달성 가능하다.
본 발명에 따른 딥러닝 하드웨어 가속기를 구비하는 BSPE 코어에 의하면 종래 곱셈 알고리즘인 MBS보다 적은 하드웨어 자원과 전력을 소모하여 컨벌루션 연산을 수행할 수 있게 되었다.
MBS를 Bit-Serial Multiplier로 대체하고 MOA에 LOA를 적용해서 하드웨어 자원과 전력 사용을 낮췄다. 본 발명에서는 Bit-Serial Multiplier를 적용한 결과 하드웨어 자원과 전력은 각각 39%, 43%가 감소했으며, LOA를 적용한 결과 추가적으로 하드웨어 자원을 4% 감소시킬 수 있게 되었다.
또한, 본 발명에서 제안한 BSPE Core를 이용하여 가변적인 타일링 길이와 column, row 단위의 overlapping computation을 이용해서 데이터 전송 횟수를 최소화했으며, 다음 연산할 tile 데이터를 prefetch해서 latency hiding을 통해 소모하는 사이클을 최소화했다.
도 1은 종래 곱셈기를 대체하는 MBS의 구성도.
도 2는 본 발명에 따른 BSPE 코어의 일부 구성도.
도 3은 BSPE 코어를 구성하는 BSPE 구성 블록도.
도 4는 비트 시리얼 곱셈기의 일 예시도.
도 5는 본 발명에 따른 MOA(PSUM)를 구성하는 LOA의 회로도.
도 6은 데이터 프리패칭과 오버래핑 설명도.
도 7은 가변적 데이터 타일링을 통한 데이터 재사용을 설명하는 설명도.
도 8은 본 발명에 따른 일 실시예의 BSPE 코어 구성도.
도 2는 본 발명에 따른 BSPE 코어의 일부 구성도.
도 3은 BSPE 코어를 구성하는 BSPE 구성 블록도.
도 4는 비트 시리얼 곱셈기의 일 예시도.
도 5는 본 발명에 따른 MOA(PSUM)를 구성하는 LOA의 회로도.
도 6은 데이터 프리패칭과 오버래핑 설명도.
도 7은 가변적 데이터 타일링을 통한 데이터 재사용을 설명하는 설명도.
도 8은 본 발명에 따른 일 실시예의 BSPE 코어 구성도.
본 명세서에서 사용하는 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "갖다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
또한, 본 명세서에서, "~ 상에 또는 ~ 상부에" 라 함은 대상 부분의 위 또는 아래에 위치함을 의미하는 것인데, 이는 반드시 중력 방향을 기준으로 상측에 위치하는 것을 의미하는 것은 아니다. 즉, 본 명세서에서 지칭하는 "~ 상에 또는 ~ 상부에" 라 함은 대상 부분의 위 또는 아래에 위치하는 경우뿐만 아니라 대상 부분의 앞 또는 뒤에 위치하는 경우도 포함한다.
또한, 영역, 판 등의 부분이 다른 부분 "상에 또는 상부에" 있다고 할 때, 이는 다른 부분 "바로 상에 또는 상부에" 접촉하여 있거나 간격을 두고 있는 경우뿐만 아니라 그 중간에 또 다른 부분이 있는 경우도 포함한다.
또한, 본 명세서에서, 일 구성요소가 다른 구성요소와 "연결된다" 거나 "접속된다" 등으로 언급된 때에는, 상기 일 구성요소가 상기 다른 구성요소와 직접 연결되거나 또는 직접 접속될 수도 있지만, 특별히 반대되는 기재가 존재하지 않는 이상, 중간에 또 다른 구성요소를 매개하여 연결되거나 또는 접속될 수도 있다고 이해되어야 할 것이다.
또한, 본 명세서에서, 제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
이하에서는, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예, 장점 및 특징에 대하여 상세히 설명하도록 한다.
1. Deep learning basics
딥러닝 알고리즘의 기본 연산은 수학식 1과 같다.
Activation과 weight는 곱의 합 연산을 통해 더해지며 bias와 더해진다. 더해진 값은 최종 activation function을 통해 다음 layer의 activation 값이 된다. 수학식 1에 제시된 각 용어를 표 1로 설명하였다.
2. MBS(Multiplication by Barrel Shifter)
도 1은 종래 곱셈기를 대체하는 MBS의 구성도이다. 2개의 Bit-Brick을 이용해서 종래 곱셈 알고리즘을 대체한다. 입력으로 들어온 weight는 Booth’s algorithms에 의해 인코딩된다. 인코딩된 weight는 나뉘어 Barrel Shifter로 전달된다. 전달된 weight에 의해 activation이 시프트된다. 이때, 출력값이 음수일 때 2의 보수 연산을 위해 시프트 출력값에 1을 더해줘야 한다. 하지만 MBS는 값이 음수일 때 1bit의 INV1과 INV2를 이용해 부분 합을 따로 구해 최종 부분 합과 더해져 출력값이 된다.
MBS는 가중치 인코딩과 Barrel shifter를 이용해 효율적으로 곱셈 연산을 하지만 한계가 있다. 첫째, 가중치를 인코딩하기 때문에 정해진 precision을 넘은 데이터는 사용할 수 없다. 이로 인해 사용할 수 있는 데이터의 정밀도는 한정된다. 둘째, 인코딩을 할 수 없는 가중치는 근사화를 한다. 정수 형태의 데이터를 사용하는 MBS는 인코딩 테이블에 의해 weight가 ±11 또는 13일 경우 각각 10과 12로 근사화 한다. Weight의 정밀도가 낮을 때는 인코딩을 할 수 없는 데이터는 적어지지만 정밀도가 높아짐에 따라 인코딩을 할 수 없는 데이터의 양이 늘어 근사화하는 비율이 높아진다. 셋째, Barrel Shifter를 사용해 하드웨어 자원을 많이 사용한다. Precision 높아짐에 따라 Barrel Shifter가 추가되어 높은 정밀도를 요구하는 어플리케이션을 수행하기 위해서는 많은 하드웨어 자원을 요구한다. 또한, 가중치 인코딩 과정 또한 복잡해진다.
3. 본 발명에 따른 BSPE(Bit-Sereal Processing Element)
본 발명에서는 MBS의 한계점을 보완하기 위해 BSPE(Bit-Serial Processing Element)를 제안한다. 도 2는 본 발명에 따른 BSPE 코어의 일부 구성도이며, 도 3은 BSPE 코어를 구성하는 BSPE 구성 블록도이다. 본 발명에서는 종래 MBS의 인코딩 방법 대신 Bit-Serial Multiplier를 이용해 곱셈 연산을 수행한다.
가. BSPE의 구조
BSPE는 Bit-Serial Multiplier에 Activation과 weight가 입력으로 들어가며, n-bit의 weight는 0번째 bit부터 n-1번째 비트로 차례대로 입력으로 들어가 곱셈 연산을 수행한다. 음수인 경우는 MBS와 마찬가지로 INV와 MOA(INV)를 이용해 음수 연산을 수행한다. 가중치 인코딩과 Barrel Shifter 대신 Bit-Serial Multiplier를 이용해 가변적인 precision의 데이터를 사용할 수 있으며, 인코딩을 할 수 없는 데이터를 근사화시키는 과정을 제거했다.
또한, MBS는 2개의 barrel-shifter의 출력값과 2개의 INV를 더하기 때문에 더 많은 Adder Tree를 소모하지만 BSPE는 1개의 출력값과 1개의 INV가 출력으로 나오기 때문에 이들의 합을 구하는 Adder Tree의 규모가 작아져 자원 소모량을 줄일 수 있었다.
도 3에 도시된 바와 같이 각 BSPE는 비트 시리얼 곱셈기, 제로판별기, 1-보수기, MOA(PSUM) 및 MOA(INV)로 구성된다. MOA(PSUM) 및 MOA(INV)는 모두 애드 트리(adder tree)로 형성되는 데, 편의상 양자를 구분할 필요가 있을 경우에는 MOA(PSUM)를 제1 애드 트리라 부르고, MOA(INV)를 제2 애드 트리로 부르기로 한다.
비트 시리얼 곱셈기는 Activation(뉴런 값) 입력과 가중치 입력의 곱셈을 수행하여 BSP를 출력하는 회로 로직이다. 도 4는 비트 시리얼 곱셈기의 일 예이다. 도 4(a)는 비트 시리얼 곱셈기의 논리 구성도이며, 도 4(b)는 비트 시리얼 곱셈기의 시간에 따른 처리하는 가중치 곱셈을 보여주는 회로도이다. 도 4에서는 activation은 8비트로 구성되고, 가중치는 4비트(후술하겠으며, sign비트를 제외한 상태에서 4비트임)에 대해서 비트 시리얼 곱셈기의 회로도 및 시간에 따라 수행되는 회로를 도시한 것이다.
제로판별기는 입력되는 가중치가 '0'인지 여부를 판별하여 'IsZero'값을 출력하는 회로 로직이다. 가중치 데이터는 전체 5비트로 구성되며, 이중 최상위 비트(MSB, Weight[n-1]))는 가중치가 양의 값인지 또는 음의 값인지를 나타내는 sign 비트이다. 1-보수기는 가중치 데이터의 최상위 비트, IsZero 및 BSP를 입력받은 후, (1) IsZero를 만족하는 경우(가중치가 '0'인 경우) 다른 입력값과 무시하고 '0'값을 MOA(PSUM)로 출력(OCP)하고 음의 연산이 필요하지 않음을 MOA(INV)로 출력(INV)하고, (2) IsZero를 만족하지 않으면서(가중치가 '0'이 아닌 경우) sign 비트가 양으로 입력되는 경우에는 BSP출력을 변환없이 그대로 MOA(PSUM)로 출력(OCP)하고 음의 연산이 필요하지 않음을 MOA(INV)로 출력(INV)하며, (3) IsZero를 만족하지 않으면서(가중치가 '0'이 아닌 경우) sign 비트가 음으로 입력되는 경우에는 BSP를 1의 보수로 변환한 후 MOA(PSUM)로 출력(OCP)하고 음의 연산이 필요함을 MOA(INV)로 출력(INV)하는 회로로직부이다.
MOA(PSUM)는 LOA(Lower part OR approximation Adder)로 구성되며 뉴런값과 가중치 곱셈의 합을 처리하는 애드 트리(adder tree) 회로로직부이며, MOA(INV)는 전가산기(full adder)로 구성되며 뉴런값과 가중치 곱셈이 음의 값으로 출력될 때 이를 연산하기 위한 회로로직부이다.
나. LOA(Lower-part OR approximation Adder)
종래 MBS에서는 MOA(PSUM)를 구현하는 adder tree의 경우 n-bit의 전가산기(full adder)를 사용해서 덧셈을 수행한다. 도 5는 본 발명에 따른 MOA(PSUM)를 구성하는 LOA의 회로도이다. 딥러닝 알고리즘의 특징인 fault tolerance를 adder tree에 적용하였다.
BSPE가 OCP 출력(M-bit로 구성된다고 가정)이 MOA(PSUM)에 입력되면 p-bit 미만은 full adder를 사용하지 않고 or-gate로 대체하며 더해지고, p-bit 이상의 n 비트는 full adder를 사용하여 가산한다. 여기서, p + n = m의 관계를 만족한다.
전가산기는 2개의 xor-gate, 2개의 and-gate, 1개의 or-gate로 구성된다. 따라서 p비트 이하 가산을 or-gate로 대체하면 총 2개의 xor-gate와 2개의 and-gate를 절약할 수 있다.
표 2는 종래 MBS와 본 발명에 따른 BSPE를 비교한 데이터이며, 구체적으로 MBS와 BSPE를 CMOS 180nm공정 200MHz에서 합성한 결과이다.
MBS | BSPE | BSPE(LOA) | |
Total Power(mW) | 16.1067 | 9.1745 | 9.1508 |
Chip Area | 102968 | 63041 | 60106 |
Total Gates | 11,726 | 7,179 | 6,845 |
4. CNN을 위한 하드웨어 아키텍쳐 디자인
BSPE를 기반으로 합성곱 신경망에 응용하기 위해 BSPE에 최적하는 CNN 구조를 다음과 같이 제안한다.
가. Overlapping Computation
Overlapping Computation은 서로 겹치는 데이터를 제외한 새로 필요한 데이터만을 가져온다. 컨벌루션 레이어는 도 6과 같이 Current tile의 연산을 수행한 후 Next tile로 stride를 옮겨서 연산을 수행한다. 이때, 일반적인 방법은 Current tile의 데이터인 R1~R5의 데이터를 이용해 컨벌루션 연산을 한 후 다시 R2~R5의 데이터를 가져온다.
하지만 Overlapping Computation을 적용해서 Next tile의 모든 데이터를 가져오는 것이 아닌 R6 데이터만을 가져와서 연산을 수행한다.
나. Data Prefetching
Current tile의 연산이 종료된 후에 Overlapping Computation에 의해 R6 데이터를 가져온다. R6를 가져오는 동안 연산기는 동작을 수행하지 않는다. 따라서 Data Prefetching 기법을 이용해 낭비되는 사이클을 제거했다. Current tile을 연산하는 도중 R6 데이터를 미리 가져와 Scratch Pad에 저장해 Current tile의 연산이 종료되자마자 Next tile의 연산을 수행한다.
다. Overlapping computation for Row data reuse
도 7에서 W는 데이터 타일링의 width를 의미한다. 본 구조에서는 데이터를 overlapping computation row 단위로 수행한다. 만약 W를 본 발명의 예시에서처럼 kernel size 단위로 tiling을 한다면 파란색으로 표기된 부분은 Next kernel을 연산할 때 다시 가져온다. 따라서 본 논문에서는 가변적 tilng width를 두어 row 단위의 데이터도 재사용할 수 있다. Row stationary data reuse를 사용하지 않을 때 W * H를 수행하려면 데이터를 30번 전송해야 한다. 하지만 재사용을 통해 데이터를 R1~R5까지 5번만 전송해서 W * H 크기의 데이터를 연산할 수 있다.
4. BSPE Core
BSPE Core는 도 8과 같다. Core controller와 Activation buffer, Weight buffer가 존재한다. Activation buffer와 Weight buffer는 Core controller로부터 값을 받아 BSPE로 데이터를 전송한다. 데이터를 전송받은 BSPE는 Core controller로부터 연산 시작 신호를 받아 연산을 수행한다.
5. 실험 결과
실험 결과에서 사용된 파라미터는 표 3과 같다. Activation은 8-bit를 사용했으며 weight는 5-bit를 사용했다. 또한, BSPE 내부의 곱셈기의 개수는 25개를 사용했다. 따라서 최대 5x5의 크기의 커널을 지원할 수 있다.
parameter | |
Activation precision | 8 |
Weight precision | 5 |
m | 25 |
Xilnx Vertex7 707 FPGA Board에서 50MHz로 합성을 수행했을 때 25개의 데이터를 연산하는데 180ns이 소요된다. BSPE Core를 CMOS 180nm공정에서 10MHz의 동작 주파수로 합성한 결과는 표 4와 같다.
BSPE Core | |
Total Power(mW) | 50.1152 |
Chip Area | 429822 |
Total Gates | 48,955 |
상기에서 본 발명의 바람직한 실시예가 특정 용어들을 사용하여 설명 및 도시되었지만 그러한 용어는 오로지 본 발명을 명확히 설명하기 위한 것일 뿐이며, 본 발명의 실시예 및 기술된 용어는 다음의 청구범위의 기술적 사상 및 범위로부터 이탈되지 않고서 여러가지 변경 및 변화가 가해질 수 있는 것은 자명한 일이다. 이와 같이 변형된 실시예들은 본 발명의 사상 및 범위로부터 개별적으로 이해되어져서는 안되며, 본 발명의 청구범위 안에 속한다고 해야 할 것이다.
Claims (4)
- 딥러닝에서 수행되는 다수의 뉴런값 및 가중치의 곱셈을 수행하는 비트 시리얼 프로세싱 엘리먼트(Bit Serial Processing Element)로서,
뉴런값과 가중치 곱셈을 수행하는 비트 시리얼 곱셈기 및
가중치가 '0'인지 여부를 판별하는 제로판별기를 포함하는 것을 특징으로 하는 비트 시리얼 로 처리하는 것을 특징으로 하는 비트 시리얼 프로세싱 엘리먼트.
- 제1항에 있어서,
가중치의 최상위 비트, 제로판별기 및 비트 시리얼 곱셈기로부터 곱셈 결과를 입력받은 후, (1) 가중치가 '0'인 경우에는 '0'값을 출력하고, (2) 가중치가 '0'이 아니면서 가중치의 부호가 양인 경우에는 상기 비트 시리얼 곱셈기로부터 곱셈 결과를 그대로 출력하고, (3) 가중치가 '0'이 아니면서 가중치의 부호가 음인 경우에는 상기 비트 시리얼 곱셈기로부터 곱셈 결과를 1의 보수로 변환한 후 출력하는 1-보수기를 더 포함하는 것을 특징으로 하는 비트 시리얼 프로세싱 엘리먼트.
- 제1항 또는 제2항의 비트 시리얼 프로세싱 엘리먼트 및
상기 1-보수기의 출력값을 더하는 제1 애드 트리(adder tree)를 포함하고,
상기 제1 애드 트리는 상기 1-보수기의 출력값의 최하위 비트부터 p비트까지는 Or 게이트를 이용하여 근사값으로 더하고 나머지 p비트를 초과하는 상위비트는 전가산기(full adder)를 이용하여 더하는 LOA(Lower-part OR approximation Adder)로 구성되는 것을 특징으로 하는 비트 시리얼 프로세싱 엘리먼트 코어.
- 제3항에 있어서,
상기 1-보수기는 가중치가 '0'이 아니면서 가중치의 부호가 음인 경우에 '1'을 출력라인 INV로 출력하는 기능이 더 구비되고,
전가산기(full adder)로 구성되며, 상기 INV로부터 입력되는 값을 더하는 제2 애드 트리를 더 포함하는 것을 특징으로 하는 비트 시리얼 프로세싱 엘리먼트 코어.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200183290A KR102549120B1 (ko) | 2020-12-24 | 2020-12-24 | 딥러닝 하드웨어 가속기를 구비하는 bspe 코어 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200183290A KR102549120B1 (ko) | 2020-12-24 | 2020-12-24 | 딥러닝 하드웨어 가속기를 구비하는 bspe 코어 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20220091987A true KR20220091987A (ko) | 2022-07-01 |
KR102549120B1 KR102549120B1 (ko) | 2023-06-29 |
Family
ID=82397215
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200183290A KR102549120B1 (ko) | 2020-12-24 | 2020-12-24 | 딥러닝 하드웨어 가속기를 구비하는 bspe 코어 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102549120B1 (ko) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190074938A (ko) * | 2017-12-20 | 2019-06-28 | 연세대학교 산학협력단 | 인공 신경망을 위한 디지털 뉴런, 인공 뉴런 및 이를 포함하는 추론 엔진 |
KR20200079059A (ko) * | 2018-12-24 | 2020-07-02 | 삼성전자주식회사 | 비트 연산 기반의 뉴럴 네트워크 처리 방법 및 장치 |
-
2020
- 2020-12-24 KR KR1020200183290A patent/KR102549120B1/ko active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190074938A (ko) * | 2017-12-20 | 2019-06-28 | 연세대학교 산학협력단 | 인공 신경망을 위한 디지털 뉴런, 인공 뉴런 및 이를 포함하는 추론 엔진 |
KR20200079059A (ko) * | 2018-12-24 | 2020-07-02 | 삼성전자주식회사 | 비트 연산 기반의 뉴럴 네트워크 처리 방법 및 장치 |
Non-Patent Citations (1)
Title |
---|
Abdelouahab, Kamel, Maxime Pelcat, and Francois Berry. "The chalenge of multi-operand adders in CNNs on FPGAs: how not to solve it!." Proceedings of the 18th International Conference on Embeded Computer Systems: Architectures, Modeling, and Simulation. 2018. |
Also Published As
Publication number | Publication date |
---|---|
KR102549120B1 (ko) | 2023-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Samimi et al. | Res-DNN: A residue number system-based DNN accelerator unit | |
US4737926A (en) | Optimally partitioned regenerative carry lookahead adder | |
US20210349692A1 (en) | Multiplier and multiplication method | |
Bhattacharya et al. | A high performance binary to BCD converter for decimal multiplication | |
CN108984149B (zh) | 一种高速低功耗的近似4-2压缩器 | |
KR20210059623A (ko) | 이진 및 삼진 신경망 추론을 위한 전자 장치 및 방법 | |
Raveendran et al. | Inexact signed Wallace tree multiplier design using reversible logic | |
Ahmed et al. | Improved designs of digit-by-digit decimal multiplier | |
CN111492369B (zh) | 人工神经网络中移位权重的残差量化 | |
Sanjeet et al. | Energy-efficient FPGA implementation of power-of-2 weights-based convolutional neural networks with low bit-precision input images | |
CN110879697B (zh) | 一种近似计算tanh函数的装置 | |
KR102549120B1 (ko) | 딥러닝 하드웨어 가속기를 구비하는 bspe 코어 | |
US9720648B2 (en) | Optimized structure for hexadecimal and binary multiplier array | |
Zahid et al. | Energy-Efficient Approximate Booth Multipliers for Convolutional Neural Networks | |
EP3610367B1 (en) | Energy-efficient variable power adder and methods of use thereof | |
US7840628B2 (en) | Combining circuitry | |
Kumar et al. | Complex multiplier: implementation using efficient algorithms for signal processing application | |
Savithaa et al. | A high speed area efficient compression technique of Dadda multiplier for image blending application | |
Kim et al. | A low-energy hybrid radix-4/-8 multiplier for portable multimedia applications | |
US7461107B2 (en) | Converter circuit for converting 1-redundant representation of an integer | |
El Atre et al. | Design and implementation of new delay-efficient/configurable multiplier using FPGA | |
Cao et al. | Efficient LUT-based FPGA accelerator design for universal quantized CNN inference | |
Pathak et al. | Low power Dadda multiplier using approximate almost full adder and Majority logic based adder compressors | |
US20200125329A1 (en) | Rank-based dot product circuitry | |
Chen et al. | SubMac: Exploiting the subword-based computation in RRAM-based CNN accelerator for energy saving and speedup |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |