TWI698759B - 曲線函數裝置及其操作方法 - Google Patents
曲線函數裝置及其操作方法 Download PDFInfo
- Publication number
- TWI698759B TWI698759B TW108131435A TW108131435A TWI698759B TW I698759 B TWI698759 B TW I698759B TW 108131435 A TW108131435 A TW 108131435A TW 108131435 A TW108131435 A TW 108131435A TW I698759 B TWI698759 B TW I698759B
- Authority
- TW
- Taiwan
- Prior art keywords
- value
- segment
- current segment
- weight
- bias
- 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/17—Function evaluation by approximation methods, e.g. inter- or extrapolation, smoothing, least mean square method
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/02—Digital function generators
- G06F1/03—Digital function generators working, at least partly, by table look-up
- G06F1/0307—Logarithmic or exponential functions
-
- 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
-
- 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/548—Trigonometric functions; Co-ordinate transformations
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Algebra (AREA)
- Analogue/Digital Conversion (AREA)
Abstract
一種曲線函數裝置及其操作方法。曲線函數裝置包括查找表、權重計算電路以及直線函數電路。依照輸入數值的第一部份位元,目前段的偏值與下一段的偏值可以從查找表取出。權重計算電路可以依據目前段的偏值與下一段的偏值來計算目前段的權重值。直線函數電路可以使用目前段的偏值、目前段的權重值與輸入數值的第二部份位元來計算出直線函數值。此直線函數值可以做為曲線函數的近似值。
Description
本發明是有關於一種計算電路,且特別是有關於一種曲線函數裝置及其操作方法。
在一些電子電路的運作過程中,需要進行曲線函數的計算。舉例來說,電子電路可能需要計算Sigmoid函數與/或Tanh函數,以便於完成影像處理、邏輯回歸(logic regression)、人工智慧等領域的應用任務。例如在類神經網路模型中,Sigmoid函數與/或Tanh函數可以做為激活函數來提昇類神經網路模型的效能。Sigmoid函數與Tanh函數皆包含指數運算與除法運算,因此在實做電路時需要使用大量的邏輯閘與複雜的計算電路,導致硬體成本上升。
因此,各種逼近演算法被提出來並實現於曲線函數裝置中,以簡化曲線函數的運算。逼近演算法可以計算曲線函數的近似值,但也會導致計算誤差。若誤差過大,系統的效能會受影響,例如造成類神經網路模型的準確度下降。如何減少曲線函數裝置的誤差同時簡化運算量,是本發明所屬領域的技術課題。
須注意的是,「先前技術」段落的內容是用來幫助了解本發明。在「先前技術」段落所揭露的部份內容(或全部內容)可能不是所屬技術領域中具有通常知識者所知道的習知技術。在「先前技術」段落所揭露的內容,不代表該內容在本發明申請前已被所屬技術領域中具有通常知識者所知悉。
本發明提供一種曲線函數裝置及其操作方法,以計算曲線函數的近似值。
本發明的一實施例提供一種曲線函數裝置。曲線函數裝置被配置為使用輸入數值來計算曲線函數的近似值。此曲線函數裝置包括查找表、權重計算電路以及直線函數電路。查找表至少具有偏(bias)值欄位。依照輸入數值的第一部份位元,權重計算電路可以從查找表的偏值欄位取出目前段的偏值與下一段的偏值。權重計算電路可以依據目前段的該偏值與下一段的偏值來計算目前段的權重(weight)值。直線函數電路耦接權重計算電路,以接收目前段的權重值。依照輸入數值的第一部份位元,直線函數電路可以從查找表的偏值欄位取出目前段的偏值。直線函數電路可以使用目前段的偏值、目前段的權重值與輸入數值的第二部份位元來計算出直線函數值。此直線函數值可以做為所述曲線函數的近似值。
本發明的一實施例提供一種曲線函數裝置的操作方法。所述曲線函數裝置被配置為使用輸入數值來計算曲線函數的近似值。所述操作方法包括:提供查找表;依照輸入數值的第一部份位元從查找表的偏值欄位取出目前段的偏值與下一段的偏值;由權重計算電路依據目前段的偏值與下一段的偏值來計算目前段的權重值;以及由直線函數電路使用目前段的偏值、目前段的權重值與輸入數值的第二部份位元來計算直線函數值(做為所述曲線函數的近似值)。
基於上述,本發明諸實施例所述曲線函數裝置及其操作方法將輸入數值的數值範圍分為多段,其中這些段所對應的偏值被預存於查找表的偏值欄位中。當所述輸入數值被輸入至曲線函數裝置時,曲線函數裝置可以依據依照輸入數值的第一部份位元而知道所述輸入數值是屬於這些段的一個對應段(以下稱為目前段)。因此,曲線函數裝置可以依據輸入數值的第一部份位元而從查找表的偏值欄位取出目前段的偏值與下一段(目前段的相鄰段)的偏值。目前段的偏值與下一段的偏值可以被用來計算目前段的權重值。目前段的偏值與目前段的權重值可以做為目前段所對應的直線函數的係數。因此,直線函數電路可以使用目前段的偏值、目前段的權重值與輸入數值的第二部份位元來計算直線函數值,然後將這個直線函數值做為所述曲線函數的近似值。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
在本案說明書全文(包括申請專利範圍)中所使用的「耦接(或連接)」一詞可指任何直接或間接的連接手段。舉例而言,若文中描述第一裝置耦接(或連接)於第二裝置,則應該被解釋成該第一裝置可以直接連接於該第二裝置,或者該第一裝置可以透過其他裝置或某種連接手段而間接地連接至該第二裝置。本案說明書全文(包括申請專利範圍)中提及的「第一」、「第二」等用語是用以命名元件(element)的名稱,或區別不同實施例或範圍,而並非用來限制元件數量的上限或下限,亦非用來限制元件的次序。另外,凡可能之處,在圖式及實施方式中使用相同標號的元件/構件/步驟代表相同或類似部分。不同實施例中使用相同標號或使用相同用語的元件/構件/步驟可以相互參照相關說明。
以下將以Sigmoid函數和/或Tanh函數做為「曲線函數」的說明範例。Sigmoid函數和Tanh函數都具有對稱於輸入值為零的性質。也就是說,|Tanh(X)| = |Tanh(-X)|,以及|Sigmoid(X)| = |Sigmoid(-X)|。因此,當算出Tanh(X)時,就可以推算出Tanh(-X)。相類似地,當算出Sigmoid(X)時,就可以推算出Sigmoid(-X)。此外,Sigmoid函數和Tanh函數都具有能互相轉換的性質,如公式1所示。因此,在實作硬體電路時,能使用同一套電路實現Sigmoid和Tanh函數的計算。
(公式1)
接下來的多個實施例都以Tanh函數做為「曲線函數」的說明範例。Tanh函數的相關說明可以被類推而適用於Sigmoid函數。或是,先算出Tanh函數的近似值,然後再使用公式1換算得到Sigmoid函數的近似值。
常見的逼近演算法是分段線性逼近。此演算法將曲線函數(Sigmoid函數或Tanh函數)區分成數段,然後使用不同線性函數逼近曲線函數的不同段。圖1是說明將Tanh函數分段逼近的示意圖。圖1所示橫軸表示輸入數值X,而縱軸表示函數值。在圖1所示範例中,將輸入數值X為0~3之間的Tanh函數值分成兩段,其中第一段(輸入數值X為0~1的區間)使用直線函數F
1(X)逼近Tanh函數,而第二段(輸入數值X為1~3的區間)使用直線函數F
2(X)逼近Tanh函數。曲線函數裝置需要配置比較器,以便判斷目前的輸入數值X屬於Tanh函數的哪一個區段(以下稱為目前段)。在判斷出目前段之後,曲線函數裝置可以計算目前段所對應的直線函數以獲得Tanh函數的近似值。當發現在第一段(輸入數值X為0~1的區間)中Tanh函數的近似值(即直線函數F
1(X)的值)與Tanh函數的值之間的誤差值過大時,所述第一段可以被進一步分段,以達到較準確地逼近(降低誤差值)。
上述直線函數可以是線性函數F
n(X) = W
n*X + B
n來逼近Tanh函數值。例如,直線函數F
1(X) = W
1*X + B
1= 0.761594156*X + 0,而直線函數F
2(X) = W
2*X + B
2= 0.116693287*X + 0.644974893。曲線函數裝置需要配置適當的儲存空間來記錄直線函數F
1(X)的權重(Weight)值W
1與偏(Bias)值B
1以及直線函數F
2(X)的權重值W
2與偏值B
2。當發現近似值的誤差過大(不符合設計需求)時,則Tanh函數的分段數量可以被增加,以使誤差減小。然而增加分段數量,意味著需要更多比較器來判斷目前的輸入數值X屬於哪一個區段,也需要更多儲存空間來記錄不同直線函數的權重值W
n與偏值B
n。
不同於前述實施例將Tanh函數(或Sigmoid函數)做為逼近的目標,以下的實施例是將Tanh函數(或Sigmoid函數)乘上2的冪次方(亦即2
N,N為整數)做為逼近的目標。在此,「將Tanh函數(或Sigmoid函數)乘上2的冪次方」可以稱此誤差推估機制。藉由此誤差推估機制,能使近似值(即直線函數的值)與Tanh函數(或Sigmoid函數)的值之間的誤差值滿足設計需求。
以Tanh函數為例,將Tanh(X)乘上2
N得到函數R(X),然後將函數R(X)做為逼近的目標。假設逼近函數R(X)的近似值為R’(X),則Tanh函數與逼近Tanh函數的近似值之間的誤差值如公式2所示。
(公式2)
公式2可以被稱為誤差推估公式,其中的2
N可以被稱為誤差因子。誤差值的大小取決於R’(X)與R(X)之間的差值。令差值a = |R’(X)–R(X)|,則Tanh函數與逼近Tanh函數的近似值之間的誤差值為a/2
N。若是對逼近的準確度要求更高,方法之一是將Tanh(X)值乘上更大的值,例如將Tanh(X)乘上2
N+1得到函數S(X) = Tanh(X) * 2
N+1,然後將函數S(X)做為逼近的目標。假設逼近函數S(X)的近似值為S’(X),令差值b = |S’(X)–S(X)|,則Tanh函數與逼近Tanh函數的近似值之間的誤差值為b/2
N+1。只要滿足b > a,則b/2
N+1> a/2
N。
若是對逼近的準確度要求更高,方法之二是縮小差值a的值,也就是使得R’(X)更接近R(X)。以分段線性逼近為例,分段後每一區段的大小,會影響到誤差值的大小與需儲存的資料量。在最極端的狀況下,當每一個區段都只有一個值時,Tanh函數與逼近Tanh函數的近似值之間的誤差值就會是零。所以在前述的例子中,如果R’(X)是使用分段線性得到的函數,那麼增加分段數,就能縮小a的值。
無論如何,分段線性逼近需要儲存每一分段的權重值W
n與偏值B
n。為了在誤差值和儲存空間之間取得較好的平衡,Tanh函數可以被不等份分段,也就是每一個段的大小互不同。在Tanh函數較為線性(斜率變化小)的區間分較少段,在Tanh函數的轉折較劇烈處(斜率變化大)的地方分較多段。因為不等分的分段,所以需要額外的比較器來找出每一個輸入數值X落在哪一個段。分段的數量越多,越需要更多比較器。
為了要省去比較器,下述諸實施例採用固定的分段大小。例如,從輸入數值X為0開始分段,每一個段內包含2的冪次方(例如2
S)個輸入數值,其中整數S的大小則取決於對誤差值大小的要求。在硬體電路中,若輸入數值X用Q個位元來表示,則曲線函數裝置可以從此Q個位元中取出低位的M+S個位元來進行運算,其中較高位的M個位元可以做為此輸入數值X所在區間(目前段)的索引值,而低位的S個位元可以做為在目前段中的輸入數值。因為可直接由輸入數值X得到目前段的索引值,所以可以省去比較器。
以下說明如何節省儲存容量。對於所有輸入數值X,下述諸實施例所逼近的目標為Tanh(X) * 2
N= R(X)。在此將輸入數值X等分成多個段,每一段皆包含2
S個輸入數值X。然後,取在每一個分段中輸入數值X的最小值Y
0,將R(Y
0)值設為所屬段的偏值B
n,並使用公式3計算出所屬段的初權重(Initial Weight)。公式3中的Y2
S-1為在所屬段中輸入數值X的最大值。稍後的說明會再根據公式3的初權重計算出最後的權重值W
n。
(公式3)
當考量硬體成本時,為了要減少儲存空間的使用量,下述公式4可以被計算以得到低成本(Low-Cost, LC)權重W
LC。使用低成本權重W
LC做為權重值W
n的模式為低成本模式(Low-Cost Mode)。
(公式4)
公式4中的R(Y
0)為所屬段(目前段)的偏值B
n,
為下一段的偏值B
n,因此在實作低成本的硬體電路時,曲線函數裝置只需儲存各分段的偏值B
n,和最後一段的權重值W
n。曲線函數裝置可以使用相鄰兩段的偏值B
n計算出權重值W
n,因此曲線函數裝置不需儲存權重值W
n。
事實上,依據Tanh函數的特性,隨著輸入數值X趨向正無限大(或負無限大),Tanh函數的值會趨近1(或-1),亦即Tanh函數的斜率(或是權重值W
n)會趨近0。依據Sigmoid函數的特性,隨著輸入數值X趨向正無限大(或負無限大),Sigmoid函數的值會趨近1(或0),亦即Sigmoid函數的斜率(或是權重值W
n)會趨近0。也就是說,Tanh函數(或Sigmoid函數)的最後一個分段的權重值W
n非常接近0。在最後一個分段的權重值W
n非常接近0的情況下,曲線函數裝置可以儲存各分段的偏值B
n,但不用儲存最後一段的權重值W
n。
當對逼近準確度的要求較高時,下述公式5可以被計算以得到高精確度(High-Accuracy, HA)權重W
HA。使用高精確度權重W
HA做為權重值W
n的模式為高精確度模式(High-Accuracy Mode)。
(公式5)
公式5中K值(修正因子)是由兩個值相加而得,第一個值是公式3的初權重和低成本權重W
LC兩者的差值,而第二個值則是用來微調逼近R(X)的斜率的變數。根據設計需求以及Tanh函數(或Sigmoid函數)的曲線來決定公式5中K值,以便微調高精確度權重W
HA,進而達到更好的逼近準確度。在實作硬體電路時,曲線函數裝置可以儲存不同段的偏值和K值(修正因子)。K值如前所述,是差值與微調值的加總,K值所需的位元數量會比權重值少。例如,K值的位元數量可以是1~3個位元。
圖2A與圖2B為曲線函數與直線函數的示意圖。於圖2A與圖2B中,橫軸表示輸入數值X,而縱軸表示函數值。圖2A與圖2B所示實曲線代表Tanh函數(或Sigmoid函數)的某一段。圖2A所示虛線表示根據公式3算出的初權重所獲得的逼近函數(直線函數)。圖2B所示虛線表示根據微調過後的權重值(例如公式5的高精確度權重W
HA)所獲得的逼近函數(直線函數)。比較圖2A與圖2B可以知道,使用圖2B所示逼近函數(直線函數),能獲得較小的誤差。
在公式6中,2
S即為每一個段的大小,2
N為誤差因子,W
n則視應用需求可以是低成本權重W
LC或高精確度權重W
HA。由於各分段的大小皆為2的冪次方,公式6中的算式(X-X0)不需真的使用減法器來實現,只需取輸入數值X的S個低位元即可。
圖3是依照本發明的一實施例所繪示的一種曲線函數裝置300的電路方塊(circuit block)示意圖。圖3所示曲線函數裝置300被配置為使用輸入數值X來計算曲線函數(例如Tanh函數或Sigmoid函數)的近似值。函數裝置300包括查找表(Look-Up Table, LUT)310、權重計算電路320以及直線函數電路330。查找表310至少具有偏值欄位。輸入數值X的數值範圍被分為多段,其中這些段所對應的偏值B
n被預存於查找表310的偏值欄位中。在查找表310的偏值欄位中的這些偏值的每一個為,輸入數值X在這些段的一個對應段中的最小值所對應的曲線函數與誤差因子2
N的乘積值。
當所述輸入數值X被輸入至曲線函數裝置300時,曲線函數裝置300可以依據依照輸入數值X的第一部份位元X1而知道所述輸入數值X是屬於這些段的某一個對應段(例如第n段,以下稱為目前段)。因此,曲線函數裝置300可以依據輸入數值的第一部份位元X1而從查找表310的偏值欄位取出目前段的偏值B
n與下一段(目前段的相鄰段)的偏值B
n+1。
權重計算電路320可以依照輸入數值X的第一部份位元X1從查找表310的偏值欄位取出目前段的偏值B
n與下一段的偏值B
n+1。權重計算電路320可以依據目前段的偏值B
n與下一段的該偏值B
n+1來計算目前段的權重值W
n。直線函數電路330耦接權重計算電路320,以接收目前段的權重值W
n。依照設計需求,查找表310可以更具有在這些段的一個末段的權重值W
n。當所述目前段為末段時,直線函數電路330可以從查找表310取得目前段(末段)的權重值W
n,而不用從權重計算電路320取得權重值W
n。
依據Tanh函數(或Sigmoid函數)的特性,隨著輸入數值X趨向正無限大(或負無限大),Tanh函數(或Sigmoid函數)的斜率(或是權重值W
n)會趨近0。基於此特性,依照設計需求,查找表310可以不需要存放所述末段的權重值W
n。當所述目前段為末段時,直線函數電路330可以使用數值零做為目前段(末段)的權重值W
n,而不用從查找表310或權重計算電路320取得權重值W
n。
直線函數電路330可以依照輸入數值X的第一部份位元X1從查找表310的偏值欄位取出目前段的偏值B
n。直線函數電路330可以使用目前段的偏值B
n、目前段的權重值W
n與輸入數值X的第二部份位元X2來計算直線函數值
,其中此直線函數值
可以做為曲線函數(例如Tanh函數或Sigmoid函數)的近似值。所述第二部份位元X2的位元數量為S,亦即從輸入數值X為0開始將輸入數值X分段,而每一個段內包含2
S個輸入數值。
圖4是依照本發明一實施例說明一種曲線函數裝置的操作方法的流程示意圖。請參照圖3與圖4。步驟S410提供查找表310。在步驟S420中,曲線函數裝置300可以依照輸入數值X的第一部份位元X1從查找表310的偏值欄位取出目前段的偏值B
n與下一段的偏值B
n+1。在步驟S430中,權重計算電路320可以依據目前段的偏值B
n與下一段的偏值B
n+1來計算目前段的權重值W
n。在步驟S440中,直線函數電路330可以使用目前段的偏值B
n、目前段的權重值W
n與輸入數值X的第二部份位元X2來計算直線函數值
做為曲線函數(例如Tanh)的近似值。
舉例來說,直線函數電路330可以計算直線函數
以獲得該直線函數值T’(X),其中W為目前段(輸入數值X的一個對應段)的權重值W
n,X2為輸入數值X的第二部份位元,B為目前段的偏值B
n,S為段尺寸值(第二部份位元X2的位元數量),N為誤差因子指數,S與N為整數。
圖5是依照本發明的一實施例明圖3所示權重計算電路320以及直線函數電路330的電路方塊示意圖。輸入數值X的數值範圍被分為多段,而圖5所示查找表310的偏值欄位預存了不同段所對應的偏值,例如第一段所對應的偏值B
1、第二段所對應的偏值B
2、…、第n段所對應的偏值B
n(n為整數)以及第n+1段所對應的偏值B
n+1。在此假設輸入數值X的數值範圍的第n段是目前段(目前輸入數值X的一個對應段)。
圖5所示權重計算電路320包括減法電路321。權重計算電路320的減法電路321可以計算目前段的偏值B
n與下一段的偏值B
n+1之間的差值做為目前段的權重值W
n。
圖5所示直線函數電路330包括乘法電路331、除法電路332、加法電路333以及除法電路334。乘法電路331耦接權重計算電路320,以接收目前段的權重值W
n。乘法電路331可以計算輸入數值X的第二部份位元X2與目前段的權重值W
n的乘積值。除法電路332耦接乘法電路331,以接收所述乘積值。除法電路332可以計算所述乘積值與段尺寸值2
S的商值。於本實施例中,除法電路332可以是右移位器,而此右移位器可以將乘法電路331所輸出的乘積值向右移位S個位元,以獲得所述商值。
加法電路333耦接除法電路332,以接收所述商值。加法電路333可以依照輸入數值X的第一部份位元X1從查找表310的偏值欄位取出目前段的偏值B
n。加法電路333可以計算除法電路332所輸出的商值與目前段的偏值B
n的和值。除法電路334耦接加法電路333,以接收所述和值。除法電路334可以計算加法電路333所輸出的和值與誤差因子2
N的商值,其中所述商值用來做為直線函數值T’(X)。於本實施例中,除法電路334可以是右移位器,而此右移位器可以將加法電路333所輸出的和值向右移位N個位元,以獲得所述商值(直線函數值T’(X))。
圖6是依照本發明的另一實施例明圖3所示權重計算電路320的電路方塊示意圖。圖6所示直線函數電路330可以參照圖5的相關說明來類推,故不再贅述。在圖6所示實施例中,查找表310具有偏值欄位與修正因子欄位。圖6所示查找表310的偏值欄位可以參照圖5的相關說明。輸入數值X的數值範圍被分為多段,而圖6所示查找表310的修正因子欄位預存了不同段所對應的K值(修正因子)。例如,第一段所對應的K值為K
1、第二段所對應的K值為K
2、…、第n段所對應的K值為K
n(n為整數)以及第n+1段所對應的K值為K
n+1。在此假設輸入數值X的數值範圍的第n段是目前段(目前輸入數值X的一個對應段)。
權重計算電路320可以依照輸入數值X的第一部份位元X1從查找表310的修正因子欄位取出目前段的K值(修正因子)。權重計算電路320依據目前段的修正因子(K值)、目前段的偏值B
n與下一段的偏值B
n+1來計算目前段的權重值W
n。舉例來說,權重計算電路320可以計算目前段的偏值B
n與下一段的偏值B
n+1的差值,然後權重計算電路320可以計算此差值與目前段的修正因子(K值)的和值來做為目前段的權重值W
n。
圖6所示權重計算電路320包括減法電路322與加法電路323。權重計算電路320的減法電路322可以計算目前段的偏值B
n與下一段的偏值B
n+1之間的差值。加法電路323耦接減法電路322,以接收所述差值。加法電路323可以計算所述差值與目前段的修正因子(K值)的和值,以做為目前段的權重值W
n。
以下以兩個運算範例來說明,以圖5或圖6所示電路算出逼近的Tanh函數和Sigmoid函數。
在運算範例一中,假設輸入數值X的數值範圍是0至0.156005859375,輸入數值X的整數位元數量與小數位元數量分別是4-bit與12-bit,而誤差目標(絕對值)為小於1/2
12= 0.000244140625 ≈ 2.44*10
-4。在此,輸入數值X的數值範圍被分為5段,其中每一段皆包含2
7= 128個輸入數值X(亦即段尺寸值S為7)。基於誤差目標的要求,在此誤差因子為2
13(亦即誤差因子指數N為13)。在運算範例一中,查找表310的內容可以是表1所示內容。在此運算範例一中,取用較小的輸入值範圍以方便說明。因此,查找表310預存了在這些段的一個末段的權重值W
n。
表1:查找表310的內容範例
位元X1 (輸入數值X的範圍) | 偏值B n | K | 權重值W n |
0 (0.00000~0.031005859375) | Tanh(0.00000) *2 13 = 0 | 0 | |
1 (0.03125~0.062255859375) | Tanh(0.03125) *2 13 = 256 | 1 | |
2 (0.06250~0.093505859375) | Tanh(0.06250) *2 13 = 511 | 1 | |
3 (0.09375~0.124755859375) | Tanh(0.09375) *2 13 = 766 | 0 | |
4 (0.12500~0.156005859375) | Tanh(0.12500) *2 13 = 1019 | 1 | 251 |
在此,輸入數值X的數值範圍任一點被取用來說明計算過程。例如,取用0.063720703125(亦即二進位的0000 00010 0000101)做為輸入數值X,來說明計算過程。亦即,輸入數值X的第一部份位元X1為00010,而輸入數值X的第二部份位元X2為0000101。基於輸入數值X的第一部份位元X1可以從表1獲得,目前段的偏值B
n為511,下一段(目前段的相鄰段)的偏值B
n+1為766,以及目前段的K值(修正因子)為1。
在低成本模式中,權重計算電路320可以依據公式4來計算出低成本權重W
LC= B
n+1- B
n= 766 - 511 = 255(做為目前段的權重值W
n)。或者,在高精確度模式中,權重計算電路320可以依據公式5來計算出高精確度權重W
HA= W
LC+ K = 255 + 1 = 256(做為目前段的權重值W
n)。
依據公式6,直線函數電路330可以使用目前段的偏值B
n、目前段的權重值W
n與輸入數值X的第二部份位元X2來計算直線函數值
。針對輸入數值X為0.063720703125(亦即二進位的0000 00010 0000101),直線函數電路330的計算結果如表2所示。
表2:直線函數電路330的計算結果
模式 | 函數 | 計算結果 | 目標值 | 絕對誤差 |
LC模式 | Tanh | 0.0634765625 | 0.0636346006455 | 1.58*10 -4 |
Sigmoid | 0.5158081054688 | 0.515924787824 | 1.17*10 -4 | |
HA模式 | Tanh | 0.0635986328125 | 0.0636346006455 | 0.36*10 -4 |
Sigmoid | 0.515869140625 | 0.515924787824 | 0.56*10 -4 |
在運算範例二中,假設輸入數值X的數值範圍是0至4.999755859375,輸入數值X的整數位元數量與小數位元數量分別是4-bit與12-bit,而誤差目標(絕對值)為小於1/2
13= 0.0001220703125 ≈ 1.22*10
-4。在此,輸入數值X的數值範圍被分為160段,其中每一段皆包含2
7= 128個輸入數值X(亦即段尺寸值S為7)。基於誤差目標的要求,在此誤差因子為2
14(亦即誤差因子指數N為14)。在運算範例二中,查找表310的內容可以是表3所示內容。依據Tanh函數(或Sigmoid函數)的特性,隨著輸入數值X趨向正無限大(或負無限大),Tanh函數(或Sigmoid函數)的斜率(或是權重值W
n)會趨近0。因此,在此運算範例二中,查找表310不需要預存末段的權重值W
n。
表3:查找表310的內容範例
位元X1 (輸入數值X的範圍) | 偏值B n | K |
0 (0.00000~0.031005859375) | 0 | 0 |
1 (0.03125~0.062255859375) | 512 | 1 |
2 (0.06250~0.093505859375) | 1023 | 1 |
3 (0.09375~0.124755859375) | 1532 | 0 |
4 (0.12500~0.156005859375) | 2037 | 1 |
….. | ….. | ….. |
157 (4.90625~4.937255859375) | 16382 | 0 |
158 (4.93750~4.968505859375) | 16382 | 0 |
159 (4.96875~4.999755859375) | 16382 | 1 |
在此,輸入數值X的數值範圍任一點被取用來說明計算過程。在取用0至4.999755859375中的多個數值做為輸入數值X,來計算出多個直線函數值
。運算範例二的計算細節可以參照前述運算範例一的相關說明來類推,故不再贅述。運算範例二的絕對誤差如表4所示。
表4:絕對誤差
模式 | 函數 | 絕對誤差 | 目標誤差 |
LC模式 | Tanh | 1.64*10 -4 | 1.22*10 -4 |
Sigmoid | 1.33*10 -4 | 1.22*10 -4 | |
HA模式 | Tanh | 1.19*10 -4 | 1.22*10 -4 |
Sigmoid | 1.09*10 -4 | 1.22*10 -4 |
取誤差因子為2
14時,使用低成本模式(LC模式)的低成本權重W
LC計算出來的絕對誤差會比目標誤差大。將誤差因子2
N放大為2
15做為運算範例三,並基於表3所示查找表310再次計算出多個直線函數值
。運算範例三的絕對誤差如表5所示。
表5:絕對誤差
模式 | 函數 | 絕對誤差 | 目標誤差 |
LC模式 | Tanh | 1.31*10 -4 | 1.22*10 -4 |
Sigmoid | 1.09*10 -4 | 1.22*10 -4 |
放大了誤差因子2
N能縮小逼近誤差,但偏值也會隨之放大。因此,使用者可以依據設計需求(例如誤差大小)與硬體成本的需求,而決定誤差因子2
N,以及/或是選擇使用低成本模式或高精確度模式(HA模式)。藉由誤差推估機制,曲線函數裝置300可以達到使用者定義的誤差目標。在儲存空間有限時,曲線函數裝置300可以運行於低成本模式,以便進一步減少儲存空間的使用量。曲線函數裝置300可以藉由增加些許的儲存空間來運行於高精確度模式,以便進一步減少逼近誤差。
依照不同的設計需求,上述函數裝置300、查找表310、權重計算電路320以及(或是)直線函數電路330的方塊的實現方式可以是硬體(hardware)、韌體(firmware)、軟體(software,即程式)或是前述三者中的多者的組合形式。
以硬體形式而言,上述函數裝置300、查找表310、權重計算電路320以及(或是)直線函數電路330的方塊可以實現於積體電路(integrated circuit)上的邏輯電路。上述函數裝置300、查找表310、權重計算電路320以及(或是)直線函數電路330的相關功能可以利用硬體描述語言(hardware description languages,例如Verilog HDL或VHDL)或其他合適的編程語言來實現為硬體。舉例來說,上述函數裝置300、查找表310、權重計算電路320以及(或是)直線函數電路330的相關功能可以被實現於一或多個控制器、微控制器、微處理器、特殊應用積體電路(Application-specific integrated circuit, ASIC)、數位訊號處理器(digital signal processor, DSP)、場可程式邏輯閘陣列(Field Programmable Gate Array, FPGA)及/或其他處理單元中的各種邏輯區塊、模組和電路。
以韌體形式而言,上述函數裝置300、查找表310、權重計算電路320以及(或是)直線函數電路330的相關功能可以被實現為編程碼(programming codes)。例如,利用一般的編程語言(programming languages,例如C、C++或組合語言)或其他合適的編程語言來實現上述函數裝置300、查找表310、權重計算電路320以及(或是)直線函數電路330。所述編程碼可以被記錄/存放在記錄媒體中,所述記錄媒體中例如包括唯讀記憶體(Read Only Memory,ROM)、存儲裝置及/或隨機存取記憶體(Random Access Memory,RAM)。電腦、中央處理器(Central Processing Unit,CPU)、控制器、微控制器或微處理器可以從所述記錄媒體中讀取並執行所述編程碼,從而達成相關功能。作為所述記錄媒體,可使用「非臨時的電腦可讀取媒體(non-transitory computer readable medium)」,例如可使用帶(tape)、碟(disk)、卡(card)、半導體記憶體、可程式設計的邏輯電路等。而且,所述程式也可經由任意傳輸媒體(通信網路或廣播電波等)而提供給所述電腦(或CPU)。所述通信網路例如是互聯網(Internet)、有線通信(wired communication)、無線通信(wireless communication)或其它通信介質。
綜上所述,本發明諸實施例所述曲線函數裝置300及其操作方法可以將輸入數值X的數值範圍分為多段,其中這些段所對應的偏值B
n被預存於查找表310的偏值欄位中。當所述輸入數值X被輸入至曲線函數裝置300時,曲線函數裝置300可以依據依照輸入數值X的第一部份位元X1而知道所述輸入數值X是屬於這些段的一個對應段(目前段)。因此,曲線函數裝置300可以依據依照輸入數值X的第一部份位元X1而從查找表的偏值欄位取出目前段的偏值B
n與下一段(目前段的相鄰段)的偏值B
n+1。目前段的偏值B
n與下一段的偏值B
n+1可以被用來計算目前段的權重值W
n。目前段的偏值B
n與目前段的權重值W
n可以做為目前段所對應的直線函數的係數。因此,直線函數電路330可以使用目前段的偏值B
n、目前段的權重值W
n與輸入數值X的第二部份位元X2來計算直線函數值
,然後將這個直線函數值
做為所述曲線函數的近似值。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
300:函數裝置
310:查找表
320:權重計算電路
321、322:減法電路
323:加法電路
330:直線函數電路
331:乘法電路
332、334:除法電路
333:加法電路
Bn:目前段的偏值
Bn+1:下一段的偏值
F1(X)、F2(X):直線函數
K:修正因子
S410~S440:步驟:直線函數值
Wn:目前段的權重值
X:輸入數值
X1:第一部份位元
X2:第二部份位元
圖1是說明將Tanh函數分段逼近的示意圖。
圖2A與圖2B為曲線函數與直線函數的示意圖。
圖3是依照本發明的一實施例所繪示的一種曲線函數裝置的電路方塊(circuit block)示意圖。
圖4是依照本發明一實施例說明一種曲線函數裝置的操作方法的流程示意圖。
圖5是依照本發明的一實施例明圖3所示權重計算電路以及直線函數電路的電路方塊示意圖。
圖6是依照本發明的另一實施例明圖3所示權重計算電路的電路方塊示意圖。
300:函數裝置
310:查找表
320:權重計算電路
330:直線函數電路
Bn:目前段的偏值
Bn+1:下一段的偏值
T'(x):直線函數值
Wn:目前段的權重值
X:輸入數值
X1:第一部份位元
X2:第二部份位元
Claims (19)
- 一種曲線函數裝置,被配置為使用一輸入數值來計算一曲線函數的一近似值,該函數裝置包括: 一查找表,至少具有一偏值欄位; 一權重計算電路,依照該輸入數值的一第一部份位元從該查找表的該偏值欄位取出一目前段的一偏值與一下一段的一偏值,以及依據該目前段的該偏值與該下一段的該偏值來計算該目前段的一權重值;以及 一直線函數電路,耦接該權重計算電路以接收該目前段的該權重值,其中該直線函數電路依照該輸入數值的該第一部份位元從該查找表的該偏值欄位取出該目前段的該偏值,以及該直線函數電路使用該目前段的該偏值、該目前段的該權重值與該輸入數值的一第二部份位元來計算一直線函數值做為該曲線函數的該近似值。
- 如申請專利範圍第1項所述的曲線函數裝置,其中該直線函數電路包括: 一乘法電路,耦接該權重計算電路以接收該目前段的該權重值,其中該乘法電路計算該輸入數值的該第二部份位元與該目前段的該權重值的一乘積值; 一第一除法電路,耦接該乘法電路以接收該乘積值,其中該第一除法電路計算該乘積值與一段尺寸值的一商值; 一加法電路,耦接該第一除法電路接收該商值,其中該加法電路依照該輸入數值的該第一部份位元從該查找表的該偏值欄位取出該目前段的該偏值,以及該加法電路計算該商值與該目前段的該偏值的一和值;以及 一第二除法電路,耦接該加法電路以接收該和值,其中該第二除法電路計算該和值與一誤差因子的一商值,該商值做為該直線函數值T’(x)。
- 如申請專利範圍第3項所述的曲線函數裝置,其中該第一除法電路為一右移位器,而該第二除法電路為另一右移位器。
- 如申請專利範圍第1項所述的曲線函數裝置,其中該曲線函數為Tanh(X)或Sigmoid(X),其中X被分為多個段,在該查找表的該偏值欄位中的這些偏值的每一個為該些段的一對應段的X的最小值所對應的該曲線函數與一誤差因子的一乘積值。
- 如申請專利範圍第1項所述的曲線函數裝置,其中該查找表更具有一末段的一權重值。
- 如申請專利範圍第1項所述的曲線函數裝置,其中該權重計算電路計算該目前段的該偏值與該下一段的該偏值的一差值做為該目前段的該權重值。
- 如申請專利範圍第1項所述的曲線函數裝置,其中該查找表更具有一修正因子欄位,該權重計算電路依照該輸入數值的該第一部份位元從該查找表的該修正因子欄位取出該目前段的一修正因子,以及該權重計算電路依據該目前段的該修正因子、該目前段的該偏值與該下一段的該偏值來計算該目前段的該權重值。
- 如申請專利範圍第8項所述的曲線函數裝置,其中該權重計算電路計算該目前段的該偏值與該下一段的該偏值的一差值,該權重計算電路計算該差值與該目前段的該修正因子的一和值做為該目前段的該權重值。
- 如申請專利範圍第8項所述的曲線函數裝置,其中該權重計算電路包括: 一減法電路,計算該目前段的該偏值與該下一段的該偏值的一差值;以及 一加法電路,耦接該減法電路以接收該差值,其中該加法電路計算該差值與該目前段的該修正因子的一和值做為該目前段的該權重值。
- 一種曲線函數裝置的操作方法,該曲線函數裝置被配置為使用一輸入數值來計算一曲線函數的一近似值,該操作方法包括: 提供一查找表; 依照該輸入數值的一第一部份位元從該查找表的一偏值欄位取出一目前段的一偏值與一下一段的一偏值; 由一權重計算電路依據該目前段的該偏值與該下一段的該偏值來計算該目前段的一權重值;以及 由一直線函數電路使用該目前段的該偏值、該目前段的該權重值與該輸入數值的一第二部份位元來計算一直線函數值做為該曲線函數的該近似值。
- 如申請專利範圍第11項所述的操作方法,其中所述計算該直線函數值包括: 由一乘法電路計算該輸入數值的該第二部份位元與該目前段的該權重值的一乘積值; 由一第一除法電路計算該乘積值與一段尺寸值的一商值; 由一加法電路計算該商值與該目前段的該偏值的一和值;以及 由一第二除法電路計算該和值與一誤差因子的一商值,其中該商值做為該直線函數值T’(x)。
- 如申請專利範圍第13項所述的操作方法,其中該第一除法電路為一右移位器,而該第二除法電路為另一右移位器。
- 如申請專利範圍第11項所述的操作方法,其中該曲線函數為Tanh(X)或Sigmoid(X),其中X被分為多個段,在該查找表的該偏值欄位中的這些偏值的每一個為該些段的一對應段的X的最小值所對應的該曲線函數與一誤差因子的一乘積值。
- 如申請專利範圍第11項所述的操作方法,其中該查找表更具有一末段的一權重值。
- 如申請專利範圍第11項所述的操作方法,其中所述計算該目前段的該權重值包括: 由該權重計算電路計算該目前段的該偏值與該下一段的該偏值的一差值,其中該差值做為該目前段的該權重值。
- 如申請專利範圍第11項所述的操作方法,其中所述計算該目前段的該權重值包括: 依照該輸入數值的該第一部份位元從該查找表的一修正因子欄位取出該目前段的一修正因子;以及 由該權重計算電路依據該目前段的該修正因子、該目前段的該偏值與該下一段的該偏值來計算該目前段的該權重值。
- 如申請專利範圍第18項所述的操作方法,其中依據該目前段的該修正因子、該目前段的該偏值與該下一段的該偏值來計算該目前段的該權重值包括: 由該權重計算電路計算該目前段的該偏值與該下一段的該偏值的一差值;以及 由該權重計算電路計算該差值與該目前段的該修正因子的一和值,其中該和值做為該目前段的該權重值。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW108131435A TWI698759B (zh) | 2019-08-30 | 2019-08-30 | 曲線函數裝置及其操作方法 |
US16/675,181 US11068239B2 (en) | 2019-08-30 | 2019-11-05 | Curve function device and operation method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW108131435A TWI698759B (zh) | 2019-08-30 | 2019-08-30 | 曲線函數裝置及其操作方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI698759B true TWI698759B (zh) | 2020-07-11 |
TW202109319A TW202109319A (zh) | 2021-03-01 |
Family
ID=72601805
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108131435A TWI698759B (zh) | 2019-08-30 | 2019-08-30 | 曲線函數裝置及其操作方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11068239B2 (zh) |
TW (1) | TWI698759B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI748679B (zh) * | 2020-10-08 | 2021-12-01 | 大陸商星宸科技股份有限公司 | 神經網路計算裝置、資料處理方法及裝置 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11327923B2 (en) | 2019-09-04 | 2022-05-10 | SambaNova Systems, Inc. | Sigmoid function in hardware and a reconfigurable data processor including same |
US11327713B2 (en) | 2019-10-01 | 2022-05-10 | SambaNova Systems, Inc. | Computation units for functions based on lookup tables |
US11327717B2 (en) * | 2019-11-19 | 2022-05-10 | SambaNova Systems, Inc. | Look-up table with input offsetting |
US11328038B2 (en) | 2019-11-25 | 2022-05-10 | SambaNova Systems, Inc. | Computational units for batch normalization |
US11836629B2 (en) | 2020-01-15 | 2023-12-05 | SambaNova Systems, Inc. | Computationally efficient softmax loss gradient backpropagation |
US11809908B2 (en) | 2020-07-07 | 2023-11-07 | SambaNova Systems, Inc. | Runtime virtualization of reconfigurable data flow resources |
US11782729B2 (en) | 2020-08-18 | 2023-10-10 | SambaNova Systems, Inc. | Runtime patching of configuration files |
CN113705776B (zh) * | 2021-08-06 | 2023-08-08 | 山东云海国创云计算装备产业创新中心有限公司 | 一种基于asic实现激活函数的方法、系统、设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW434507B (en) * | 1998-02-02 | 2001-05-16 | Ibm | High accuracy estimates of elementary functions |
TW201503110A (zh) * | 2013-05-29 | 2015-01-16 | Qualcomm Inc | 執行位置分析以寫碼球面諧波係數 |
TW201541441A (zh) * | 2014-04-28 | 2015-11-01 | Samsung Display Co Ltd | 顯示裝置及其驅動方法 |
US9570017B2 (en) * | 2006-12-05 | 2017-02-14 | Semiconductor Energy Laboratory Co., Ltd. | Liquid crystal display device and driving method thereof |
TW201802767A (zh) * | 2016-07-01 | 2018-01-16 | 谷歌有限責任公司 | 用於具二維執行道陣列及二維位移暫存器之影像處理器之區塊操作 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5179528A (en) | 1989-11-22 | 1993-01-12 | Texas Instruments Incorporated | Signal processing system and method implementing a non-linear transfer function approximated by a piecewise linear transformation |
US7702709B2 (en) | 2002-06-21 | 2010-04-20 | Broadcom Corporation | System and method for optimizing approximation functions |
EP2677660B1 (en) | 2012-06-18 | 2016-03-30 | BlackBerry Limited | Function approximation circuitry |
GB2554167B (en) | 2014-05-01 | 2019-06-26 | Imagination Tech Ltd | Approximating functions |
WO2017181342A1 (zh) * | 2016-04-19 | 2017-10-26 | 北京中科寒武纪科技有限公司 | 一种非线性函数运算装置及方法 |
US10037306B2 (en) * | 2016-09-01 | 2018-07-31 | Qualcomm Incorporated | Approximation of non-linear functions in fixed point using look-up tables |
TWI701612B (zh) * | 2019-06-19 | 2020-08-11 | 創鑫智慧股份有限公司 | 用於神經網路中激勵函數的電路系統及其處理方法 |
-
2019
- 2019-08-30 TW TW108131435A patent/TWI698759B/zh active
- 2019-11-05 US US16/675,181 patent/US11068239B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW434507B (en) * | 1998-02-02 | 2001-05-16 | Ibm | High accuracy estimates of elementary functions |
US9570017B2 (en) * | 2006-12-05 | 2017-02-14 | Semiconductor Energy Laboratory Co., Ltd. | Liquid crystal display device and driving method thereof |
TW201503110A (zh) * | 2013-05-29 | 2015-01-16 | Qualcomm Inc | 執行位置分析以寫碼球面諧波係數 |
TW201541441A (zh) * | 2014-04-28 | 2015-11-01 | Samsung Display Co Ltd | 顯示裝置及其驅動方法 |
TW201802767A (zh) * | 2016-07-01 | 2018-01-16 | 谷歌有限責任公司 | 用於具二維執行道陣列及二維位移暫存器之影像處理器之區塊操作 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI748679B (zh) * | 2020-10-08 | 2021-12-01 | 大陸商星宸科技股份有限公司 | 神經網路計算裝置、資料處理方法及裝置 |
Also Published As
Publication number | Publication date |
---|---|
TW202109319A (zh) | 2021-03-01 |
US20210064341A1 (en) | 2021-03-04 |
US11068239B2 (en) | 2021-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI698759B (zh) | 曲線函數裝置及其操作方法 | |
CN112085190B (zh) | 一种神经网络的量化参数确定方法及相关产品 | |
US20200218509A1 (en) | Multiplication Circuit, System on Chip, and Electronic Device | |
US11580719B2 (en) | Dynamic quantization for deep neural network inference system and method | |
CN108021537B (zh) | 一种基于硬件平台的softmax函数计算方法 | |
US7472149B2 (en) | Arithmetic unit for approximating function | |
US20120124116A1 (en) | Apparatus and method for converting data between a floating-point number and an integer | |
CN108228136B (zh) | 基于优化查找表法的对数函数计算的方法及装置 | |
CN112651496A (zh) | 一种处理激活函数的硬件电路及芯片 | |
CN112085154A (zh) | 用于神经网络的压缩和推断加速的非对称量化 | |
CN107220025B (zh) | 处理乘加运算的装置和处理乘加运算的方法 | |
CN114201140B (zh) | 指数函数处理单元、方法和神经网络芯片 | |
TWI514857B (zh) | 在資料處理裝置內實施的低複雜度雙邊濾波(bf) | |
CN114207609A (zh) | 信息处理装置、信息处理系统和信息处理方法 | |
US20230053294A1 (en) | Bitwise product-sum accumulations with skip logic | |
US20240036824A1 (en) | Methods and systems employing enhanced block floating point numbers | |
JP7206531B2 (ja) | メモリデバイスおよびその動作方法 | |
KR102336535B1 (ko) | 테일러 급수를 이용한 제곱근 연산 방법 및 이를 이용한 장치 | |
US10037191B2 (en) | Performing a comparison computation in a computer system | |
TW202129487A (zh) | 資訊處理裝置、程式、記錄媒體及資訊處理方法 | |
TW202036270A (zh) | 電腦可讀儲存媒體、電腦實施的方法及計算邏輯區段 | |
KR20240057754A (ko) | 인메모리 컴퓨팅을 위한 메모리 장치 및 그 동작 방법 | |
JP2005031848A (ja) | 浮動小数点演算の方法および浮動小数点演算プログラム、ならびに浮動小数点演算装置 | |
JP2002132495A (ja) | 指数変換の方法および装置 |