TWI776090B - 電腦可讀儲存媒體、電腦實施的方法及計算邏輯區段 - Google Patents
電腦可讀儲存媒體、電腦實施的方法及計算邏輯區段 Download PDFInfo
- Publication number
- TWI776090B TWI776090B TW108136222A TW108136222A TWI776090B TW I776090 B TWI776090 B TW I776090B TW 108136222 A TW108136222 A TW 108136222A TW 108136222 A TW108136222 A TW 108136222A TW I776090 B TWI776090 B TW I776090B
- Authority
- TW
- Taiwan
- Prior art keywords
- log1p
- precision
- logic section
- computing machine
- computer
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/11—Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
- G06F7/556—Logarithmic or exponential functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/15—Correlation function computation including computation of convolution operations
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- 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)
- Apparatus For Radiation Diagnosis (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
本發明的各個方面包括一種計算機器的高精度log1p()計
算邏輯區段,所述計算機器的高精度log1p()計算邏輯區段使用估測函數 E(x) 對函數 F(x)=log1p(x)=ln(x+1) 進行近似且進行至少以下操作:(i)接收輸入 x ,(ii)只使用本機精度計算 (x+1) ,(iii)計算整數N,使得: (4/3)2 N-1 ≦(x+1)≦(4/3)2 N ,(iv)計算 f N (x)=Sx+(S-1) ,其中 S=2 -N ,(v)計算 E(f N (x)) ,以及(vi)返送回值 v=E(f N (x)+Nln(2)) 作為對 F(x)=log1p(x) 的近似。也提供一種電腦可讀儲存媒體和電腦實施的方法。
Description
本揭露涉及高精度計算,且更具體來說涉及一種用於log1p()的高精度計算的裝置及方法。
如今的計算機器比以往任何時候都更強大且高效。舉例來說,圖形處理單元(graphics processing unit,GPU)每秒可執行數十億次計算。例如智慧手機、平板電腦(tablet)、膝上型電腦及個人電腦等其他器件中所包括的嵌入式記憶體及處理器的處理速度持續提高。然而,一些種類的計算是資源密集型的,因此改為使用近似,或者依賴於查閱資料表,而查閱資料表會佔用矽晶片上的面積、增加存取潛伏時間(latency)、增加記憶體頻寬並導致器件的記憶體佔用的總體增加。
一種實施超越函數(transcendental function)(例如對數(logarithm))的方式是實施不同的非超越數學函數,由非超越數學函數在有限域內將所需函數近似到足夠的準確度、但計算起來
更簡單。此種近似函數通常是簡單多項式(polynomial)、多項式比率、泰勒級數(Taylor series)、樣條(spline)(即,在子域內的更簡單近似的分段集合)、切比雪茲多項式(Chebyshez polynomial)或它們的一些組合。當輸入值處於近似的有限域之外時,實施方案會利用數學恒等式匯出處於近似的域中的另一個值,且使用恒等式公式匯出正確結果。這在行業內被稱為“範圍縮減(range reduction)”,但實際上“域縮減”會更準確。
對於例如ln(x)等簡單對數函數,範圍縮減恒等式是ln(x)=ln(S*x)-ln(S),其中S是某個標度因數(scale factor),通常是二的冪,且近似函數的域通常是二的冪,包括x=1.0。舉例來說:sqrt(0.5)<=x<=sqrt(2)。
對於log1p(x)=ln(1+x),範圍縮減恒等式是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()計算邏輯區段,所述高精度log1p()計算邏輯區段使用估測函數 E(x) 對函數 F(x)=log1p(x)=ln(x+1) 進行近似且進行至少以下操作:(i)接收輸入
x ,(ii)只使用本機精度計算 (x+1) ,(iii)計算整數N,使得: (4/3)2 N-1 ≦(x+1)≦(4/3)2 N ,(iv)計算 f N (x)=Sx+(S-1) ,其中 S=2 -N ,(v)計算 E(f N (x)) ,以及(vi)返送回值 v=E(f N (x)+Nln(2)) 作為對 F(x)=log1p(x) 的近似。
一些實施例包括一種用於log1p()的高精度計算的由電腦實施的方法。所述方法可包括:由計算機器的高精度log1p()計算邏輯區段使用估測函數 E(x) 對函數 F(x)=log1p(x)=ln(x+1) 進行近似;由所述計算機器的所述高精度log1p()計算邏輯區段接收輸入 x ;由所述計算機器的所述高精度log1p()計算邏輯區段只使用本機精度計算 (x+1) ;由所述計算機器的所述高精度log1p()計算邏輯區段計算整數 N ,使得: (4/3)2 N-1 ≦(x+1)≦(4/3)2 N ;由所述計算機器的所述高精度log1p()計算邏輯區段計算 f N (x)=Sx+(S-1) ,其中 S=2 -N ;由所述計算機器的所述高精度log1p()計算邏輯區段計算 E(f N (x)) ;以及由所述計算機器的所述高精度log1p()計算邏輯區段返送回值 v=E(f N (x)+Nln(2)) 作為對 F(x)=log1p(x) 的近似。
本發明特徵中的某些特徵可通過在圖形處理單元(GPU)中或ARM處理器核內實施而得到最好地實現。其他類型的處理器或專用積體電路(application specific integrated circuits,ASIC)可實施本文中所揭露的發明原理。本發明概念可在處理器和/或各種移動器件(例如智慧手機、平板電腦、筆記本電腦等)的記憶體模組內實施或在各種固定器件(例如桌上型電腦、路由器等)中實施。
105、108:計算機器
110:高精度log1p()計算邏輯區段
115、118:微處理器
120:記憶體器件
125:儲存單元
130:顯示器
135:輸入/輸出(I/O)介面晶片
140:log1p()函數輸入
145:log1p()範圍縮減技術
150:log1p()函數輸出
180、200:流程圖
182、184、186、188、190、192、205、210、215、220、225、230、235、240、245:步驟
195:圖
305:圖形處理單元(GPU)
405:智能手機
505:平板電腦
605:電腦
700:計算系統
705:系統匯流排
710:時脈
715:隨機存取記憶體(RAM)和/或快閃記憶體
720:使用者介面
725:數據機
740:電池
745:記憶體控制器
參照附圖閱讀以下詳細說明,本發明原理的上述及附加特徵及優點將變得更顯而易見,在附圖中:圖1A是根據本文中所揭露實施例的包括高精度log1p()計算邏輯區段的計算機器的示例性方塊圖。
圖1B是根據本文中所揭露實施例的包括嵌入在一個或多個微處理器中的高精度log1p()計算邏輯區段的另一計算機器的示例性方塊圖。
圖1C是示出根據本文中所揭露實施例的用於實行高精度log1p()計算的技術的示例性流程圖。
圖1D是根據本文中所揭露實施例的圖,其示出函數集 f N 的每一函數是線性的。
圖2是示出根據本文中所揭露實施例的用於實行高精度log1p()計算的另一技術的示例性流程圖。
圖3是根據本文中所揭露實施例的包括高精度log1p()計算邏輯區段的圖形處理單元(GPU)的示例性方塊圖。
圖4是根據本文中所揭露實施例的包括高精度log1p()計算邏輯區段的智慧手機的示例性方塊圖。
圖5是根據本文中所揭露實施例的包括高精度log1p()計算邏輯區段的平板電腦的示例性方塊圖。
圖6是根據本文中所揭露實施例的包括高精度log1p()計算邏輯區段的電腦的示例性方塊圖。
圖7是根據本文中所揭露實施例的包括高精度log1p()計算邏
輯區段的計算系統的示例性方塊圖。
現將詳細參照本發明概念的實施例,本發明概念的實例在附圖中示出。在以下詳細說明中,闡述諸多具體細節以實現對本發明概念的透徹理解。然而應理解,所屬領域中的普通技術人員無需這些具體細節也可實踐本發明概念。在其他情形中,未詳細闡述眾所周知的方法、程式、元件、電路及網路,以免使實施例的各個方面模糊不清。
應理解,儘管本文中可使用用語“第一”、“第二”等來闡述各種元件,然而這些元件不應受這些用語限制。這些用語僅用於將一個元件與另一元件區分開。舉例來說,在不背離本發明概念的範圍的條件下,可將第一邏輯區段稱作第二邏輯區段,且相似地,可將第二邏輯區段稱作第一邏輯區段。
在本文對本發明概念的說明中所用的用語僅用於闡述特定實施例,而並非旨在對本發明概念進行限制。除非上下文清楚地另外指明,否則在對本發明概念的說明及隨附的權利要求書中使用的單數形式“一(a、an)”及“所述(the)”旨在也包括複數形式。還應理解,本文中使用的用語“和/或”指代且囊括相關列出項中的任意項及相關列出項中的一項或多項的所有可能的組合。還應理解,當在本說明書中使用用語“包括(comprises)”和/或“包括(comprising)”時,是指明所述特徵、整數、步驟、操作、元件、和/或元件的存在,但不排除一個或多個其他特徵、整數、步驟、操作、元件、元件和/或其群組的存在或添加。圖式
的元件及特徵未必按比例繪製。
本發明揭露一種使用更少的計算資源實施log1p()函數的更高效的系統及方法。得到改善的量度包括:指令個數、執行時間、暫存器個數、功耗。
本文中所揭露的實施例使得能夠只使用本機精度算數運算(即,不使用擴展精度算術或常數儲存表)來自動實行由電腦實施的輸入值的範圍縮減,從而不再需要進行成本更高昂的擴展精度算數運算。也就是說,本文中所揭露的實施例使得能夠在不使用擴展精度算術或常數儲存表的條件下自動實行由電腦實施的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和/或輸入/輸出(Input/Output,I/O)介面晶片135。圖1B所示計算機器108相似於圖1A所示計算機器,顯著的區別在於,計算機器108可包括一個或多個微處理器118且高精度log1p()計算邏輯區段可嵌入在所述一個或多個微處理器118內或者以其他方式作為所述一個或多個微處理器118的硬體區段的一部分。本文中所揭露的實施例能夠只使用少量本機精度算數運算來實行log1p(x)的範圍縮減。
如圖1C的182處所示,高精度log1p()計算邏輯區段110可接收log1p()函數輸入140(圖1A及圖1B所示)。接下來,高精度log1p()計算邏輯區段110可根據本文中所揭露的實施例在145處實行範圍縮減。具體來說,在184處,高精度log1p()計算邏輯區段110可只使用本機精度計算(x+1)。在186處,高精度log1p()計算邏輯區段110可使用來自184的結果且計算整數N,使得: (4/3)2 N-1 ≦(x+1)≦(4/3)2 N 。在188處,高精度log1p()計算邏輯區段110可計算 f N (x)=Sx-(1-S)或Sx+(S-1) ,其中 S=2 -N 。
在實行以上範圍縮減技術之後,以下成立: -1/3≦f N (x)≦1/3 。之後,可在190處使用標準技術實行與log1p(x)函數相關聯的後期範圍縮減計算(post-range-reduction computation)。舉例來說,可使用已知技術計算 log1p(f N (x)) 的近似。另外,可計算 log1p(x)=log1p(f N (x))-ln(S) 或 log1p(f N (x))+Nln(2) 並在192處返送回 log1p(x)=log1p(f N (x))-ln(S) 或 log1p(f N (x))+Nln(2) 作為log1p()函數輸出150。
在184處計算的(x+1)的值只在步驟186中用於計算整數N。換句話說,在任何後續階段中均不需要使用(x+1)的值。當x具有非常小的量值時,這種組合可能會損失如上所述的精度。然而,對於這些值,儘管損失了有效位數,但所計算的整數N將是明確而不含糊的。在不背離本文中所揭露的發明概念的條件下,可存在用於實施步驟186的替代方法,這些替代方法將取決於所使用的電腦的指令集架構和/或程式化語言。
在188處, 2 -N 及 2 -N x 的計算是精確的運算,其中僅修改浮點數的指數,而不是有效位數。 (S-1) 的組合對於小的N值來說是精確的,而對於大的量值的N值來說進行捨入且精度稍有損失。然而,對於這些值,最終結果主要由+Nln(2) 項決定,因此這種捨入對最終結果的影響可忽略不計(如果有的話)。此步驟中將 Sx+(S-1) 進行組合的最終加法將是準確的運算,對於大多數輸入來說不進行捨入。對於輸入的小的子集,可能會進行捨入,但在最壞的情形中,結果相當於損失輸入值的1個位元或1個最末單位(unit in the last place,ULP)或最低精度單位(unit of least precision,ULP)。在此步驟中運算子的優先次序是重要的;例如,評估 (Sx+S)-1 會產生完全不同的且不太準確的結果。
在設計近似函數的過程中,近似的域的大小與所述近似的計算複雜度(即,成本)之間總是存在折衷(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)計算整數 N ,使得: (4/3)2 N-1 ≦(x+1)≦(4/3)2 N ,(iv)計算
f N (x)=Sx+(S-1) ,其中 S=2 -N ,(v)計算 E(f N (x)) ,以及(vi)返送回值 v=E(f N (x)+Nln(2)) 作為對 F(x)=log1p(x) 的近似。
圖1D是根據本文中所揭露實施例的圖195,其示出函數集 f N 的每一函數是線性的。當且僅當正確選擇N以使 f N (x) 的量值最小化時,步驟188處的精度損失很小或沒有損失。換句話說,如果N滿足不等式,則在188處計算的範圍縮減值的量值必須最小。如圖1D中所示,所述集的每一函數是線性的,在 2 N -1 處與X軸相交,且具有斜率 2 N 。N的優選值是附近過零點的指數。在連續整數之間進行選擇的會切點(cusp)由使 f N (x) 與 f N+1 (x) 具有相同量值的點界定。舉例來說:| f N (y) |=| f N+1 (y) | 或f N (y)=-f N+1 (y)
2
-N
(1+y)-1=-2
-(N+1)
(1+y)+1
(1+y)(2
-N
+2
-(N+1)
)=2
(1+y)(3/2)2
-N
=2
(1+y)=(4/3)2
N
對於電氣及電子工程師學會(Institute of Electrical and Electronics Engineers,IEEE)-754基-2(base-2)浮點數(即,不是非正規的浮點數),N的兩個連續整數值之間的判別將始終只取決於(1+x)的有效位數,而不取決於指數位數。以上偽代碼將值
的位元視為定點數(fixed point number)且對其添加特定的位元圖案(bit pattern),且因此當且僅當有效位數大於會切點值時,通過將一從有效位元欄位進到指數位元欄位來運行--對指數進行遞增。對於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中的方程式必須相應地進行修改。
log1p()函數輸入140和/或log1p()函數輸出150可臨時儲存在記憶體器件120中。記憶體器件120可為例如揮發性記憶體器件,例如動態隨機存取記憶體(dynamic random access
memory,DRAM)。計算機器105或108可在儲存單元125中更永久地儲存log1p()函數輸出150,在顯示器130上顯示log1p()函數輸出150,和/或通過輸入/輸出介面晶片135傳送log1p()函數輸出150。儲存單元125可為例如非揮發性記憶體,例如固態驅動器(solid state drive,SSD)、磁性記憶體件等。
圖2是示出根據本文中所揭露實施例的用於實行高精度log1p()計算的技術的示例性流程圖200。流程圖200示出針對IEEE-754單精確度算術的範圍縮減的另一可能的實施方案。
在140處,可接收log1p()函數輸入。在145處,高精度log1p()計算邏輯區段110可實行範圍縮減運算。具體來說,在205處,高精度log1p()計算邏輯區段110可實行單精確度浮點加法來計算(1.0f+x)。在210處,高精度log1p()計算邏輯區段110可實行32位元的定點減法並相結合地進行位元欄位提取,所述減法從常數值減去步驟205的結果。不需要對輸入進行類型轉換。在205處產生的32個位元可被重新解釋為定點數。此運算將值2/3加到輸入的有效位元欄位,因此如果浮點值的有效位數>4/2,則對指數位元欄位進行進位,從而對指數進行遞增。另外,可從指數減去IEEE-754格式的指數偏項。所得指數位元欄位被提取(例如,所得指數位元欄位可經過符號擴展),並作為二進位補數定點值輸出。有效位元及符號位元可被捨棄。可對整個運算求反,因此輸出值為-N。
步驟215及220執行載入指數(load exponent,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()函數。舉例來說,此可為對最小最大多項式的計算。在245處,高精度log1p()計算邏輯區段110可使用單精確度融合乘加運算(fused-multiply-add operation)來計算最終結果log1p(f_N(x))+N ln(2)。可在150處返送回log1p()函數輸出。
圖3是根據本文中所揭露實施例的包括高精度log1p()計算邏輯區段110的圖形處理單元(GPU)305的示例性方塊圖。GPU 305可實行本文中詳細闡述的log1p()範圍縮減技術145。GPU 305可使用微處理器115、高精度log1p()計算邏輯區段110或記憶
體器件120中的至少一者來實行log1p()範圍縮減技術145。
圖4是根據本文中所揭露實施例的包括高精度log1p()計算邏輯區段110的智慧手機405的示例性方塊圖。智慧手機405可實行本文中詳細闡述的log1p()範圍縮減技術145。智慧手機405可使用微處理器115、高精度log1p()計算邏輯區段110、記憶體器件120或儲存單元125中的至少一者來實行log1p()範圍縮減技術145。
圖5是根據本文中所揭露實施例的包括高精度log1p()計算邏輯區段110的平板電腦505的示例性方塊圖。平板電腦505可實行本文中詳細闡述的log1p()範圍縮減技術145。平板電腦505可使用微處理器115、高精度log1p()計算邏輯區段110、記憶體器件120或儲存單元125中的至少一者來實行log1p()範圍縮減技術145。
圖6是根據本文中所揭露實施例的包括高精度log1p()計算邏輯區段110的電腦605的示例性方塊圖。電腦605可實行本文中詳細闡述的log1p()範圍縮減技術145。電腦605可使用微處理器115、高精度log1p()計算邏輯區段110、記憶體器件120或儲存單元125中的至少一者來實行log1p()範圍縮減技術145。
圖7是根據本文中所揭露實施例的包括高精度log1p()計算邏輯區段110的計算系統700的示例性方塊圖。高精度log1p()計算邏輯區段110可與本文中闡述的高精度log1p()計算邏輯區段110相同且可電連接到系統匯流排705。計算系統700還可包括時脈710、隨機存取記憶體(RAM)和/或快閃記憶體715、記憶體控制器745、使用者介面720、數據機725(例如基頻晶片組)和/
或自動測試設備(automated test equipment,ATE),這些器件中的任何一者或全部可電耦合到系統匯流排705。
如果計算系統700是移動器件,則計算系統700還可包括為計算系統700供電的電池740。儘管在圖7中未示出,但計算系統700還可包括應用晶片組、相機影像處理器(camera image processor,CIS)、移動動態隨機存取記憶體(DRAM)等。記憶體控制器745及快閃記憶體715可構成使用非揮發性記憶體來儲存資料的固態驅動器/磁片(solid state drive/disk,SSD)。
在示例性實施例中,計算系統700可用作電腦、可攜式電腦、超級移動個人電腦(ultra-mobile personal computer,UMPC)、工作站(workstation)、隨身型易網機(net-book)、個人數位助理(personal digital assistant,PDA)、上網平板電腦(web tablet)、無線電話、行動電話、智慧手機、電子書、可攜式多媒體播放機(portable multimedia player,PMP)、數位相機、數位音訊記錄器/播放機、數位圖片/視頻記錄器/播放機、可攜式遊戲機器、導航系統、黑盒子(black box)、三維電視、能夠在無線環境中傳送及接收資訊的器件、構成家用網路的各種電子器件中的一者、構成電腦網路的各種電子器件中的一者、構成遠端處理網路的各種電子器件中的一者、無線射頻識別器件(radio frequency identification device,RFID)、或構成計算系統的各種電子器件中的一者。
上述方法的各種操作可通過能夠執行所述操作的任何適合的手段(例如各種硬體元件、電路和/或模組、和/或軟體元件、電路和/或模組)來執行。
結合本文中所揭露的實施例闡述的方法或者演算法及功能的區塊或步驟可直接以硬體實施、以由處理器執行的軟體模組實施、或以二者的組合來實施。如果以軟體實施,則所述功能可作為一個或多個指令或代碼儲存在有形的非暫時性電腦可讀媒體上或通過有形的非暫時性電腦可讀媒體傳送。軟體模組可駐留在隨機存取記憶體(Random Access Memory,RAM)、快閃記憶體、唯讀記憶體(Read Only Memory,ROM)、電可程式化ROM(Electrically Programmable ROM,EPROM)、電可擦可程式化ROM(Electrically Erasable Programmable ROM,EEPROM)、暫存器、硬碟、抽取式磁碟(removable disk)、壓縮磁碟唯讀記憶體(compact disk ROM,CD ROM)或所屬領域中已知的任何其他形式的儲存媒體中。
以下論述旨在提供對可在其中實施本發明概念某些方面的一個或多個合適的機器的簡要總體說明。通常,所述一個或多個機器包括附裝有處理器、記憶體(例如,RAM、ROM或其他狀態保存媒體)、記憶體件、視頻界面及輸入/輸出介面埠的系統匯流排。所述一個或多個機器可至少部分地通過以下來控制:來自例如鍵盤、滑鼠等傳統輸入器件的輸入;以及從另一機器接收到的指令、與虛擬實境(virtual reality,VR)環境的互動、生物回饋(biometric feedback)或其他輸入訊號。本文中所用用語“機器”旨在廣泛地囊括單一機器、虛擬機器器或由以通訊方式耦合的一起運行的機器、虛擬機器器或器件形成的系統。示例性機器包括計算器件(例如個人電腦、工作站、伺服器、可攜式電腦、掌上型器件、電話、平板電腦等)以及運輸器件(例如私人或公
共運輸(例如汽車、火車、計程車等))。
所述一個或多個機器可包括嵌入式控制器,例如可程式化或非可程式化邏輯器件或陣列、專用積體電路(Application Specific Integrated Circuit,ASIC)、嵌入式電腦、智慧卡等。所述一個或多個機器可利用連接到一個或多個遠端機器(例如通過網路介面、數據機或其他通訊性耦合)的一或多個連接。機器可通過例如內部網(intranet)、網際網路、區域網路、廣域網路等物理網路和/或邏輯網路進行互連。所屬領域中的技術人員應理解,網路通訊可利用各種有線和/或無線短程或遠端載體及協議,所述載體及協議包括射頻(radio frequency,RF)、衛星、微波、電氣及電子工程師學會(IEEE)545.11、藍牙®、光學的、紅外線的、纜線、鐳射等。
本發明概念的實施例可通過參照或結合相關聯的資料來闡述,相關聯的資料包括當由機器存取時會使機器實行任務或定義抽象資料類型或低級硬體上下文的功能、程式(procedure)、資料結構、應用程式等。相關聯的資料可儲存在例如揮發性和/或非揮發性記憶體(例如,RAM、ROM等)中或其他記憶體件及其相關聯的儲存媒體(包括硬碟驅動器、軟碟、光學記憶體、磁帶、快閃記憶體、記憶棒(memory stick)、數位視訊盤、生物記憶體等)中。相關聯的資料可以資料包(packet)、串列資料、並行資料、傳播訊號等形式通過傳輸環境(包括物理網路和/或邏輯網路)進行遞送,且可以壓縮或加密的格式使用。相關聯的資料可在分散式環境中使用且可儲存在本地和/或遠端以供機器存取。
已參照所示實施例闡述並示出了本發明概念的原理,將
認識到,在不背離這些原理的條件下可對所示實施例進行排列及細節上的修改且可以任何期望的方式對所示實施例進行組合。且儘管以上論述著重於特定實施例,但也可預期存在其他配置。具體來說,即使本文中使用了例如“根據本發明概念的實施例”等表達,這些短語也旨在一般性地提及實施例的可能性,而不旨在將本發明概念限制到特定的實施例配置。本文中所用的這些用語可提及可組合成其他實施例的相同或不同的實施例。
本發明概念的實施例可包括非暫時性機器可讀媒體,所述非暫時性機器可讀媒體包括可由一個或多個處理器執行的指令,所述指令包括實行如本文所述的本發明概念的要素的指令。
上述示例性實施例不應被視為對示例性實施例的發明概念進行限制。儘管已闡述了幾個示例性實施例,但所屬領域中的技術人員將容易理解,在不實質上背離本揭露的新穎教示及優點的條件下,可對這些實施例進行許多修改。因此,所有這些修改均旨在包含於由權利要求所界定的本發明概念的範圍內。
105:計算機器
110:高精度log1p()計算邏輯區段
115:微處理器
120:記憶體器件
125:儲存單元
130:顯示器
135:輸入/輸出(I/O)介面晶片
140:log1p()函數輸入
145:log1p()範圍縮減技術
150:log1p()函數輸出
Claims (19)
- 一種非暫時性電腦可讀儲存媒體,在所述非暫時性電腦可讀儲存媒體上儲存有指令,所述指令在由電腦處理器執行時使高精度log1p()計算邏輯區段使用估測函數 E(x) 對函數 F(x) = log1p(x) = ln(x+1) 進行近似且進行至少以下操作: (i) 接收輸入 x , (ii) 只使用本機精度計算 (x+1) , (iii) 計算整數N,使得: (4/3)2N-1 ≦ (x+1) ≦ (4/3)2N (iv) 計算 fN (x)=Sx+(S-1) ,其中 S=2-N (v) 計算 E(fN (x)) ,以及 (vi) 返送回值 v=E(fN (x)+Nln(2)) 作為對 F(x) = log1p(x) 的近似。
- 如申請專利範圍第1項所述的非暫時性電腦可讀儲存媒體,其中在所述非暫時性電腦可讀儲存媒體上儲存有指令,所述指令在由所述電腦處理器執行時,使所述高精度log1p()計算邏輯區段將所返送回的所述值儲存在非揮發性儲存單元中。
- 如申請專利範圍第1項所述的非暫時性電腦可讀儲存媒體,其中在所述非暫時性電腦可讀儲存媒體上儲存有指令,所述指令在由所述電腦處理器執行時,使所述高精度log1p()計算邏輯區段將所返送回的所述值儲存在揮發性記憶體器件中。
- 如申請專利範圍第1項所述的非暫時性電腦可讀儲存媒體,其中在所述非暫時性電腦可讀儲存媒體上儲存有指令,所述指令在由所述電腦處理器執行時,使所述高精度log1p()計算邏輯區段通過輸入/輸出介面晶片傳送所返送回的所述值。
- 如申請專利範圍第1項所述的非暫時性電腦可讀儲存媒體,其中在所述非暫時性電腦可讀儲存媒體上儲存有指令,所述指令在由所述電腦處理器執行時,使所述高精度log1p()計算邏輯區段在顯示器件上顯示所返送回的所述值。
- 一種用於log1p()的高精度計算的由電腦實施的方法,所述方法包括: 由計算機器的高精度log1p()計算邏輯區段使用估測函數 E(x) 對函數 F(x) = log1p(x) = ln(x+1) 進行近似, 由所述計算機器的所述高精度log1p()計算邏輯區段接收輸入 x , 由所述計算機器的所述高精度log1p()計算邏輯區段只使用本機精度計算 (x+1) , 由所述計算機器的所述高精度log1p()計算邏輯區段計算整數N,使得: (4/3)2N-1 ≦ (x+1) ≦ (4/3)2N 由所述計算機器的所述高精度log1p()計算邏輯區段計算 fN (x)=Sx+(S-1) ,其中 S=2-N 由所述計算機器的所述高精度log1p()計算邏輯區段計算 E(fN (x)) ,以及 由所述計算機器的所述高精度log1p()計算邏輯區段返送回值 v=E(fN (x)+Nln(2)) 作為對 F(x) = log1p(x) 的近似。
- 如申請專利範圍第6項所述的由電腦實施的方法,更包括:由所述高精度log1p()計算邏輯區段將所返送回的所述值儲存在非揮發性儲存單元中。
- 如申請專利範圍第6項所述的由電腦實施的方法,更包括:由所述高精度log1p()計算邏輯區段使所返送回的所述值儲存在揮發性記憶體器件中。
- 如申請專利範圍第6項所述的由電腦實施的方法,更包括:由所述高精度log1p()計算邏輯區段使所返送回的所述值通過輸入/輸出介面晶片傳送。
- 如申請專利範圍第6項所述的由電腦實施的方法,更包括:由所述高精度log1p()計算邏輯區段使所返送回的所述值在顯示器件上顯示。
- 一種計算機器的高精度log1p()計算邏輯區段,所述高精度log1p()計算邏輯區段被配置成: 使用估測函數 E(x) 對函數 F(x) = log1p(x) = ln(x+1) 進行近似, 接收輸入 x , 只使用本機精度計算 (x+1) , 計算整數N,使得: (4/3)2N-1 ≦ (x+1) ≦ (4/3)2N 計算 fN (x)=Sx+(S-1) ,其中 S=2-N 計算 E(fN (x)) ,以及 返送回值 v=E(fN (x)+Nln(2)) 作為對 F(x) = log1p(x) 的近似。
- 如申請專利範圍第11項所述計算機器的高精度log1p()計算邏輯區段,其中所述高精度log1p()計算邏輯區段更被配置成將所返送回的所述值儲存在非揮發性儲存單元中。
- 如申請專利範圍第11項所述計算機器的高精度log1p()計算邏輯區段,其中所述高精度log1p()計算邏輯區段更被配置成將所返送回的所述值儲存在揮發性記憶體器件中。
- 如申請專利範圍第11項所述計算機器的高精度log1p()計算邏輯區段,其中所述高精度log1p()計算邏輯區段更被配置成通過輸入/輸出介面晶片傳送所返送回的所述值。
- 如申請專利範圍第11項所述計算機器的高精度log1p()計算邏輯區段,其中所述高精度log1p()計算邏輯區段更被配置成在顯示器件上顯示所返送回的所述值。
- 如申請專利範圍第11項所述計算機器的高精度log1p()計算邏輯區段,其中所述計算機器是圖形處理單元。
- 如申請專利範圍第11項所述計算機器的高精度log1p()計算邏輯區段,其中所述計算機器是智慧手機。
- 如申請專利範圍第11項所述計算機器的高精度log1p()計算邏輯區段,其中所述計算機器是平板電腦。
- 如申請專利範圍第11項所述計算機器的高精度log1p()計算邏輯區段,其中所述計算機器是電腦伺服器。
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 (2)
Publication Number | Publication Date |
---|---|
TW202036270A TW202036270A (zh) | 2020-10-01 |
TWI776090B true TWI776090B (zh) | 2022-09-01 |
Family
ID=71072578
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108136222A TWI776090B (zh) | 2018-12-17 | 2019-10-07 | 電腦可讀儲存媒體、電腦實施的方法及計算邏輯區段 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10970045B2 (zh) |
KR (1) | KR20200074855A (zh) |
CN (1) | CN111324856A (zh) |
TW (1) | TWI776090B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW394895B (en) * | 1995-12-28 | 2000-06-21 | Motorola Inc | LNS-based computer processor and method of use thereof |
US7366748B1 (en) * | 2000-06-30 | 2008-04-29 | Intel Corporation | Methods and apparatus for fast argument reduction in a computing system |
US20090100121A1 (en) * | 2007-10-11 | 2009-04-16 | Motorola, Inc. | Apparatus and method for low complexity combinatorial coding of signals |
CN202075727U (zh) * | 2011-03-02 | 2011-12-14 | 中国电子科技集团公司第三十八研究所 | 包含超越函数计算的处理器实现装置 |
CN108228135A (zh) * | 2016-12-15 | 2018-06-29 | 上海寒武纪信息科技有限公司 | 一种运算多种超越函数的装置 |
Family Cites Families (9)
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 |
US7031993B1 (en) | 2000-02-18 | 2006-04-18 | Ge Medical Systems Global Technology Company, Llc | Method and apparatus for fast natural log(X) calculation |
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 |
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 |
US9563402B2 (en) * | 2011-09-01 | 2017-02-07 | Advanced Micro Devices, Inc. | Method and apparatus for additive range reduction |
CN103959192B (zh) * | 2011-12-21 | 2017-11-21 | 英特尔公司 | 用于估算超越函数的数学电路 |
-
2019
- 2019-02-13 US US16/275,302 patent/US10970045B2/en active Active
- 2019-10-07 TW TW108136222A patent/TWI776090B/zh active
- 2019-11-14 KR KR1020190145572A patent/KR20200074855A/ko active Search and Examination
- 2019-11-26 CN CN201911174120.2A patent/CN111324856A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW394895B (en) * | 1995-12-28 | 2000-06-21 | Motorola Inc | LNS-based computer processor and method of use thereof |
US7366748B1 (en) * | 2000-06-30 | 2008-04-29 | Intel Corporation | Methods and apparatus for fast argument reduction in a computing system |
US20090100121A1 (en) * | 2007-10-11 | 2009-04-16 | Motorola, Inc. | Apparatus and method for low complexity combinatorial coding of signals |
CN202075727U (zh) * | 2011-03-02 | 2011-12-14 | 中国电子科技集团公司第三十八研究所 | 包含超越函数计算的处理器实现装置 |
CN108228135A (zh) * | 2016-12-15 | 2018-06-29 | 上海寒武纪信息科技有限公司 | 一种运算多种超越函数的装置 |
Also Published As
Publication number | Publication date |
---|---|
KR20200074855A (ko) | 2020-06-25 |
US20200192635A1 (en) | 2020-06-18 |
US10970045B2 (en) | 2021-04-06 |
TW202036270A (zh) | 2020-10-01 |
CN111324856A (zh) | 2020-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11249721B2 (en) | Multiplication circuit, system on chip, and electronic device | |
US8805915B2 (en) | Fused multiply-add apparatus and method | |
Nilsson et al. | Hardware implementation of the exponential function using Taylor series | |
EP3729257B1 (en) | System and method of floating point multiply operation processing | |
US20120124116A1 (en) | Apparatus and method for converting data between a floating-point number and an integer | |
CN114341892A (zh) | 具有用于高效参数更新的降低精度参数分量的机器学习硬件 | |
TWI772506B (zh) | 在基於處理器系統中使用矩陣處理器提供高效浮點運算的器件及方法 | |
CN110888623B (zh) | 数据转换方法、乘法器、加法器、终端设备及存储介质 | |
WO2022052625A1 (zh) | 一种定点与浮点转换器、处理器、方法以及存储介质 | |
US20130091189A1 (en) | Single datapath floating point implementation of RCP, SQRT, EXP and LOG functions and a low latency RCP based on the same techniques | |
TWI514169B (zh) | 一種決定對數函數單元的硬體實現方法以及執行該方法的電腦程式產品 | |
US10140090B2 (en) | Computing and summing up multiple products in a single multiplier | |
WO2018057114A2 (en) | Piecewise polynomial evaluation instruction | |
TWI776090B (zh) | 電腦可讀儲存媒體、電腦實施的方法及計算邏輯區段 | |
CN107220025B (zh) | 处理乘加运算的装置和处理乘加运算的方法 | |
US10303439B2 (en) | Logarithm and power (exponentiation) computations using modern computer architectures | |
EP3358460B1 (en) | Systems and methods for computing mathematical functions | |
EP3079056A2 (en) | Systems and methods for computing mathematical functions | |
CN114201140B (zh) | 指数函数处理单元、方法和神经网络芯片 | |
WO2019205064A1 (zh) | 神经网络加速装置与方法 | |
CN116956989A (zh) | 神经网络模型中归一化算子的量化方法、装置、电子设备 | |
CN117193707A (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
JP3626611B2 (ja) | データ演算装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
GD4A | Issue of patent certificate for granted invention patent |