KR20230132795A - 정규화 기능을 위한 디지털 회로 - Google Patents

정규화 기능을 위한 디지털 회로 Download PDF

Info

Publication number
KR20230132795A
KR20230132795A KR1020237025885A KR20237025885A KR20230132795A KR 20230132795 A KR20230132795 A KR 20230132795A KR 1020237025885 A KR1020237025885 A KR 1020237025885A KR 20237025885 A KR20237025885 A KR 20237025885A KR 20230132795 A KR20230132795 A KR 20230132795A
Authority
KR
South Korea
Prior art keywords
input
output
mantissa
exponent
value
Prior art date
Application number
KR1020237025885A
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 마이크로소프트 테크놀로지 라이센싱, 엘엘씨
Publication of KR20230132795A publication Critical patent/KR20230132795A/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
    • G06F5/012Methods 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
    • 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/544Methods 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/556Logarithmic or exponential functions
    • 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/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • 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

Landscapes

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

Abstract

본 발명은 입력 값으로 2의 거듭제곱 값을 생성하는 디지털 회로를 포함한다. 예를 들어, 디지털 회로는 입력 값의 입력 가수를 나타내는 제1 디지털 비트와 입력 값의 입력 지수를 나타내는 제2 디지털 비트를 수신하는 조합 로직을 포함할 수 있다. 조합 논리는 입력 값이 양수 및 음수일 때 및 입력 지수가 제1 값 초과 및 미만일 때 입력 값의 2제곱의 근사값에 대응하는 복수의 출력 가수 및 복수의 출력 지수를 생성한다. 선택 회로는 출력 가수 및 출력 지수를 수신하도록 구성된다. 선택 회로는 출력 가수 및 하나의 출력 지수 중 하나를 선택하기 위해 입력 지수 및 입력 값의 입력 부호 비트에 결합된 선택 제어 입력을 포함한다.

Description

정규화 기능을 위한 디지털 회로
본 발명은 컴퓨팅에 관한 것으로, 특히 정규화 기능을 위한 디지털 회로에 관한 것이다.
인공 신경망(이하, 신경망)은 일반적으로 인공 지능 애플리케이션 및 현대 컴퓨팅에서 점점 더 중요해지고 있다. 신경망의 예가 도 1에 도시되어 있다. 신경망(100)은 인식될 특징에 대응하는 입력 값을 수신한다. 입력 값은 가중치(에지(101)로 표시됨)로 곱해지고 노드(102)에서 함께 더해진다(예를 들어, 합산됨). 활성화 함수는 출력 값을 생성하기 위해 노드(102)에서 결과에 적용된다. 값은 여러 노드와 노드 레이어에서 연결되어 결과에 해당하는 네트워크 출력 값을 생성한다.
이러한 시스템은 일반적으로 작업별 규칙으로 프로그래밍되지 않고, 예를 고려하여 작업을 수행하는 방법을 "학습(learn)"한다. 처음에는 가중치가 트레이닝되지 않았을 수 있다. 트레이닝 단계에서, 대응하는 알려진 결과에 대한 입력 값이 네트워크에서 처리되고, 네트워크 출력 값 간의 차이(또는 오류)는 알려진 값과 비교된다. 가중치는 계산이 역방향(예: 출력에서 입력으로)으로 흐르는 역전파(backpropagation)로 알려진 프로세스를 사용하여 오류를 기반으로 조정될 수 있다. 트레이닝에는, 많은 입력 샘플과 그에 상응하는 알려진 네트워크 출력 값에서 가중치를 연속적으로 조정하는 것이 포함될 수 있다. 이것은 흔히 트레이닝 단계라고 한다. 일단 트레이닝되면 시스템은 입력을 수신하고 의미 있는 결과(예: 분류 또는 인식)를 생성할 수 있다. 이를 흔히 추론 단계라고 한다.
신경망의 인기가 높아짐에 따라, 신경망을 사용하여 해결하는 문제의 복잡성도 증가하고 있다. 문제의 복잡성이 증가함에 따라, 네트워크의 크기와 계산 복잡성이 증가했다. 신경망에서 일반적이고 시간이 많이 걸리는 작업 중 하나는 정규화이다. 예를 들어 활성화(activation) 및 가중치가 곱해지고 네트워크의 노드 전체에서 합산되므로, 결과를 정규화하는 것이 일반적이다. Softmax는 이러한 정규화 함수 중 하나의 예이다. Softmax는 예를 들어 네트워크의 출력을 예측된 출력 클래스에 대한 확률 분포로 정규화하기 위해 신경망의 마지막 활성화 함수로 사용될 수 있다. 그러나 정규화 함수에는 네트워크 속도를 저하시킬 수 있는 복잡한 수치 계산이 필요한 경우가 많다. 본 명세서에 제시된 개시는 정규화 기능(및 다른 애플리케이션)에서 더 효율적으로 사용될 수 있는 디지털 회로 및 처리 기술을 제공한다.
다양한 실시예, 예 및 이점이 아래의 상세한 설명에서 설명된다.
본 개시내용의 다양한 실시예는 첨부된 도면의 수치들에 한정되지 않고 예로서 예시된다.
도 1은 예시적인 신경망을 도시한다.
도 2는 실시예에 따른 디지털 회로를 도시한다.
도 3은 다른 실시예에 따른 디지털 회로를 도시한다.
도 4는 다른 실시예에 따라 2x의 근사치를 생성하기 위한 예시적인 디지털 회로를 도시한다.
도 5a는 다른 실시예에 따라 4x의 근사치를 생성하기 위한 예시적인 디지털 회로를 도시한다.
도 5b는 또 다른 실시예에 따라 4X의 근사치를 생성하기 위한 또 다른 예시적인 디지털 회로를 도시한다.
도 6은 일 실시예에 따른 정규화 시스템을 도시한다.
도 7은 실시예에 따른 방법을 도시한다.
도 8은 일부 실시예에 따른 신경망 처리 시스템을 도시한다.
이하의 설명에서, 설명의 목적으로, 본 개시의 완전한 이해를 제공하기 위해 많은 예 및 특정 세부 사항이 제시된다. 이러한 예 및 세부 사항은 청구 범위의 요소 또는 청구 대상 전체를 부당하게 제한하는 것으로 해석되어서는 안 된다. 청구된 주제가 단독으로 또는 조합하여 이들 예의 특징의 일부 또는 전부를 포함할 수 있고, 상이한 청구항의 언어에 기초하여 본원에 기재된 특징 및 기술의 변형 및 등가물을 추가로 포함할 수 있다는 것이 당업자에게 명백할 것이다.
본 발명의 특징 및 장점은 입력 값(예를 들어, 부동 소수점)을 수신하고 입력 값 x만큼 거듭제곱된 2의 거듭제곱(예를 들어, 2X, 4X 등)의 근사값(예를 들어, 2, 4, ...)에 대응하는 출력 값을 생성하는 디지털 회로를 포함한다. 아래에서 더 자세히 설명하는 것처럼, Softmax 함수는 이러한 함수를 사용하여 근사화될 수 있다. 유리하게도, 이러한 함수는 조합 디지털 로직으로 구현될 수 있으며, 이는 예를 들어 다수의 클록 사이클에 대한 대기 없이 출력을 생성할 수 있다. 따라서, 일부 예시적인 실시예는 출력이 현재 입력뿐만 아니라 이전 입력(예를 들어, 데이터가 저장됨)에도 의존하는 순차 로직과 달리 현재 입력에만 기초하여 출력을 생성할 수 있다. 이것은 예를 들어 Softmax 기능의 많은 근사치를 구현할 수 있는 더 빠르고 더 낮은 대기 시간 시스템을 만들어낼 수 있다.
도 2는 실시예에 따른 디지털 회로(200)를 도시한다. 회로(200)는 부동 소수점 표현으로 입력 값(201)을 수신한다. 입력 값(Xi)(201)은 디지털 비트로 표현되는 입력 지수(ex), 입력 가수(mx) 및 입력 부호 비트(sx)를 포함한다. 디지털 회로(200)는 입력 가수 mx를 나타내는 디지털 비트와 입력 지수 ex를 나타내는 디지털 비트를 수신하고, 입력 값만큼 거듭제곱된 이(2)의 거듭제곱의 근사값에 대응하는 복수의 출력 가수 및 복수의 출력 지수(250)를 생성하는 조합 로직(210)을 포함한다. 하나의 예시적인 실시예에서, 조합 로직(210)은 입력 가수의 복수의 시프트 버전을 생성하며, 입력 가수는 출력 가수 및 출력 지수를 생성하기 위해 입력 지수에 기초하여 시프트된다. 유리하게는, 예를 들어, 입력 값이 양수 및 음수이고 입력 지수가 제1 값 초과 및 미만일 때, 별도의 출력 가수 및 출력 지수가 4개의 사분면에 걸쳐 생성될 수 있다.
디지털 회로(200)는 선택 회로(220)를 더 포함한다. 선택 회로(220)는 출력 가수 및 출력 지수(250)를 수신하고 하나의 최종 출력 가수(251) 및 하나의 최종 출력 지수(252)를 생성하도록 구성된다. 따라서, 본 발명의 실시예는 예를 들어 선택 회로(220)에 멀티플렉서와 같은 둘 이상의 선택 회로를 포함할 수 있다. 선택 회로(220)는 입력 값(Xi)의 입력 부호 비트 및 입력 지수에 연결된 선택 제어 입력을 포함할 수 있다. 여기 및 아래의 추가 실시예에서 도시된 바와 같이, 본 개시의 특징은 입력 지수 및 입력 부호 비트에 기초하여 최종 출력 가수(251)로서 출력 가수 중 하나를 선택하고 최종 출력 지수(252)로서 출력 지수 중 하나를 선택하는 것을 포함한다. 디지털 회로(200)는 입력 값만큼 거듭제곱된 2의 거듭제곱의 근사값(예를 들어, Nx, N = 2, 4, 8, 16, ...)를 구현하기 때문에, 출력 부호 비트는 상수 값 1이고, 예를 들어 230에서 하드와이어링될 수 있다. 따라서, 디지털 회로(200)에 의해 생성된 출력 값(Yi)(202)은 또한 지수(ey), 가수(my) 및 부호 비트(sy)를 포함하는 부동 소수점 값일 수 있다. 유리하게는, 일부 실시예에서, 입력 값(Xi)의 스트림은 예를 들어 Softmax 함수의 근사치의 효율적인 계산을 위해 매우 빠르게(예를 들어, 각 클록 사이클에서) 출력 값(Yi)으로 변환될 수 있다.
도 3은 다른 실시예에 따른 디지털 회로를 도시한다. 본 발명의 특징 및 이점은 출력 가수 및 출력 지수를 생성하기 위해 지수에 기초하여 입력 값의 가수를 시프트하는 것을 포함하며, 이는 입력 지수 및 입력 부호 비트에 기초하여 선택될 수 있다. 이 예에서, 디지털 회로(314)는 입력 부호 비트, 입력 지수 및 입력 가수를 포함하는 입력 값(312)을 수신하고, 출력 부호 비트, 출력 지수 및 출력 가수를 포함하는 입력으로 거듭제곱된 이(2)의 거듭제곱(예를 들어, 2x, 4x)과 거의 동일한 출력 값(316)을 생성한다. 디지털 회로(314)는 이 예에서 시프터 회로(322)를 포함하는 조합 로직(320)을 포함한다. 복수의 시프터 회로는 예를 들어 입력 가수 및 입력 지수를 수신할 수 있다. 본 개시의 특징 및 이점은, 입력 부호 비트(334) 및 입력 지수(332)에 기초한 최종 출력으로서 하나의 출력 가수/지수 쌍을 선택하기 위해 선택 회로(326 및 328)에 연결된 복수의 출력 가수(336) 및 출력 지수(338)를 생성하도록 입력 지수(332)에 기초하여 입력 가수(330)를 이동시키는 것을 포함한다. 시프터 회로는 입력 가수의 좌측 및 우측 시프트 버전을 생성할 수 있다. 예를 들어, 우측 시프터 회로는 입력 가수를 상수에 더하도록 구성된 로직 회로를 통해 입력 가수(330)에 연결된 제1 입력 및 입력 지수를 부정(negate)하도록 구성된 로직 회로를 통해 입력 지수(332)에 연결된 시프트 입력을 포함할 수 있다. 추가로, 제1 좌측 시프터 회로는 예를 들어 입력 가수(330)를 수신하도록 연결된 제1 입력 및 입력 지수(332)에 연결된 시프트 입력을 포함할 수 있다. 입력 가수의 우측 시프트 버전은 제1 출력 가수 및 제2 출력 가수를 형성하는 데 사용될 수 있고, 입력 가수의 좌측 시프트 버전의 하위 비트는 제3 출력 가수 및 제4 출력 가수를 형성하는 데 사용될 수 있다. 또한, 입력 가수의 좌측 시프트 버전의 상위 비트는 제1 출력 지수 및 제2 출력 지수를 형성하는 데 사용될 수 있다. 이러한 기술에 대한 추가 예와 예시가 아래에 제공된다.
일부 예시적인 실시예에서, 시프터 회로는 조합 로직을 사용하여(예를 들어, 임의의 순차 로직 및 시간 경과에 따라 데이터를 저장하는 연관 지연을 사용하지 않고) 특정 수의 비트만큼 데이터 워드를 시프트할 수 있는 디지털 회로인 배럴 시프터 회로이다. 배럴 시프터는 예를 들어 단일 클록 주기에서 결과를 얻는 것이 바람직한 응용 분야에서 유리할 수 있다.
각각의 출력 가수(336)는 예를 들어 입력 지수(332) 및 입력 부호 비트(334)에 대한 특정 쌍의 값에 대응하는 연관된 출력 지수(338)를 가질 수 있다(예를 들어, 1보다 크거나 작은 sx 및 0 또는 -1보다 크거나 작은 ex에 대한 튜플의 4 세트). 선택 회로(326 및 328)는 입력 지수(332) 및 입력 부호 비트(334)에 의해 제어된다. 따라서, 최종 출력 가수(340) 및 최종 출력 지수(342)는 입력 지수(332) 및 입력 부호 비트(334)에 기초하여 복수의 출력 가수(336) 및 출력 지수(338)로부터 선택될 수 있다.
따라서, 선택 회로(326)는 상이한 출력 가수를 생성할 수 있고, 선택 회로(328)는 입력 부호 비트 및 입력 지수에 기초하여 상이한 출력 지수를 생성할 수 있다. 먼저, 선택 회로(326 및 328)는 입력 가수와 상수의 합의 시프트 버전을 포함하는 최종 출력 가수 및, 입력 부호 비트가 양수이고 입력 지수가 제1 값(예를 들어, 0 또는 -1)보다 작은 경우 제로 값(0)을 갖는 출력 지수를 생성할 수 있다. 둘째, 선택 회로(326 및 328)는 입력 가수의 또 다른 시프트 버전의 계수를 포함하는 최종 출력 가수 및, 입력 부호 비트가 양수이고 입력 지수가 제1 값보다 큰 경우 입력 가수의 시프트 버전의 정수 나눗셈에 더해진 입력 지수에 기초하여 시프트된 일(1)의 디지털 값을 갖는 최종 출력 지수를 생성할 수 있다. 셋째, 선택 회로(326 및 328)는 제2 상수에서 빼기된(substracted), 입력 가수와 상수의 합의 제1 시프트 버전을 포함하는 최종 출력 가수, 및 입력 부호 비트가 음이고 입력 지수가 제1 값보다 작은 경우 마이너스 일(-1) 값을 갖는 최종 출력 지수를 생성할 수 있다. 마지막으로, 선택 회로(326 및 328)는 제2 상수에서 빼기된, 입력 가수의 제2 시프트 버전의 모듈러스를 포함하는 최종 출력 가수, 및 입력 부호 비트가 음이고 입력 지수가 제1 값보다 큰 경우 제2 출력 지수 빼기 일(1)의 부정(negation)을 포함하는 최종 출력 가수를 생성할 수 있다. 위 기술의 다양한 예시 구현 및 추가 설명이 아래에 제공된다.
구현 예
도 4는 다른 실시예에 따라 2X의 근사치를 생성하기 위한 예시적인 디지털 회로(400)를 도시한다. 디지털 회로(400)는 우측 시프터 회로(410), 좌측 시프터 회로(412) 및 좌측 시프터 회로(414)를 포함한다. 입력 가수(450)는 가산기 회로(402)에 연결된다. 가산기 회로(402)는 또한 상수 값(N)(401)을 수신하고 입력 가수와 상수(N)의 합을 출력한다. 예를 들어, 0과 128(mx, 0 ≤ mx < 128) 사이의 값을 취할 수 있는 입력 가수의 경우, 상수 N은 128과 같을 수 있다. 다양한 실시예에서, 가산기(402)는 예를 들어, 아래 추가 예에서 아래에 예시되는 바와 같이 구현하기 위해 OR 로직으로 대체될 수 있다(예를 들어, 128 OR mx). 가산기(402)의 출력은 우측 시프터(410)의 입력에 연결된다. 시프트 연산을 제어하는 우측 시프터(410)의 시프트 입력은 입력 지수(ex)를 수신하고 입력 지수(-ex)의 음수를 생성하는 부정 회로(-x)(408)를 통해 입력 지수(451)에 연결된다. 예를 들어, 우측 시프터 회로(410)는 다음과 같이 0과 128 사이의 값을 갖는 입력 가수(450)의 우측 시프트 버전을 생성할 수 있다:
(128 + Mx )≫ -(ex)
전술한 입력 가수의 우측 시프터 버전은 입력 부호 비트가 +1이고 입력 지수가 영(0)보다 작은 경우에 대한 2x의 값에 대한 제1 출력 가수(460)이다.
입력 가수(450)는 또한 좌측 시프터(412)의 입력에 연결된다. 좌측 시프터(412)의 시프트 입력은 입력 지수(451)에 연결된다. 따라서 좌측 시프터(412)는 입력 가수의 좌측 시프트 버전을 생성한다. 입력 가수의 좌측 시프트 버전의 하위 비트는 모듈러스 함수를 형성한다. 이 예에서, 입력 가수의 좌측 시프트 버전의 하위 비트는, 다음과 같이, 입력 부호 비트가 +1이고 입력 지수가 0보다 크거나 같을 때 2x의 값에 대한 제2 출력 가수(461)에 대응한다..
(mx ≪ (ex))mod 128.
이 예에서, 제1 및 제2 출력 가수(460-461)는 멀티플렉서(Mux)(416)에 연결된다. Mux(416)의 출력은 Mux(420)의 입력으로 연결되고, Mux(420)의 출력이 최종 출력 가수를 생성한다. Mux(416 및 420)는 출력 가수(460-461) 중 하나를 선택하기 위해 입력 부호 비트(452) 및 입력 지수(451)의 값에 기초하여 선택 제어 신호(Select 0 및 Select 1)를 갖는다.
추가 출력 가수를 형성하기 위해 입력 가수의 우측 및 좌측 시프트 버전을 상수(M)에서 감산할 수 있다. 이 예에서, Mux(416)의 출력은 상수 감산 로직 회로(418)(M-x)에 연결되고, 이는 상수 값(예를 들어, 0-128 사이의 값을 갖는 가수에 대해 127)에서 Mux(416)의 출력을 뺀다. 따라서 감산 회로의 출력은 다음 중 하나일 수 있다:
127 - (128 + mx) ≫ -(ex) 또는 127
127 - (mx ≪ (ex))mod 128.
이들 대체 출력은 입력 부호 비트가 -1이고 입력 지수가 양수 또는 음수일 때 2x의 값에 대한 제3 및 제4 출력 가수를 형성한다. 출력 가수는 Mux(420)에 의해 최종 출력 가수로 선택될 수 있다.
복수의 출력 지수는 또한 시프터 회로로부터 생성될 수 있다. 다양한 실시예에서, 출력 지수는 입력 지수(2ex)의 2승 값에 좌측 시프트된 입력 가수의 상위 비트를 더함으로써 생성될 수 있다. 이 예에서, 디지털 회로(400)는 일(1)의 값(예를 들어, 1의 이진 값 또는 1의 비트 값)에 연결된 입력 및 입력 지수(451)에 연결된 시프트 입력을 갖는 좌측 시프터 회로(414)를 더 포함하며, 여기서 입력 지수만틈 1을 좌측 시프트하면 2ex가 된다. 좌측 시프터(412)로부터의 상위 비트는 정수 나누기 함수(DIV)를 형성한다. 따라서, 시프터(412) 및 시프터(414)의 출력은 다음과 같이 출력 지수(464)를 생성하기 위해 가산기(422)에서 더해질 수 있다::
2e x + ((mx ≪ (ex)mod 128).
가산기(422)의 출력은 다음과 같이 또 다른 출력 지수(465)를 생성하기 위해 부정 회로(-1-x)(424)를 통해 더 연결된다:
2e x -((mx ≪ (ex)mod 128)-1.
마지막으로, 출력 지수(464)는 Mux(432)의 제1 입력에 연결되고, 출력 지수(465)는 Mux(432)의 제2 입력에 연결된다. 영(0)(428) 및 마이너스 일(1)(430)의 값은 Mux(432)의 다른 입력에 연결된다. 2X에 대한 최종 출력 가수 및 지수는 다음과 같이 선택될 수 있다:
<표 1>
따라서, 디지털 회로(400)는 입력 지수 및 입력 부호 비트를 수신하고 가수 선택 회로(예를 들어, Mux(416 및 420)) 및 지수 선택 회로(예를 들어, Mux(432))에 대한 제어 신호(Select 0, Select 1)를 생성하도록 구성된 제어 로직(470)을 더 포함한다. 선택 제어 신호 Select 0 및 Select 1은 입력 부호 비트가 양이고 입력 지수가 0보다 작은 경우, Mux(420)의 출력이 우측 시프터 회로(410)의 출력에 연결되고 Mux(432)의 출력이 영(0) 값(428)에 연결되도록 멀티플렉서를 구성한다. 또한 선택 제어 신호 Select 0 및 Select 1은 Mux(420)의 출력이 좌측 시프터 회로(412)의 하위 비트에 연결되고, 입력 신호 비트가 양수이고 입력 지수가 0보다 크거나 같을 때 지수 선택 회로의 출력이 좌측 시프터 회로(412)의 상위 비트와 입력 지수에 해당하는 2의 거듭제곱 값의 합에 연결된다. 다음으로, 선택 제어 신호 Select 0 및 Select 1은 Mux(420)의 출력이 상수 감산 로직 회로(418)를 통해 우측 쉬프터 회로(410)의 출력에 연결되고, 멀티플렉서(432)의 출력은 입력 부호 비트가 양수이고 입력 지수가 0보다 작은 경우, 상수인 마이너스 일(-1)의 값에 연결되도록 멀티플렉서를 구성한다. 마지막으로 선택 제어 신호 Select 0과 Select 1은 Mux(420)의 출력이 상수 감산 로직 회로(418)를 통해 좌측 시프터 회로의 하위 비트에 연결되고, 입력 부호 비트가 음이고 입력 지수가 제1 값보다 큰 경우, 멀티플렉서(432)의 출력이 좌측 시프터의 상위 비트와 입력 지수에 대응하게 거듭제곱된 2의 값의 합의 네거티브 값에 연결되도록 멀티플렉서를 구성한다.
먹스(416, 420 및 432)는 선택 회로의 예이고, 도 4의 다른 회로는 입력 값의 입력 가수를 나타내는 제1 디지털 비트 및 입력 값의 입력 지수를 나타내는 제2 디지털 비트를 수신하고, 복수의 출력 가수 및 복수의 출력 지수를 생성하기 위한 조합 로직 메커니즘의 일례이다.
도 5a는 다른 실시예에 따라 4x의 근사치를 생성하기 위한 예시적인 디지털 회로(500A)를 도시한다. 이 예에서 예시된 바와 같이, 전술한 기술은 4x의 근사치를 생성하기 위한 디지털 회로를 구현하는 데에도 사용될 수 있다. 4x 근사치의 경우 상수(예: ex+1)에 추가된 입력 지수를 기준으로 가수가 이동된다. 따라서 디지털 회로 500A는 입력 지수에 1의 값을 더하는 a+1 가산기 회로를 더 포함한다. 이 예에서, 입력 가수와 시프터(410) 사이의 가산기는 위에서 언급한 바와 같이 OR 로직로 대체된다. 다음 표는 디지털 회로 500A의 동작을 설명한다.
<표 2>
먹스(416, 420 및 432)는 선택 회로의 예이고, 도 5a의 다른 회로는 입력 값의 입력 가수를 나타내는 제1 디지털 비트 및 입력 값의 입력 지수를 나타내는 제2 디지털 비트를 수신하고 복수의 출력 가수 및 복수의 출력 지수를 생성하기 위한 추가적인 예시적인 조합 로직 메커니즘이다.
도 5b는 다른 실시예에 따라 4X의 근사치를 생성하기 위한 다른 예시적인 디지털 회로(500B)를 도시한다. 이 예에서, Mux(418)는 제거되고 Mux(520)는 입력 가수에 연결된 하나의 입력 및 OR 로직(502)를 통해 입력 가수에 연결된 다른 입력을 갖는다. 이 예에서, 시프터(521)는 양방향 시프터이고, 여기서 시프트 방향(좌측/우측)은 시프트 극성 입력(여기서는 입력 부호 비트)에 의해 설정된다. 시프트 극성 입력 s에 대해, 시프팅은 (s==0: 시프팅 없음, S>0: s 위치 좌측으로 시프트, S<0: s 위치 우측으로 시프트)이다. 디지털 회로(500B)의 동작은 위의 표 2에 나타낸 것과 동일하다. 가산기 회로(+1)(504)를 제거하면 위의 표 1에 설명된 것과 동일한 동작이 발생한다.
먹스(520, 420 및 432)는 선택 회로의 추가 예이고, 도 5b의 다른 회로는 입력 값의 입력 가수를 나타내는 제1 디지털 비트 및 입력 값의 입력 지수를 나타내는 제2 디지털 비트를 수신하고 복수의 출력 가수 및 복수의 출력 지수를 생성하기 위한 추가적인 예시적인 조합 로직 메커니즘이다.
도 6은 일 실시예에 따른 정규화 시스템(600)을 도시한다. 이 예에서, 입력 벡터는 Ax를 결정하기 위해 근사 회로(602)에 의해 수신되며, 여기서 A는 2의 거듭제곱이다. 회로(602)는 위의 기술 중 하나를 사용하여 구현될 수 있다. 회로(602)는 Softmax 함수의 근사치와 같은 정규화 함수를 결정하는 데 사용될 수 있는 Ax의 값을 생성한다. 예를 들어, Ax의 값은 버퍼(604)에 저장될 수 있다. 값은 합산 회로(606)에서 함께 더해질 수 있다. 나눗셈 회로(608)는 버퍼(604)의 값과 합산된 값 에 액세스하여 정규화된 값 을 생성할 수 있다. 정규화된 값은 예를 들어 행렬 곱셈 회로(610)에 연결될 수 있다. 일부 실시예에서 정규화된 값은 예를 들어 신경망 데이터를 처리하는 데 사용된다.
다음은 위의 회로 동작이 Softmax 함수를 근사화할 수 있는 방법을 설명한다. softmax 함수는 다음과 같이 정의된다:
Softmax의 exi와 "유사한(similar)" 함수는 다음과 같은 속성을 가질 수 있다: 부동 소수점에서 계산하기 쉽고, 엄격하게 단조롭고, 빠르게 성장한다. 이 예에서는 bfloatl6을 예로 사용했지만 fp32 및 bfloat로 확장될 수 있다. bfloatl6 번호는 다음과 같이 정의된다:
여기서 sx는 x의 부호(예를 들어, sx = +1 또는 sx = -1)이고, ex는 x의 지수(예를 들어, -7 ≤ ex <= 1)이며, mx는 x의 가수(예를 들어, 0 < mx < 128)이다. bfloatl6에서 2ex를 계산할 때 결과는 ex < -7의 경우 0이고 ex > 7의 경우, 경계에서 확인이 수행될 수 있으나, 큰 지수에 대해서는 구현할 필요가 없다. 또한 IEEE FP 번호의 경우 지수 오프셋이 존재한다.
Softmax는 2의 거듭제곱을 사용하여 근사화될 수 있다. 예를 들어 Softmax2는 다음과 같이 정의될 수 있다:
Softmax(x) = Softmax2(log2(e)*x) = Softmax2(1.44*x)임을 알 수 있다. 즉, 더 나은 근사치를 얻기 위해 2x를 근사화하는 회로를 호출하기 전에 x에 1.44를 곱할 수 있다.
다음으로, 2x i의 근사치는 다음과 같을 수 있다:
를 근사화하면,
부호 비트 및 입력 지수의 상이한 값에 대한 4가지 경우가 있다:
사례 A: sx = +1 및 ex < 0(예를 들어, 작은 양수):
사례 B: sx = +1 및 ex ≥ 0(예를 들어, 큰 양수):
이것은 -7 ≤ ex <= 7인 시프팅 및 "비트 선택(bit-picking)"이기 때문에 구현이 매우 간단하다는 점에 유의한다(예를 들어, mx는 좌측-시프트되고, 전술한 바와 같이 하위 7 비트는 가수에서 사용되며 상위 비트는 지수에서 사용된다).
사례 C: sx = -1 및 ex < 0(예를 들어, 작은 음수):
사례 D: sx = -1 및 ex ≥ 0(예를 들어, 큰 음수):
다음은 4의 거듭제곱을 사용하여 근사화된 Softmax를 예시한다. 예를 들어, Softmax4 는 다음과 같이 정의된다:
이제 를 근사화한다.
를 근사화한다.
사례 A: sx = +1 및 ex < - 1(e.g., 작은 양수):
사례 B: sx = +1 및 ex ≥ - 1(예를 들어, 큰 양수):
다시, 구현은 -7 ≤ ex <= 7인 시프팅 및 "비트 선택(bit-picking)"을 포함한다(예를 들어, mx는 좌측으로 이동됨: 하위 7비트는 가수에 사용될 수 있고 상위 비트는 지수에 사용된다).
사례 C: sx = -1 및 ex < - 1(예를 들어, 작은 음수):
사례 D: sx = - 1 및 ex ≥ -1(예를 들어, 큰 음수):
도 7은 실시예에 따른 방법(700)을 예시한다. 702에서, 제1 디지털 비트 및 제2 디지털 비트가 디지털 회로에서 수신된다. 제1 디지털 비트는 입력 값의 가수를 나타내고 제2 디지털 비트는 입력 값의 지수를 나타낸다. 입력 값은 예를 들어 부동 소수점 형식일 수 있으며 부호 비트를 더 포함할 수 있다. 704에서, 복수의 출력 가수 및 복수의 출력 지수가 생성된다. 출력 가수 및 출력 지수는 입력 값 x로 거듭제곱된 2의 거듭제곱(예: 2x, 4x, ...)의 근사값에 대응한다. 706에서, 입력 지수 및 입력 부호 비트에 기초하여 복수의 출력 가수 중 하나와 복수의 출력 지수 중 하나가 선택된다. 따라서, 방법(700)은 예를 들어 신경망에서 Softmax 함수를 근사화하는 데 사용될 수 있는 2x, 4x 등의 근사치에 대응하는 디지털 값(예를 들어, 부동 소수점 형식)을 생성한다. 입력 값만큼 거듭제곱된 2의 거듭제곱을 근사시킨 디지털 값을 출력하는 회로는 다른 응용에서도 사용될 수 있다.
도 8은 일부 실시예에 따른 신경망 처리 시스템을 도시한다. 다양한 실시예에서, 본 개시에 따른 신경망은 하나 이상의 신경망 프로세서를 포함하는 하드웨어 환경에서 구현되고 트레이닝될 수 있다. 신경망 프로세서는 다양한 GPU(Graphics Processing Unit)(예: Nvidia Corp®에서 생산한 신경망을 처리하기 위한 GPU), FPGA(Field Programmable Gate Array)(예: Xilinx®에서 생산한 신경망을 처리하기 위한 FPGA), 또는 예를 들어 신경망 계산에 최적화된 하드웨어 아키텍처를 포함하는 다양한 ASIC(Application Specific Integrated Circuits) 또는 신경망 프로세서를 지칭할 수 있다. 이 예시적인 환경에서, 위의 도 9에 예시된 아키텍처를 포함할 수 있는 하나 이상의 서버(1002)는 통신 네트워크(1001)(예를 들어, 스위치, 라우터 등)를 통해 복수의 컨트롤러(1010(1)-1010(M))에 연결될 수 있다. 컨트롤러(1010(1)-1010(M))는 또한 위의 도 9에 도시된 아키텍처를 포함할 수 있다. 각각의 컨트롤러(1010(1)-1010(M))는 예를 들어 프로세서(1011(1)-1011(N) 및 1012(1)-1012(N))와 같은 하나 이상의 NN 프로세서에 연결될 수 있다. NN 프로세서(1011(1)-1011(N) 및 1012(1)-1012(N))는 트레이닝 또는 추론과 같은 신경망 처리에 최적화된 기능 처리 블록 및 메모리의 다양한 구성을 포함할 수 있다. 도 8의 NN 프로세서는 값(예를 들어, Softmax 함수의 근사치)을 정규화하기 위해 여기에 설명된 디지털 회로를 포함할 수 있다. NN 프로세서는 신경망 계산에 최적화되어 있다. 서버(1002)는 예를 들어 병렬로 NN 프로세서(1011(1)-1011(N) 및 1012(1)-1012(N))에 의해 로드되고 실행될 수 있는 모델에 대한 입력 데이터뿐만 아니라 NN 모델로 컨트롤러(1010)를 구성할 수 있다. 모델은 예를 들어 위에 설명된 레이어 및 연관 가중치를 포함할 수 있다. NN 프로세서는 모델을 로드하고 입력을 적용하여 출력 결과를 생성할 수 있다. 예를 들어 NN 프로세서는 트레이닝 알고리즘을 구현할 수도 있다. 여기에 설명된 디지털 회로는 예를 들어 트레이닝 및 추론 모두에 사용될 수 있다.
추가 예시 실시예
다양한 실시예에서, 본 발명은 정규화에 사용될 수 있는 근사값을 생성하기 위한 시스템, 방법 및 장치를 포함한다. 하기 실시예는 단독으로 또는 다양한 조합으로 사용될 수 있다.
일 실시예에서, 본 개시는 디지털 회로를 포함하고, 이는 입력 값의 입력 가수를 나타내는 제1 디지털 비트와 입력 값의 입력 지수를 나타내는 제2 디지털 비트를 수신하는 조합 로직(combinational logic) - 조합 로직은 입력 값이 양수 및 음수일 경우 및 입력 지수가 제1 값 초과 및 미만일 때 입력 값만큼 거듭제곱된 2의 거듭제곱의 근사값에 대응하는 복수의 출력 가수 및 복수의 출력 지수를 생성함 - 과, 복수의 출력 가수 및 복수의 출력 지수를 수신하도록 구성된 2개 이상의 선택 회로 - 선택 회로는 복수의 출력 가수 중 하나와 복수의 출력 지수 중 하나를 선택하기 위해 입력 지수에 연결된 선택 제어 입력 및 입력 값의 입력 부호 비트를 포함함 - 를 포함한다.
다른 실시예에서, 본 개시는 하나 이상의 시프터 회로를 포함하는 조합 로직에서, 입력 값의 입력 가수를 나타내는 제1 디지털 비트 및 입력 값의 입력 지수를 나타내는 제2 디지털 비트를 수신하는 단계와, 조합 로직에서, 입력 값이 양수 및 음수인 경우 및 입력 지수가 제1 값 초과 및 미만인 경우, 입력 값만큼 거듭제곱된 2의 거듭제곱의 근사값에 대응하는 복수의 출력 가수 및 복수의 출력 지수를 생성하는 단계와, 복수의 출력 가수 및 복수의 출력 지수를 수신하도록 구성된 둘 이상의 선택 회로에 의해, 입력 지수 및 입력 값의 입력 부호 비트에 기초하여 복수의 출력 가수 중 하나 및 복수의 출력 지수 중 하나를 선택하는 단계를 포함한다.
또 다른 실시예에서, 본 개시는 디지털 회로를 포함하며, 이는 입력 값의 입력 가수를 나타내는 제1 디지털 비트와 입력 값의 입력 지수를 나타내는 제2 디지털 비트를 수신하기 위한 조합 로직 수단 - 조합 로직 수단은 입력 값이 양수 및 음수일 경우 및 입력 지수가 제1 값 초과 및 미만인 경우, 입력 값만큼 거듭제곱된 2의 거듭제곱의 근사값에 대응하는 복수의 출력 가수 및 복수의 출력 지수를 생성함 - 과, 복수의 출력 가수 및 복수의 출력 지수를 수신하고 입력 지수 및 입력값의 입력 부호 비트에 기초하여 복수의 출력 가수 중 하나 및 복수의 출력 지수 중 하나를 선택하는 선택 회로 수단을 포함한다.
일 실시예에서, 조합 로직은 입력 지수에 기초하여 입력 가수의 복수의 시프트 버전을 생성하여 복수의 출력 가수 및 복수의 출력 지수를 생성한다.
일 실시예에서, 2개 이상의 선택 회로는, 제1 입력 가수의 제1 시프트 버전과 제1 상수의 합을 포함하는 제1 출력 가수 및, 입력 부호 비트가 양수이고 입력 지수가 제1 값보다 작은 경우, 0의 값을 갖는 출력 지수와, 입력 가수의 제2 시프트 버전의 모듈러스를 포함하는 제2 출력 가수 및, 입력 부호 비트가 양수이고 입력 지수가 제1 값보다 큰 경우, 입력 가수의 제2 시프트 버전의 정수 나눗셈에 더해진 입력 지수에 기초하여 시프트된 일(1)의 디지털 값을 갖는 제2 출력 지수와, 입력 가수의 제1 시프트 버전과 제2 상수에서 제1 상수를 뺀 값의 합을 포함하는 제3 출력 가수 및, 입력 부호 비트가 음수이고 입력 지수가 제1 값보다 작은 경우, 마이너스 일(-1) 값을 갖는 제3 출력 지수와, 제2 상수에서 빼기된 입력 가수의 제2 시프트 버전의 모듈러스를 포함하는 제4 출력 가수, 및 입력 부호 비트가 음수이고 입력 지수가 제1 값보다 큰 경우, 제2 출력 지수 빼기 일(1)의 부정(negation)을 생성한다.
일 실시예에서, 조합 로직은 입력 가수에 연결된 입력 및 입력 지수에 연결된 시프트 입력을 갖는 하나 이상의 시프터 회로를 포함하고, 하나 이상의 시프터 회로는 입력 가수의 좌측 및 우측 시프트 버전을 생성한다.
일 실시예에서, 입력 가수의 우측 시프트 버전은 제1 출력 가수 및 제2 출력 가수를 형성하는 데 사용되고, 입력 가수의 좌측 시프트 버전의 하위 비트는 제3 출력 가수 및 제4 출력 가수를 형성하는 데 사용된다.
일 실시예에서, 입력 가수의 우측 시프트 버전은 제2 출력 가수를 형성하기 위해 상수에서 빼기된다.
일 실시예에서, 입력 가수의 좌측 시프트 버전은 제4 출력 가수를 형성하기 위해 상수에서 빼기된다.
일 실시예에서, 입력 가수의 좌측 시프트 버전의 상위 비트는 제1 출력 지수 및 제2 출력 지수를 형성하는 데 사용된다.
일 실시예에서, 입력 가수의 좌측 시프트 버전의 상위 비트는 제1 출력 지수 및 제2 출력 지수를 형성하기 위해 입력 지수에 기초하여 생성된 값에 더해진다.
일 실시예에서, 입력 지수에 기초하여 생성된 값은 입력 지수에 기초하여 좌측으로 시프트된 비트를 포함한다.
일 실시예에서, 입력 가수의 좌측 시프트 버전의 더해진 상위 비트 및 입력 지수에 기초하여 생성된 값은 부정되어 제2 출력 지수를 생성한다.
일 실시예에서, 하나 이상의 시프터 회로는 배럴 시프터 회로를 포함한다.
일 실시예에서, 하나 이상의 시프터 회로는, 입력 가수를 상수에 더하도록 구성된 로직 회로를 통해 입력 가수에 연결된 제1 입력 및 입력 지수를 부정하도록 구성된 로직 회로를 통해 입력 지수에 연결된 시프트 입력을 갖는 우측 시프터 회로와, 입력 가수를 수신하도록 연결된 제1 입력 및 입력 지수에 연결된 시프트 입력을 갖는 제1 좌측 시프터 회로를 포함한다.
일 실시예에서, 하나 이상의 시프터 회로는 일(1)의 디지털 값을 수신하도록 연결된 제1 입력 및 입력 지수에 연결된 시프트 입력을 갖는 제2 좌측 시프터 회로를 더 포함하고, 제1 좌측 시프터 회로와 제2 좌측 시프터 회로의 출력이 함께 더해진다.
일 실시예에서, 2개 이상의 선택 회로는 우측 시프터 회로의 출력에 연결된 제1 입력 및 제1 좌측 시프터 회로의 하위 비트에 연결된 제2 입력을 갖는 제1 멀티플렉서를 포함한다.
일 실시예에서, 2개 이상의 선택 회로는 제1 입력이 제1 멀티플렉서의 출력에 연결되고 제2 입력이 상수에서 로직 회로의 입력 상의 값을 빼기하도록 구성된 로직 회로를 통해 제1 멀티플렉서의 출력에 연결되는 제2 멀티플렉서를 더 포함한다.
일 실시예에서, 2개 이상의 선택 회로는 멀티플렉서를 포함하고, 멀티플렉서는, 제1 좌측 시프터 회로의 상위 비트 및 지수에 대응하는 값만큼 거듭제곱된 2의 값의 합에 연결되는 제1 입력과, 합의 음의 버전에 결합된 제2 입력과, 영(0) 값에 연결된 제3 입력과, 마이너스 일(-1) 값에 연결된 제4 입력과, 최종 출력 지수를 생성하는 출력을 포함한다.
일 실시예에서, 디지털 회로는 입력 지수 및 입력 부호 비트를 수신하고 적어도 가수 선택 회로 및 지수 선택 회로에 대한 제어 신호를 생성하도록 구성된 제어 로직을 더 포함하며, 가수 선택 회로의 출력은 우측 시프터 회로의 출력에 연결되고 지수 선택 회로의 출력은, 입력 부호 비트가 양수이고 입력 지수가 제1 값보다 작은 경우, 영(0) 값에 연결되고, 가수 선택 회로의 출력은 좌측 시프터 회로의 하위 비트에 연결되고, 지수 선택 회로의 출력은 제1 좌측 시프터 회로의 상위 비트와, 입력 부호 비트가 양수이고 입력 지수가 제1 값보다 큰 경우, 입력 지수에 대응하는 값만큼 거듭제곱된 2의 값의 합에 연결되며; 가수 선택 회로의 출력은 상수 감산 로직 회로를 통해 우측 시프터 회로의 출력에 연결되고 지수 선택 회로의 출력은 입력 부호 비트가 양이고 입력 지수가 제1 값보다 작은 경우, 상수인 마이너스 일(-1) 값에 연결되고; 가수 선택 회로의 출력은 상수 감산 로직 회로를 통해 좌측 시프터 회로의 하위 비트에 연결되고 지수 선택 회로의 출력은 입력 부호 비트가 음수이고 입력 지수가 제1 값보다 큰 경우, 제1 좌측 시프터 회로의 상위 비트의 합과 입력 지수에 대응하는 값만큼 거듭제곱된 2의 값의 합의 음수에 연결된다.
상기 설명은 특정 실시예의 양태가 구현될 수 있는 방법의 예와 함께 본 발명의 다양한 실시예를 예시한다. 위의 예는 유일한 실시예로 간주되어서는 안 되며, 다음 청구범위에 의해 정의된 특정 실시예의 유연성 및 장점을 설명하기 위해 제공된다. 위의 개시 내용과 다음의 청구 범위에 기초하여, 청구 범위에 의해 정의된 본 개시의 범위를 벗어나지 않고 다른 배치, 실시예, 구현 및 등가물이 채용될 수 있다.

Claims (15)

  1. 디지털 회로로서,
    입력 값의 입력 가수(input mantissa)를 나타내는 제1 디지털 비트와 입력 값의 입력 지수(input exponent)를 나타내는 제2 디지털 비트를 수신하는 조합 로직(combinational logic) - 상기 조합 로직은 상기 입력 값이 양수 및 음수일 경우 및 상기 입력 지수가 제1 값의 초과 및 미만일 경우, 상기 입력 값만큼 거듭제곱된 2의 거듭제곱의 근사값에 대응하는 복수의 출력 가수 및 복수의 출력 지수를 생성함 - 과,
    상기 복수의 출력 가수 및 상기 복수의 출력 지수를 수신하도록 구성된 2개 이상의 선택 회로 - 상기 선택 회로는 상기 복수의 출력 가수 중 하나와 상기 복수의 출력 지수 중 하나를 선택하기 위해 상기 입력 지수에 연결된 선택 제어 입력 및 상기 입력 값의 입력 부호 비트를 포함함 - 를 포함하는,
    디지털 회로.
  2. 제1항에 있어서,
    상기 조합 로직은 상기 입력 지수에 기초하여 상기 입력 가수의 복수의 시프트 버전을 생성하여 상기 복수의 출력 가수 및 상기 복수의 출력 지수를 생성하고,
    상기 디지털 회로는 상기 입력 지수 및 상기 입력 부호 비트를 수신하고 적어도 가수 선택 회로 및 지수 선택 회로에 대한 제어 신호를 생성하도록 구성된 제어 로직을 더 포함하는,
    디지털 회로.
  3. 제1항에 있어서,
    상기 2개 이상의 선택 회로는, 제1 입력 가수의 제1 시프트 버전과 제1 상수의 합을 포함하는 제1 출력 가수 및, 상기 입력 부호 비트가 양수이고 상기 입력 지수가 제1 값보다 작은 경우 0의 값을 갖는 제1 출력 지수와,
    상기 입력 가수의 제2 시프트 버전의 모듈러스를 포함하는 제2 출력 가수 및, 상기 입력 부호 비트가 양수이고 상기 입력 지수가 상기 제1 값보다 큰 경우 상기 입력 지수가 상기 입력 가수의 상기 제2 시프트 버전의 정수 나눗셈(integer division)에 더해지는 것에 기초하여 시프트된 일(1)의 디지털 값을 갖는 제2 출력 지수와,
    상기 입력 가수의 상기 제1 시프트 버전과 제2 상수에서 빼기된(substracted) 상기 제1 상수의 합을 포함하는 제3 출력 가수 및, 상기 입력 부호 비트가 음수이고 상기 입력 지수가 상기 제1 값보다 작은 경우 마이너스 일(-1)의 값을 갖는 제3 출력 지수와,
    상기 제2 상수에서 빼기된, 상기 입력 가수의 상기 제2 시프트 버전의 모듈러스를 포함하는 제4 출력 가수, 및 상기 입력 부호 비트가 음수이고 상기 입력 지수가 상기 제1 값보다 큰 경우 상기 제2 출력 지수 빼기 일(1)의 부정(negation)을 생성하는,
    디지털 회로.
  4. 제1항에 있어서,
    상기 조합 로직은 상기 입력 가수에 연결된 입력 및 상기 입력 지수에 연결된 시프트 입력을 갖는 하나 이상의 시프터 회로를 포함하고, 상기 하나 이상의 시프터 회로는 상기 입력 가수의 좌측 및 우측 시프트 버전을 생성하는,
    디지털 회로.
  5. 제4항에 있어서,
    상기 입력 가수의 우측 시프트 버전은 제1 출력 가수 및 제2 출력 가수를 형성하는 데 사용되고, 상기 입력 가수의 좌측 시프트 버전의 하위 비트는 제3 출력 가수 및 제4 출력 가수를 형성하는 데 사용되는,
    디지털 회로.
  6. 제5항에 있어서,
    상기 입력 가수의 상기 우측 시프트 버전은 상기 제2 출력 가수를 형성하기 위해 상수에서 빼기되는,
    디지털 회로.
  7. 제5항에 있어서,
    상기 입력 가수의 상기 좌측 시프트 버전은 상기 제4 출력 가수를 형성하기 위해 상수에서 빼기되는,
    디지털 회로.
  8. 제4항에 있어서,
    상기 입력 가수의 좌측 시프트 버전의 상위 비트는 제1 출력 지수 및 제2 출력 지수를 형성하는 데 사용되고, 상기 입력 가수의 상기 좌측 시프트 버전의 상기 상위 비트는 상기 제1 출력 지수 및 상기 제2 출력 지수를 형성하기 위해 상기 입력 지수에 기초하여 생성된 값에 더해지는,
    디지털 회로.
  9. 제8항에 있어서,
    상기 입력 지수에 기초하여 생성된 상기 값은 상기 입력 지수에 기초하여 좌측으로 시프트된 비트를 포함하는,
    디지털 회로.
  10. 제8항에 있어서,
    상기 입력 가수의 상기 좌측 시프트 버전의 상기 더해진 상위 비트 및 상기 입력 지수에 기초하여 생성된 값이 부정되어 상기 제2 출력 지수를 생성하는,
    디지털 회로.
  11. 제4항에 있어서,
    상기 하나 이상의 시프터 회로는 배럴 시프터 회로(barrel shifter circuit)를 포함하는,
    디지털 회로.
  12. 제4항에 있어서,
    상기 하나 이상의 시프터 회로는,
    상기 입력 가수를 상수에 더하도록 구성된 로직 회로를 통해 상기 입력 가수에 연결된 제1 입력, 및 상기 입력 지수를 부정하도록 구성된 로직 회로를 통해 상기 입력 지수에 연결된 시프트 입력을 갖는 우측 시프터 회로와,
    상기 입력 가수를 수신하도록 연결된 제1 입력 및 상기 입력 지수에 연결된 시프트 입력을 갖는 제1 좌측 시프터 회로를 포함하는,
    디지털 회로.
  13. 제12항에 있어서,
    상기 하나 이상의 시프터 회로는, 일(1)의 디지털 값을 수신하도록 연결된 제1 입력 및 상기 입력 지수에 연결된 시프트 입력을 갖는 제2 좌측 시프터 회로를 더 포함하고,
    상기 제1 좌측 시프터 회로와 상기 제2 좌측 시프터 회로의 출력이 함께 더해지는,
    디지털 회로.
  14. 제12항에 있어서,
    상기 2개 이상의 선택 회로는, 상기 우측 시프터 회로의 출력에 연결된 제1 입력 및 상기 제1 좌측 시프터 회로의 하위 비트에 연결된 제2 입력을 갖는 제1 멀티플렉서를 포함하고,
    상기 2개 이상의 선택 회로는, 상기 제1 멀티플렉서의 출력에 연결된 제1 입력 및 상수에서 상기 로직 회로의 입력 상의 값을 빼기하도록 구성된 로직 회로를 통해 상기 제1 멀티플렉서의 출력에 연결되는 제2 입력을 갖는 제2 멀티플렉서를 더 포함하는,
    디지털 회로.
  15. 제12항에 있어서,
    상기 2개 이상의 선택 회로는 멀티플렉서를 포함하고,
    상기 멀티플렉서는,
    상기 제1 좌측 시프터 회로의 상위 비트와 상기 지수에 대응하는 값만큼 거듭제곱된 2의 값의 합에 연결된 제1 입력과,
    상기 합의 음의 버전에 연결된 제2 입력과,
    영(0) 값에 연결된 제3 입력과,
    마이너스 일(-1) 값에 연결된 제4 입력과,
    최종 출력 지수를 생성하는 출력을 포함하는,
    디지털 회로.
KR1020237025885A 2021-01-29 2022-01-18 정규화 기능을 위한 디지털 회로 KR20230132795A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/163,225 US20220244911A1 (en) 2021-01-29 2021-01-29 Digital circuitry for normalization functions
US17/163,225 2021-01-29
PCT/US2022/012827 WO2022164678A1 (en) 2021-01-29 2022-01-18 Digital circuitry for normalization functions

Publications (1)

Publication Number Publication Date
KR20230132795A true KR20230132795A (ko) 2023-09-18

Family

ID=80222190

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237025885A KR20230132795A (ko) 2021-01-29 2022-01-18 정규화 기능을 위한 디지털 회로

Country Status (7)

Country Link
US (1) US20220244911A1 (ko)
EP (1) EP4285215A1 (ko)
JP (1) JP2024506441A (ko)
KR (1) KR20230132795A (ko)
CN (1) CN116783577A (ko)
TW (1) TW202234232A (ko)
WO (1) WO2022164678A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117785108B (zh) * 2024-02-27 2024-06-14 芯来智融半导体科技(上海)有限公司 一种前导数处理方法、系统、设备及存储介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6178435B1 (en) * 1998-06-30 2001-01-23 International Business Machines Corporation Method and system for performing a power of two estimation within a data processing system
US9552189B1 (en) * 2014-09-25 2017-01-24 Altera Corporation Embedded floating-point operator circuitry
US10445064B2 (en) * 2017-02-03 2019-10-15 Intel Corporation Implementing logarithmic and antilogarithmic operations based on piecewise linear approximation
US11256978B2 (en) * 2017-07-14 2022-02-22 Intel Corporation Hyperbolic functions for machine learning acceleration
US20210012202A1 (en) * 2019-07-12 2021-01-14 Facebook Technologies, Llc Systems and methods for asymmetrical scaling factor support for negative and positive values
US20220067513A1 (en) * 2020-08-28 2022-03-03 Nvidia Corp. Efficient softmax computation

Also Published As

Publication number Publication date
JP2024506441A (ja) 2024-02-14
EP4285215A1 (en) 2023-12-06
WO2022164678A1 (en) 2022-08-04
TW202234232A (zh) 2022-09-01
CN116783577A (zh) 2023-09-19
US20220244911A1 (en) 2022-08-04

Similar Documents

Publication Publication Date Title
CN111758106B (zh) 用于大规模并行神经推理计算元件的方法和系统
CN112740171A (zh) 乘法和累加电路
JPH07248841A (ja) 非線形関数発生装置およびフォーマット変換装置
WO2020176250A1 (en) Neural network layer processing with normalization and transformation of data
KR102655950B1 (ko) 뉴럴 네트워크의 고속 처리 방법 및 그 방법을 이용한 장치
DiCecco et al. FPGA-based training of convolutional neural networks with a reduced precision floating-point library
US11106431B2 (en) Apparatus and method of fast floating-point adder tree for neural networks
CN113826122A (zh) 人工神经网络的训练
JP2019139338A (ja) 情報処理装置、情報処理方法、およびプログラム
KR20190044550A (ko) 신경망에서의 무작위성 생성
Lu et al. Training deep neural networks using posit number system
CN117897688A (zh) 用于加速指数函数的计算的系统和方法
Kouretas et al. Logarithmic number system for deep learning
KR20230132795A (ko) 정규화 기능을 위한 디지털 회로
CN112889024A (zh) 利用硬件计算效率和调整因子优化神经网络
Rasanjani et al. Fundamental Digital Module Realization Using RTL Design for Quantum Mechanics
REYES et al. Energy Harvesting Digital Filter Implementation With Novel Architecutre
US20220075598A1 (en) Systems and Methods for Numerical Precision in Digital Multiplier Circuitry
KR20230121151A (ko) 디지털 곱셈기 회로망의 수치 정밀도
Su et al. Processing element architecture design for deep reinforcement learning with flexible block floating point exploiting signal statistics
CN109388372B (zh) 一种基于最小模块的三值光学处理器msd乘法计算方法
WO2020008642A1 (ja) 学習装置、学習回路、学習方法および学習プログラム
Tan et al. Efficient Multiple-Precision and Mixed-Precision Floating-Point Fused Multiply-Accumulate Unit for HPC and AI Applications
WO2018207146A1 (en) Processing core operation suppression based on contribution estimate
Alsultany et al. Design and Implementation of a Parameterized Elastic Deep Neural Network Accelerator with a 32-Bit Floating-Point Number Using FPGA