KR20200074855A - Log1p()의 고정밀도 컴퓨터용 장치 및 방법 - Google Patents

Log1p()의 고정밀도 컴퓨터용 장치 및 방법 Download PDF

Info

Publication number
KR20200074855A
KR20200074855A KR1020190145572A KR20190145572A KR20200074855A KR 20200074855 A KR20200074855 A KR 20200074855A KR 1020190145572 A KR1020190145572 A KR 1020190145572A KR 20190145572 A KR20190145572 A KR 20190145572A KR 20200074855 A KR20200074855 A KR 20200074855A
Authority
KR
South Korea
Prior art keywords
log1p
precision
logic section
computing machine
computational logic
Prior art date
Application number
KR1020190145572A
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 KR20200074855A publication Critical patent/KR20200074855A/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/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
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/15Correlation function computation including computation of convolution operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/11Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Algebra (AREA)
  • Operations Research (AREA)
  • Debugging And Monitoring (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Apparatus For Radiation Diagnosis (AREA)

Abstract

본 발명의 특징은, 추정 함수 E(x) 를 사용하여 함수 F(x) = log1p(x) = ln(x+1) 을 근사화하기 위해 적어도 (i) 입력 x 를 수신하고, (ii) 고유 정밀도만을 사용하여 (x+1) 을 계산하고, (iii) (4/3)2 N-1 ≤ (x+1) ≤ (4/3)2 N 이되도록 정수 N 을 계산하고, (iv) f N (x)=Sx+(S-1), S=2 -N 을 계산하고, (v) E(f N (x)) 를 계산하고, (vi) F(x) = log1p(x) 의 근사치로서 값 v=E(f N (x)+Nln(2)) 를 반환하는 동작들을 수행하는 컴퓨팅 머신의 고정밀도의 log1p() 연산 로직 섹션을 포함한다.

Description

LOG1P()의 고정밀도 컴퓨터용 장치 및 방법{APPARATUS AND METHOD FOR HIGH-PRECISION COMPUTE OF LOG1P()}
본 발명은 고정밀도 계산에 관한 것으로, 보다 상세하게는 log1p()의 고정밀도 계산 장치 및 방법에 관한 것이다.
오늘날의 컴퓨팅 장비는 그 어느 때보다도 강력하고 효율적이다. 그래픽 처리 유닛들(GPUs)은 예를 들어 초당 수십억 개의 계산을 실행할 수 있다. 스마트 폰, 태블릿, 노트북 컴퓨터 및 개인용 컴퓨터와 같은 다른 장치에 내장된 메모리 및 프로세서의 처리 속도는 지속적으로 향상되고 있다. 그럼에도 불구하고 어떤 종류의 계산은 자원-집약적(resource-intensive)이기에 근사법이 대신 사용되거나 룩업 테이블을 사용하게 되는데, 이러한 대안은 실리콘 칩의 면적을 요구하고, 액세스 레이턴시(Latency)를 증가시키며, 메모리 대역폭을 증가시키고, 결국 전체적으로는 장치의 메모리 사용량의 증가를 유도한다.
대수(logarithm)와 같은 초월 함수를 구현하는 한 가지 방법은, 원하는 기능을 제한된 도메인에서는 충분한 정밀도로 근사하지만 계산하기 더 간단한 다른 비-초월 수학 함수를 구현하는 것이다. 이러한 근사 함수들은 일반적으로 단순 다항식, 다항식의 비율, 테일러 수열, 스플라인(즉, 서브 도메인에 대한 간단한 근사치의 조각 단위 집합), 처비시즈(Chebyshez) 다항식 또는 이들의 조합들의 일부이다. 입력 값이 근사치의 제한된 도메인 밖에 있으면, 구현시 수학적 ID를 활용하여 근사 도메인에 있는 다른 값을 유도하고, ID 공식을 사용하여 올바른 결과를 유도한다. 이것은 당업자에게 "범위 축소(range reduction)"로 알려져 있지만, 실제로는 "도메인 축소(domain reduction)"가 더 정확한 표현일 것이다.
ln (x)와 같은 간단한 로그 함수의 경우, 범위 축소 ID는 ln (x) = ln (S*x) - ln(S)이다. 여기서, 'S'는 스케일 인자이며, 일반적으로 2의 지수이며, 근사 함수의 도메인은 일반적으로 'x=1.0'을 포함하는 2의 지수이다. 예를 들면, 'sqrt (0.5) ≤ x ≤ sqrt (2)'와 같다.
'log1p (x) = ln (1 + x)'의 경우, 범위 축소 ID는 'log1p (x) = log1p(S*(1+x)-1)-ln(S)'이며, 'S'는 스케일 인자이며, 일반적으로 2의 지수이며, 근사 함수의 도메인은 일반적으로 'x=0'을 포함하는 일부 범위이다. 여기서, 입력 'x'가 작은 크기(즉, 절대 값)일 때 어려움이 발생한다. "x + 1"항을 기본 정밀도 계산과 결합하면 허용할 수 없을 정도의 느슨한 정밀도가 된다. 예를 들어, 'x'가 O(2-10)이면, 이 연산은 10-비트의 정밀도를 잃게 된다. 따라서, 계산 자원(예: 시간, 공간, 에너지) 측면에서 일반적으로 비용이 많이 드는 확장 정밀도 연산을 사용하여 "S*(1+x)-1"의 계산을 수행하는 것이 현재 관행이다.
본 발명의 목적은 고정밀도의 로그 연산을 저비용으로 처리하는 하는 방법 및 장치를 제공하는데 있다.
본 발명의 실시 예에 따른 고정밀도의 log1p() 연산 로직 섹션은 추정 함수 E(x) 를 사용하여, 함수 F(x) = log1p (x) = ln(x+1) 을 근사화하고, 적어도 (i) 입력 x 를 수신하고, (ii) 기본 정밀도만을 사용하여 (x+ 1) 을 계산하고, (iii) (4/3)2 N-1 ≤ (x+1) ≤ (4/3)2 N 이되도록 정수 N 을 계산하고, (iv) f N (x)= Sx +(S-1), S=2 -N 을 계산하고, (v) E( f N (x)) 를 계산하고, (vi) F(x) = log1p(x) 의 근사치로서 값 v=E(f N (x)+Nln(2)) 를 반환하는 동작들을 수행한다.
일부 실시 예는 log1p()의 고정밀도 계산을 위한 컴퓨터 구현 방법을 포함한다. 추정 함수 E(x) 를 사용하여 컴퓨팅 머신의 고정밀도 log1p() 연산 로직 섹션에 의해 함수 F(x) = log1p (x) = ln(x+1) 을 근사하는 단계, 상기 컴퓨팅 머신의 상기 고정밀도 log1p() 연산 로직 섹션에 의해, 입력 x 를 수신하는 단계, 상기 컴퓨팅 머신의 상기 고정밀도 log1p() 연산 로직 섹션에 의해, 기본 정밀도만을 사용하는 (x+ 1) 을 계산하는 단계, 상기 컴퓨팅 머신의 상기 고정밀도 log1p() 연산 로직 섹션에 의해, (4/3)2 N-1
Figure pat00001
(x+1) ≤ (4/3)2 N 을 만족하는 정수 N 을 계산하는 단계, 상기 컴퓨팅 머신의 상기 고정밀도 log1p() 연산 로직 섹션에 의해, f N (x)=Sx+(S-1) where S=2 - N 을 계산하는 단계, 상기 컴퓨팅 머신의 상기 고정밀도 log1p() 연산 로직 섹션에 의해, E( f N (x)) 을 계산하는 단계, 그리고 상기 컴퓨팅 머신의 상기 고정밀도 log1p() 연산 로직 섹션에 의해, F(x) = log1p(x) 의 근사로서 값 v=E(f N (x)+Nln(2)) 를 반환하는 단계를 포함한다.
본 발명의 특징 중 일부는 GPU(graphics processing unit) 또는 ARM 프로세서 코어 내에서 구현함으로써 가장 잘 달성될 수 있다. 다른 유형의 프로세서 또는 주문형 집적 회로(ASIC)는 본 명세서에 개시된 본 발명의 원리를 구현할 수 있다. 본 발명의 개념은 스마트 폰, 태블릿, 노트북 컴퓨터 등과 같은 다양한 모바일 장치의 프로세서 그리고/또는 메모리 모듈, 또는 데스크탑 컴퓨터, 라우터 등과 같은 다양한 고정 장치에서 구현될 수 있다.
상술한 특징에 따른 본 발명에 따르면, 고정밀도의 로그 연산을 저비용으로 처리하는 하는 방법 및 장치를 제공할 수 있다.
본 발명의 전술한 특징 및 부가적인 특징 및 이점은 첨부된 도면을 참조한 이하의 상세한 설명으로부터 더욱 명백해질 것이다.
도 1a는 여기에 개시된 실시 예에 따른 고정밀도 log1p() 연산 논리 섹션을 포함하는 컴퓨팅 머신의 예시적인 블록도이다.
도 1b는 여기에 개시된 실시 예에 따른 하나 또는 그 이상의 마이크로 프로세서에 내장된 고정밀도 log1p() 연산 논리 섹션을 포함하는 다른 컴퓨팅 머신의 예시적인 블록도이다.
도 1c는 여기에 개시된 실시 예에 따라 고정밀도 log1p() 계산을 수행하기 위한 기술을 보여주는 예시적인 순서도다.
도 1d는 기능 세트의 각 기능이 여기에 개시된 실시 예에 따라 함수 f N 이 선형임을 나타내는 그래프이다.
도 2는 여기에 개시된 실시 예에 따라 고정밀도 log1p() 계산을 수행하기 위한 또 다른 기술을 예시하는 순서도다.
도 3은 여기에 개시된 실시 예에 따른 고정밀도 log1p() 연산 논리 섹션을 포함하는 그래픽 처리 유닛(GPU)의 예시적인 블록도이다.
도 4는 여기에 개시된 실시 예에 따른 고정밀도 log1p() 연산 논리 섹션을 포함하는 스마트 폰의 예시적인 블록도이다.
도 5는 여기에 개시된 실시 예에 따른 고정밀도 log1p() 연산 논리 섹션을 포함하는 태블릿의 예시적인 블록도이다.
도 6은 여기에 개시된 실시 예에 따른 고정밀도 log1p() 연산 논리 섹션을 포함하는 컴퓨터의 예시적인 블록도이다.
도 7은 여기에 개시된 실시 예에 따른 고정밀도 log1p() 연산 논리 섹션을 포함하는 컴퓨팅 시스템의 예시적인 블록도이다.
이하, 첨부된 도면을 참조하여 본 발명의 실시 예를 상세히 설명한다. 후술되는 상세한 설명에서, 본 발명의 개념을 완전히 이해할 수 있도록 수많은 특정 세부 사항이 제시된다. 그러나, 당업자는 이러한 특정 세부 사항없이 본 발명의 개념을 실행할 수 있음을 알아야 한다. 다른 예들에서, 잘 알려진 방법들, 절차들, 구성 요소들, 회로들 및 네트워크들은 실시 예들의 측면들을 불필요하게 불명료하게하지 않기 위해 상세히 설명되지 않았다.
'제 1', '제 2' 등의 용어가 본 명세서에서 다양한 구성 요소를 설명하기 위해 사용될 수 있지만, 이들 구성 요소는 이들 용어에 의해 제한되어서는 안됨을 이해할 것이다. 이 용어는 하나의 요소를 다른 요소와 구별하기 위해서만 사용된다. 예를 들어, '제 1 로직 섹션'은 '제 2 로직 섹션'으로 지칭될 수 있고, 마찬가지로, '제 2 로직 섹션'은 본 발명의 개념의 범위를 벗어나지 않으면서 '제 1 로직 섹션'으로 지칭될 수 있다.
본 발명의 개념의 설명에 사용된 용어는 특정 실시 예만을 설명하기 위한 것이며, 본 발명의 개념을 제한하려는 것은 아니다. 본 발명의 개념 및 첨부된 청구 범위의 설명에서 사용된 바와 같이, 단수 형태 "a", "an"및 "the"는 문맥상 달리 명시하지 않는 한 복수 형태를 포함하는 것으로 의도된다. 본 명세서에서 사용된 "그리고/또는"이라는 용어는 하나 또는 그 이상의 관련된 열거 항목의 임의의 및 모든 가능한 조합을 가리키며 포함한다. 본 명세서에서 사용되는 용어 "포함하다" 그리고/또는 "포함하는"은 명시된 특징, 정수, 단계, 동작, 구성 요소 그리고/또는 구성의 존재를 나타내지만, 하나 또는 그 이상의 다른 특징, 정수, 단계, 동작, 요소, 구성 그리고/또는 그룹의 존재나 추가를 배제하지는 않는다는 것은 잘 이해될 것이다. 도면의 구성 요소 및 특징은 반드시 일정한 치수로 그려지는 것은 아니다.
더 적은 연산 리소스를 사용하여 log1p() 함수를 구현하기 위한 보다 효율적인 시스템 및 방법이 개시된다. 개선된 메트릭에는 명령어 수, 실행 시간, 레지스터 수, 소비 전력이 포함된다.
여기에 개시된 실시 예들은 기본 정밀도(native-precision)의 산술 연산만을 사용하여(즉, 확장 정밀도 산술 또는 상수 메모리 테이블을 사용하지 않고) 컴퓨터가 구현한 입력 값의 범위 축소 자동 성능을 가능하게 함으로써, 보다 고가의 확장 정밀도의 산술 연산의 요구를 제거한다. 즉, 여기에 개시된 실시 예는 확장 정밀도 산술 또는 상수 메모리 테이블을 사용하지 않고 log1p() 함수의 범위 축소 부분의 컴퓨터 구현 자동 성능을 허용한다. 그 대신, 비교적 소수의 기본 정밀도 컴퓨터 명령어 만이 사용될 수 있다. log1p() 함수는 OpenCL 및 기타 컴퓨터 아키텍처 표준에서 사용된다. 여기에 개시된 범위 축소 기술의 컴퓨터 구현 자동 성능은 보다 효율적이고, 더 낮은 명령어 카운트, 더 낮은 클록 사이클 카운트, 더 낮은 실행 시간 및 더 낮은 전력 손실을 초래한다. 더불어, 실리콘 면적이 더 적게 필요하며, 액세스 레이턴시가 향상되고, 메모리 대역폭과 메모리 공간도 증가한다. 룩업 테이블이나 확장 정밀도 산술이 불필요하다.
도 1a는 여기에 개시된 실시 예에 따른 고정밀도 log1p() 연산 논리 섹션(110)을 포함하는 컴퓨팅 머신(105)의 예시적인 블록도이다. 도 1b는 여기에 개시된 실시 예에 따른 하나 또는 그 이상의 마이크로 프로세서(118)에 내장된 고정밀도 log1p() 연산 논리 섹션(110)을 포함하는 다른 컴퓨팅 머신(108)의 예시적인 블록도이다. 도 1c는 여기에 개시된 실시 예에 따른 고정밀도 log1p() 연산을 수행하기 위한 기술을 도시하는 예시적인 순서도(180)이다. 이제 도 1a, 도 1b, 그리고 도 1c를 참조하여 본 발명의 설명될 것이다.
도 1a의 컴퓨팅 머신(105)은 아래에서 더 상세하게 설명되는 고정밀도의 log1p() 연산 로직 섹션(110)을 포함할 수 있다. 컴퓨팅 머신(105)은 또한, 마이크로 프로세서(115), 메모리 장치(120), 스토리지 유닛(125), 디스플레이(130) 그리고/또는 입출력(I/O) 인터페이스 칩(135)을 포함할 수 있다. 도 1b의 컴퓨팅 머신(108)은 도 1a의 그것과 유사한데, 주목할만한 차이점은, 컴퓨팅 머신(108)이 하나 또는 이상의 마이크로 프로세서(118)를 포함할 수 있고, 고정밀도 log1p() 연산 로직 섹션이 하나 또는 그 이상의 마이크로 프로세서(118)의 하드웨어 섹션 내에 내장되거나 또는 하드웨어 섹션의 일부일 수 있다는 것이다. 여기에 개시된 실시 예들은 단지 소수의 기본 정밀도 산술 연산(native precision arithmetic operations)을 사용하여 log1p (x)에 대한 범위 축소를 *?*수행할 수 있다.
도 1c의 단계182에 도시된 바와 같이, 고정밀도 log1p() 연산 로직 섹션(110)은 log1p() 함수 입력(140, 도 1a 및 도 1b의)을 수신할 수 있다. 다음으로, 고정밀도 log1p() 연산 로직 섹션(110)은 여기에 개시된 실시 예에 따라, 단계 145에서 범위 축소 연산을 수행할 수 있다. 특히, 단계184에서, 고정밀도 log1p() 연산 로직 섹션(110)은 기본 정밀도(native precision)만을 사용하여 (x+1)을 계산할 수 있다. 단계 186에서, 고정밀도 log1p() 연산 로직 섹션(110)은 단계 184로부터의 결과를 사용할 수 있고, 아래 수학식 1을 만족하는 정수 N을 계산한다.
[수학식 1]
Figure pat00002
단계 188에서, 고정밀도 log1p() 연산 로직 섹션(110)은 아래 수학식 2를 계산할 수 있다.
[수학식 2]
Figure pat00003
여기서, S=2N-1 이다.
위의 범위 축소 기술을 수행한 후에는 '- 1/3 ≤ f N ( x) 1/3 ' 이 참(true)이 된다. 이 후, 표준 기술을 사용하여 log1p (x) 함수와 관련된 사후- 범위 축소 계산이 단계 190에서 수행될 수 있다. 예를 들어, 'log1p( f N (x) )'의 근사는 공지된 기술을 사용하여 계산될 수 있다. 더불어, 'log1p(x)= log1p( f N (x) )-ln( S ), 또는 log1p( f N (x) )+ N ln(2)'가 계산되고, log1p() 함수 출력(150)으로서 단계 192에서 계산되고 반환(Return)될 수 있다.
단계 184에서 계산된 (x+1)의 값은 단계 186에서 정수 N을 계산하기 위해서만 사용된다. 다시 말해서, (x+1)의 값은 어떠한 후속 단계에서도 사용될 필요가 없다. 이 조합은 x가 매우 작은 경우에는 상수한 바와 같이 정밀도를 잃을 수 있다. 그러나 이러한 값의 경우, 가수의 손실에도 불구하고 계산된 정수 N은 명확한다. 단계 186을 구현하는 다른 방법은 여기에 개시된 발명의 개념을 벗어나지 않고 가능하며, 사용된 컴퓨터의 명령어 세트 아키텍처 그리고/또는 프로그래밍 언어에 의존할 것이다.
단계 188에서의 2 -N 2 - N x 의 계산은 가수(significand)가 아닌 부동소수점 수의 지수 만이 수정되는 정확한 연산이다. (S-1) 조합은 작은 값의 N에 대해서는 반올림에 의해서 정밀도가 정확해지고, 큰 값의 N에 대해서는 정밀도가 약간 손실된다. 그러나 이러한 값의 경우 최종 결과는 + N ln (2) 항에 의해 지배되므로, 이 반올림의 영향은 최종 결과에 영향이 있더라도 무시할 정도이다. 이 단계에서의 조합 Sx +(S- 1) 의 최종 덧셈은 대부분의 입력에 대한 반올림이 없는 정확한 연산이다. 입력의 작은 하위 집합의 경우, 반올림이 발생할 수 있지만, 최악의 경우, 결과는 입력 값의 1 비트 또는 1 ULP를 잃는 것과 동등하다. 이 단계에서 연산자의 우선 순위가 중요한데, 예를 들어, ( Sx +S)-1 을 계산할 때, 엄청나게 다른, 덜 정확한 결과가 산출될 수 있다.
다음은 C++ 컴퓨터 프로그래밍 언어 규칙을 사용하여 이 범위 축소를 구현한 의사 코드이다:
Figure pat00004
근사 함수를 설계함에 있어서, 근사 도메인의 크기와 근사 계산의 복잡성(즉, 그에 따른 비용) 사이에는 항상 상충 관계(trade-off)가 존재한다. 이 방법에 의해 생성된 감소된 값은 제한된 범위( - 1/3 f N ( x) 1/3 )에 있음을 보장한다. 이는 log1p()의 일부 구현에서 사용된 근사 함수가 지원하는 것보다 작은 도메인일 수 있으므로, 근사 함수를 단순화하여 추가적인 개선이 구현될 수 있다.
일부 실시 예에서, 컴퓨터 프로세서에 의해 실행될 때, 고정밀도 log1p() 연산 로직 섹션(110)이 추정 함수 E(x) 를 사용하여 F(x) = log1p (x) = ln(x+1) 함수를 근사하게하는 명령어들을 저장하는 비일시적 컴퓨터 판독 가능 저장 매체는 적어도, (i) 입력 x 를 수신하고, (ii) 기본 정밀도만을 사용하여 (x+ 1) 을 계산하고, (iii) (4/3)2 N-1 ≤ (x+1) ≤ (4/3)2 N 이되도록 정수 N 을 계산하고, (iv) f N (x)= Sx +(S-1), S=2 - N 을 계산하고, (v) E( f N (x)) 를 계산하고, (vi) F(x) = log1p(x) 의 근사치로서 값 v=E( f N (x)+ Nln (2)) 를 반환하는 동작들을 수행하도록 한다.
도 1d는 함수 f N 들의 세트의 각 기능이 여기에 개시된 실시 예에 따라 선형임을 나타내는 그래프(195)이다. 단계 188에서 f N (x) 의 크기를 최소화하기 위해 N이 적절하게 선택되는 경우에만 정밀도의 손실이 거의 또는 전혀 없다. 다르게 말하면, N이 부등식을 만족한다면, 단계 188에서 계산된 범위 축소 값의 크기는 최소가 되어야 한다. 도 1d에 도시된 바와 같이, 세트 각각의 함수는 선형이며, 2 N -1 에서 X 축을 가로 지르고, 2 N 의 기울기를 갖는다. N의 바람직한 값은 근처의 제로 크로싱의 지수(Exponent)이다. 연속 정수 중에서 첨단치(cusp)를 선택하는 방법은 f N (x) f N +1 (x) 의 크기가 같은 점으로 정의된다. 예를 들면, 아래 수학식 3 내지 수학식 7가 같이 표현할 수 있다.
[수학식 3]
f N (y) = f N+1 (y) │or f N (y)= -f N+1 (y)
[수학식 4]
2 -N (1+y)-1= -2 - (N+1) (1+y)+1
[수학식 5]
(1+y)(2 -N +2 - (N+1) )= 2
[수학식 6]
(1+y)(3/2) 2 -N = 2
[수학식 7]
(1+y) = (4/3)2 N
IEEE-754 base-2 부동소수점 수(즉, 비정상값이 아님)의 경우, N에 대한 두 개의 연속 정수 값 사이의 구분은 항상 지수 비트가 아닌 (1 + x)의 가수 비트에만 의존한다. 위의 의사 코드는 값의 비트를 고정소수점 수로 취급하고 특정 비트 패턴을 그 비트에 추가하므로, 가수가 첨단치보다 클 경우에만 가수 비트 필드에서 지수 비트 필드로 1을 이동하는 식으로 작동한다(지수를 증가시킴). IEEE-754 부동소수점 연산에서, (1.0 + x)는 비정상 값일 수 없다.
어떤 N을 선택하기 위해: f N (y)= 2 -N (4/3)( 2 N )-1=1/3 .
N을 올바르게 선택한 경우, 감소된 값은: - 1/3 f N ( x) 1/3 이다.
여기에 개시된 범위 축소 기술은 다양한 고급 컴퓨터 언어, 어셈블리 언어, 기계 코드 또는 하드웨어로 구현될 수 있다. 개시된 기술은 다른 유형의 부동소수점 수에 대해 구현될 수 있다. 위의 의사 코드는 IEEE 754 싱글 정밀도 부동소수점에 대한 하나의 가능한 구현을 보여준다. 그러나 이것은 IEEE 754 이중 정밀도 또는 기본 10 진수 부동소수점 형식, IEEE 754에서 다루지 않는 형식 등에 대해서도 동일하게 구현될 수 있다. 기수 2 이외의 경우, 단계 186 및 단계 188의 방정식은 그에 따라 수정되어야 할 것이다.
단계 2를 구현하는 다른 방법도 가능한다. 위에서 주어진 의사 코드 예제는 단지 하나의 가능성에 불과하다. 또 다른 변형은 다음 표와 같다.
// step 186:
// (This assumes IEEE-754 single precision floating
point arithmetic)
int N = ((*(int32_t *)&step1) + (0x00555555-0x3f800000))
>> 23;
log1p() 함수 입력들(140) 그리고/또는 log1p() 함수 출력들(150)은 메모리 장치(120)에 일시적으로 저장될 수 있다. 메모리 장치(120)는 예를 들어, DRAM(Dynamic Random Access Memory)과 같은 휘발성 메모리 장치일 수 있다. 컴퓨팅 머신(105 또는 108)은 log1p() 함수 출력(150)을 스토리지 유닛(125)에 보다 영구적으로 저장하고, 디스플레이(130) 상에 log1p() 함수 출력(150)을 보여주고, 그리고/또는 log1p 함수 출력(150)을 입출력(I/O) 인터페이스 칩(135)을 통해 전송할 수 있다. 스토리지 유닛(125)은 예를 들어, 솔리드 스테이트 드라이브(SDD)와 같은 비휘발성 메모리, 자기 저장 장치 등일 수 있다.
도 2는 여기에 개시된 실시 예에 따라 고정밀도 log1p () 계산을 수행하기 위한 기술을 나타내는 예시적인 흐름도(200)이다. 흐름도(200)는 IEEE-754 싱글 정밀도 산술에 대한 범위 축소의 또 다른 가능한 구현을 도시한다.
단계 140에서, log1p() 함수 입력이 수신될 수 있다. 단계 145에서, 고정밀도 log1p() 연산 로직 섹션(110)은 범위 축소 동작을 수행할 수 있다. 구체적으로, 단계 205에서, 고정밀도 log1p() 연산 로직 섹션(110)은 싱글 정밀도 부동소수점 덧셈을 수행하여 (1.0f + x)를 계산할 수 있다. 단계 210에서, 고정밀도 log1p() 연산 로직 섹션(110)은 비트 필드 추출과 결합된 일정 값으로부터 단계 205의 결과를 감산하는 32-비트 고정소수점 감산을 수행할 수 있다. 입력의 유형 변환은 필요하지 않다. 단계 205에서 생성된 32-비트는 고정소수점 숫자로 재해석될 수 있다. 이 연산은 입력의 가수 비트(significand bit) 필드에 2/3 값을 추가하여 부동소수점 값의 가수(significand)가 4/2보다 크면, 지수 비트(exponent bit) 필드에 캐리가 발생하여 지수가 증가한다. 또한. IEEE-754 형식의 지수 바이어스를 지수에서 뺄 수 있다. 결과적인 지수 비트 필드가 추출되고(예를 들어, 부호 확장될 수 있음), 2의 보수값인 고정소수점 값으로 출력된다. 가수와 부호 비트는 버려질 수 있다. 전체 연산이 무효화될 수 있으므로 출력 값은 '-N'이다.
단계 215 및 단계 220에서 LDEXP 동작이 실행된다. 고정소수점 입력 값은 부동소수점 값의 지수에 더해져 실제로 2(-N)을 곱할 수 있다. 부동소수점 값의 가수는 수정되지 않았으므로, 이것은 정밀도를 잃지 않는 정확한 연산이다. 단계 220에서는, 1.0f의 일정한 입력을 취하여 S = 2(-N)이 계산된다. 단계 215에서는 x 입력을 취하여 'S * x'이 계산된다.
단계 225에서, 고정밀도 log1p() 연산 로직 섹션(110)은 N의 값을 고정소수점으로부터 부동소수점으로 변환하기 위해 변환 연산을 수행할 수 있다.
단계 230에서, 고정밀도 log1p() 연산 로직 섹션(110)는 싱글 정밀도 부동소수점 감산을 수행하여 (1.0f-S)를 계산할 수 있다. 반올림은 N의 극단 값에 대해서만 이 단계에서 발생하며, 이 반올림으로 인한 정밀도의 손실은 대개 무시 될 수 있다.
단계 235에서, 고정밀도 log1p() 연산 로직 섹션(110)은 싱글 정밀도 부동소수점 감산을 수행하여 f_N (x) = (S * x - (1.0f - S))를 계산할 수 있다. 이것은 비교 가능한 크기의 두 값의 차이를 계산하기 때문에 대부분의 입력 값에 대해 반올림이 없으며 정확한 연산이다. N이 +1로 계산되는 입력 값에 대한 예외가 있으며, 이러한 경우 어느 정도의 반올림이 발생하지만 일반적으로 이 경우 약간의 정밀도 손실은 무시할 수 있다.
단계 240에서, 고정밀도 log1p() 연산 로직 섹션(110)은 임의의 표준 기술을 사용하여 단계 235의 범위-축소된 부동소수점 결과에 대해 log1p() 함수를 계산할 수 있다. 예를 들어, 이것은 미니맥스 다항식(Minimax polynomial)의 계산일 수 있다. 단계 245에서, 고정밀도 log1p() 연산 로직 섹션(110)은 싱글 정밀도 융합-곱셈-가산 연산을 사용하여 최종 결과 'log1p(fN (x)) + Nln(2)'을 계산할 수 있다. log1p() 함수의 출력은 단계 150으로 반환(Return)될 수 있다.
도 3은 여기에 개시된 실시 예에 따른 고정밀도 log1p() 연산 로직 섹션(110)을 포함하는 그래픽 처리 유닛(GPU, 305)의 예시적인 블록도이다. GPU (305)는 여기에서 상세히 기술된 바와 같이 log1p () 범위 축소 기술(145)을 수행할 수 있다. GPU(305)는 log1p () 범위 축소 기술(145)을 수행하기 위해 마이크로 프로세서(115), 고정밀도 log1p () 연산 논리 섹션(110) 또는 메모리 장치(120) 중 적어도 하나를 사용할 수 있다.
도 4는 여기에 개시된 실시 예에 따른 고정밀도 log1p () 연산 논리 섹션(110)을 포함하는 스마트 폰(405)의 예시적인 블록도이다. 스마트 폰(405)은 여기에서 상세히 설명된 바와 같이 log1p () 범위 축소 기술(145)을 수행할 수 있다. 스마트 폰(405)은 log1p () 범위 축소 기술(145)을 수행하기 위해 마이크로 프로세서(115), 고정밀도 log1p () 연산 논리 섹션(110), 메모리 장치(120) 또는 스토리지 유닛(125) 중 적어도 하나를 사용할 수 있다.
도 5는 여기에 개시된 실시 예에 따른 고정밀도 log1p () 연산 논리 섹션(110)을 포함하는 태블릿(505)의 예시적인 블록도이다. 태블릿(505)은 여기에 상세히 설명된 바와 같이 log1p () 범위 축소 기술(145)을 수행할 수 있다. 태블릿(505)은 log1p () 범위 축소 기술(145)을 수행하기 위해 마이크로 프로세서(115), 고정밀도 log1p () 연산 논리 섹션(110), 메모리 장치(120) 또는 스토리지 유닛(125) 중 적어도 하나를 사용할 수 있다.
도 6은 여기에 개시된 실시 예에 따른 고정밀도 log1p () 연산 논리 섹션(110)을 포함하는 컴퓨터(605)의 예시적인 블록도이다. 태블릿(505)은 여기에 상세히 설명된 바와 같이 log1p () 범위 축소 기술(145)을 수행할 수 있다. 컴퓨터(605)는 log1p () 범위 축소 기술(145)을 수행하기 위해 마이크로 프로세서(115), 고정밀도 log1p () 연산 논리 섹션(110), 메모리 장치(120) 또는 스토리지 유닛(125) 중 적어도 하나를 사용할 수 있다.
도 7은 여기에 개시된 실시 예에 따른 고정밀도 log1p () 연산 논리 섹션(110)을 포함하는 컴퓨팅 시스템(700)의 예시적인 블록도이다. 고정밀도 log1p () 연산 로직 섹션(110)은 여기에 설명된 고정밀도 log1p () 연산 로직 섹션(110)과 동일할 수 있고 시스템 버스(705)에 전기적으로 접속될 수 있다. 컴퓨팅 시스템(700)은 또한 시스템 버스(705)에 전기적으로 연결된 클록(710), 랜덤 액세스 메모리(RAM) 및/또는 플래시 메모리(715), 메모리 컨트롤러(745), 유저 인터페이스(720), 베이스 밴드 칩셋과 같은 모뎀(725) 및/또는 자동화된 테스트 장비(ATE)를 포함할 수 있다.
컴퓨팅 시스템(700)이 모바일 장치인 경우, 컴퓨팅 시스템(700)에 전력을 공급하는 배터리(740)를 더 포함할 수 있다. 도 7에 도시된 바와 같이, 컴퓨팅 시스템(700)은 애플리케이션 칩셋, 카메라 이미지 프로세서(CIS), 모바일 DRAM 등을 더 포함할 수 있다. 메모리 컨트롤러(745) 및 램 및/또는 플래시 메모리(715)는 데이터를 저장하기 위해 비휘발성 메모리를 사용하는 SSD(solid state drive / disk)를 구성할 수 있다.
실시 예에서, 컴퓨팅 시스템(700)은 컴퓨터, 휴대용 컴퓨터, 울트라 모바일 PC(UMPC), 워크 스테이션, 넷북, PDA, 웹 태블릿, 무선 전화, 이동 전화, 스마트 폰, 전자 북, PMP 휴대용 멀티미디어 기기, 디지털 카메라, 디지털 오디오 레코더/플레이어, 디지털 영상/비디오 레코더/플레이어, 휴대용 게임기, 네비게이션 시스템, 블랙 박스, 3 차원 텔레비전, 무선 환경에서 정보를 송수신할 수 있는 장치, 홈 네트워크를 구성하는 다양한 전자 장치 중 하나, 컴퓨터 네트워크를 구성하는 다양한 전자 장치 중 하나, 텔레매틱스 네트워크를 구성하는 다양한 전자 장치 중 하나, RFID 또는 컴퓨팅 시스템을 구성하는 다양한 전자 장치 중 하나로 사용될 수 있다.
전술한 방법의 다양한 동작은 다양한 하드웨어 그리고/또는 소프트웨어 컴포넌트(들), 회로, 그리고/또는 모듈(들)과 같은 동작을 수행할 수 있는 임의의 적절한 수단에 의해 수행될 수 있다.
여기에 개시된 실시 예와 관련하여 설명된 방법 또는 알고리즘 및 기능의 블록 또는 단계는 하드웨어, 프로세서에 의해 실행되는 소프트웨어 모듈, 또는 이들의 조합으로 직접 구현될 수 있다. 소프트웨어로 구현되는 경우, 기능은 유형의 비일시적인 컴퓨터 판독 가능 매체 상에 하나 또는 그 이상의 명령어 또는 코드로서 저장되거나 전송될 수 있다. 소프트웨어 모듈은 RAM(Random Access Memory), 플래시 메모리, ROM, EPROM, EEPROM, 레지스터, 하드 디스크, 이동식 디스크, CD ROM, 또는 당업계에 공지 된 임의의 다른 형태의 저장 매체일 수 있다.
다음의 설명은 본 발명의 개념의 특정 양상이 구현될 수 있는 적합한 기계 또는 기계에 대한 간략하고 일반적인 설명을 제공하기 위한 것이다. 일반적으로, 머신은 프로세서, 메모리, 예를 들어, RAM, ROM, 또는 다른 상태 보존 매체, 저장 장치, 비디오 인터페이스, 및 입/출력 인터페이스 포트가 부착된 시스템 버스를 포함한다. 머신은 적어도 부분적으로 키보드, 마우스 등과 같은 종래의 입력 디바이스로부터의 입력에 의해 제어될 수 있을뿐만 아니라, 다른 머신으로부터 수신된 지시들에 의해, 가상 현실(VR) 환경과의 상호 작용, 생체 인식 피드백, 또는 다른 입력 신호를 수신한다. 본 명세서에 사용된 바와 같이, "기계"라는 용어는 단일 기계, 가상 기계, 또는 함께 동작하는 통신 가능하게 결합된 기계, 가상 기계 또는 장치의 시스템을 광범위하게 포함하는 것으로 의도된다. 예시적인 머신은 퍼스널 컴퓨터, 워크 스테이션, 서버, 휴대용 컴퓨터, 핸드 헬드 디바이스, 전화기, 태블릿 등과 같은 컴퓨팅 디바이스뿐만 아니라 자동차, 기차, 택시 등과 같은 사설 또는 대중 교통과 같은 운송 디바이스를 포함한다.
머신은 프로그램 가능 또는 비프로그래밍 가능 로직 디바이스 또는 어레이, ASIC(Application Specific Integrated Circuit), 임베디드 컴퓨터, 스마트 카드 등과 같은 내장형 컨트롤러를 포함할 수 있다. 기계는 네트워크 인터페이스, 모뎀 또는 다른 통신 커플링과 같은 하나 이상의 원격 기계에 대한 하나 이상의 연결을 활용할 수 있다. 기계는 인트라넷, 인터넷, 로컬 영역 네트워크, 광역 네트워크 등과 같은 물리적 그리고/또는 논리적 네트워크에 의해 상호 접속될 수 있다. 당업자는 네트워크 통신이 다양한 유선 그리고/또는 무선 주파수(RF), 위성, 전자 레인지, Institute of Electrical and Electronics Engineers (IEEE) 545.11, Bluetooth®, 광학, 적외선, 케이블, 레이저 등을 포함한 무선 근거리 통신망이나 장거리 통신 사업자 및 프로토콜을 사용할 수 있음을 잘 이해할 것이다.
본 발명의 개념의 실시 예는 머신에 의해 액세스될 때 머신이 태스크를 수행하거나 추상적인 데이터 타입을 정의하거나 저-레벨 하드웨어 콘텍스트를 정의하는 기능, 절차, 데이터 구조, 애플리케이션 프로그램 등을 포함하는 관련 데이터를 참조하거나 그와 관련하여 기술될 수 있다. 관련 데이터는 예를 들어, RAM, ROM 등과 같은 휘발성 그리고/또는 비휘발성 메모리, 또는 하드 드라이브, 플로피 디스크, 광학 디스크, 테이프, 플래시 메모리, 메모리 스틱, 디지털 비디오 디스크, 생물학적 저장 장치 등의 다른 저장 장치 및 관련 저장 매체에 저장될 수 있다. 연관된 데이터는 패킷 및 직렬 데이터, 병렬 데이터, 전파된 신호 등의 형태로 물리적 그리고/또는 논리적 네트워크를 포함한 전송 환경을 통해 전달될 수 있으며 압축 또는 암호화된 형식으로 사용될 수 있다. 연관된 데이터는 분산 환경에서 사용될 수 있으며 기계 액세스를 위해 로컬 그리고/또는 원격으로 저장된다.
설명된 실시 예를 참조하여 본 발명의 개념의 원리를 설명하고 예시 하였지만, 도시된 실시 예는 이러한 원리를 벗어나지 않고 배열 및 세부 사항을 수정할 수 있으며 임의의 원하는 방식으로 조합될 수 있음을 알 것이다. 전술한 설명은 특정 실시 예에 집중되었지만, 다른 구성이 고려될 수 있다. 특히, "발명의 개념의 실시 예에 따른"등과 같은 표현이 본 명세서에서 사용 되더라도, 이러한 문구는 일반적으로 실시 예의 가능성을 참조하는 것으로 의도되며, 본 발명의 개념을 특정 실시 예의 구성으로 제한하려는 것은 아니다. 본 명세서에서 사용된 바와 같이, 이들 용어는 다른 실시 예와 조합 가능한 동일하거나 상이한 실시 예를 나타낼 수 있다.
본 발명의 개념의 실시 예는 하나 이상의 프로세서에 의해 실행 가능한 명령어를 포함하는 비일시적 기계 판독 가능 매체를 포함할 수 있으며, 상기 명령어는 본 명세서에서 설명된 바와 같은 발명 개념의 요소를 수행하기 위한 명령어를 포함한다.
전술한 예시적인 실시 예들은 본 발명의 개념을 제한하는 것으로 해석되어서는 안된다. 몇몇 실시 예가 설명되었지만, 당업자는 본 개시의 신규한 교시 및 이점으로부터 실질적으로 벗어나지 않고도 이들 실시 예에 많은 수정이 가능하다는 것을 쉽게 알 것이다. 따라서, 이러한 모든 수정은 청구항에 정의된 본 발명의 개념의 범위 내에 포함되는 것으로 의도된다.

Claims (19)

  1. 컴퓨터 프로세서에 의해 실행될 때 고정밀도의 log1p() 연산 로직 섹션으로 하여금, 추정 함수 E(x) 를 사용하여, 함수 F(x) = log1p(x) = ln(x+1) 을 근사화하도록하는 명령어들을 저장하는 비일시적 컴퓨터 판독 가능 저장 매체에 있어서:
    (i) 입력 x 를 수신하고,
    (ii) 기본 정밀도만을 사용하여 (x+1) 을 계산하고,
    (iii) (4/3)2 N-1 ≤ (x+1) ≤ (4/3)2 N 이되도록 정수 N 을 계산하고,
    (iv) f N (x)=Sx+(S-1), S=2 -N 을 계산하고,
    (v) E(f N (x)) 를 계산하고,
    (vi) F(x) = log1p(x) 의 근사치로서 값 v=E(f N (x)+Nln(2)) 를 반환하는 동작들을 수행하는 비일시적 컴퓨터 판독 가능 저장 매체.
  2. 제 1 항에 있어서,
    상기 컴퓨터 프로세서에 의해 실행될 때, 상기 고정밀도의 log1p() 계산 로직 섹션이 상기 리턴 값을 비휘발성 저장 장치에 저장하게 하는 명령어들을 저장하는 비일시적 컴퓨터 판독 가능 저장 매체.
  3. 제 1 항에 있어서,
    상기 컴퓨터 프로세서에 의해 실행될 때, 상기 고정밀도의 log1p() 계산 로직 섹션이 상기 반환된 값을 휘발성 메모리 장치에 저장하게하는 명령어들을 저장하는 비일시적 컴퓨터 판독 가능 저장 매체.
  4. 제 1 항에 있어서,
    상기 컴퓨터 프로세서에 의해 실행될 때, 상기 고정밀도의 log1p() 연산 로직 섹션이 상기 입/출력(I/O) 인터페이스 칩을 통해 상기 반환된 값을 전송하도록 하는 명령어들을 저장하는 비일시적 컴퓨터 판독 가능 저장 매체.
  5. 제 1 항에 있어서,
    상기 컴퓨터 프로세서에 의해 실행될 때, 상기 고정밀도 log1p() 연산 로직 섹션이 상기 반환된 값을 디스플레이 장치 상에 표시하게하는 명령어들을 저장하는 비일시적 컴퓨터 판독 가능 저장 매체.
  6. log1p()의 고정밀도 계산을 위한 컴퓨터 구현 방법에 있어서:
    추정 함수 E(x) 를 사용하여 컴퓨팅 머신의 고정밀도 log1p() 연산 로직 섹션에 의해 함수 F(x) = log1p(x) = ln(x+1) 을 근사하는 단계;
    상기 컴퓨팅 머신의 상기 고정밀도 log1p() 연산 로직 섹션에 의해, 입력 x 를 수신하는 단계;
    상기 컴퓨팅 머신의 상기 고정밀도 log1p() 연산 로직 섹션에 의해, 기본 정밀도만을 사용하는 (x+1) 을 계산하는 단계;
    상기 컴퓨팅 머신의 상기 고정밀도 log1p() 연산 로직 섹션에 의해, (4/3)2 N-1 = (x+1) ≤= (4/3)2 N 을 만족하는 정수 N 을 계산하는 단계;
    상기 컴퓨팅 머신의 상기 고정밀도 log1p() 연산 로직 섹션에 의해, f N (x)=Sx+(S-1) where S=2 -N 을 계산하는 단계;
    상기 컴퓨팅 머신의 상기 고정밀도 log1p() 연산 로직 섹션에 의해, E(f N (x)) 을 계산하는 단계; 그리고
    상기 컴퓨팅 머신의 상기 고정밀도 log1p() 연산 로직 섹션에 의해, F(x) = log1p(x) 의 근사로서 값 v=E(f N (x)+Nln(2)) 를 반환하는 단계를 포함하는 방법.
  7. 제 6 항에 있어서,
    상기 컴퓨팅 머신의 상기 고정밀도 log1p() 연산 로직 섹션에 의해, 상기 반환 값을 비휘발성 스토리지 유닛에 저장하도록 하는 단계를 더 포함하는 방법.
  8. 제 6 항에 있어서,
    상기 컴퓨팅 머신의 상기 고정밀도 log1p() 연산 로직 섹션에 의해, 상기 반환 값을 휘발성 메모리 장치에 저장하도록 하는 단계를 더 포함하는 방법.
  9. 제 6 항에 있어서,
    상기 컴퓨팅 머신의 상기 고정밀도 log1p() 연산 로직 섹션에 의해, 상기 반환 값이 입/출력(I/O) 인터페이스 칩을 통해 전송되도록하는 단계를 더 포함하는 방법.
  10. 제 6 항에 있어서,
    상기 컴퓨팅 머신의 상기 고정밀도 log1p() 연산 로직 섹션에 의해, 상기 반환 값을 디스플레이 장치 상에 표시하는 단계를 더 포함하는 방법.
  11. 컴퓨팅 머신의 고정밀도 log1p() 연산 논리 섹션에 있어서:
    상기 고정밀도 log1p() 연산 로직 섹션은:
    추정 함수 E(x) 를 사용하여 함수 F(x) = log1p(x) = ln(x+1) 을 근사하고;
    입력 x 를 수신하고;
    기본 정밀도만을 사용하는 (x+1) 을 계산하고;
    (4/3)2 N-1 = (x+1) ≤= (4/3)2 N 을 만족하는 정수 N 을 계산하고;
    f N (x)=Sx+(S-1) where S=2 -N 을 계산하고;
    E(f N (x)) 을 계산하고; 그리고
    F(x) = log1p(x) 의 근사로서 값 v=E( f N (x)+ Nln (2)) 를 반환하는 고정밀도 log1p() 연산 로직 섹션.
  12. 제 11 항에 있어서,
    상기 고정밀도 log1p() 연산 로직 섹션은 상기 반환된 값을 비휘발성 스토리지 유닛에 저장하도록 더 구성되는 고정밀도 log1p() 연산 로직 섹션.
  13. 제 11 항에 있어서,
    상기 고정밀도 log1p() 연산 로직 섹션은 상기 반환된 값을 휘발성 메모리 장치에 저장하도록 더 구성되는 고정밀도 log1p() 연산 로직 섹션.
  14. 제 11 항에 있어서,
    상기 고정밀도 log1p() 연산 로직 섹션은 상기 입/출력(IO) 인터페이스 칩을 통해 상기 반환된 값을 전송하도록 구성되는, 고정밀도 log1p() 연산 로직 섹션.
  15. 제 11 항에 있어서,
    상기 고정밀도 log1p() 연산 로직 섹션은 상기 반환된 값을 디스플레이 장치 상에 표시하도록 더 구성되는 고정밀도 log1p() 연산 로직 섹션.
  16. 제 11 항에 있어서,
    상기 컴퓨팅 머신은 그래픽 처리 유닛(GPU)인 것을 특징으로하는 고정밀도 log1p() 연산 로직 섹션.
  17. 제 11 항에 있어서,
    상기 컴퓨팅 머신은 스마트 폰인 것을 특징으로하는 고정밀도 log1p() 연산 로직 섹션.
  18. 제 11 항에 있어서,
    상기 컴퓨팅 머신은 태블릿(tablet)인 것을 특징으로하는 고정밀도 log1p() 연산 로직 섹션.
  19. 제 11 항에 있어서,
    상기 컴퓨팅 머신은 컴퓨터 서버인 것을 특징으로하는 고정밀도 log1p() 연산 로직 섹션.
KR1020190145572A 2018-12-17 2019-11-14 Log1p()의 고정밀도 컴퓨터용 장치 및 방법 KR20200074855A (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862780922P 2018-12-17 2018-12-17
US62/780,922 2018-12-17
US16/275,302 2019-02-13
US16/275,302 US10970045B2 (en) 2018-12-17 2019-02-13 Apparatus and method for high-precision compute of log1p( )

Publications (1)

Publication Number Publication Date
KR20200074855A true KR20200074855A (ko) 2020-06-25

Family

ID=71072578

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190145572A KR20200074855A (ko) 2018-12-17 2019-11-14 Log1p()의 고정밀도 컴퓨터용 장치 및 방법

Country Status (4)

Country Link
US (1) US10970045B2 (ko)
KR (1) KR20200074855A (ko)
CN (1) CN111324856A (ko)
TW (1) TWI776090B (ko)

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5197024A (en) * 1989-06-14 1993-03-23 Pickett Lester C Method and apparatus for exponential/logarithmic computation
EP0622727A1 (en) * 1993-04-29 1994-11-02 International Business Machines Corporation System for optimizing argument reduction
US5798957A (en) * 1995-12-28 1998-08-25 Motorola Inc. LNS-based computer processor and method of use thereof
US7031993B1 (en) 2000-02-18 2006-04-18 Ge Medical Systems Global Technology Company, Llc Method and apparatus for fast natural log(X) calculation
US7366748B1 (en) * 2000-06-30 2008-04-29 Intel Corporation Methods and apparatus for fast argument reduction in a computing system
US20050203980A1 (en) * 2004-03-11 2005-09-15 Harrison John R. Computing transcendental functions using single instruction multiple data (SIMD) operations
JP4337719B2 (ja) 2004-12-02 2009-09-30 カシオ計算機株式会社 計算装置、および計算処理プログラム
US8037119B1 (en) * 2006-02-21 2011-10-11 Nvidia Corporation Multipurpose functional unit with single-precision and double-precision operations
US8576096B2 (en) * 2007-10-11 2013-11-05 Motorola Mobility Llc Apparatus and method for low complexity combinatorial coding of signals
US8914801B2 (en) 2010-05-27 2014-12-16 International Business Machine Corporation Hardware instructions to accelerate table-driven mathematical computation of reciprocal square, cube, forth root and their reciprocal functions, and the evaluation of exponential and logarithmic families of functions
CN202075727U (zh) * 2011-03-02 2011-12-14 中国电子科技集团公司第三十八研究所 包含超越函数计算的处理器实现装置
US9563402B2 (en) * 2011-09-01 2017-02-07 Advanced Micro Devices, Inc. Method and apparatus for additive range reduction
WO2013095463A1 (en) * 2011-12-21 2013-06-27 Intel Corporation Math circuit for estimating a transcendental function
CN108228135B (zh) * 2016-12-15 2021-09-07 上海寒武纪信息科技有限公司 一种运算多种超越函数的装置

Also Published As

Publication number Publication date
US10970045B2 (en) 2021-04-06
TWI776090B (zh) 2022-09-01
CN111324856A (zh) 2020-06-23
TW202036270A (zh) 2020-10-01
US20200192635A1 (en) 2020-06-18

Similar Documents

Publication Publication Date Title
CN110363279B (zh) 基于卷积神经网络模型的图像处理方法和装置
US10929746B2 (en) Low-power hardware acceleration method and system for convolution neural network computation
US20200218509A1 (en) Multiplication Circuit, System on Chip, and Electronic Device
US8719322B2 (en) Floating point format converter
Nilsson et al. Hardware implementation of the exponential function using Taylor series
CN103959192A (zh) 用于估算超越函数的数学电路
CN107305484B (zh) 一种非线性函数运算装置及方法
CN110222833B (zh) 一种用于神经网络的数据处理电路
US9983850B2 (en) Shared hardware integer/floating point divider and square root logic unit and associated methods
US20150113027A1 (en) Method for determining a logarithmic functional unit
US20180081634A1 (en) Piecewise polynomial evaluation instruction
US8868633B2 (en) Method and circuitry for square root determination
US10303439B2 (en) Logarithm and power (exponentiation) computations using modern computer architectures
CN107220025B (zh) 处理乘加运算的装置和处理乘加运算的方法
KR20210130098A (ko) 하드웨어 가속 머신 러닝 및 덧셈 및 시프트 연산들을 갖는 이미지 처리 시스템
CN114201140B (zh) 指数函数处理单元、方法和神经网络芯片
KR20200074855A (ko) Log1p()의 고정밀도 컴퓨터용 장치 및 방법
CN115686436A (zh) 定点数除法的计算方法及装置
US20220137922A1 (en) Bit-width optimization method for performing floating point to fixed point conversion
JP2015015026A (ja) 様々な数値フォーマットのデータを用いてデータに基づく関数モデルを計算するためのモデル計算ユニット、および制御装置
US9612800B2 (en) Implementing a square root operation in a computer system
Risojević et al. A simple pipelined squaring circuit for DSP
US8924447B2 (en) Double precision approximation of a single precision operation
Cao et al. A piecewise cubic polynomial interpolation algorithm for approximating elementary function
KR102336535B1 (ko) 테일러 급수를 이용한 제곱근 연산 방법 및 이를 이용한 장치

Legal Events

Date Code Title Description
A201 Request for examination