• 제목/요약/키워드: 근사 곱셈기

검색결과 21건 처리시간 0.022초

순환 신경망의 하드웨어 구현 (Hardware Implementation of Recurrent Neural Network)

  • 김정욱;오종훈
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2001년도 봄 학술발표논문집 Vol.28 No.1 (B)
    • /
    • pp.586-588
    • /
    • 2001
  • 최근에는 순환 신경망의 생성모델이 비교사 학습에 관련하여 활발히 연구되고 있다. 이러한 형태의 신경망은 형태 추출이나 인식에 효과적으로 사용될 수 있는 반면 반복 loop를 사용하므로 대단히 많은 계산이 필요하다. 본 논문에서는 Oh와 Seung에 의해 제안된 상향전파(Up-propagation) network이라는 순환 신경망을 FPGA를 이용해서 구현하였다. 단층 신경망은 9개의 상층 neuron과 256개의 하층 neuron으로 구성되 있으며 4만 게이트의 FPGA 하나로 효과적으로 구현할 수 있다. pipeline된 곱셈기로 게산 속도를 향상시켰고 sigmoid 전달 함수는 유한 정밀도의 2차 다항식으로 근사될 수 있다. 구현된 하드웨어는 hand-written 숫자 영상인 USPS data를 재생하는데 사용되었으며 좋은 결과를 얻었다.

  • PDF

오차 교정 K차 골드스미트 부동소수점 나눗셈 (Error Corrected K'th order Goldschmidt's Floating Point Number Division)

  • 조경연
    • 한국정보통신학회논문지
    • /
    • 제19권10호
    • /
    • pp.2341-2349
    • /
    • 2015
  • 부동소수점 나눗셈에서 많이 사용하는 골드스미트 부동소수점 나눗셈 알고리즘은 한 회 반복에 두 번의 곱셈을 수행한다. 본 논문에서는 한 회 반복에 K 번 곱셈을 수행하는 가칭 오차 교정 K차 골드스미트 부동소수점 나눗셈 알고리즘을 제안한다. 본 논문에서 제안한 알고리즘은 입력 값에 따라서 곱셈 횟수가 다르므로, 평균 곱셈 횟수를 계산하는 방식을 유도하고, 여러 크기의 근사 역수 테이블에서 단정도실수 및 배정도실수의 나눗셈 계산에 필요한 평균 곱셈 횟수를 계산한다. 또한 한 번의 곱셈과 판정으로 나눗셈 결과를 보정하는 알고리즘을 제안한다. 본 논문에서 제안한 알고리즘은 오차가 일정한 값보다 작아질 때까지만 반복 연산을 수행하므로 나눗셈 계산기의 성능을 높일 수 있다. 또한 최적의 근사 테이블을 구성할 수 있다.

가변 시간 골드스미트 부동소수점 나눗셈기 (A Variable Latency Goldschmidt's Floating Point Number Divider)

  • 김성기;송홍복;조경연
    • 한국정보통신학회논문지
    • /
    • 제9권2호
    • /
    • pp.380-389
    • /
    • 2005
  • 부동소수점 나눗셈에서 많이 사용하는 골드스미트 나눗셈 알고리즘은 일정한 횟수의 곱셈을 반복한다. 본 논문에서는 오차가 정해진 값보다 작아질 때까지 곱셈을 반복하여 나눗셈을 수행하는 가변 시간 골드스미트 부동소수점 나눗셈 알고리즘을 제안한다. 부동소수점 나눗셈 ‘$\frac{N}{F}$'는 'T=$\frac{1}{F}+e_t$'를 분모와 분자에 곱하면 ’$\frac{TN}{TF}=\frac{N_0}{F_0}$'가 된다. ’$R_i=(2-e_r-F_i),\;N_{i+1}=N_i{\ast}R_i,\;F_{i+1}=F_i{\ast}R_i$, i$\in${0,1,...n-1}'를 반복한다. 중간 곱셈 결과는 소수점이하 p 비트 미만을 절삭하며, 절삭 오차는 ‘$e_r=2^{-p}$', 보다 작다. p는 단정도실수에서 29, 배정도실수에서 59이다. ’$F_i=1+e_i$'이라고 하면 ‘$F_{i+1}=1-e_{i+1},\;e_{i+1},\;e_{i+1}'이 된다. '$[F_i-1]<2^{\frac{-p+3}{2}}$'이면, ’$e_{i+1}<16e_r$'이 부동소수점으로 표현 가능한 최소값보다 작아지며, ‘$N_{i+1}\risingdotseq\frac{N}{F}$이다. 본 논문에서 제안한 알고리즘은 입력 값에 따라서 곱셈 횟수가 다르므로, 평균 곱셈 횟수를 계산하는 방식을 도출하고, 여러 크기의 근사 역수 테이블($T=\frac{1}{F}+e_t$)에서 단정도실수 및 배정도실수의 나눗셈 계산에 필요한 평균 곱셈 횟수를 계산한다. 이들 평균 곱셈 횟수를 종래 알고리즘과 비교하여 본 논문에서 제안한 알고리즘의 우수성을 증명한다. 본 논문에서 제안한 알고리즘은 오차가 일정한 값보다 작아질 때까지만 반복 연산을 수행하므로 나눗셈기의 성능을 높일 수 있다. 또한 최적의 근사 역수 테이블을 구성할 수 있다. 본 논문의 연구 결과는 디지털 신호처리, 컴퓨터 그라픽스,, 멀티미디어, 과학 기술 연산 등 부동소수점 계산기가 사용되는 분야에서 폭 넓게 사용될 수 있다.

가변 시간 뉴톤-랍손 부동소수점 역수 계산기 (A Variable Latency Newton-Raphson's Floating Point Number Reciprocal Computation)

  • 김성기;조경연
    • 정보처리학회논문지A
    • /
    • 제12A권2호
    • /
    • pp.95-102
    • /
    • 2005
  • 부동소수점 나눗셈에서 많이 사용하는 뉴톤-랍손 부동소수점 역수 알고리즘은 일정한 횟수의 곱셈을 반복하여 역수를 계산한다. 본 논문에서는 오차가 정해진 값보다 작아질 때까지 곱셈을 반복해서 역수를 계산하는 가변 시간 뉴톤-랍손 부동소수점 역수 알고리즘을 제안한다. 'F'의 역수 계산은 초기값 $'X_0=\frac{1}{F}{\pm}e_0'$에 대하여, $'X_{i+1}=X=X_i*(2-e_r-F*X_i),\;i\in\{0,\;1,\;2,...n-1\}'$을 반복한다. 중간 곱셈 견과는 소수점 이하 p비트 미만을 절삭하며, 절삭 오차는 $'e_r=2^{-p}'$보다 작다. p는 단정도실수에서 27, 배정도실수에서 57이다. $'X_i=\frac{1}{F}+e_i{'}$라 하면 $'X_{i+1}=\frac{1}{F}-e_{i+1},\;e_{i+1}이 된다. $'\mid(2-e_r-F*X_i)-1\mid<2^{\frac{-p+2}{2}}{'}이면, $'e_{i+1}<4e_r{'}$이 부동산소수점으로 표현 가능한 최소값보다 작이지며, $'X_{i+1}\fallingdotseq\frac{1}{F}'$이다. 본 논문에서 제안한 알고리즘은 입력 값에 따라서 곱셈 횟수가 다르므로, 평균 곱셈 횟수를 계산하는 방식을 유도하고, 여러 크기의 근사 역수 테이블$(X_0=\frac{1}{F}{\pm}e_0)$에서 단정도실수 및 배정도실수의 역수 계산에 필요한 평균 곱셈 횟수를 계산한다. 이들 평균 곱셈 횟수를 종래 알고리즘과 비교하여 본 논문에서 제안한 알고리즘의 우수성을 증명한다. 본 논문에서 제안한 알고리즘은 오차가 일정한 값보다 작아질 때까지만 반복 연산을 수행하므로 역수 계산기의 성능을 높일 수 있다. 또한 최적의 근사 역수 테이블을 구성할 수 있다. 본 논문의 연구 결과는 디지털 신호처리, 컴퓨터 그라픽스, 멀티미디어, 과학 기술 연산 등 부동소수점 계산기가 사용되는 분야에서 폭 넓게 사용될 수 있다.

곱셈기를 사용한 배정도 정수 나눗셈기 (Double Precision Integer Divider Using Multiplier)

  • 송홍복;조경연
    • 한국정보통신학회논문지
    • /
    • 제14권3호
    • /
    • pp.637-647
    • /
    • 2010
  • 본 논문에서는 'w bit $\times$ w bit = 2w bit' 곱셈기를 사용하여 2w 비트 정수 N과 w 비트 정수 D의 $\frac{N}{D}$용 나눗셈을 수행하는 알고리즘을 제안한다. 본 연구에서 제안하는 알고리즘은 제수 D가 '$D=0.d{\times}2^L$, 0.5 < 0.d < 1.0'일 때, '$0.d{\times}1.g=1+e$, e < $2^{-w}$'가 되는 '$\frac{1}{D}$'의 근사 값 '$1.g{\times}2^{-L}$'을 가칭 상역수로 정의하고, 피제수 N을 'w-3' 비트 보다 작은 워드로 분할하고, 각 분할된 워드에 상역수를 곱해서 부분 몫을 계산하고, 부분 몫을 합산하여 배정도 정수 나눗셈의 몫을 구한다. 제안한 알고리즘은 정확한 몫을 산출하기 때문에 추가적인 보정이 요구되지 않는다. 본 논문에서 제안하는 알고리즘은 곱셈기만을 사용하므로 마이크로프로세서를 구현할 때 나눗셈을 위한 추가적인 하드웨어가 요구되지 않는다. 그리고 기존 알고리즘인 SRT 방식에 비해 동작속도가 빠르다. 따라서 본 논문의 연구 결과는 마이크로프로세서 및 하드웨어 크기에 제한적인 SOC(System on Chip) 구현 등에 폭넓게 사용될 수 있다.

가변 시간 골드스미트 부동소수점 제곱근 계산기 (A Variable Latency Goldschmidt's Floating Point Number Square Root Computation)

  • 김성기;송홍복;조경연
    • 한국정보통신학회논문지
    • /
    • 제9권1호
    • /
    • pp.188-198
    • /
    • 2005
  • 부동소수점 제곱근 계산에 많이 사용하는 골드스미트 제곱근 알고리즘은 곱셈을 반복하여 제곱근을 계산한다. 본 논문에서는 골드스미트 제곱근 알고리즘의 반복 과정의 오차를 예측하여 오차가 정해진 값보다 작아지는 시점까지 반복 연산하는 알고리즘을 제안한다. 'F'의 제곱근 계산은 초기값 $X_0=Y_0=T^2{\times}F,\;T=\frac{1}{\sqrt {F}}+e_t$에 대하여, $R_i=\frac{3-e_r-X_i}{2},\;X_{i+1}=X_i{\times}R^2_i,\;Y_{i+1}=Y_i{\times}R_i,\;i{\in}\{{0,1,2,{\ldots},n-1} }}'$을 반복한다 곱셈 결과는 소수점 이하 p 비트 미만을 절삭하며, 절삭 오차는 $e_r=2^{-p}$보다 작다. p는 단정도실수에서 28, 배정도실수에서 58이다. $X_i=1{\pm}e_i$ 이면 $X_{i+1}$ = $1-e_{i+1}$ $e_{i+1} {\frac{3e^2_i}{4}{\mp}\frac{e^3_i}} $ +4$e_{r}$이다. $|X_i-1|$ < $2^{\frac{-p+2}{2}}$이면, $e_{i+1}$ < $8e_{r}$ 이 부동소수점으로 표현할 수 있는 최소값보다 작게 되며, $\sqrt{F}$ {\fallingdotseq}\frac{Y_{i+1}}{T}}$이다. 본 논문에서 제안한 알고리즘은 입력 값에 따라서 곱셈 횟수가 다르므로, 평균 곱셈 횟수를 계산하는 방식을 도출하고, 여러 크기의 근사 역수 제곱근 테이블 ($T=\frac{1}{\sqrt{F}}+e_i$)에서 단정도실수 및 배정도실수의 제곱근 계산에 필요한 평균 곱셈 횟수를 계산한다. 이들 평균 곱셈 횟수를 종래 알고리즘과 비교하여 본 논문에서 제안한 알고리즘의 우수성을 증명한다. 본 논문에서 제안한 알고리즘은 오차가 일정한 값보다 작아질 때까지만 반복하므로 제곱근 계산기의 성능을 높일 수 있다. 또한 최적의 근사 역수 제곱근 테이블을 구성할 수 있다. 본 논문의 연구 결과는 디지털 신호처리, 컴퓨터 그래픽스, 멀티미디어, 과학 기술 연산 등 부동소수점 계산기가 사용되는 분야에서 폭 넓게 사용될 수 있다.

가변 시간 뉴톤-랍손 부동소수점 역수 제곱근 계산기 (A Variable Latency Newton-Raphson's Floating Point Number Reciprocal Square Root Computation)

  • 김성기;조경연
    • 정보처리학회논문지A
    • /
    • 제12A권5호
    • /
    • pp.413-420
    • /
    • 2005
  • 부동소수점 제곱근 계산에 많이 사용하는 뉴톤-랍손 부동소수점 역수 제곱근 알고리즘은 일정한 횟수의 곱셈을 반복하여 역수 제곱근을 계산한다. 본 논문에서는 뉴톤-랍손 역수 제곱근 알고리즘의 반복 과정의 오차를 예측하여 오차가 정해진 값보다 작아지는 시점까지 반복 연산하는 알고리즘을 제안한다. `F`의 역수 제곱근 계산은 초기값 '$X_0={\frac{1}{\sqrt{F}}}{\pm}e_0$'에 대하여, '$X_{i+1}=\frac{{X_i}(3-e_r-{FX_i}^2)}{2}$, $i\in{0,1,2,{\ldots}n-1}$'을 반복한다. 중간 곱셈 결과는 소수점 이하 p 비트 미만을 절삭하며, 절삭 오차는 '$e_r=2^{-p}$' 보다 작다. p는 단정도실수에서 28, 배정도실수에서 58이다. '$X_i={\frac{1}{\sqrt{F}}}{\pm}e_i$'라고 하면 '$X_{i+1}={\frac{1}{\sqrt{F}}}-e_{i+1}$, $e_{i+1}{<}{\frac{3{\sqrt{F}}{{e_i}^2}}{2}}{\mp}{\frac{{Fe_i}^3}{2}}+2e_r$이 된다. '$|{\frac{\sqrt{3-e_r-{FX_i}^2}}{2}}-1|<2^{\frac{\sqrt{-p}{2}}}$'이면,'$e_{i+1}<8e_r$이 부동소수점으로 표현 가능한 최소값보다 작아지며, '$X_{i+1}\fallingdotseq{\frac{1}{\sqrt{F}}}$'이다. 본 논문에서 제안한 알고리즘은 입력 값에 따라서 곱셈 횟수가 다르므로, 평균 곱셈 횟수를 계산하는 방식을 도출하고, 여러 크기의 근사 역수 제곱근 테이블($X_0={\frac{1}{\sqrt{F}}}{\pm}e_0$)에서 단정도실수 및 배정도실수의 역수 제곱근 계산에 필요한 평균 곱셈 횟수를 계산한다 이들 평균 곱셈 횟수를 종래 알고리즘과 비교하여 본 논문에서 제안한 알고리즘의 우수성을 증명한다. 본 논문에서 제안한 알고리즘은 오차가 일정한 값보다 작아질 때까지만 반복하므로 역수 제곱근 계산기의 성능을 높일 수 있다. 또한 최적의 근사 역수 제곱근 테이블을 구성할 수 있다. 본 논문의 연구 결과는 디지털 신호처리, 컴퓨터 그라픽스, 멀티미디어, 과학 기술 연산 등 부동소수점 계산기가 사용되는 분야에서 폭 넓게 사용될 수 있다.

2진 MQ 산술부호기의 성능 개선 (Performance Improvement of Binary MQ Arithmetic Coder)

  • 고형화;서석용
    • 한국항행학회논문지
    • /
    • 제19권6호
    • /
    • pp.614-622
    • /
    • 2015
  • 2진(binary) MQ 산술부호화는 최근 들어 멀티미디어 압축 표준시스템에 기본 엔트로피 방식으로 사용되고 있다. MQ 산술부호기는 JBIG2와 JPEG2000에 적용되면서 압축성능을 인정받기 시작했다. 최근에 차세대 동영상 부호화 표준인 HEVC (high efficiency video coding)에는 산술부호화가 단일 엔트로피부호화로 채택되면서 그 중요성이 커지고 있다. 기존의 2진 MQ 산술부호기는 RANGE(구간)을 분할하는 과정에서 곱셈을 없애면서 근사화 방법을 사용하고 있다. 이 경우 MPS/LPS의 구간이 뒤바뀌는 경우가 발생하며 출력비트가 늘어날 수 있다. 본 논문에서는 이러한 문제점을 완화하기 위하여 근사식을 사용하는 대신에 룩업테이블 형태로 AQe의 값을 양자화하여 계산에 적용하는 방법을 제안하고자 한다. 제안한 방법의 압축 성능을 실험을 통해 확인한 결과, 2진영상 압축표준 방식인 JBIG2의 경우 약 4%의 압축율의 개선을 보였다. 정지영상 압축표준인 JPEG2000의 경우 약 1%정도의 개선을 가져왔다. 룩업테이블을 사용하기 때문에 계산량이 기존방법에 비해 늘지 않는다.

VP9 디코더에 대한 행렬 기반의 정수형 역변환 구조 (Integer Inverse Transform Structure Based on Matrix for VP9 Decoder)

  • 이태희;황태호;김병수;김동순
    • 전자공학회논문지
    • /
    • 제53권4호
    • /
    • pp.106-114
    • /
    • 2016
  • 본 논문에서는 VP9 디코더에 대한 행렬 기반의 정수형 역변환 구조를 제안한다. 제안하는 구조는 DCT(Discreste Cosine Transform), ADST(Asymmetric Discrete Sine Transform) 그리고 WHT(Walsh-Hadamard Transform)에 대한 알고리즘을 공유하며 버터플라이구조보다 하드웨어 리소스를 줄이고 제어하기 쉬운 하드웨어 구조이다. VP9 구글 모델 내 정수형 역변환은 버터플라이구조 기반의 정수형 역변환 구조를 가진다. 일반적인 버터플라이구조와는 달리 구글모델 내 정수형 역변환은 각 단계마다 라운드 쉬프트 연산기를 가지며, 비대칭 구조의 사인 변환을 포함한다. 따라서 제안하는 구조는 모든 역변환 모드에 대해 행렬계수 값을 근사하고, 이 계수 값을 이용하여 행렬연산 방식을 사용한다. 본 논문의 기술을 사용하면 역변환 알고리즘에 대한 모드별 동작 공유 및 버터플라이구조에 비해 곱셈기 수를 2배가량 감소시킬 수 있다. 그래서 하드웨어 리소스를 효율적으로 관리가 가능해진다.

개선된 역수 알고리즘을 사용한 정수 나눗셈기 (The Integer Number Divider Using Improved Reciprocal Algorithm)

  • 송홍복;박창수;조경연
    • 한국정보통신학회논문지
    • /
    • 제12권7호
    • /
    • pp.1218-1226
    • /
    • 2008
  • 반도체 집적 기술의 발달과 컴퓨터에서 멀티미디어 기능의 사용이 많아지면서 보다 많은 기능들이 하드웨어로 구현되기를 원하는 요구가 증가되고 있다. 그래서 현재 사용되는 대부분의 32 비트 마이크로프로세서는 정수 곱셈기를 하드웨어로 구현하고 있다. 그러나 나눗셈기는 기존의 알고리즘인 SRT 알고리즘의 방식이 하드웨어 구현상의 복잡도와 느린 동작 속도로 인해 특정 마이크로프로세서에 한해서만 하드웨어로 구현되고 있다. 본 논문에서는 'w bit $\times$ w bit = 2w bit' 곱셈기를 사용하여 $\frac{N}{D}$ 정수 나눗셈을 수행하는 알고리즘을 제안한다. 즉, 제수 D 의 역수를 구하고 이를 피제수 N 에 곱해서 정수 나눗셈을 수행한다. 본 논문에서는 제수 D 가 '$D=0.d{\times}2^L$, 0.5<0.d<1.0'일 때, '$0.d{\times}1.g=1+e$, $e<2^{-w}$'가 되는 '$\frac{1}{D}$'의 근사 값 '$1.g{\times}2^{-L}$'을 가칭 상역수라고 정의하고, 상역수를 구하는 알고리즘을 제안하고, 이렇게 구한 상역수 '$1.g{\times}2^{-L}$'을 피제수 N에 곱하여 $\frac{N}{D}$ 정수 나눗셈을 수행한다. 제안한 알고리즘은 정확한 역수를 계산하기 때문에 추가적인 보정이 요구되지 않는다. 본 논문에서 제안하는 알고리즘은 곱셈기만을 사용하므로 마이크로프로세서를 구현할 때 나눗셈을 위한 추가적인 하드웨어가 필요 없다. 그리고 기존 알고리즘인 SRT 방식에 비해 빠른 동작속도를 가지며, 워드 단위로 연산을 수행하기 때문에 기존의 나눗셈 알고리즘보다 컴파일러 작성에도 적합하다. 따라서, 본 논문의 연구 결과는 마이크로프로세서 및 하드웨어 크기에 제한적인 SOC(System on Chip) 구현 등에 폭넓게 사용될 수 있다.