KR102037043B1 - 세밀한 정밀도 조정이 가능한 곱셈누적기 - Google Patents

세밀한 정밀도 조정이 가능한 곱셈누적기 Download PDF

Info

Publication number
KR102037043B1
KR102037043B1 KR1020180090416A KR20180090416A KR102037043B1 KR 102037043 B1 KR102037043 B1 KR 102037043B1 KR 1020180090416 A KR1020180090416 A KR 1020180090416A KR 20180090416 A KR20180090416 A KR 20180090416A KR 102037043 B1 KR102037043 B1 KR 102037043B1
Authority
KR
South Korea
Prior art keywords
input
precision
bit
present
accumulator
Prior art date
Application number
KR1020180090416A
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 KR1020180090416A priority Critical patent/KR102037043B1/ko
Application granted granted Critical
Publication of KR102037043B1 publication Critical patent/KR102037043B1/ko

Links

Images

Classifications

    • 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/533Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even
    • G06N3/0635
    • 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
    • G06N3/065Analogue means

Landscapes

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

Abstract

본 발명은 세밀한 정밀도 조정이 가능한 곱셈누적기에 관한 것으로, 더욱 상세하게는 심층신경망(DNN)의 레이어별 상이한 정밀도 요구조건을 세밀하게 충족할 수 있는 정밀도조정알고리즘과, 동일한 정밀도(precision)에서 개선된 정확도(accuracy)를 보일 수 있는 HRS모드가 적용되는 곱셈누적기에 관한 기술이다.
본 발명에 따른 곱셈누적기는 기존의 설계에 비해 정확도 감소는 1% 미만에 불과하나, DNN의 영역당 작업 효율은 50~100% 개선될 수 있는 효과가 있다.

Description

세밀한 정밀도 조정이 가능한 곱셈누적기{Fine-grained precision-adjustable Multiplier-Accumulator}
본 발명은 세밀한 정밀도 조정이 가능한 곱셈누적기에 관한 것으로, 더욱 상세하게는 심층신경망(DNN)의 레이어별 상이한 정밀도 요구조건을 세밀하게 충족할 수 있는 정밀도조정알고리즘과, 동일한 정밀도(precision)에서 개선된 정확도(accuracy)를 보일 수 있는 HRS모드가 적용되는 곱셈누적기에 관한 기술이다.
확률적 컴퓨팅(Stochastic Computing)은 1 또는 0 주파수로 표현되는 비트스트림을 사용한다. 비트스트림은 랜덤특성은 곱셈과 같은 작동에 있어서 초저비용 실행을 가능토록 한다. 높은 오류율과 저실행비용으로 인해, SC는 DNN과 같은 특정적용을 가속화하기 위한 유망한 접근법으로 간주된다.
SC 토대의 DNN은 이전에도 정확성과 효율성 면에서 기존의 디지털설계에 대해 더 경쟁력 있는 결과를 보여주었다. 이것은 DNN의 재교육(retraining) 능력이 SC의 랜덤특성을 보완해주는 것으로 사료된다. 또한, 최근 DNN에서 확률수생성기(Stochastic Number Generator)의 오버헤드를 감소할 수 있는 매우 효율적인 방법도 제공되었다. 그러나, SC의 본질적인 자릿수단점인 SC는 자릿수가 증가함에 따라 지수함수적으로 더 긴 비트스트림을 요구하는 것은 지금까지 SC를 AlexNet과 같이 더 큰 DNN에서 활용하지 못하는 원인이 되었다.
이전의 DNN의 SC토대의 가속화 기법은 완전병렬과, 격자의 두 가지 카테고리로 분류된다. 완전병렬기법에서는, 모든 뉴런은 공간적으로(spatially) 실행되어, 신경망회로가 입력데이터의 흐름이 회로를 흐를 때 아웃풋을 생성할 수 있도록 병렬로 작동된다. 이것은 중간결과를 저장하는 외부메모리가 없는 대신 임의의 큰 DNN을 실행할 수 없을 정도로 적용분야가 제한되기 때문에 매우 높은 에너지 효율을 갖는다. 격자기법에서는 하나의 레이어를 더 작은 고정된 크기의 어레이(각각은 동일한 하드웨어 블록에 의해 수행)로 나누는 계산에 의해 레이어와 실행되는 뉴런의 수의 크기조정이 가능하다. 중간결과는 보통 외부 메모리인 탑재된 칩인버퍼에 저장되고 버퍼로부터 다시 불러올 수 있다. 저장과 대역폭(컴퓨터가 특정 시간 내에 보낼 수 있는 정보량)의 효율성을 위해, SC 데이터는 종종 기존의 디지털 수로 메모리에 저장되며, 이로 인해 실행 비용이 증가한다.
최근의 CNN 하드웨어 구성은 모두 설계시간에 대해 고정된 자릿수를 가진다. 이것은 자릿수 요구조건이 각각 다를 때에, 정확도가 낮다거나(필요한 자릿수가 더 높아서), 아웃풋에 비해 효율이 낮은(필요한 자릿수가 더 낮아서) 명백하게 불리한 점을 가진다. 또한, 이러한 CNN 가속기들은 격자 구성을 취하기 때문에, 모든 레이어들은 동일한 자릿수를 가져야 한다. 그러나, 레이어의 자릿수 요구조건은 각각 다를 수 있으며, 이로 인해 심지어 가속기가 설계된 CNN을 가동할 때조차 비효율성을 초래할 수 있다.
이러한 문제점들의 하나의 해결책은 비트-직렬 곱셈기와 같은 비트-직렬 하드웨어를 사용하는 것이다. 그러나, 이러한 해결책은 상기 언급된 문제들을 해결할 수는 있지만, 비트-직렬 곱셈기들은 낮은 자릿수를 제외하고는 효율성을 제한하기 때문에 본질적으로 비트병렬 버전에 비해 비효율적이다.
미국 등록특허공보 제 8442927 호 (2013.05.14.)
본 발명은 상술한 바와 같은 선행 기술의 문제점을 해결하기 위하여 안출된 것으로, 각기 다른 자릿수를 요구하는 다수의 레이어를 포함하는 심층신경망에 유연하게 사용할 수 있어 매우 효율적인 세밀한 정밀도 조정이 가능한 곱셈누적기를 제공하는 데 그 목적이 있다.
또한, 본 발명은 다양한 범위의 변수들에 비트자릿수를 할당하는 관점에서 일부 레이어 입력이 항상 음수가 되지 않도록 활성화시켜 정밀도를 낮추어 지연을 감소시켰을 때도 여전히 유사한 정확도를 얻을 수 있는 세밀한 정밀도 조정이 가능한 곱셈누적기를 제공하는 데 그 목적이 있다.
본 발명이 해결하고자 하는 과제들은 이상에서 언급한 과제로 제한되지 않으며, 여기에 언급되지 않은 본 발명이 해결하려는 또 다른 과제들은 아래의 기재로부터 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 발명의 일 실시예에 따른 세밀한 정밀도 조정이 가능한 곱셈누적기는 확률적 컴퓨팅 곱셈 알고리즘을 이용한 곱셈누적기로서, 제1 입력(x)을 획득하여 이진수(Binary Number)를 확률수(Stochastic Number)로 변환하는 유한상태기계-멀티플렉서(MUX-FSM); 제2 입력(w)을 획득하며 0에 도달하면 정지되는 다운 카운터(Down Counter); 및 상기 유한상태기계-멀티플렉서로부터의 입력에 기초하여 xw에 근사되는 출력값(y)을 생성하는 카운터;를 포함하고, 상기 곱셈누적기에는, 상기 제1 입력(x) 및 상기 제2 입력(w)에 대해 필요한 정밀도 수치(p)로 상기 제1 입력(x) 및 상기 제2 입력(w)의 정밀도를 1비트 단위로 조정이 가능한 정밀도조정알고리즘이 적용되어, 심층신경망(DNN)의 레이어별로 상이한 정밀도 요구조건을 세밀하게 충족시킬 수 있는 것을 특징으로 한다.
또한, 본 발명의 일 실시예에 따른 세밀한 정밀도 조정이 가능한 곱셈누적기에 있어서, 상기 제1 입력(x) 및 상기 제2 입력(w)이 부호가 없는 비트인 경우, 상기 정밀도조정알고리즘은, 상기 제1 입력(x) 및 상기 제2 입력(w)에 대해 필요한 정밀도 수치(p)를 입력받아, 상기 제1 입력(x)은 최상위비트(MSB)부터 상기 필요한 정밀도 수치(p)만큼 카운팅되고, 상기 제2 입력(w)은 최하위비트(LSB)부터 상기 필요한 정밀도 수치(p)만큼 카운팅된 후 그 이외의 자릿수만큼 제로확장(zero-extension)되는 것을 특징으로 한다.
또한, 본 발명의 일 실시예에 따른 세밀한 정밀도 조정이 가능한 곱셈누적기에 있어서, 상기 제1 입력(x) 및 상기 제2 입력(w)이 부호가 있는 비트인 경우, 상기 카운터는 업-다운(up-down) 카운터로 이루어져 상기 제2입력(w)의 부호에 따라 카운트 업 혹은 카운트 다운시키며,상기 정밀도조정알고리즘은, 상기 제1 입력(x) 및 상기 제2 입력(w)에 대해 필요한 정밀도 수치(p)를 입력받아, 상기 제1 입력(x)은 부호비트인 최상위비트(MSB)가 NOT게이트에 의해 변환된 다음 상기 필요한 정밀도 수치(p)만큼 카운팅되고, 상기 제2 입력(w)은 최하위비트(LSB)부터 상기 필요한 정밀도 수치(p)만큼 카운팅된 후 그 이외의 자릿수만큼 부호확장(sign-extension)되며, 그 이후 상기 제1 입력(x) 및 상기 제2 입력(w)은 XOR게이트를 통해 상기 업-다운 카운터에 공급되는 것을 특징으로 한다.
또한, 본 발명의 일 실시예에 따른 세밀한 정밀도 조정이 가능한 곱셈누적기에 있어서, 상기 제1 입력(x)을 부호가 없는 비트로 처리하여 상기 제1입력(x)의 정밀도를 부호비트가 아닌 비트로 1비트 더 증가시키고 상기 제2입력(w)의 정밀도는 동일하게 유지하여, 지연(latency)은 동일하나 정확도(accuracy)를 개선시킬 수 있는 HRS모드(Half-Range Specialization mode)가 적용되는 것을 특징으로 한다.
또한, 본 발명의 일 실시예에 따른 세밀한 정밀도 조정이 가능한 곱셈누적기에 있어서, 상기 HRS모드는, 상기 제1 입력(x)의 부호 유무를 제3 입력으로 생성하는 XIS(X Is Signed)회로를 포함하여, 상기 제3 입력이 1일 경우, 부호가 있는 경우의 상기 정밀도조정알고리즘에 의해 계산되고, 상기 제3 입력이 0일 경우, 상기 제1 입력(x)을 부호가 없는 경우로 인식되어, 상기 업-다운 카운터의 기능이 억제되는 것을 특징으로 한다.
상기 과제의 해결 수단에 의해, 본 발명의 세밀한 정밀도 조정이 가능한 곱셈누적기는, 각기 다른 자릿수를 요구하는 다수의 레이어를 포함하는 심층신경망에서 유연하게 사용할 수 있어 매우 효율적이다.
또한, 본 발명의 세밀한 정밀도 조정이 가능한 곱셈누적기는, 다양한 범위의 변수들에 비트자릿수를 할당하는 관점에서 일부 레이어 입력이 항상 음수가 되지 않도록 활성화시켜 정밀도를 낮추어 지연을 감소시켰을 때도 여전히 유사한 정확도를 얻을 수 있는 효과가 있다.
또한, 본 발명의 세밀한 정밀도 조정이 가능한 곱셈누적기는, 기존의 설계에 비해 정확도 감소는 1% 미만에 불과하나, DNN의 영역당 작업 효율은 50~100% 개선될 수 있는 효과가 있다.
도 1은 본 발명의 일 실시예에 따른 세밀한 정밀도 조정이 가능한 곱셈누적기의 내부 구성을 도식화한 도면이다.
도 2는 본 발명의 일 실시예에 따른 부호가 없는 경우에 세밀한 정밀도 조정이 가능한 곱셈누적기의 작동을 나타낸 도면이다.
도 3은 본 발명의 일 실시예에 따른 부호가 있는 경우에 세밀한 정밀도 조정이 가능한 곱셈누적기의 작동을 나타낸 도면이다.
도 4는 본 발명의 일 실시예에 따른 HRS모드가 적용된 곱셈누적기를 나타낸 도면이다.
도 5는 본 발명의 세밀한 정밀도 조정이 가능한 SC-MVM와 이전의 SC-MVM의 영역 오버헤드를 비교한 그래프이다.
도 6은 본 발명의 소프트웨어 정밀도의 변화에 따른 ADP 경향을 나타내는 그래프이다.
도 7은 하드웨어 정밀도에 따른 ADP를 비교한 것으로, (a)는 단일 DNN, (b)는 다수의 DNN의 경우를 나타내는 그래프이다.
도 8은 본 발명의 세밀한 정밀도 조정이 가능한 SC-CNN과 기존의 CNN을, 격자의 MAC, 평균 사이클, ADP로 각각 비교한 그래프이다.
도 9는 본 발명의 세밀한 정밀도 조정이 가능한 SC-CNN와 타 CNN을 영역, 평균 지연 및 ADP에 대해 비교하여 나타낸 그래프이다.
후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이러한 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 본 명세서에 기재되어 있는 특정 형상, 구조 및 특성은 본 발명의 정신과 범위를 벗어나지 않으면서 일 실시예로부터 다른 실시예로 변경되어 구현될 수 있다. 또한, 각각의 실시예 내의 개별 구성요소의 위치 또는 배치도 본 발명의 정신과 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 행하여지는 것이 아니며, 본 발명의 범위는 특허청구범위의 청구항들이 청구하는 범위 및 그와 균등한 모든 범위를 포괄하는 것으로 받아들여져야 한다.
이하에서는, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 하기 위하여, 본 발명의 여러 실시예에 관하여 첨부한 도면을 참조하여 상세히 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따른 세밀한 정밀도 조정이 가능한 곱셈누적기의 내부 구성을 도식화한 도면이다.
본 발명의 일 실시예에 따른 세밀한 정밀도 조정이 가능한 곱셈누적기(100)는 도 1에 도시된 바와 같이, 유한상태기계-멀티플렉서(110), 다운 카운터(120) 및 카운터(130)를 포함할 수 있다.
본 발명의 곱셈누적기는 비록 도시되지 않았지만, 프로세서에 의해 동작할 수 있으며, 상기 프로세서는 물리적 서버 또는 컴퓨터에 의해 동작 될 수 있고, 본 발명의 알고리즘 및 모드를 실행하는 명령을 포함할 수 있다.
상기 곱셈누적기(100)는 확률적 컴퓨팅 곱셈 알고리즘을 이용한 SC(Stochastic Computing) 곱셈기로서, 제1 입력(x)을 획득하여 이진수(Binary Number)를 확률수(Stochastic Number)로 변환하는 유한상태기계-멀티플렉서(MUX-FSM)(110); 제2 입력(w)을 획득하며 0에 도달하면 정지되는 다운 카운터(Down Counter)(120); 및 상기 유한상태기계-멀티플렉서(110)로부터의 입력에 기초하여 xw에 근사되는 출력값(y)을 생성하는 카운터(130)를 포함할 수 있다.
본 발명에서는, 심층신경망(DNN)에 매우 효율적일 뿐만 아니라, 가변자릿수로 다양한 DNN을 보완하는 관점에서도 유연한 SC 토대의 곱셈누적기를 제공한다. 본 발명에서의 핵심적인 해결책은 자릿수를 최우선설계변수(FIRST-CLASS DESIGN PARAMETER)로 간주하고 이를 다수의 DNN 층에 할당시켜 최적화시키는 것이다. 구체적으로, 우선, 최첨단의 SC-MAC(곱셈누적기)를 발전시켜, 입출력 데이터의 정밀도(precision)가 런타임에서 임의로 변화(DPS, Dynamic Precision Scaling)될 수 있는 세밀한 정밀도 조정이 가능한 곱셈누적기를 제안한다. 이러한 발전은 오버헤드가 거의 없고, 오히려 SC로 인한 지수함수적인 보상지연과 함께 자릿수에 있어서 인색(변수를 넣어 상응하는 월등한 결과가 나오지 않는 한 이러한 변수증감에 인색함)할 수 있도록 한다. 또한, 다양한 범위의 변수들에 비트자릿수를 할당하는 관점에서, 몇 개의 레이어 입력은 항상 음수가 아니게 활성화시켜, 1비트만큼 자릿수를 세밀하게 줄일 수 있으면서(그리고 상응하는 지연감소는 최대 50%) 여전히 같은 정확도를 얻을 수 있는 것을 의미한다. 이러한 최적화를 HRS(Half Range Specialization)라고 정의하였다. 중요한 것은 HRS 최적화를 동적으로 전환될 수 있는 부가특징으로 실행하여 동일한 하드웨어가 입력값과 관계없이 DNN의 모든 레이어에 적용될 수 있도록 하는 것이다.
본 발명에 제시된 최적회로 SC는 보다 더 효율적일 수 있다. 이것은 동적 정밀도 스케일링과 같은 SC의 이점은 남겨둔 채로, 도 5와 같이 더 다양한 자릿수범위에 대해 SC와 비트-병렬의 기존 디지털 사이의 효율성 차를 줄이는 것을 가능하게 한다. 또한, SC에서 1비트 감소가 ADP(영역 지연)을 50%까지 감소시키기 때문에, 세밀한 정밀도조정의 효과는 기존의 디지털방식보다 SC에서 더 높다.
SC 곱셈기들이 ADP 관점에서 매우 효율적으로 알려져 있음에도 불구하고, 격자구성일 경우 확률수생성기(SNG)의 오버헤드가 클 수밖에 없다. 그러나, 최근 연구에서 확률수생성기를 SC-MAC에 통합하여 ADP의 개선을 얻은 결과가 제시되었다. 이 개선은 DNN에서 매우 효과적인 곱셈의 가변적인 지연 때문이다. 본 발명에서는 곱셈누적기가 세밀한 정밀도조정 기능을 지원하도록 확대시킨, 세밀한 정밀도 조정이 가능한 곱셈누적기를 최적화하기 위한 설계방법을 제시한다.
이하에서는, 곱셈누적기에 추가된 정밀도조정알고리즘과 HRS모드에 대해서 상세히 설명하기로 한다.
우선, 본 발명에서 사용하는 곱셈누적기 방식에 대해 설명하기로 한다.
곱셈누적기는 x와 w로 이름붙여진 두 개의 피연산자를 취하여, xw에 근사되는 출력값 y를 생성한다. 모든 입출력값은 도 2(여기서, 빨간색은 정밀도 가변에 관련된 것이므로 여기서는 없는 것으로 간주할 것)에 도시된 것처럼 일반디지털로 표현된다. 도 2 및 도 3에 도시된 본 발명에서 나타난 곱셈누적기는 유니폴라 인코딩에서만 작동하며 BISC(Binary-Interfaced SC)와 관련이 있지만, 다음과 같은 중요한 이점이 있다. 첫째, SNG보다 훨씬 적은 다운 카운터 대신 확률수생성기(SNG) 및 AND 게이트를 제거하므로 설계가 간단하다. 둘째, 후술하는 것처럼 정확성을 잃지 않고 어레이 버전에서 일부 회로를 공유 할 수 있다. 셋째, 기존 방법에 비해 정확도를 잃지 않고 평균 대기 시간이 짧다. 넷째, 본 발명의 곱셈누적기는 x에 대해 결정적이다. 마지막으로 본 발명의 SC 곱셈 방법은 w에 대한 무작위성이 제거되어 보다 정확한 결과를 생성할 수 있다. 여기서, SC 곱셈은 카운터가 자연스럽게 연속 곱셈 결과를 누적하기 때문에 SC-MAC(multiply accumulate)이라고도 칭할 수 있다.
본 발명의 곱셈누적기는 SC 곱셈기 자체의 정확성에 대한 강력한 보증을 제공할 뿐만 아니라, SC 곱셈 결과가 순서가 아닌 비트 분포에만 의존하며, N 비트 FSM(Finite-State Machine)과 하나의 멀티플렉서(MUX)를 통해 간단하고 결정론적인 비트 분할 방식을 사용할 수 있도록 한다. 이는 실제로 기존의 LFSR-비교기 기반 SNG보다 간단하다.
먼저, 부호가 없는 경우를 고려하면, 도 2에 도시된 바와 같이, 입출력값은 0과 1 사이의 분수로 해석된다.
Figure 112018076661212-pat00001
,
Figure 112018076661212-pat00002
, 여기서 Q는 레지스터 X, W의 너비라고 가정한다. 멀티플렉서 유한상태기계 회로는 x에 가까운 신호의 비트스트림을 생성하도록 설계된다. 그래서, W회 동안 x비트스트림으로부터 카운팅되는 비트는 대략
Figure 112018076661212-pat00003
으로 산출된다. 그러므로, 비트정밀도가 Q일 경우에는,
Figure 112018076661212-pat00004
이다.
부호가 있는 경우에는, 도 3에 도시된 바와 같이, 입출력값이 모두 -1과 1 사이의 2의 보수이다. 최상위비트(MSB)가 부호비트로 사용되기 때문에,
Figure 112018076661212-pat00005
,
Figure 112018076661212-pat00006
이다. W 카운터는 W의 절대값을 취하도록 설계된다. 만약, W가 양수면, x비트스트림을 Y카운터로 (여기서는 업/다운 카운터) w사이클 동안 보내면 대략
Figure 112018076661212-pat00007
을 얻을 수 있다. 만약 W가 음수면, x비트스트림은 부호가 반전되어, x(-W) 또는 xW의 음수값이 Y카운터에 생성된다. 여기서도, 비트정밀도가 Q일 경우에는 부호비트를 포함하여,
Figure 112018076661212-pat00008
이다.
즉, 부호가 있는 경우의 주요 변경 사항은 비트 스트림 카운터가 이제 업-다운(up-down)카운터가 되어'1'입력에 대해 카운트 업되고 '0'에 대해 카운트 다운되는 것이다. 입력x의 부호 비트는 부호 가중 표현으로 변환된 후 다른 입력w의 부호 비트와 함께 플립되고 XOR 처리되며, 크기 부분은 이전과 같이 다운 카운터에 공급될 수 있다. FSM 기반 비트 스트림 생성기는 수정 없이 사용할 수 있다.
부호가 있는 경우 어떻게 작동 하는지를 파악하기 위해 하기의 [표 1] 에 열거된 x와 w의 값을 참조할 수 있다. [표 1] 의 예시에서 N, 승수 정밀도라고 부르는 부호 비트를 포함한 각 피연산자의 비트 수는 4이다. 따라서, 예시는 w의 최대/ 최소 값에 대한 것이다. 본 발명의 SC 곱셈기는 N비트 2의 보수를 출력으로 생성한다. 2번째 열은 x의 2진 표현이다. 부호 비트 플립핑(flipping)후에, MUX 출력은 업다운 카운터에 공급되는 w의 부호 비트와 XOR되고, w는 업-다운 카운터로 입력되고, 그 값은 곱셈 결과로서 사이클 |
Figure 112018076661212-pat00009
|에서 읽혀진다. 마지막 열의 충분한 정밀도를 갖는 실제 곱셈 결과와 비교할 때, 매우 가깝다는 것을 알 수 있다.
Figure 112018076661212-pat00010
이하에서는, 도 2 및 도 3에 도시된 바와 같이, 세밀한 정밀도 조정이 가능한 정밀도조정알고리즘이 적용된 곱셈누적기의 작동에 대해 설명하고자 한다.
도 2는 본 발명의 일 실시예에 따른 부호가 없는 경우에 세밀한 정밀도 조정이 가능한 곱셈누적기의 작동을 나타낸 도면이다.
도 3은 본 발명의 일 실시예에 따른 부호가 있는 경우에 세밀한 정밀도 조정이 가능한 곱셈누적기의 작동을 나타낸 도면이다.
세밀한 정밀도 조정이 가능한 곱셈누적기 수준에서 보완하기 위한 하드웨어는 거의 변화되지 않아 사실상 비용이 들지 않는다. 사실, 데이터경로는 거의 동일하고, 주요한 차이는 제어로직에서 기인하기 때문이다.
세밀한 정밀도 조정이 가능한 곱셈누적기는 입출력값의 정밀도인 추가적인 입력 p를 가진다. 도 2는 최대 자릿수 Q가 4비트일 때, p=3인 예시이다.
먼저, 도 2를 참조하여 부호가 없는 경우로 가정해보자. X 레지스터는 최상위비트(MSB)에 x 또는
Figure 112018076661212-pat00011
의 정수 버전이 배열되어 있다. 나머지 비트들은, 어떠한 것이든, 사용되지 않는다. W 레지스터는 w 혹은
Figure 112018076661212-pat00012
의 정수 버전으로 초기화되고, 필요한 정밀도 수치(p)만큼 카운팅된 후 Q-bit 레지스터를 채우기 위해 그 이외의 자릿수만큼 제로확장(zero-extension)된다. 셀렉터 유한상태기계는 p에 관계없이 변화하지 않는다.
곱셈 지연은
Figure 112018076661212-pat00013
사이클, 특히
Figure 112018076661212-pat00014
에서 보여진다. 이 경우에는, X 레지스터의 x로부터 초기화되지 않은 최하위비트(LSB)가 사용되지 않는다(
Figure 112018076661212-pat00015
). 그래서 x 비트스트림을 카운팅하면
Figure 112018076661212-pat00016
에 근사하게 되며, W의 정밀도가 줄어듦에 따라 정확도도 줄어든다. p비트 정밀도에서는
Figure 112018076661212-pat00017
이다.
도 3에 도시된 부호가 있는 경우에, X레지스터는 최상위비트(MSB)에
Figure 112018076661212-pat00018
을 배치한다. 최상위비트를 변환한 다음, X레지스터를 부호가 없는 것으로 해석하기 위해 p비트 정밀도에서 0.5+x/2로 할당하여, 최상위비트(MSB)의 바로 옆에 소수점이 있는 것으로 가정한다. W레지스터는
Figure 112018076661212-pat00019
의 정수 버전으로 초기화되고,
Figure 112018076661212-pat00020
와 같이 Q-bit에 부호 확장(sign extension)된다. 만약, W가 양수이면, Y카운터는 W 사이클 후에
Figure 112018076661212-pat00021
를 산출하고, W가 음수이면, Y카운터는 XOR게이트로 인해
Figure 112018076661212-pat00022
가 산출된다. 여기서도, 부호비트를 포함하여 p비트 정밀도에서는
Figure 112018076661212-pat00023
이다.
부호 곱셈의 지연은
Figure 112018076661212-pat00024
사이클이다. 최대지연은 w=-1일 때,
Figure 112018076661212-pat00025
이고, W카운터가 p비트를 요구하는 경우(Q비트를 절대 초과할 수 없음), 점선박스로 표시된 부분이다. 유사하게 Y카운터가 p+1비트를 필요로 하면, Q비트를 초과할 수도 있다. 그러나, Y카운터는 누적기 역할을 위해 이미 여분비트를 가지고 있다.
y의 p비트 정밀도는 항상 최하위비트(LSB)부터 시작하기 때문에, 소수점은 정밀도에 따라 움직일 것이다. 소수점을 고정하는 것은 싱글 시프터로 행해질 수 있다.
상술한 바와 같이, 본 발명의 곱셈누적기는 16비트, 32비트, 64비트 단위로만 정밀도를 조정할 수 있었던 기존의 하드웨어와는 달리, 정밀도를 1비트 단위로 세밀하게 조정할 수 있다.
이하에서는, 도 4를 참조하여, 지연(latency)은 동일하나 정확도(accuracy)를 개선시킬 수 있는 HRS모드(Half-Range Specialization mode)가 적용된 SC 곱셈기에 대해 설명하기로 한다.
도 4는 본 발명의 일 실시예에 따른 HRS모드가 적용된 곱셈누적기를 나타낸 도면이다.
SC에서 정밀도의 영향은 지수함수를 따르기 때문에, 1비트만 줄이는 것도 매우 큰 가치가 있다. HRS는 선행 레이어에서 사용되는 활성화함수(ReLU)의 특정 모양으로 인해 어떤 변수의 범위, 즉 입력값들이 음수가 아닌 것으로 보장되어야 하는 조건을 기반으로 한 것이다
입력값의 범위 제한을 활용하는 하나의 방법은 데이터 스케일링 프레임을 통하는 것이다. 그러나 데이터 스케일링 프레임 방법은 대칭적인 범위에서 최적이며, 비대칭적인 범위에서는 오히려 추가적인 오버헤드를 야기한다.
대신에, 도 3에서 도시한 부호가 있는 경우의 세밀한 정밀도 조정이 가능한 곱셈누적기에서 입력값 x를 부호가 없는 것으로 처리함으로써 입력값 정밀도를 최대한 활용할 수 있다. 이것은 1비트는 부호비트이기 때문에 원래의 (p-1)비트의 정밀도에서, w의 정밀도는 동일하더라도 효과적으로 x의 정밀도를 p비트로 증가시킬 수 있는 것이다. w가 영향을 받지 않기 때문에, 지연도 또한 동일할 것이다. 이러한 구성의 주요한 효과는 정확도 향상에 있다. 구체적으로, 도 9에 도시된 바와 같이 HRS를 이용한 (p-1)비트의 곱셈은 HRS가 없는 p비트의 곱셈과 거의 동일한 정확도를 보여준다. 즉, HRS는 정밀도가 1비트 작은 것과 동일한 정확도를 보이거나 혹은 지연을 절반으로 줄일 수 있다.
w의 정밀도가 증가되지 않았기 때문에, HRS에 의해 1비트가 적은 정밀도자릿수와 동일한 정확도를 가지는 것이 보장되는 것은 아니다. 그러나, 대부분의 레이어와 대부분의 DNN에서, 입력값은 가중치변수에 비해 더 높은 정밀도를 요구하는 것으로 드러나기 때문에, HRS를 통해 x의 정밀도를 증가시키는 것이 실제로 얼마나 효과적인지 설명될 수 있다.
또한, 꼭 한 측면에 있지는 않은 레이어(1층레이어)의 입력값을 지지하기 위해, 하드웨어가 원래의 거동을 보유해야 하는 것은 중요한 점이다. 이에 따라, 본 발명의 SC 곱셈기에 적용되는 HRS모드는, 도 4에 도시된 바와 같이, 추가적인 XIS(X Is Signed)회로를 통해 운영 가동 되도록 설계될 수 있다.
구체적으로, 상기 XIS회로는 입력값x의 부호 유무를 또다른 입력값으로 생성하여, XIS의 값이 1일 때, 하드웨어는 부호가 있는 버전으로 되돌아가, 부호가 있는 경우의 상기 정밀도조정알고리즘에 의해 계산되고, XIS의 값이 0일 때는 x가 부호가 없는 경우로 인식하여, 올바른 작동을 보증하기 위해 w의 부호에 따라 필수적으로 업다운하는 Y카운터의 업다운 기능이 x비트스트림의 출력값이 0일 경우 억제되는 것이다.
이하에서는, 정밀도조정알고리즘과 HRS모드가 적용된 곱셈누적기의 설계최적화에 대해 설명하기로 한다.
지금까지 정밀도에 대한 개념은 보통 32비트 범위의 기존 디지털로 표현되는 어플리케이션 프로그램의 변수 너비를 의미한다. 양자화(어떤 변수가 취하는 값의 변위를 중복되지 않는 유한 개의 부분 범위 또는 부분 구간으로 나누는 것)은 어플리케이션 코드의 정밀도를 감소시키는 것이다. 그래서, 이러한 종류의 정밀도는 소프트웨어 정밀도라고 불린다. SC로 변환될 때, n비트 소프트웨어 정밀도 변수는
Figure 112018076661212-pat00026
비트 비트스트림을 요구한다.
비트-직렬 곱셈기가 한 개의 비트씩 계산하는 반면, SC는 주로 비트병렬 하드웨어를 사용한다. n비트 소프트웨어 정밀도 변수를 생성하기 위해, 비트 직렬 SC 곱셈기는
Figure 112018076661212-pat00027
사이클이 필요 하며, k비트 병렬 SC 곱셈기는
Figure 112018076661212-pat00028
/k 사이클이 필요하다. 여기서, 하드웨어 정밀도는 k의 2를 밑으로 하는 로그로 정의된다.
본 발명의 세밀한 정밀도 조정이 가능한 곱셈누적기는 비트병렬 버전으로 확장되어, 정수 하드웨어 정밀도를 더 효율적으로 보완할 수 있을 것이다. 이것은 SC-MAC의 기본 비트병렬 버전을 토대로 한다.
최적화 설계 목표는 정량화되지 않은 기준 정확도 하에서 1%로 설정한 정확도 제약을 충족하면서 ADP를 최소화하는 것이다. 이에 따라 (i) 데이터 스케일링 변수, (ii) 각 레이어의 소프트웨어 정밀도, (iii) 곱셈누적기의 하드웨어 정밀도, 3개를 설계변수로 고려할 것이며, 이를 차례대로 설명하기로 한다.
[데이터 스케일링 변수]
이전 연구에서는 SC의 제한된 범위를 더 잘 활용하기 위해 입력데이터를 조정하는 것이 중요한 것을 밝혀내었다. 이 생각은 입력값 중 일부가 범위를 벗어나기 때문에 입력값 중 범위에서 가장 떨어진 데이터를 덮는 것이다. 이 방법은 일부 입력값에 오류를 야기할 수 있지만 범위 내의 데이터들은 더욱 정확하게 표현될 수 있다. 상기 방법은 범위에 벗어나는 입력값이 점점 많아질 때 특히 유용하다. 조정을 통한 오버헤드를 방지하기 위해, 조정변수는 보통 2의 파워로 제한된다. 여기서, 쟁점은 예측이 제일 불가능해 보이는 영향에 대해 데이터조정변수들을 어떻게 결정하는 가에 관한 것이다. 이에 따라, 하기와 같은 절차 체계를 사용한다.
1) 모든 값이 범위 내이 있도록 조정변수를 결정하는 단계
2) 상기 조정변수를 2배 곱하여, 인식정확도가 개선되는 지 여부를 검사하는 단계
3) 개선이 있는 동안 상기 단계를 반복하는 단계
상기 절차 체계는 제1레이어부터 시작하여 모든 레이어에 대해 각각 반복된다. 이 과정 동안에는 DNN을 재설정하지 않는다. 상기 절차의 주요한 장점은 이것은 어떤 임의의 설계변수에 의존되지 않는 것이다. 이 알고리즘이 레이어들 사이에 상호 연관이 상호의존에 대해서는 대응할 수 없으나, 그렇게 하는 것은 오히려 대용량 DNN에서 방대한 데이터량을 요구할 수 있는 문제점을 초래한다.
[각 레이어들의 소프트웨어 정밀도]
데이터 조정 변수 결정과 유사하게, 계산적인 문제점을 피하기 위해 한 번에 한 개의 레이어를 최적화하고자 한다. 여기에는 차이점이 있다. 먼저, 정밀도 최적화는 정밀도가 낮을 때에도 의미있는 정확도를 얻을 수 있는 재설정기법(retraining)을 사용한다. 반면에, 재설정기법은 시뮬레이션을 위해 심지어 GP-CPU를 사용하더라도 수일이 걸릴 수 있다. 두 번째로, 높은 정밀도는 낮은 정밀도보다 저장 측면에서 저해 요인이 있다. 그래서 먼저 재설정기법에 대한 정확도 제약을 만족시킬 수 있는 SC 버전에 대한 균일정밀도를 파악한다. 모든 레이어들은 동일한 정밀도를 가지고 있기 때문에, 이것은 선형시간 내에서 해결될 수 있다. 균일정밀도는 각 레이어에 대한 정밀도 상한선으로 사용될 수 있다. 세 번째로, 균일정밀도를 아는 것은 하드웨어 정밀도를 결정하는 것에도 유용할 수 있다. 네 번째로, 검색의 속도를 높이기 위해, 기존 디지털 실행의 최적화된 정밀도의 결과를 사용할 수 있다. 그러나, 보통 둘 사이의 정밀도 사이 격차가 존재하기 때문에, 이 개념은 정밀도슬랙이라 불린다.
정밀도 슬랙을 설명하기 위해, 우선 기존의 디지털 실행이 5 레이어에 대해 10-9-5-6-8의 정밀도를 가지도록 최적화시킨다고 가정한다. 정밀도슬랙은 가장 높은 레이어와 현재 레이어의 정밀도 차이인 0-1-5-4-2이다. 그러면 정밀도 하한선을 도출하기 위해 균일정밀도 값으로부터 정밀도슬랙을 감산한다. 그것은 SC가 낮은 정밀도에 더 좋은 결과를 내기 때문에, 정확도가 정밀도 하한선에 더 민감하기 때문이다. 하한선은 선형검색 대신에 이중검색을 가능하게 하여, 재설정 시간을 줄일 수 있다.
[하드웨어 정밀도]
하드웨어 정밀도는 곱셈누적기의 영역과 지연 모두에 영향을 미친다. 그러므로 이 단계에서 결정되는 하드웨어 정밀도는 ADP의 변화에 따라 이전 단계에서 결정한 설정값의 최적도에 영향을 미친다. 이 문제를 방지하기 위해, 하드웨어 정밀도 결정을 처음에는 균일정밀도 값에 대해, 그 다음에는 발견된 비균일정밀도 설정값에 대해 두 번 반복한다. 최적의 하드웨어 정밀도를 결정하는 것은 간단하며, 선형성을 가지고 재설정이 필요하지 않을 때 빠르게 행해질 수 있다. 한편, 하드웨어 정밀도를 변화시키는 것은 인식정확도에 영향을 미치지 않는다.
상술한 세밀한 정밀도 조정이 가능한 곱셈누적기를 평가하기 위해, ImageNet-targeting DNN과 더 작은 신경회로망을 사용하여 종래의 기법과 비교하였다. 정확성과 신경망 트레이닝을 평가하기 위해 SC를 위해 개발된 Caffe를 사용하였고, 인지 정확도는 ImageNet 데이터세트의 처음 10,000개의 이미지에 대해 분석되었다. SC 구성은 데이터 중심으로 정확한 사이클을 계산하기 위해 사이클 단위로 정확하게 설계되었다.
기존의 SC-MVM(행렬 벡터 곱셈기)를 본 발명의 세밀한 정밀도 조정이 가능한 곱셈누적기에 확대 적용한 것을 세밀한 정밀도 조정이 가능한 행렬 벡터 곱셈기로 칭하여, 이전의 SC-MVM, 본 발명의 세밀한 정밀도 조정이 가능한 곱셈누적기 그리고 기존의 디지털 베이스 MVM을 모두 Synopsys Design Compiler를 사용하여 실행 및 합성가공하였다. 모든 합성가공은 SC가 더 높은 주파수를 충족하는 경향이 있지만 동일한 목표주파수인 1 GHz에 대해 수행되었다. 기존의 디지털 베이스는 고정점 바이너리 곱셈기를 라운딩누적기와 함께 사용하였다. Stripe를 위한 영역은 1개 당 디지털 베이스의 207%로 산출되었다. 모든 방법을 비교해 보았을 때, 합성레이어만 가속되어 이를 지연 비교 시 사용하였다. 정확도 감퇴는 1%로 설정되었다. 여기서, 주요 쟁점은 MVM 영역과 평균 MAC 사이클 혹은 역으로 영역당 작동을 나타내는 영역지연(ADP)이다.
[세밀한 정밀도 조정이 가능한 곱셈누적기 영역 오버헤드]
도 5는 본 발명의 세밀한 정밀도 조정이 가능한 SC-MVM와 이전의 SC-MVM의 영역 오버헤드를 비교한 그래프이다.
본 발명의 세밀한 정밀도 조정이 가능한 SC-MVM은 매우 적은 추가제어회로인 HRS모드와 같은 최적화기법이 적용된 것이다, 예상한 바와 같이, 도 5의 그래프는 본 발명의 세밀한 정밀도 조정이 가능한 SC-MVM 오버헤드가 x축에서 보여주는 하드웨어 정밀도에 따라 가변되기는 하지만 약 5% 주위에서 제일 적은 것으로 나타났다. 또한, 하드웨어 정밀도에 따라 영역이 정비례 혹은 비트병렬에 로그함수로 비례하는 것으로 나타났다. 이것은 비트스트림 순서 구조를 최적화시키기 때문이다. 전체적으로, 오버헤드의 평균영역은 6%로 작은 편이었다.
[ADP 대 소프트웨어 및 하드웨어 정밀도]
도 6은 본 발명의 소프트웨어 정밀도의 변화에 따른 ADP 경향을 나타내는 그래프이다.
본 발명의 SC-MAC가 데이터에 따라 가변되는 지연을 나타내기 때문에, ADP 결과를 위해 AlexNet 변수를 사용하였다. 디지털 베이스라인은 동적 정밀도를 지원하지 않아, ADP를 일정하게 유지하였다. Stripe에서는, 지연은 정밀도에 비례하고, 따라서 ADP는 선형으로 변화한다. 도 6의 그래프는 Stripe가 7~8비트를 넘어서면 기존의 디지털 베이스라인보다 비효율적인 것을 보여준다(①). 4의 하드웨어 정밀도를 가진 세밀한 정밀도 조정이 가능한 SC-MAC 인 DPS-4는 소프트웨어 정밀도가 증가함에 따라 ADP의 지수함수적인 증가를 확인할 수 있었다. 그러나, DPS-4의 소프트웨어 정밀도의 범위는 Stripe보다 저 넓었던 기존의 디지털 방식에 비해 더 효율적이었다. 8의 하드웨어 정밀도를 가진 세밀한 정밀도 조정이 가능한 곱셈누적기인 DPS-8은 심지어 효율적인 작동범위를 더 넓힐 수 있었다(②). 또한, 더 높은 정밀도에 대해 최적화되었기 때문에, 소프트웨어 정밀도가 낮아질수록 DPS-4에 비해 ADP가 더 높았다(③). 도 6의 그래프에 도시된 바와 같이, 피연산자 w가 0인 곱셈의 계산을 스킵하는 ZERO SKIPPING에 의해 효율 감소현상이 발생되지 않을 수 있다.
알려진 바와 같이, ADP는 하드웨어 정밀도의 영향을 받는다. 하드웨어 정밀도가 증가하면, 평균 지연은 일정하게 유지되기 전까지 감소하며, 반면에 영역증가는 하드웨어 정밀도에 대해 선형으로 증가한다. 이로 인해 하드웨어 정밀도의 최적화를 필요로 한다.
도 7은 하드웨어 정밀도에 따른 ADP를 비교한 것으로, (a)는 단일 DNN, (b)는 다수의 DNN의 경우를 나타내는 그래프이다.
AlexNet에서는, 하드웨어 정밀도가 증가함에 따라 처음에는 지연이 감소하지만 결국에는 일정하게 유지된다. 이 예에서는 DPS-4가 제일 최적일 것이다. 그러나 다른 DNN에서는, DNN에 따라 각기 다른 무게분포와 정밀도요구조건이 있기 때문에 다른 부분이 최적이 될 수 있다. 도 7b는 최적의 하드웨어 정밀도와 ADP가 어떻게 적용에 따라 변화하는 지를 보여준다. 이해하기 쉽게, 크고 높은 정밀도의 CNN이 높은 하드웨어 정밀도에서 더 개선된 기능을 보여주었다. 다음에서 서술할 다수 개의 적용 시나리오를 위한 하드웨어 정밀도는 이 프로파일에 따라 선택될 수 있다.
[다수 개의 적용 시나리오]
도 8은 본 발명의 세밀한 정밀도 조정이 가능한 SC-CNN과 기존의 CNN을, 격자의 MAC, 평균 사이클, ADP로 각각 비교한 그래프이다.
도 8a는 본 발명의 세밀한 정밀도 조정이 가능한 SC-CNN과 이전의 CNN을 영역에 대해 비교하고 있다. 예상한 바와 같이 SC의 면적 효율에 있어서 본 발명의 세밀한 정밀도 조정이 가능한 SC-CNN이 더 높았다. 또한, 도 8b에 도시된 바와 같이, 다른 것이 오직 256 MAC를 가지고 있던 반면, Stripe는 MAC의 수가 다른 것에 비해 16배 더 크기 때문에 가장 넓은 타일 면적을 가지고 있었다. 도 8d는 디지털 베이스라인에 대해 정상화된 ADP 결과값이다. 먼저, 모든 결과들은 하기 표 2와 같이 기준의 floating-point실행으로부터 1% 미만의 정확도 감소를 보인 결과들이다.
Figure 112018076661212-pat00029
도 8의 그래프가 이전의 SC-CNN과 비교되어 있지 않기 때문에, SC-CNN이 큰 CNN에서 이렇게 높은 정확도를 얻을 수 있는 것은 매우 중요할 것이다. 두 번째로, ADP로 측정되는 본 발명의 세밀한 정밀도 조정이 가능한 SC-CNN 효율성은 실제로는 기존의 디지털에 비해 꽤 많이 높다. 예를 들어, 큰 CNN에 최적화된 DPS-8은 일관되게 이전의 디지털 설계에 비해 더 개선된 결과를 보여준다. 이는 또한 본 발명의 세밀한 정밀도 조정이 가능한 SC-CNN이 효율적일 뿐만 아니라 유연한 적용 가능성이 있음을 입증한다. 세 번째로, ADP의 기하학적 수단으로 측정된 최적의 설계는 소네트워크의 존재에 의해 필연적으로 영향을 받는 합쳐진 DPS-6이다. 그러나 본 발명의 설계법은 운영시간에 가변 소프트웨어 정밀도를 지원하면서 동시에, 하드웨어 정밀도를 통해 각기 다른 워크로드를 유연하게 처리할 수 있다. 전체적으로, 본 발명의 DPS-6은 영역당 기능의 관점에서, 베이스라인과 Strip 보다 각각 2X, 1.5X 더 개선됨을 나타내고 있다.
[단일 적용 시나리오]
AlexNet과 같이 단일의 CNN을 위해 설계되고 사용된 최신의 SC-CNN을 포함한 다른 CNN과 본 발명의 SC-CNN을 비교하였다.
도 9는 본 발명의 세밀한 정밀도 조정이 가능한 SC-CNN와 타 CNN을 영역, 평균 지연 및 ADP에 대해 비교하여 나타낸 그래프이다.
여기서, 모든 데이터는 디지털 베이스에 대해 정상화되었다. SC 설계에서, 하드웨어 정밀도는 4로 설정되었다. 지원 가능한 최대 소프트웨어 정밀도(Q)는 높은 정밀도 요구조건으로 인해 인지정확성 제약을 충족하는 최소값으로 결정되었다. 정밀도조정알고리즘이 아닌, HRS만 적용하는 것 또한, 정밀도 요구조건을 지연에 있어서 확연한 절감인 1비트만큼 줄일 수 있었으나, 평균 지연은 오히려 기존의 디지털방식보다 높았다. 여기에 추가로 정밀도조정알고리즘을 적용하는 것은 ADP가 14% 더 감소되어 최고의 효율을 나타냈다. 정밀도조정알고리즘이 비교적 적은 퍼센트의 지연감소를 야기한 것은 AlexNet의 레이어 수가 작고 정밀도 요구조건이 제한되어 있기 때문이다. 심층 신경망과 최적의 정밀도가 조합되어 사용된다면, 효율증가는 더 클 것이다. 심지어 이러한 제약조건을 가지고도, 본 발명의 설계기법은 ADP에 있어서 디지털 베이스라인과 이전의 SC-CNN에 비해 각각 34% 및 46% 감소, 영역당 기능에 있어서는 52%, 85% 증가를 나타내었다.
[이전의 기법과 특징 비교]
성능 면에 있어서, 본 발명에서 제시한 기법은 하기 표 3에 요약된 바와 같이 많은 중요한 특징을 가지고 있다. 본 발명의 기법이 이전의 기법에 비해 더 좋은 효율을 나타내는 주요요인 중 하나는 가변 지연과 동적 정밀도의 조합과, 큰 DNN에 매우 효율적인 다수 개의 비트 가속화와, SC에 최적화된 HRS이다.
Figure 112018076661212-pat00030
상술한 바와 같이, 본 발명은 DNN이 실행 가능한 매우 정확하고 효율적인 SC-곱셈기 최적화 방안을 제안한다. 이것은 SC에 있어서 훨씬 더 적은 데이터세트를 처리하는 이전의 기법에 비해 파격적인 도약이다. SC에서 가장 드물다고 말할 수 있는, 가동시간에 입출력값 정밀도를 효율적으로 변화시키는 정밀도조정이 가능한 SC-MAC에 의해 이루어지는 정밀도의 최적 사용이 본 발명의 핵심 부분이다. HRS는 지연을 증가시키지 않고 1비트만큼 더 증가시킬 수 있다. 정밀도조정알고리즘은 SC-CNN 기법에서 적용 융통성을 매우 높여 주어 최적화 과제를 해결할 수 있다.
본 발명에서 설명하는 특정 실행들은 일 실시예들로서, 어떠한 방법으로도 본 발명의 범위를 한정하는 것은 아니다. 명세서의 간결함을 위하여, 종래 전자적인 구성들, 제어 시스템들, 소프트웨어, 상기 시스템들의 다른 기능적인 측면들의 기재는 생략될 수 있다. 또한, 도면에 도시된 구성 요소들 간의 선들의 연결 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것으로서, 실제 장치에서는 대체 가능하거나 추가의 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들로서 나타내어질 수 있다. 또한, “필수적인”, “중요하게” 등과 같이 구체적인 언급이 없다면 본 발명의 적용을 위하여 반드시 필요한 구성 요소가 아닐 수 있다.
본 발명의 명세서(특히 특허청구범위에서)에서 “상기”의 용어 및 이와 유사한 지시 용어의 사용은 단수 및 복수 모두에 해당하는 것일 수 있다. 또한, 본 발명에서 범위(range)를 기재한 경우 상기 범위에 속하는 개별적인 값을 적용한 발명을 포함하는 것으로서(이에 반하는 기재가 없다면), 발명의 상세한 설명에 상기 범위를 구성하는 각 개별적인 값을 기재한 것과 같다. 본 발명에서 모든 예들 또는 예시적인 용어(예들 들어, 등등)의 사용은 단순히 본 발명을 상세히 설명하기 위한 것으로서 특허청구범위에 의해 한정되지 않는 이상 상기 예들 또는 예시적인 용어로 인해 본 발명의 범위가 한정되는 것은 아니다. 또한, 당업자는 다양한 수정, 조합 및 변경이 부가된 특허청구범위 또는 그 균등물의 범주 내에서 설계 조건 및 팩터에 따라 구성될 수 있음을 알 수 있다.
이상 설명된 본 발명에 따른 실시예는 다양한 컴퓨터 구성요소를 통하여 실행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등과 같은, 프로그램 명령어를 저장하고 실행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의하여 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용하여 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위하여 하나 이상의 소프트웨어 모듈로 변경될 수 있으며, 그 역도 마찬가지이다.
이상에서 본 발명이 구체적인 구성요소 등과 같은 특정 사항과 한정된 실시예 및 도면에 의하여 설명되었으나, 이는 본 발명의 보다 전반적인 이해를 돕기 위하여 제공된 것일 뿐, 본 발명이 상기 실시예에 한정되는 것은 아니며, 본 발명이 속하는 기술분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정과 변경을 꾀할 수 있다.
따라서, 본 발명의 사상은 상기 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 또는 이로부터 등가적으로 변경된 모든 범위는 본 발명의 사상의 범주에 속한다고 할 것이다.
100 : 곱셈누적기
110 : 유한상태기계-멀티플렉서
120 : 다운 카운터
130 : 카운터

Claims (5)

  1. 확률적 컴퓨팅 곱셈 알고리즘을 이용한 곱셈누적기로서,
    제1 입력(x)을 획득하여 이진수(Binary Number)를 확률수(Stochastic Number)로 변환하는 유한상태기계-멀티플렉서(MUX-FSM);
    제2 입력(w)을 획득하며 0에 도달하면 정지되는 다운 카운터(Down Counter); 및
    상기 유한상태기계-멀티플렉서로부터의 입력에 기초하여 xw에 근사되는 출력값(y)을 생성하는 카운터;를 포함하고,
    상기 곱셈누적기에는,
    상기 제1 입력(x) 및 상기 제2 입력(w)에 대해 필요한 정밀도 수치(p)로 상기 제1 입력(x) 및 상기 제2 입력(w)의 정밀도를 1비트 단위로 조정이 가능한 정밀도조정알고리즘이 적용되고,
    상기 제1 입력(x) 및 상기 제2 입력(w)이 부호가 없는 비트인 경우, 상기 정밀도조정알고리즘은,
    상기 제1 입력(x) 및 상기 제2 입력(w)에 대해 필요한 정밀도 수치(p)를 입력받아, 상기 제1 입력(x)은 최상위비트(MSB)부터 상기 필요한 정밀도 수치(p)만큼 카운팅되고, 상기 제2 입력(w)은 최하위비트(LSB)부터 상기 필요한 정밀도 수치(p)만큼 카운팅된 후 그 이외의 자릿수만큼 제로확장(zero-extension)되어, 심층신경망(DNN)의 레이어별로 상이한 정밀도 요구조건을 세밀하게 충족시킬 수 있는 것을 특징으로 하는 세밀한 정밀도 조정이 가능한 곱셈누적기.
  2. 제1항에 있어서,
    상기 제1 입력(x) 및 상기 제2 입력(w)이 부호가 있는 비트인 경우,
    상기 카운터는 업-다운(up-down) 카운터로 이루어져 상기 제2입력(w)의 부호에 따라 카운트 업 혹은 카운트 다운시키며,
    상기 정밀도조정알고리즘은, 상기 제1 입력(x) 및 상기 제2 입력(w)에 대해 필요한 정밀도 수치(p)를 입력받아, 상기 제1 입력(x)은 부호비트인 최상위비트(MSB)가 NOT게이트에 의해 변환된 다음 상기 필요한 정밀도 수치(p)만큼 카운팅되고, 상기 제2 입력(w)은 최하위비트(LSB)부터 상기 필요한 정밀도 수치(p)만큼 카운팅된 후 그 이외의 자릿수만큼 부호확장(sign-extension)되며, 그 이후 상기 제1 입력(x) 및 상기 제2 입력(w)은 XOR게이트를 통해 상기 업-다운 카운터에 공급되는 것을 특징으로 하는 세밀한 정밀도 조정이 가능한 곱셈누적기.
  3. 제2항에 있어서,
    상기 제1 입력(x)을 부호가 없는 비트로 처리하여 상기 제1입력(x)의 정밀도를 부호비트가 아닌 비트로 1비트 더 증가시키고 상기 제2입력(w)의 정밀도는 동일하게 유지하여, 지연(latency)은 동일하나 정확도(accuracy)를 개선시킬 수 있는 HRS모드(Half-Range Specialization mode)가 적용되는 것을 특징으로 하는 세밀한 정밀도 조정이 가능한 곱셈누적기.
  4. 제3항에 있어서,
    상기 HRS모드는,
    상기 제1 입력(x)의 부호 유무를 제3 입력으로 생성하는 XIS(X Is Signed)회로를 포함하여,
    상기 제3 입력이 1일 경우, 부호가 있는 경우의 상기 정밀도조정알고리즘에 의해 계산되고,
    상기 제3 입력이 0일 경우, 상기 제1 입력(x)을 부호가 없는 경우로 인식되어, 상기 업-다운 카운터의 기능이 억제되는 것을 특징으로 하는 세밀한 정밀도 조정이 가능한 곱셈누적기.
  5. 삭제
KR1020180090416A 2018-08-02 2018-08-02 세밀한 정밀도 조정이 가능한 곱셈누적기 KR102037043B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180090416A KR102037043B1 (ko) 2018-08-02 2018-08-02 세밀한 정밀도 조정이 가능한 곱셈누적기

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180090416A KR102037043B1 (ko) 2018-08-02 2018-08-02 세밀한 정밀도 조정이 가능한 곱셈누적기

Publications (1)

Publication Number Publication Date
KR102037043B1 true KR102037043B1 (ko) 2019-10-28

Family

ID=68421797

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180090416A KR102037043B1 (ko) 2018-08-02 2018-08-02 세밀한 정밀도 조정이 가능한 곱셈누적기

Country Status (1)

Country Link
KR (1) KR102037043B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112783473A (zh) * 2021-01-20 2021-05-11 北京工业大学 一种使用单个DSP单元并行计算6个4Bit和3Bit整形数据乘法运算方法
KR20220031408A (ko) * 2020-09-04 2022-03-11 한양대학교 산학협력단 정밀도 스케일링을 이용한 알고리즘 성능 최적화 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8442927B2 (en) 2009-07-30 2013-05-14 Nec Laboratories America, Inc. Dynamically configurable, multi-ported co-processor for convolutional neural networks
US20160041813A1 (en) * 2014-08-06 2016-02-11 Wisconsin Alumni Research Foundation Multiplication Circuit Providing Dynamic Truncation
US20160328645A1 (en) * 2015-05-08 2016-11-10 Qualcomm Incorporated Reduced computational complexity for fixed point neural network

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8442927B2 (en) 2009-07-30 2013-05-14 Nec Laboratories America, Inc. Dynamically configurable, multi-ported co-processor for convolutional neural networks
US20160041813A1 (en) * 2014-08-06 2016-02-11 Wisconsin Alumni Research Foundation Multiplication Circuit Providing Dynamic Truncation
US20160328645A1 (en) * 2015-05-08 2016-11-10 Qualcomm Incorporated Reduced computational complexity for fixed point neural network

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220031408A (ko) * 2020-09-04 2022-03-11 한양대학교 산학협력단 정밀도 스케일링을 이용한 알고리즘 성능 최적화 방법
KR102380437B1 (ko) 2020-09-04 2022-03-29 한양대학교 산학협력단 정밀도 스케일링을 이용한 알고리즘 성능 최적화 방법
US11537395B2 (en) 2020-09-04 2022-12-27 Industry-University Cooperation Foundation Hanyang University Method for optimizing performance of algorithm using precision scaling
CN112783473A (zh) * 2021-01-20 2021-05-11 北京工业大学 一种使用单个DSP单元并行计算6个4Bit和3Bit整形数据乘法运算方法
CN112783473B (zh) * 2021-01-20 2024-02-02 北京工业大学 一种使用单个dsp单元并行计算整形数据乘法运算方法

Similar Documents

Publication Publication Date Title
US20240211252A1 (en) Computer processor for higher precision computations using a mixed-precision decomposition of operations
Zachariadis et al. Accelerating sparse matrix–matrix multiplication with GPU Tensor Cores
Sim et al. DPS: Dynamic precision scaling for stochastic computing-based deep neural networks
US20190042922A1 (en) Deep neural network architecture using piecewise linear approximation
US11714998B2 (en) Accelerating neural networks with low precision-based multiplication and exploiting sparsity in higher order bits
US10579338B2 (en) Apparatus and method for processing input operand values
GB2566702A (en) Hardware implementation of a deep neural network with variable output data format
CN114816331B (zh) 具有时钟选通的用于执行矩阵乘法的硬件单元
US11783200B2 (en) Artificial neural network implementation in field-programmable gate arrays
US11983567B2 (en) Processing data stream modification to reduce power effects during parallel processing
KR102037043B1 (ko) 세밀한 정밀도 조정이 가능한 곱셈누적기
Lee et al. Successive log quantization for cost-efficient neural networks using stochastic computing
Ueno et al. Bandwidth compression of floating-point numerical data streams for FPGA-based high-performance computing
US20210056446A1 (en) Inference accelerator using logarithmic-based arithmetic
US20200293863A1 (en) System and method for efficient utilization of multipliers in neural-network computations
Choi et al. MLogNet: A logarithmic quantization-based accelerator for depthwise separable convolution
US20210064976A1 (en) Neural network circuitry having floating point format with asymmetric range
Sim et al. Bitstream-based neural network for scalable, efficient, and accurate deep learning hardware
Raha et al. FlexNN: A Dataflow-aware Flexible Deep Learning Accelerator for Energy-Efficient Edge Devices
US20240111525A1 (en) Multiplication hardware block with adaptive fidelity control system
US20230110383A1 (en) Floating-point logarithmic number system scaling system for machine learning
Yu et al. An Energy Efficient Soft SIMD Microarchitecture and Its Application on Quantized CNNs
US20230077616A1 (en) Hardware acceleration of affine transformations
Wong et al. An improved deterministic stochastic MAC (SC-MAC) for high power efficiency design
US20230100785A1 (en) Priority encoder-based techniques for computing the minimum or the maximum of multiple values

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant