TW202234232A - 用於標準化功能的數位電路系統 - Google Patents
用於標準化功能的數位電路系統 Download PDFInfo
- Publication number
- TW202234232A TW202234232A TW110147625A TW110147625A TW202234232A TW 202234232 A TW202234232 A TW 202234232A TW 110147625 A TW110147625 A TW 110147625A TW 110147625 A TW110147625 A TW 110147625A TW 202234232 A TW202234232 A TW 202234232A
- Authority
- TW
- Taiwan
- Prior art keywords
- input
- output
- exponent
- value
- mantissa
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/01—Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
- G06F5/012—Methods 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
-
- 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/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
-
- 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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical 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)的輸入值次冪的值。舉例而言,數位電路可包括組合邏輯,其接收表示輸入值的輸入尾數的第一數位位元及表示輸入值的輸入指數的第二數位位元。當該輸入值為正及負且該輸入指數大於及小於一第一值時,組合邏輯產生對應於二(2)的輸入值次冪的冪的一近似值的複數個輸出尾數及複數個輸出指數。選擇電路經配置以接收輸出尾數及輸出指數。選擇電路包括選擇控制輸入,該等選擇控制輸入耦接至輸入指數及輸入值的輸入符號位元,以選擇輸出尾數中之一者及輸出指數中之一者。
Description
本揭示案係關於計算,且更特定而言係關於用於標準化功能的數位電路。
大體而言,人工神經網路(下文為神經網路)在人工智慧應用及現代計算中越來越重要。第1圖圖示例示性神經網路。神經網路100接收對應於待辨識特徵的輸入值。輸入值與權重(用邊緣101表示)相乘,並在節點102中相加(例如求和)。對節點102中的結果應用激活函數,產生輸出值。在多個節點及節點層將值組合,以產生對應於一結果的網路輸出值。
此類系統「學習」藉由考慮實例來執行任務,大體而言不需要用特定任務的規則程式化。初始而言,可對權重取消訓練。在訓練階段期間,對應已知結果的輸入值經網路處理,且網路輸出值之間的差(或誤差)與已知值比較。可使用稱為後向傳播的過程基於誤差調整權重,其中計算流程反向(例如自輸出至輸入)。訓練可涉及在許多輸入樣本及對應的已知網路輸出值中連續調整權重。此通常稱為訓練階段。一經訓練,系統便可接收輸入並產生有意義的結果(例如分類或識別)。此通常稱為推理階段。
隨著神經網路的普及性增加,神經網路用於解決的問題的複雜度增加。隨著問題的複雜度增加,網路的規模及計算複雜度增加。神經網路中一個常見且非常耗時的操作為標準化。舉例而言,當在網路的節點上使激活與權重相乘且求和時,通常對結果進行標準化。Softmax為一個此類標準化函數的實例。Softmax可用作神經網路的最後一個激活函數,以將網路的輸出標準化為對預測輸出種類的機率分佈。然而,標準化函數通常需要可減緩網路的複雜數值計算。本文提出的揭示內容提供可更高效地用於標準化函數(及其他應用)的數位電路及處理技術。
下文的詳細描述中描述各個實施例、實例及優點。
數位電路包含:組合邏輯,其接收表示輸入值的輸入尾數的第一數位位元及表示輸入值的輸入指數的第二數位位元,當輸入值為正及負且輸入指數大於及小於第一值時,該組合邏輯產生對應於二(2)的輸入值次冪的冪的近似值的複數個輸出尾數及複數個輸出指數;及兩個或兩個以上選擇電路,其經配置以接收複數個輸出尾數及複數個輸出指數,該等選擇電路包含選擇控制輸入,該等選擇控制輸入耦合至輸入指數及輸入值的輸入符號位元,以選擇複數個輸出尾數中之一者及複數個輸出指數中之一者。
產生標準化值的方法包含:在包含一或更多個移位器電路的組合邏輯中接收表示輸入值的輸入尾數的第一數位位元及表示輸入值的輸入指數的第二數位位元;當輸入值為正及負且輸入指數大於及小於第一值時,在組合邏輯中產生對應於二(2)的輸入值次冪的一冪的近似值的複數個輸出尾數及複數個輸出指數;及用經配置以接收複數個輸出尾數及複數個輸出指數的兩個或兩個以上選擇電路,基於輸入指數及輸入值的輸入符號位元,選擇複數個輸出尾數中之一者及複數個輸出指數中之一者。
數位電路包含:組合邏輯手段,用於接收表示輸入值的輸入尾數的第一數位位元及表示輸入值的輸入指數的第二數位位元;當輸入值為正及負且輸入指數大於及小於第一值時,該組合邏輯手段產生對應於二(2)的輸入值次冪的一冪的近似值的複數個輸出尾數及複數個輸出指數;及選擇電路手段,用於接收複數個輸出尾數及複數個輸出指數,並基於輸入指數及輸入值的輸入符號位元,選擇複數個輸出尾數中之一者及複數個輸出指數中之一者。
在以下的詳細描述中,為提供對揭示案的徹底的理解,出於解釋的目的,闡述大量實例及具體細節。不應將此等實例及細節解釋為過度限制申請專利範圍的要素或整體的主張標的。根據不同請求項的語言,熟習此項技術者將理解,主張標的可包括此等實例中的單獨或組合的一些或所有特徵,並可進一步包括本文所描述的特徵及技術的修改或等效物。
本揭示案的特徵及優點包括數位電路,其接收輸入值(例如浮點)並產生輸出值,該等輸出值對應於二(2)的輸入值x次冪(例如2
x、4
x等)的冪(例如2、4……)的近似值。如下文更詳細地描述,可使用此類函數來近似Softmax函數。有利地,可在組合數位邏輯中實施此類函數,從而例如能在無需等待多個時脈週期的情況下產生輸出。因此,一些例示性實施例能夠僅基於現輸入產生輸出,此與順序邏輯相反,在順序邏輯中輸出不僅取決於現輸入,而且取決於事前輸入(例如資料已儲存)。此舉可得到較快、潛時較低的系統,該系統可實施例如Softmax函數的許多近似。
第2圖圖示根據一實施例的數位電路200。電路200在浮點表示法中接收輸入值201。輸入值(Xi)201包含輸入指數(e
x)、輸入尾數(m
x)及表示為數位位元的輸入符號位元(s
x)。數位電路200包含組合邏輯210,其接收表示輸入尾數m
x的數位位元及表示輸入指數e
x的數位位元,並產生對應於二(2)的輸入值次冪的冪的近似值的複數個輸出尾數及複數個輸出指數250。在一個例示性實施例中,組合邏輯210產生輸入尾數的複數個移位版本,其中基於輸入指數移位輸入尾數以產生輸出尾數及輸出指數。有利地,舉例而言,當輸入值為正及負時且輸入指數大於及小於第一值時,可在四個象限中產生單獨的輸出尾數及輸出指數。
數位電路200進一步包括選擇電路220。選擇電路220經配置以接收輸出尾數及輸出指數250,並產生一個最終輸出尾數251及一個最終輸出指數252。因此,本揭示案的實施例可在(例如)選擇電路220中包括兩個或兩個以上選擇電路,如多工器。選擇電路220可包括選擇控制輸入,其耦合至輸入值(Xi)的輸入指數及輸入符號位元。如此處及下文的其他實施例所說明,本揭示案的特徵包括基於輸入指數及輸入符號位元將輸出尾數中之一者選為最終輸出尾數251,及將輸出指數中之一者選為最終輸出指數252。由於數位電路200實施二(2)的輸入值次冪(例如N
x,N = 2, 4, 8, 16……)的冪的近似值,輸出符號位元為常數值1,並可在(例如)230處為固線式。由此,數位電路200產生的輸出值(Yi)202亦可為包含指數(e
y)、尾數(m
y)及符號位元(s
y)的浮點值。有利地,在一些實施例中,舉例而言,可將輸入值(Xi)的串流很快(在每一時脈週期中)轉換為輸出值(Yi),以實現Softmax函數的近似值的有效計算。
第3圖圖示根據另一實施例的數位電路。本揭示案的特徵及優點包括基於指數移位輸入值的尾數以產生輸出尾數及輸出指數,隨後可基於輸入指數及輸入符號位元選擇該等輸出尾數及輸出指數。在此實例中,數位電路314接收包含輸入符號位元、輸入指數及輸入尾數的輸入值312,並產生輸出值316,該輸出值316約等於二(2)的輸入值次冪(例如2
x、4
x)的冪,該冪包含輸出符號位元、輸出指數及輸出尾數。數位電路314包括組合邏輯320,該組合邏輯在此實例中包含移位器電路322。舉例而言,複數個移位器電路可接收輸入尾數及輸入指數。本揭示案的特徵及優點包括基於輸入指數332移位輸入尾數330以產生複數個輸出尾數336及輸出指數338,該等輸出尾數及輸出指數耦合至選擇電路326及328以基於輸入符號位元334及輸入指數332選擇一對輸出尾數/指數作為最終輸出。移位器電路可產生輸入尾數的左及右移位版本。舉例而言,右移位器電路可包括透過經配置以將輸入尾數與常數相加的邏輯電路耦合至輸入尾數330的第一輸入,及透過經配置以否定輸入指數的邏輯電路耦合至輸入指數332的移位輸入。另外,舉例而言,第一左移位器電路可包括經耦合以接收輸入尾數330的第一輸入及耦合至輸入指數332的移位輸入。可使用輸入尾數的右移位版本形成第一輸出尾數及第二輸出尾數,並可使用輸入尾數的左移位版本的較低位元形成第三輸出尾數及第四輸出尾數。另外,可使用輸入尾數的左移位版本的較高位元形成第一輸出指數及第二輸出指數。下文提供此等技術的其他實例及說明。
在一些例示性實施例中,移位器電路為桶型移位器電路,其為能夠使用組合邏輯(例如不使用任何順序邏輯及隨時間儲存資料的相關延遲)使資料字移位特定數量位元的數位電路。舉例而言,在需要在單一時脈週期中獲取結果的應用中,桶型移位器可為有利的。
每一輸出尾數336可具有相關的輸出指數338,該指數(例如)對應於輸入指數332及輸入符號位元334的一對特定值(例如大於或小於1的s
x及大於或小於0或-1的e
x的4組元組)。選擇電路326及328由輸入指數332及輸入符號位元334控制。因此,可基於輸入指數332及輸入符號位元334自複數個輸出尾數336及輸出指數338選擇最終輸出尾數340及最終輸出指數342。
因此,基於輸入符號位元及輸入指數,選擇電路326可產生不同的輸出尾數,且選擇電路328可產生不同的輸出指數。首先,選擇電路326及328可產生包含輸入尾數與常數的和的移位版本的最終輸出尾數,及輸出指數,當輸入符號位元為正且輸入指數小於第一值(例如0或-1)時該輸出指數具有零值(0)。第二,選擇電路326及328可產生包含輸入尾數的另一移位版本的模數的最終輸出尾數,及具有數位值一(1)的最終輸出指數,當輸入符號位元為正且輸入指數大於第一值時,該最終輸出指數基於輸入尾數的移位版本整除後與輸入指數相加而移位。第三,選擇電路326及328可產生最終輸出尾數,該尾數包含輸入尾數與常數(自第二常數減去)的和的第一移位版本及最終輸出指數,當輸入符號位元為負且輸入指數小於第一值時該最終輸出指數具有負值一(-1)。最後,選擇電路326及328可產生最終輸出尾數,該尾數包含輸入尾數(自第二常數減去)的第二移位版本的模數,及當輸入符號位元為負且輸入指數大於第一值時否定第二輸出指數減一(1)。下文提供以上技術的各個例示性實施方式及其他說明。
例示性實施方式
第4圖圖示根據另一實施例的用於產生2
x的近似值的例示性數位電路400。數位電路400包括右移位器電路410、左移位器電路412及左移位器電路414。輸入尾數450耦合至加法器電路402。加法器電路402進一步接收常數值(N)401,並輸出輸入尾數與常數(N)的和。舉例而言,對於可在0與128之間取值的輸入尾數(m
x,0≦m
x≦128),常數N可等於128。在各個實施例中,舉例而言,可用OR(或)邏輯替換加法器402以實施(例如128 OR m
x),下文的其他實施例將對此說明。加法器402的輸出耦合至右移位器410的輸入。右移位器410的移位輸入控制移位操作,其透過否定電路(-x)408耦合至輸入指數451,該否定電路(-x)408接收輸入指數(e
x)並產生輸入指數(-e
x)的負值。舉例而言,如下所述,右移位器電路410可產生具有0與128之間值的輸入尾數450的右移位版本:
對於輸入符號位元為+1且輸入指數小於零(0)的情況,輸入尾數的上述右移位器版本為2
x值的第一輸出尾數460。
輸入尾數450亦耦合至左移位器412的輸入。左移位器412的移位輸入耦合至輸入指數451。因此,左移位器412產生輸入尾數的左移位版本。輸入尾數的左移位版本的較低位元形成模數函數。在此實例中,如下所述,當輸入符號位元為+1且輸入指數大於或等於零(0)時,輸入尾數的左移位版本的較低位元對應於2
x值的第二輸出尾數461:
在此實例中,第一及第二輸出尾數460-461耦合至多工器(Mux)416。Mux 416的輸出耦合至Mux 420的輸入,且Mux 420的輸出產生最終輸出尾數。Mux 416及420具有選擇控制訊號Select 0及Select 1,其基於輸入符號位元452及輸入指數451的值選擇輸出尾數460至461中之一者。
可自常數(M)減去輸入尾數的右及左移位版本,形成額外的輸出尾數。在此實例中,Mux 416的輸出耦合至常數減法邏輯電路418(M-x),該電路自常數值(例如對於具有0與128之間值的尾數,127)減去Mux 416的輸出。因此,減法電路的輸出可為以下一者:
當輸入符號位元為-1且輸入指數為正或負時,此等替代輸出形成2
x值的第三及第四輸出尾數。可藉由Mux 420將任一輸出尾數選為最終輸出尾數。
亦可自移位器電路產生複數個輸出指數。在各個實施例中,可藉由將左移位輸入尾數的較高位元與二(2)的輸入指數次冪(2
ex)的值相加而產生輸出指數。在此實例中,數位電路400進一步包括將輸入耦合至一(1)的值(例如1的二進制值或1的位元值)的左移位器電路414及耦合至輸入指數451的移位輸入,其中輸入指數左移位1得到2
ex。左移位器412的較高位元形成整除函數(integer divide function; DIV)。由此,如下所述,可在加法器422中將移位器412與移位器414的輸出相加,產生輸出指數464:
最終,輸出指數464耦合至Mux 432的第一輸入,輸出指數465耦合至Mux 432的第二輸入。零(0)值428及負一(-1)430耦合至Mux 432的其他輸入。可如下選擇2
x的最終輸出尾數及指數:
表1
因此,數位電路400進一步包括控制邏輯470,其經配置以接收輸入指數及輸入符號位元,並將控制訊號(Select 0、Select 1)產生至尾數選擇電路(例如Mux 416及420)及指數選擇電路(例如Mux 432)。選擇控制訊號Select 0及Select 1配置多工器,使得當輸入符號位元為正且輸入指數小於0時,Mux 420的輸出耦合至右移位器電路410的輸出,而Mux 432的輸出耦合至零(0)值428。另外,選擇控制訊號Select 0及Select 1配置多工器,使得當輸入符號位元為正且輸入指數大於或等於0時,Mux 420的輸出耦合至右移位器電路412的較低位元,而指數選擇電路的輸出耦合至左移位器電路412的較高位元與對應於輸入指數的二(2)的冪值的和。隨後,選擇控制訊號Select 0及Select 1配置多工器,使得當輸入符號位元為正且輸入指數小於0時,Mux 420的輸出透過常數減法邏輯電路418耦合至右移位器電路410的輸出,而Mux 432的輸出耦合至常數負一(-1)值。最終,選擇控制訊號Select 0及Select 1配置多工器,使得當輸入符號位元為負且輸入指數大於第一值時,Mux 420的輸出透過常數減法邏輯電路418耦合至左移位器電路的較低位元,而多工器432的輸出耦合至左移位器電路412的較高位元與對應於輸入指數的二(2)的冪值的和的負值。
Mux 416、420及432為選擇電路的實例,第4圖中的其他電路為一個例示性組合邏輯機制,用於接收表示輸入值的輸入尾數的第一數位位元及表示輸入值的輸入指數的第二數位位元,並產生複數個輸出尾數及複數個輸出指數。
第5A圖圖示根據另一實施例的用於產生4
x的近似值的例示性數位電路500。如此實例所說明,可使用上文描述的技術亦實施用於產生4
x的近似值的數位電路。對於4
x的近似值,基於輸入指數與常數相加(例如e
x+1)而移位尾數。由此,數位電路500A進一步包括+1加法器電路,其將1的值與輸入指數相加。在此實例中,用上文提及的OR邏輯替換輸入尾數與移位器410之間的加法器。下表說明數位電路500A的行為:
表2
Mux 416、420及432為選擇電路的實例,且第5A圖中的其他電路為額外的例示性組合邏輯機制,用於接收表示輸入值的輸入尾數的第一數位位元及表示輸入值的輸入指數的第二數位位元,並產生複數個輸出尾數及複數個輸出指數。
第5B圖圖示根據另一實施例的用於產生4
x的近似值的另一例示性數位電路500B。在此實例中,移除Mux 418,且多工520具有耦合至輸入尾數的一個輸入及透過OR邏輯502耦合至輸入尾數的另一輸入。在此實例中,移位器521為雙向移位器,其中藉由移位極性輸入(此處為輸入符號位元)設定移位的方向(左/右)。對於移位極性輸入s,移位為(s==0:無移位;s>0:向左移位s個位置;s<0:向右移位s個位置)。數位電路500B的行為與上文的表2所示的相同。移除加法器電路(+1)504得到與上文表1所說明的相同的行為。
多工520、420及432為選擇電路的其他實例,第5B圖中的其他電路為額外的例示性組合邏輯機制,用於接收表示輸入值的輸入尾數的第一數位位元及表示輸入值的輸入指數的第二數位位元,並產生複數個輸出尾數及複數個輸出指數。
第6圖說明根據一實施例的標準化系統600。在此實例中,近似電路602接收輸入向量,用於決定A
x,其中A為二(2)的冪。可使用上文的技術中之一者實施電路602。電路602產生A
x的值,可用其決定標準化函數,如Softmax函數的近似值。舉例而言,A
x的值可儲存於緩衝器604中。可在求和電路606中將值相加。除法器電路608可存取緩衝器604中的值及和值∑A
x以產生標準化值:A
x/∑A
x。舉例而言,可將標準化值耦合至矩陣乘法電路610。在一些實施例中,舉例而言,可使用標準化值處理神經網路資料。
其中,s
x為x的符號(例如s
x= +1或s
x= -1),e
x為x的指數(例如-7≦e
x≦ 7),m
x為x的尾數(例如0≦m
x≦128)。當用bfloat16計算時,e
x< -7時結果為0,e
x> 7時結果為無窮,由此可在邊界處執行檢查,但對於更大的指數無需實施。另外,對於IEEE FP數,有指數偏移。
應指出Softmax(x) = Softmax2(log2(e)*x) = Softmax2(1.44*x)。換言之,為獲得較佳的近似值,吾人在調用近似2
x的電路之前可將x乘以1.44。
以下為符號位元及輸入指數的不同值的四種情況:
應注意,實施方式很簡單,因為此為-7 ≦e
x≦ 7情況下的移位及「位元挑選」(例如,m
x向左移位,如上文所提及,尾數使用較低的7個位元,而指數使用較高的位元)。
再次說明,實施方式包含-7 ≦ e
x≦ 7情況下的移位及「位元挑選」(例如,m
x向左移位,尾數可使用較低的7個位元,指數使用較高的位元)。
第7圖圖示根據一實施例的方法700。在702,數位電路接收第一數位位元及第二數位位元。第一數位位元表示輸入值的尾數,且第二數位位元表示輸入值的指數。舉例而言,輸入值可為浮點格式,並進一步包括符號位元。在702,產生複數個輸出尾數及複數個輸出指數。輸出尾數及輸出指數對應於二(2)的輸入值x次冪(例如2
x、4
x……)的近似值。在706處,基於輸入指數及輸入符號位元選擇複數個輸出尾數中之一者及複數個輸出指數中之一者。因此,方法700產生對應於2
x、4
x等的近似值的數位值(例如浮點格式),該等數位值可用於(例如)在神經網路中近似Softmax函數。其他應用中亦可使用用於輸出數位值的電路,該等數位值近似於2的輸入值次冪的冪。
第8圖圖示根據一些實施例的神經網路處理系統。在各個實施例中,可在包含一或更多個神經網路處理器的硬體環境中實施並訓練根據本揭示案的神經網路。舉例而言,神經網路處理器可指各個圖形處理單元(graphics processing unit; GPU)(例如,用於處理Nvidia Corp®生產的神經網路的GPU)、場可程式化閘陣列(field programmable gate array; FPGA)(例如用於處理Xilinx®生產的神經網路的FPGA)或各個特殊應用積體電路(application specific integrated circuit; ASIC)或神經網路處理器(包含為神經網路計算而最佳化的硬體架構)。在此例示性環境中,一或更多個伺服器1002(可包含以上第9圖圖示的架構)可經由通信網路1001(例如開關、路由器等)耦接至複數個控制器1010(1)-1010(M)。控制器1010(1)-1010(M)亦可包含以上第9圖圖示的架構。舉例而言,每一控制器1010(1)-1010(M)可耦接至一或更多個NN處理器,例如處理器1011(1)-1011(N)及1012(1)-1012(N)。NN處理器1011(1)-1011(N)及1012(1)-1012(N)可包括為神經網路處理(例如訓練或推理)而最佳化的功能處理區塊及各種配置。第8圖中的NN處理器可包括本文描述的用於標準化值(例如Softmax函數的近似)的數位電路。為神經網路計算而對NN處理器進行最佳化。舉例而言,伺服器1002可用NN模型配置控制器1010,及將資料輸入至模型,該等模型由NN模型1011(1)-1011(N)及1012(1)-1012(N)並行負載及執行。舉例而言,模型可包括如上文所描述的層及相關的權重。NN處理器可負載模型,且應用輸入以產出輸出結果。舉例而言,NN處理器亦可實施訓練演算法。舉例而言,本文描述的數位電路可用於訓練及推理。
其他例示性實施例
在各個實施例中,本揭示案包括用於生成可用於標準化的近似值的系統、方法及裝置。以下實例可單獨使用或以各種組合方式使用。
在一個實施例中,本揭示案包括數位電路,其包含:組合邏輯,其接收表示輸入值的輸入尾數的第一數位位元及表示輸入值的輸入指數的第二數位位元,當輸入值為正及負且輸入指數大於及小於第一值時,該組合邏輯產生對應於二(2)的輸入值次冪的冪的近似值的複數個輸出尾數及複數個輸出指數;及兩個或兩個以上選擇電路,其經配置以接收複數個輸出尾數及複數個輸出指數,該等選擇電路包含選擇控制輸入,該等選擇控制輸入耦合至輸入指數及輸入值的輸入符號位元,以選擇複數個輸出尾數中之一者及複數個輸出指數中之一者。
在另一實施例中,本揭示案包括用於產生標準化值的方法,其包含:在包含一或更多個移位器電路的組合邏輯中接收表示輸入值的輸入尾數的第一數位位元及表示輸入值的輸入指數的第二數位位元;當輸入值為正及負且輸入指數高於或低於第一值時,在組合邏輯中產生對應於二(2)的輸入值次冪的冪的近似值的複數個輸出尾數及複數個輸出指數;及基於輸入指數及輸入值的輸入符號位元,藉由經配置以接收複數個輸出尾數及複數個輸出指數的兩個或兩個以上選擇電路,選擇複數個輸出尾數中之一者及複數個輸出指數中之一者。
在另一實施例中,本揭示案包括數位電路,其包含:組合邏輯手段,其接收表示輸入值的輸入尾數的第一數位位元及表示輸入值的輸入指數的第二數位位元;當輸入值為正及負且輸入指數大於及小於第一值時,該組合邏輯手段產生對應於二(2)的輸入值次冪的冪的近似值的複數個輸出尾數及複數個輸出指數;及選擇電路手段,其接收複數個輸出尾數及複數個輸出指數,並且基於輸入指數及輸入值的輸入符號位元,及選擇複數個輸出尾數中之一者及複數個輸出指數中之一者。
在一個實施例中,組合邏輯基於輸入指數產生輸入尾數的複數個移位版本,以產生複數個輸出尾數及複數個輸出指數。
在一個實施例中,兩個或兩個以上選擇電路產生:第一輸出尾數,其包含輸入尾數的第一移位版本與第一常數的和,及當輸入符號位元為正且輸入指數小於第一值具有零值的第一輸出指數;第二輸出指數,其包含輸入尾數的第二移位版本的模數及當輸入符號位元為正且輸入指數大於第一值時基於輸入指數與輸入尾數的第二移位版本整除後的相加而移位的數位值一(1);第三輸出尾數,其包含輸入尾數第一移位版本與第一常數(自第二常數減去)的和及當輸入符號位元為負且輸入指數小於第一值時具有負一(-1)值的第三輸出指數;及第四輸出尾數,其包含輸入尾數(自第二常數減去)的第二移位版本的模數及當輸入符號位元為負且輸入指數大於第一值時第二輸出指數減一(1)的否定。
在一個實施例中,組合邏輯包含一或更多個移位器電路,其具有耦合至輸入尾數的輸入及耦合至輸入指數的移位輸入,其中一或更多個移位器電路產生輸入尾數的左及右移位版本。
在一個實施例中,使用輸入尾數的右移位版本形成第一輸出尾數及第二輸出尾數,且其中使用輸入尾數的左移位版本的較低位元形成第三輸出尾數及第四輸出尾數。
在一個實施例中,自常數減去輸入尾數的右移位版本以形成第二輸出尾數。
在一個實施例中,自常數減去輸入尾數的左移位版本以形成第四輸出尾數。
在一個實施例中,使用輸入尾數的左移位版本的較高位元形成第一輸出指數及第二輸出指數。
在一個實施例中,基於輸入指數將輸入尾數的左移位版本的較高位元與所產生的值相加,形成第一輸出指數及第二輸出指數。
在一個實施例中,基於輸入指數產生的值包含基於輸入指數向左移位的位元。
在一個實施例中,對輸入尾數的左移位版本的較高位元與基於輸入指數產生的值的所述相加進行否定以產生第二輸出指數。
在一個實施例中,一或更多個移位器電路包含桶型移位器電路。
在一個實施例中,一或更多個移位器電路包含:右移位器電路,其具有透過經配置以將輸入尾數與常數相加的邏輯電路耦合至輸入尾數的第一輸入及透過經配置以否定輸入指數的邏輯電路耦合至輸入指數的移位輸入;及第一左移位器電路,其具有經耦合以接收輸入尾數的第一輸入及耦合至輸入指數的移位輸入。
在一個實施例中,一或更多個移位器電路進一步包含第二左移位器電路,其具有經耦合以接收一(1)的數位值的第一輸入及耦合至輸入指數的移位輸入,其中將第一左移位器電路與第二左移位器電路的輸出相加。
在一個實施例中,兩個或兩個以上選擇電路包含第一多工器,其具有耦合至右移位器電路的輸出的第一輸入及耦合至第一左移位器電路的較低位元的第二輸入。
在一個實施例中,兩個或兩個以上選擇電路進一步包含第二多工器,其具有耦合至第一多工器的輸出的第一輸入及透過邏輯電路耦合至第一多工器的輸出的第二輸入,該邏輯電路經配置以自常數減去邏輯電路的輸入上的值。
在一個實施例中,兩個或兩個以上選擇電路包含多工器,該多工器包含:第一輸入,其耦合至第一左移位器電路的較高位元與對應於指數的二(2)的一冪值的和;第二輸入,其耦合至該和的負版本;第三輸入,其耦合至零(0)值;及第四輸入,其耦合至負一(-1)值;及輸出,其產生最終輸出指數。
在一個實施例中,數位電路進一步包含控制邏輯,其經配置以接收輸入指數及輸入符號位元且至少對尾數選擇電路及指數選擇電路產生控制訊號,其中:當輸入符號位元為正且輸入指數小於第一值時,尾數選擇電路的輸出耦合至右移位器電路的輸出,且指數選擇電路的輸出耦合至零(0)值;當輸入符號位元為正且輸入指數大於第一值時,尾數選擇電路的輸出耦合至左移位器電路的較低位元,而指數選擇電路的輸出耦合至第一左移位器電路的較高位元與對應於輸入指數的二(2)的一冪的值的和;當輸入符號位元為正且輸入指數小於第一值時,尾數選擇電路的輸出透過常數減法邏輯電路耦合至右移位器電路的輸出,而指數選擇電路的輸出耦合至常數負一(-1)值;當輸入符號位元為負且輸入指數大於第一值時,尾數選擇電路的輸出透過常數減法邏輯電路耦合至左移位器電路的較低位元,而指數選擇電路的輸出耦合至第一左移位器電路的較高位元與對應於輸入指數的二(2)的一冪的值的和的負值。
以上描述說明本揭示案的各個實施例,及如何實施特定實施例的態樣的實例。不應將以上實例視為僅有的實施例,提出此等實例以說明以下請求項所界定的特定實施例的靈活性及優點。基於以上揭示案及以下請求項,可在不脫離由請求項界定的本揭示案的範疇的情況下使用其他佈置、實施例、實施方式及等效物。
100:神經網路
101:邊緣
102:節點
200:數位電路
201:輸入值
202:輸出值
210:組合邏輯
220:選擇電路
230:固線連接
250:輸出指數
251:最終輸出尾數
252:最終輸出指數
312:輸入值
314:數位電路
316:輸出值
320:組合邏輯
322:移位器電路
326:選擇電路
328:選擇電路
330:輸入尾數
332:輸入指數
334:輸入符號位元
336:輸出尾數
338:輸出指數
340:最終輸出尾數
342:最終輸出指數
400:數位電路
401:常數值
402:加法器
408:否定電路
410:右移位器
412:左移位器
414:移位器
416:多工器
418:常數減法邏輯電路
420:多工
422:加法器
424:否定電路
428:零值
430:負一
432:多工
450:輸入尾數
451:輸入指數
452:輸入符號位元
460:輸出尾數
461:輸出尾數
464:輸出指數
465:輸出指數
470:控制邏輯
500A:數位電路
500B:數位電路
502:OR邏輯
504:加法器電路
520:多工
521:移位器
600:標準化系統
602:電路
604:緩衝器
606:求和電路
608:除法器電路
610:矩陣乘法電路
700:方法
702:步驟
704:步驟
706:步驟
1001:通信網路
1002:伺服器
1010(1):控制器
1010(M):控制器
1011(1):處理器
1011(N):處理器
1012(1):NN模型
1012(N):NN模型
藉由實例說明本揭示案的各個實施例,其不限於附圖的圖式。
第1圖圖示例示性神經網路。
第2圖圖示根據一實施例的數位電路。
第3圖圖示根據另一實施例的數位電路。
第4圖圖示根據另一實施例的用於產生2
x的近似值的例示性數位電路。
第5A圖圖示根據另一實施例的用於產生4
x的近似值的例示性數位電路。
第5B圖圖示根據另一實施例的用於產生4
x的近似值的另一例示性數位電路。
第6圖圖示根據一實施例的標準化系統。
第7圖圖示根據一實施例的方法。
第8圖圖示根據一些實施例的神經網路處理系統。
國內寄存資訊(請依寄存機構、日期、號碼順序註記)
無
國外寄存資訊(請依寄存國家、機構、日期、號碼順序註記)
無
200:數位電路
201:輸入值
202:輸出值
210:組合邏輯
220:選擇電路
230:固線連接
250:輸出指數
251:最終輸出尾數
252:最終輸出指數
Claims (20)
- 一種數位電路,其包含: 組合邏輯,其接收表示一輸入值的一輸入尾數的第一數位位元及表示該輸入值的一輸入指數的第二數位位元,當該輸入值為正及負且該輸入指數大於或小於一第一值時,該組合邏輯產生對應於二(2)的該輸入值次冪的一冪的一近似值的複數個輸出尾數及複數個輸出指數;及 兩個或兩個以上電路,其經配置以接收該複數個輸出尾數及該複數個輸出指數,該等選擇電路包含耦合至該輸入指數及該輸入值的一輸入符號位元的選擇控制輸入,以選擇該複數個輸出尾數中之一者及該複數個輸出指數中之一者。
- 如請求項1所述之數位電路,其中該組合邏輯基於該輸入指數產生該輸入尾數的複數個移位版本,以產生該複數個輸出尾數及該複數個輸出指數。
- 如請求項1所述之數位電路,其中該兩個或兩個以上選擇電路產生: 一第一輸出尾數,其包含該輸入尾數的一第一移位版本與一第一常數的一和及一第一輸出指數,當該輸入符號位元為正且該輸入指數小於一第一值時該第一輸出指數具有一零值; 一第二輸出尾數,其包含該輸入尾數的一另一移位版本的一模數,及具有一數位值一(1)的一第二輸出指數,當該輸入符號位元為正且該輸入指數大於該第一值時,基於與該輸入尾數的該第二移位版本整除後相加的該輸入指數,移位該第二輸出指數; 一第三輸出尾數,其包含該輸入尾數的該第一移位版本與該第一常數(自一第二常數減去)的該和及一第三輸出指數,當該輸入符號位元為負且該輸入指數小於該第一值時該第三輸出指數具有負一(-1)值;及 一第四指數尾數,其包含該輸入尾數的該第二移位版本(自該第二常數減去)的一模數,及當該輸入符號位元為負且該輸入指數大於該第一值時對該第二輸出指數減一(1)的一否定。
- 如請求項1所述之數位電路,其中該組合邏輯包含一或更多個移位器電路,該等移位器電路具有耦合至該輸入尾數的一輸入及耦合至該輸入指數的一移位輸入,其中該一或更多個移位器電路產生該輸入尾數的左及右移位版本。
- 如請求項4所述之數位電路,其中使用該輸入尾數的一右移位版本形成一第一輸出尾數及一第二輸出尾數,且其中使用該輸入尾數的一左移位版本的較低位元形成一第三輸出尾數及一第四輸出尾數。
- 如請求項5所述之數位電路,其中自一常數減去該輸入尾數的該右移位版本以形成該第二輸出尾數。
- 如請求項5所述之數位電路,其中自一常數減去該輸入尾數的該左移位版本以形成該第四輸出尾數。
- 如請求項4所述之數位電路,其中使用該輸入尾數的一左移位版本的較高位元以形成一第一輸出指數及一第二輸出指數。
- 如請求項8所述之數位電路,其中將該輸入尾數的該左移位版本的該等較高位元與基於該輸入指數所產生的一值相加以形成該第一輸出指數及該第二輸出指數。
- 如請求項9所述之數位電路,其中基於該輸入指數產生的該值包含基於該輸入指數向左移位的一位元。
- 如請求項9所述之數位電路,其中對該輸入尾數的該左移位版本的較高位元與基於該輸入指數產生的該值的該相加進行否定以產生該第二輸出指數。
- 如請求項4所述之數位電路,其中該一或更多個移位器電路包含桶型移位器電路。
- 如請求項4所述之數位電路,其中該一或更多個移位器電路包含: 一右移位器電路,具有透過經配置以將該輸入尾數與一常數相加的一邏輯電路耦合至該輸入尾數的一第一輸入,及透過經配置以否定該輸入指數的一邏輯電路耦合至該輸入指數的一移位輸入;及 一第一左移位器電路,其具有經耦合以接收該輸入尾數的一第一輸入及耦合至該輸入指數的一移位輸入。
- 如請求項13所述之數位電路,其中該一或更多個移位器電路進一步包含一第二左移位器電路,該電路具有經耦合以接收一數位值一(1)的一第一輸入及耦合至該輸入指數的一移位輸入,其中將該第一左移位器電路的一輸出與該第二左移位器電路的一輸出相加。
- 如請求項13所述之數位電路,其中該兩個或兩個以上選擇電路包含一第一多工器,該第一多工器具有耦合至該右移位器電路的一輸出的一第一輸入及耦合至該第一左移位器電路的較低位元的一第二輸入。
- 如請求項15所述之數位電路,其中該兩個或兩個以上選擇電路進一步包含一第二多工器,該第二多工器具有耦合至該第一多工器的一輸出的一第一輸入及透過一邏輯電路耦合至該第一多工器的該輸出的一第二輸入,該邏輯電路經配置以自一常數減去該邏輯電路的一輸入上的一值。
- 如請求項13所述之數位電路,其中該兩個或兩個以上選擇電路包含一多工器,該多工器包含: 一第一輸入,其耦合至該第一左移位器電路的較高位元與對應於該指數的二(2)的一冪的一值的和; 一第二輸入,其耦合至該和的一負版本; 一第三輸入,其耦合至一零(0)值;及 一第四輸入,其耦合至一負一(-1)值;及 一輸出,其產生一最終輸出指數。
- 如請求項13所述之數位電路,進一步包含控制邏輯,其經配置以接收該輸入指數及該輸入符號位元,並至少向一尾數選擇電路及一指數選擇電路產生控制訊號,其中: 當該輸入符號位元為正且該輸入指數小於一第一值時,該尾數選擇電路的一輸出耦合至該右移位器電路的一輸出,且該指數選擇電路的一輸出耦合至一零(0)值; 當該輸入符號位元為正且該輸入指數大於該第一值時,該尾數選擇電路的一輸出耦合至該左移位器電路的較低位元,且該指數選擇電路的一輸出耦合至該左移位器電路的較高位元與對應於該輸入指數的二(2)的一冪的一值的一和; 當該輸入符號位元為正且該輸入指數小於一第一值時,該尾數選擇電路的一輸出透過一常數減法邏輯電路耦合至該右移位器電路的一輸出,且該指數選擇電路的一輸出耦合至一常數值負一(-1); 當該輸入符號位元為負且該輸入指數大於該第一值時,該尾數選擇電路的一輸出透過該常數減法邏輯電路耦合至該左移位器電路的較低位元,且該指數選擇電路的一輸出耦合至該左移位器電路的較高位元與對應於該輸入指數的二(2)的一冪的一值的一和的一負值。
- 一種產生標準化值的方法,其包含以下步驟: 在包含一或更多個移位器電路的組合邏輯中接收表示一輸入值的一輸入尾數的第一數位位元及表示該輸入值的一輸入指數的第二數位位元; 當該輸入值為正及負且該輸入指數大於及小於一第一值時,在該組合邏輯中產生對應於二(2)的該輸入值次冪的一冪的一近似值的複數個輸出尾數及複數個輸出指數;及 藉由經配置以接收該複數個輸出尾數及該複數個輸出指數的兩個或兩個以上選擇電路,基於該輸入指數及該輸入值的一輸入符號位元來選擇該複數個輸出尾數中之一者及該複數個輸出指數中之一者。
- 一種數位電路,其包含: 組合邏輯手段,其接收表示一輸入值的一輸入尾數的第一數位位元及表示該輸入值的一輸入指數的第二數位位元,當該輸入值為正及負且該輸入指數大於或小於一第一值時,該組合邏輯手段產生對應於二(2)的該輸入值次冪的一冪的一近似值的複數個輸出尾數及複數個輸出指數;及 選擇電路手段,其接收該複數個輸出尾數及該複數個輸出指數,並基於該輸入指數及該輸入值的一輸入符號位元來選擇該複數個輸出尾數中之一者及該複數個輸出指數中之一者。
Applications Claiming Priority (2)
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 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202234232A true TW202234232A (zh) | 2022-09-01 |
Family
ID=80222190
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110147625A TW202234232A (zh) | 2021-01-29 | 2021-12-20 | 用於標準化功能的數位電路系統 |
Country Status (7)
Country | Link |
---|---|
US (1) | US20220244911A1 (zh) |
EP (1) | EP4285215A1 (zh) |
JP (1) | JP2024506441A (zh) |
KR (1) | KR20230132795A (zh) |
CN (1) | CN116783577A (zh) |
TW (1) | TW202234232A (zh) |
WO (1) | WO2022164678A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117785108B (zh) * | 2024-02-27 | 2024-06-14 | 芯来智融半导体科技(上海)有限公司 | 一种前导数处理方法、系统、设备及存储介质 |
Family Cites Families (6)
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 |
-
2021
- 2021-01-29 US US17/163,225 patent/US20220244911A1/en active Pending
- 2021-12-20 TW TW110147625A patent/TW202234232A/zh unknown
-
2022
- 2022-01-18 EP EP22703204.2A patent/EP4285215A1/en active Pending
- 2022-01-18 WO PCT/US2022/012827 patent/WO2022164678A1/en active Application Filing
- 2022-01-18 JP JP2023533995A patent/JP2024506441A/ja active Pending
- 2022-01-18 CN CN202280010602.8A patent/CN116783577A/zh active Pending
- 2022-01-18 KR KR1020237025885A patent/KR20230132795A/ko unknown
Also Published As
Publication number | Publication date |
---|---|
JP2024506441A (ja) | 2024-02-14 |
KR20230132795A (ko) | 2023-09-18 |
EP4285215A1 (en) | 2023-12-06 |
WO2022164678A1 (en) | 2022-08-04 |
CN116783577A (zh) | 2023-09-19 |
US20220244911A1 (en) | 2022-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7175548B2 (ja) | 大規模並列ニューラル推論コンピューティングのためのシステムおよび方法 | |
GB2580171A (en) | Methods and systems for selecting quantisation parameters for deep neural networks using back-propagation | |
CN113826122A (zh) | 人工神经网络的训练 | |
JP2019139338A (ja) | 情報処理装置、情報処理方法、およびプログラム | |
CN114341892A (zh) | 具有用于高效参数更新的降低精度参数分量的机器学习硬件 | |
US11106431B2 (en) | Apparatus and method of fast floating-point adder tree for neural networks | |
US20230106651A1 (en) | Systems and methods for accelerating the computation of the exponential function | |
Nazemi et al. | Nullanet: Training deep neural networks for reduced-memory-access inference | |
TW202234232A (zh) | 用於標準化功能的數位電路系統 | |
CN111126557A (zh) | 神经网络量化、应用方法、装置和计算设备 | |
US11995533B1 (en) | Executing replicated neural network layers on inference circuit | |
CN112889025A (zh) | 利用硬件计算效率优化神经网络 | |
US11301212B1 (en) | Multimodal digital multiplication circuits and methods | |
CN115730653A (zh) | 量化神经网络训练与推理 | |
Su et al. | Processing element architecture design for deep reinforcement learning with flexible block floating point exploiting signal statistics | |
Velonis et al. | A comparison of Softmax proposals | |
EP3948685A1 (en) | Accelerating neuron computations in artificial neural networks by skipping bits | |
Ueki et al. | Aqss: Accelerator of quantization neural networks with stochastic approach | |
Tan et al. | Efficient Multiple-Precision and Mixed-Precision Floating-Point Fused Multiply-Accumulate Unit for HPC and AI Applications | |
JP7506276B2 (ja) | 半導体ハードウェアにおいてニューラルネットワークを処理するための実装および方法 | |
KR20220166707A (ko) | 곱셈 누산 디바이스 | |
GB2620172A (en) | Identifying one or more quantisation parameters for quantising values to be processed by a neural network | |
GB2606600A (en) | An efficient method for VLSI implementation of useful neural network activation functions | |
TW202347122A (zh) | 用於以三角形輸入遮罩來遮罩及正規化資料的硬體加速之系統與方法 | |
JP2024508596A (ja) | 階層的な共有指数浮動小数点データタイプ |