TW202139073A - 類神經網路權重編碼 - Google Patents
類神經網路權重編碼 Download PDFInfo
- Publication number
- TW202139073A TW202139073A TW110107456A TW110107456A TW202139073A TW 202139073 A TW202139073 A TW 202139073A TW 110107456 A TW110107456 A TW 110107456A TW 110107456 A TW110107456 A TW 110107456A TW 202139073 A TW202139073 A TW 202139073A
- Authority
- TW
- Taiwan
- Prior art keywords
- weight
- block
- blocks
- index
- decoder
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/54—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
-
- 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
-
- 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/52—Multiplying; Dividing
- G06F7/523—Multiplying only
-
- 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/57—Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
- G06F7/575—Basic arithmetic logic units, i.e. devices selectable to perform either addition, subtraction or one of several logical operations, using, at least partially, the same circuitry
-
- 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/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/08—Word line control circuits, e.g. drivers, boosters, pull-up circuits, pull-down circuits, precharging circuits, for word lines
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Evolutionary Computation (AREA)
- Neurology (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
根據一態樣,一種用於解碼一類神經網路之權重的類神經網路電路包括一權重記憶體,該權重記憶體經組態以儲存用於該類神經網路的經編碼權重,其中該等經編碼權重包括一索引權重字組、及一解壓縮邏輯電路,其經組態以從該權重記憶體擷取該等經編碼權重、使用該索引權重字組解碼該等經編碼權重以獲得一或多個無修剪權重字組及一或多個經修剪權重字組的一序列、並提供該等無修剪權重字組及該等經修剪權重字組的該序列至複數個輸入-權重乘法器。
Description
本揭露係關於類神經網路權重編碼。
類神經網路可用於信號處理。類神經網路包括若干層,其中各層具有若干神經元。在各層之間,神經元與權重因子關聯。因為權重的數目係二層中之神經元的數目的乘積,權重的量可相對大(從而增加儲存此等權重之記憶體的量),且乘法的量可相對大(從而增加執行乘法之處理功率的量)。
根據一態樣,一種用於解碼一類神經網路之權重的類神經網路電路包括一權重記憶體,該權重記憶體經組態以儲存用於該類神經網路的經編碼權重,其中該等經編碼權重包括一索引權重字組、及一解壓縮邏輯電路,其經組態以從該權重記憶體擷取該等經編碼權重、使用該索引權重字組解碼該等經編碼權重以獲得一或多個無修剪權重字組及一或多個經修剪權重字組的一序列、並提供該等無修剪權重字組及該等經修剪權重字組的該序列至複數個輸入-權重乘法器。在一些實例中,該等經修剪權重字組包括零值權重字組,且該等無修剪權重字組包括非零值權重字組。
根據一態樣,該類神經網路電路可包括下列特徵的一或多者(或其等的任何組合)。該索引權重字組包括複數個位元,其中各位元具有一第一位元值或一第二位元值,該第一位元值指示該序列中的一經修剪權重字組,且該第二位元值指示該序列中的一無修剪權重字組。該解壓縮邏輯電路經組態以在一單一時脈循環內解碼該等經編碼權重。該解壓縮邏輯電路包括一權重字組解碼器,其中該權重字組解碼器包括複數個移位器、複數個數位邏輯閘,其等耦接至該複數個移位器、及一索引字組解碼器,其耦接至該複數個移位器及該複數個數位邏輯閘。該索引字組解碼器經組態以基於該索引權重字組控制該複數個移位器及該複數個數位邏輯閘。該複數個移位器並聯連接至該索引字組解碼器。該複數個移位器之各者經組態以接收該等無修剪權重字組及來自該索引字組解碼器之控制施加至該等無修剪權重字組的一移位運算的一控制信號。該等數位邏輯閘之各者經組態以接收來自該索引字組解碼器之控制由一各別數位邏輯閘執行的一布林運算的一控制信號。該複數個數位邏輯閘包括一第一數位邏輯閘,該第一數位邏輯閘耦接至該複數個移位器的一第一移位器的一輸出;及一第二數位邏輯閘,該第二數位邏輯閘耦接至該複數個移位器的一第二移位器的一輸出。該解壓縮邏輯電路包括一第一權重解碼器,該第一權重解碼器經組態以解碼該等經編碼權重的一第一部分;一第二權重解碼器,其經組態以解碼該等經編碼權重的一第二部分;及一控制邏輯電路,其經組態以控制該第一權重解碼器及該第二權重解碼器。該第一權重解碼器經組態以接收來自該控制邏輯電路之指示儲存在一權重字組緩衝器中的可用權重字組的一數目的一信號,且該第一權重解碼器經組態以判定該索引權重字組中具有一第一位元值之位元的一數目,並回應於儲存在該權重字組緩衝器中的可用權重字組的該數目等於或大於具有該第一位元值之位元的該數目而解碼該等經編碼權重的該第一部分。
根據一態樣,一種裝置包括一類神經網路,該類神經網路經組態以接收一組輸入並產生一組輸出,其中該組輸入包括語音資料,且該組輸出包括對應於該語音資料的一或多個潛在語音命令、一權重記憶體,其經組態以儲存用於該類神經網路的經編碼權重、及一加速器,其經組態以執行該類神經網路。該加速器包括一解壓縮邏輯電路,該解壓縮邏輯電路經組態以從該權重記憶體擷取該等經編碼權重,並解碼該等經編碼權重以獲得一或多個經修剪權重字組及一或多個無修剪權重字組的一序列,其中該等經修剪權重字組包括零值權重字組,且該等無修剪權重字組包括非零值權重字組。該加速器包括複數個輸入-權重乘法器,該等輸入-權重乘法器經組態以接收該等經修剪權重字組及該等無修剪權重字組的該序列。
根據一態樣,該類神經網路電路可包括上述/下列特徵的一或多者(或其等的任何組合)。該解壓縮邏輯電路包括一權重字組緩衝器,該權重字組緩衝器經組態以暫時儲存該等經編碼權重,其中該等經編碼權重包括一第一索引權重字組及一第二索引權重字組、一第一權重解碼器,其經組態以接收來自該權重字組緩衝器的該等經編碼權重,並使用該第一索引權重字組產生經解碼權重字組的一第一群組、及一第二權重解碼器,其經組態以接收來自該第一權重解碼器之該等經編碼權重的一部分,並使用該第二索引權重字組產生經解碼權重字組的一第二群組。該裝置包括一控制邏輯,該控制邏輯經組態以控制該第一權重解碼器及該第二權重解碼器;一移位器,其經組態以接收來自該第一權重解碼器之經解碼權重字組的該第一群組及來自該第二權重解碼器之經解碼權重字組的該第二群組;及複數個權重暫存器,其等耦接至該移位器,其中該複數個權重暫存器的各權重暫存器經組態以接收來自該移位器的一各別經解碼權重字組。該等經編碼權重包括一索引權重字組及一或多個無修剪權重字組,且該解壓縮邏輯電路包括一權重字組解碼器。該權重字組解碼器包括複數個移位器;複數個AND閘,其等耦接至該複數個移位器;及一索引字組解碼器,其耦接至該複數個移位器及該複數個AND閘,其中該索引字組解碼器經組態以基於該索引權重字組之個別位元的位元值控制該複數個移位器及該複數個AND閘。該複數個移位器之各者經組態以接收該等無修剪權重字組及來自該索引字組解碼器的一第一控制信號,其中各移位器經組態以根據該第一控制信號在該等無修剪權重字組上執行一移位運算。該等AND閘之各者經組態至一各別移位器的一輸出及來自該索引字組解碼器的一第二控制信號,其中各AND閘經組態以在一各別移位器的該輸出及該第二控制信號上執行一AND運算。該等經編碼權重包括一索引權重字組,接著為該等無修剪權重字組,其中該等經編碼權重不包括該等經修剪權重字組的權重值。該索引權重字組包括複數個位元,其中各位元具有一第一位元值或一第二位元值。該第一位元值指示該序列中的一經修剪權重字組。該第二位元值指示該序列中的一無修剪權重字組。該經修剪權重字組係一各別經編碼權重的一最高有效位元組或一最低有效位元組中之一者。
根據一態樣,一種解碼一類神經網路之權重的方法包括經由一處理器資料匯流排從一權重記憶體擷取經編碼權重,其中該等經編碼權重包括一索引權重字組、使用該索引權重字組解碼該等經編碼權重,以獲得一或多個經修剪權重字組及一或多個無修剪權重字組的一序列,其中該等經修剪權重字組包括零值權重字組且該等無修剪權重字組包括非零值權重字組、及提供該等無修剪權重字組及該等經修剪權重字組的該序列至複數個輸入-權重乘法器。
在一些態樣中,該索引權重字組包括複數個位元,其中各位元具有一第一位元值或一第二位元值。該第一位元值指示該序列中的一經修剪權重字組,且該第二位元值指示該序列中的一無修剪權重字組。回應於該索引權重字組內的一位元具有該第一位元值而將該經修剪權重字組解碼成零。該解碼可包括基於該索引權重字組控制複數個移位器及複數個數位邏輯閘。
前述的說明性發明內容、及本揭露的其他範例目的及/或優點、以及達成其之方式係進一步解釋於下述實施方式及其隨附圖式。
圖1A至圖1D繪示在降低類神經網路系統100之記憶體需求的同時增加執行速度之用於編碼及/或解碼類神經網路106之權重的類神經網路系統100。例如,參照圖1B及圖1C,類神經網路106包括與突觸138(亦稱為權重因子或權重)連接之多層129的神經元131。因為權重的數目係相鄰層129中之神經元131之數目的乘積,權重的量可相對大,且因此可能需要相對大的記憶體裝置以儲存權重。例如,具有多於十萬個權重的類神經網路106可能需要一百個千位元組(kB)記憶體(假設8位元的權重),其對具有相對小記憶體容量的裝置係相對大的。
此外,待執行的乘法的量可相對大,其可導致執行速度相對緩慢及/或需要增加處理功率的量。例如,類神經網路106可能需要高數目的循環(例如,超過五萬個循環、超過十萬個循環)以獲得一輸出,且類神經網路106可能需要在給定的時間框中獲得多個輸出(例如,每秒超過五十次、每秒超過一百次等)。在循環速度上的增加以容納大量所需操作對應於功率上的增加。然而,可將一些應用的時脈速度局限在低速率(例如,小於100 MHz、小於50 MHz、小於20 MHz)以節省電力。
一些權重可修剪掉(或移除)以節省記憶體。例如,即使第一神經元值非常高(例如,即使第一神經元係高度有活性的),在第一神經元值乘以低權重值(例如,非常低的權重值)時可對累加總和具有一些極小影響。在一些實例中,可將此等低值權重從類神經網路106修剪掉(例如,移除),而不會顯著降低(若有降低)類神經網路106的準確度。此修剪可節省處理(例如,乘法、加法)及記憶體需求。在一些實例中,可修剪掉某個百分比(例如,超過50%、超過70%、超過80%、或超過90%等)的權重而沒有準確度的顯著(例如,任何)損失)。然而,低值權重的修剪(或移除)可導致類神經網路106不規則(例如,未完全連接)。
然而,根據本文討論的技術,類神經網路系統100提供用於儲存經編碼權重114及解碼經編碼權重114的有效率機制,該機制可降低儲存經編碼權重114所需的記憶體尺寸、降低解碼邏輯的複雜度、及/或增加解碼經編碼權重114的速度,從而實現用於消耗相對低電力之裝置的類神經網路106的快速執行。
例如,根據編碼方案編碼權重114a(例如,序列權重字組),使得經編碼權重114不包括經修剪權重字組126的實際值(例如,將經修剪權重字組126從經編碼權重114移除),從而降低儲存經編碼權重114所需之記憶體的量。換言之,將經修剪權重字組126從經編碼權重114修剪掉(或移除),但經編碼權重114包括表示經修剪權重字組126在權重序列內之位置的編碼資料116。類神經網路系統100包括解碼經編碼權重114的解碼邏輯,以獲得經修剪權重字組126及無修剪權重字組120的序列。例如,解碼邏輯經組態以將經修剪權重字組126解碼成零,並以正確序列將彼等包括在無修剪權重字組120之中。將經修剪權重字組126及無修剪權重字組120的序列提供至輸入-權重乘法器108以與輸入值相乘。
與將權重及其神經元偏移傳達至計算其之區塊的一些習知方法相反,本文討論的解碼機制計算解碼成零(且因此在輸入-權重乘法器108中不需要額外的雙態觸變能力)的經修剪權重字組126(從而不需要神經元偏移)。在一些實例中,需要解碼機制以相對快速地執行,其中經編碼權重114係在十五MHz與八十MHz之間的單一時脈循環中解碼,且傳達權重及神經元偏移的習知方法將不夠快至足以解碼經編碼權重114。例如,權重及神經元偏移的計算對一些應用可能過慢。再者,在一些習知方法中,運行長度編碼(run length encoding, RLE)在卷積類神經網路中係用於經儲存或傳輸的權重,且在RLE中,權重係採浮點格式。例如,當一或多個權重係零時,此等權重採正常不在類神經網路中使用的浮點數字編碼(例如,減去零、次正規、非數字、無限),其中未使用位元係用以編碼零權重的量。然而,與一些習知方法相反,在一些實例中,本文討論的編碼/解碼機制不使用浮點數字,而係整數算數,且因此可導致較小的邏輯及較低的功率。正因如此,當浮點數字可相較於整數程式設計中的相同位元數目提供更大的動態範圍時,可將浮點數字(例如,小浮點數字)使用在類神經網路中。在一些實例中,本文討論的權重修剪解壓縮機制可與浮點權重組合使用。
在一些實例中,類神經網路系統100實作使用用於各組權重字組的索引權重字組118解碼經修剪權重字組126的硬體。在一些實例中,權重字組(例如,經修剪權重字組126及無修剪權重字組120的組合)的數目等於索引權重字組118中之位元的數目。在一些實例中,類神經網路系統100使用導致允許在單一時脈循環中解碼多個索引權重字組118之更快速邏輯時序之移位器140的硬體實施方案。
參照圖1A,類神經網路系統100包括計算裝置103及裝置102。計算裝置103可係訓練類神經網路106以產生權重114a並編碼權重114a以產生經編碼權重114的一或多台電腦。接著,經編碼權重114可儲存在裝置102的權重記憶體112中。在類神經網路106的執行期間,裝置102可從權重記憶體112獲得經編碼權重114、解碼經編碼權重114、並使用經解碼權重及由裝置102擷取的輸入資料執行類神經網路106以計算類神經網路106的輸出。類神經網路106的輸出可取決於由裝置102所利用之應用程式的類型,且類神經網路106的輸出可觸發裝置102的(多個)其他功能。
在一些實例中,計算裝置103包括與裝置102分開的一或多台電腦。在一些實例中,計算裝置103包括一或多台伺服器電腦。在一些實例中,裝置102通訊地耦接至計算裝置103(例如,有線或無線連接),使得裝置102可接收並接著儲存經編碼權重114。在一些實例中,裝置102在裝置102的生產期間通訊地耦接至計算裝置103(以儲存裝置102上的經編碼權重114),但在裝置102置於其使用領域中時未通訊地耦接至計算裝置103。在一些實例中,裝置102通訊地耦接至計算裝置103(在裝置102在其使用領域中時)以透過網路接收來自計算裝置103的經重訓練(經重編碼)權重114。在一些實例中,裝置102經由基於網路的連接(諸如網際網路連接(例如,Wi-Fi連接、行動網路介面連接)或私人寬域網路(wide area network, WAN)連接)而通訊地耦接至計算裝置103。在一些實例中,計算裝置103在製造(例如,裝置102的生產)期間產生經編碼權重114,且接著將經編碼權重114儲存在裝置102的權重記憶體112中,該裝置接著置於其使用領域中。在一些實例中,裝置102經由無線連接連接至計算裝置103,且裝置102可在裝置之壽命的部分期間接收(例如,週期地接收)經更新權重114(例如,經重訓練/經重編碼權重)。
在一些實例中,裝置102包括在處理功率及記憶體尺寸方面比計算裝置103小的數位電路系統。在一些實例中,計算裝置103可係經組態以訓練類神經網路106產生權重114a,並接著編碼權重114a以產生經編碼權重114的一或多台高功率電腦,並可將裝置102視為係使用由計算裝置103判定的經編碼器權重114執行類神經網路106的低性能(相對小)裝置。
裝置102可係可使用經編碼權重114執行類神經網路106之任何類型的裝置。裝置102包括類神經網路電路104,其中類神經網路電路104包括儲存經編碼權重114的權重記憶體112、類神經網路106、及經組態以協助類神經網路106之執行的加速器156。在一些實例中,權重記憶體112包括隨機存取記憶體(random-access memory, RAM)。在一些實例中,類神經網路電路104係系統單晶片(system on chip, SOC)裝置(例如,耦接至半導體基材的積體電路)。在一些實例中,藉由使用本文討論的編碼方案,由於經修剪權重字組126不包括在經編碼權重114內,權重記憶體112可相對小。在一些實例中,將類神經網路106視為係加速器156的部分。
加速器156可包括解壓縮邏輯電路110及輸入-權重乘法器108。在一些實例中,解壓縮邏輯電路110包括實現經編碼權重114的相對快速解碼的一或多個硬體解碼組件。在一些實例中,解壓縮邏輯電路110包括使用導致允許同時解碼多個權重字組之更快速邏輯時序之移位器140的硬體實施方案。解壓縮邏輯電路110可(經由資料匯流排)從權重記憶體112擷取經編碼權重114、解碼經編碼權重114、並將經解碼權重提供至輸入-權重乘法器108以執行適當乘法。可將輸入-權重乘法器108視為係加速器156之將輸入與連接類神經網路106之二層129的突觸138的對應權重相乘的部分。在一些實例中,將輸入-權重乘法器108視為係一或多個乘加單元(例如,MAC單元)的部分。
在一些實例中,裝置102係語音辨識裝置。在一些實例中,裝置102係助聽裝置。類神經網路電路104經組態以接收音訊輸入並基於該音訊輸入判定音訊語音命令。在一些實例中,裝置102利用類神經網路106以改良由使用者口述之命令的辨識。基於經辨識的命令(例如,提高音量),裝置102可執行功能(例如,增加音量)。額外地或替代地,裝置102可利用類神經網路106改善背景環境的辨識。基於經辨識的環境,裝置102可(自動地)執行功能(例如,改變雜訊消除設定)。加速器156的使用可減少計算類神經網路106所需的電力消耗,其可係所描述之語音辨識情境所經常需要的。降低電力對具有相對低電力消耗的相對小裝置(例如,助聽器)可係有利的。
在一些實例中,使用類神經網路106及加速器156的裝置102可以省電方式(例如,以節省電池壽命)改善語音辨識(例如,語音命令)或聲音辨識(例如,背景雜訊類型)。在一些實例中,加速器156係在實施類神經網路106時協助處理器的半導體(亦即,硬體)平台(亦即,方塊)。加速器156包括硬碼邏輯(hard coded logic)及數學函數,其等可經控制(例如,藉由以處理器組態的狀態機)以處理類神經網路106。在一些實例中,加速器156可比在(例如)數位信號處理器(digital signal processor, DSP)上運行的習知軟體更快且(在功率上)更有效率地處理類神經網路106。DSP方法可能需要額外的處理/電力資源以提取軟體指令、串列地執行計算、及使用遠高於特定應用之所欲的位元度(bit depth)執行計算。取而代之地,在一些實例中,加速器156避免提取軟體指令、平行地執行處理(例如,計算)、並使用用於適於特定應用之類神經網路106的位元度處理。
類神經網路106(例如,深度類神經網路)可能需要非常大數目(例如,在一萬與十萬之間或大於十萬)的操作以達到結論。進一步地,類神經網路106可能需要每秒得出許多計算以回應輸入資料流。在一些實例中,類神經網路106可能需要二十萬以上以獲得一輸出,且必須每十毫秒獲得一輸出,其可能需要相對大量的電力。進一步地,此等需求可能導致約二十百萬赫的時脈速度,其對用於一些應用的典型低功率DSP可能太高。本文討論的一些技術可在具有相同(或類似)需求的應用中實施類神經網路106,實現此等應用在尺寸上係小且係低功率的。例如,加速器156可藉由同時處理多個神經元131並同時使在輸入-權重乘法器108的輸入資料保持穩定達多個循環而降低電力消耗。保持輸入資料穩定減少在乘法器之輸入處的雙態觸變量。結果,可能消耗較少的電力(亦即,比其等未保持穩定時更少)。加速器156亦可藉由平行執行多個乘法(例如,輸入-權重乘法器108的執行可至少部分地平行執行)而降低電力消耗。此平行性減少累加器所需的時脈量。結果導致較少的電力消耗(即,少於未加入平行性的電力消耗)。
計算裝置103包括類神經網路訓練器122,該類神經網路訓練器經組態以使用訓練資料105訓練類神經網路106,其中訓練的結果判定權重114a。權重114a可表示單元之間的連接的強度。若從神經元A至神經元B的權重114a具有較大量值,意謂著神經元A具有超過神經元B的較大影響。權重114a包括權重字組的序列,其中各權重字組具有特定尺寸(例如,四位元、八位元、十六位元等的權重字組)。類神經網路106的訓練可基於在實施方案期間收集的啟發式資料(heuristic data)更新。訓練導致用於突觸的一組權重114a及用於最終神經元累加的一組偏差值。在訓練期間,將具有相對低值的權重114a設定成零。因此,類神經網路訓練器122可產生包括經修剪權重字組126及無修剪權重字組120的權重114a。特定經修剪權重字組126或特定無修剪權重字組120係與單一突觸138關聯之權重的值。可將經修剪權重字組126稱為設定成零並從經編碼權重114移除的權重字組。在一些實例中,經修剪權重字組126係零值權重字組(例如,若權重字組係四個位元,係「0000」)。可將無修剪權重字組120稱為未經修剪(例如,未從經編碼權重移除)的權重字組。在一些實例中,無修剪權重字組120包括非零值權重字組(例如,若權重字組係四個位元,係「AAAA」)。在一些實例中,根據所使用的編碼方案,無修剪權重字組120可包括一或多個零值權重字組。
在一些實例中,大多數的權重114a包括經修剪權重字組126。計算裝置103包括編碼權重114a以產生經編碼權重114的權重編碼器128。經編碼權重114包括編碼資料116及無修剪權重字組120。經編碼權重114可不包括來自經編碼權重114之經修剪權重字組126的值(從而被修剪掉或移除)。
編碼資料116可包括指示一或多個經修剪權重字組126在無修剪權重字組120之序列中的存在的數位資料。在一些實例中,編碼資料116包括索引權重字組118。在一些實例中,可將索引權重字組118視為係標題,其後跟隨一或多個無修剪權重字組120(或無)。在一些實例中,索引八字組118係具有第一位元值(例如,「0」)或第二位元值(例如,「1」)的單一位元。在一些實例中,索引權重字組118包括多個位元。在一些實例中,索引權重字組118係四位元索引字組。在一些實例中,索引權重字組118係八位元索引字組。在一些實例中,索引權重字組118係十六位元索引字組。在一些實例中,索引權重字組118係三十二位元索引字組。
在一些實例中,十六位元權重係由權重編碼器128使用八位元權重字組編碼。然而,用於權重字組之位元的數目可涵蓋任何值,且用於權重之位元的數目可涵蓋任何值。在一些實例中,最高有效位元組(most significant byte, MSB)(或最高有效部分)係經修剪的而最低有效位元組(least significant byte, LSB)(或最低有效部分)係無修剪的,則最低有效位元組(LSB)(或最低有效部分)係經延伸以建立有正負號十六位元值的正負號(或用於該編碼的任何位元值)。例如,當無修剪權重字組係最高有效部分時,使用最低有效部分的正負號填充最高有效部分。在一些實例中,索引權重字組118可係八位元索引字組。對於各十六位元權重,權重編碼器128經組態以將十六位元權重的最高有效位元組(MSB)識別為經修剪權重字組126並將最低有效位元組(LSB)識別為無修剪權重字組120,且最低有效位元組(LSB)係延伸的正負號。在一些實例中,經編碼權重128經組態以將十六位元權重的最低有效位元組(LSB)識別為經修剪權重字組126並將最高有效位元組(MSB)識別為無修剪權重字組120,且最低有效位元組(LSB)在此情形中係零。
圖1B繪示根據一態樣完全連接的類神經網路106。類神經網路106包括用於接收一組輸入135(例如,輸入值)並產生一組輸出136(例如,輸出值)的一組計算程序。在一些實例中,該組輸出136的各輸出值可表示語音命令,且輸入值可表示語音(例如,頻域中的音訊資料)。類神經網路106包括複數個層129,其中各層129包括複數個神經元131。複數個層129可包括輸入層130、一或多個隱藏層132、及輸出層134。在一些實例中,輸出層134的各輸出表示可能辨識(例如,語音命令的機器辨識或影像識別)。在一些實例中,具有最高值之輸出層134的輸出表示最可能對應於輸入的辨識。
在一些實例中,類神經網路106係深度類神經網路(deep neural network, DNN)。例如,深度類神經網路(DNN)可具有設置在輸入層130與輸出層134之間的一或多個隱藏層132。然而,類神經網路106可係包括卷積類神經網路(convolution neural network, CNN)之任何類型的人工類神經網路(artificial neural network, ANN)。一個層129中的神經元131係經由突觸138連接至另一層中的神經元131。例如,圖1B中的各箭號可表示分開的突觸138。完全連接層129(諸如圖1B所示)經由突觸138將一個層129中的每個神經元131連接至相鄰層129中的每個神經元。
各突觸138與一權重114a關聯。權重114a係類神經網路106內在隱藏層132內轉換輸入資料的參數。當輸入進入神經元131時,該輸入乘以權重值(例如,權重字組),並觀察所得輸出或將該所得輸出傳至類神經網路106中的次一層。例如,各神經元131具有對應於神經元之活性的值(例如,啟動值(activation value))。啟動值可係(例如)介於0與1之間的值、或介於-1與+1之間的值。各神經元131的值係由將各神經元131耦接至先前層129中之其他神經元131之突觸138的集合判定。給定神經元131的值與先前層129中之所有神經元131的累計加權總和相關。換言之,第一層129中的各神經元131的值乘以對應權重,並將此等值加總在一起以計算第二層129中的神經元131的啟動值。額外地,可將偏差值加至該總和,以調整神經元131的整體活性。此外,可將包括偏差值的總和施用至一啟動函數,該啟動函數將該總和映射到一範圍(例如,零至1)。可能的啟動函數可包括(但不限於)線性整流單元(rectified linear unit, ReLu)、S型(sigmoid)、或雙曲線正切(hyperbolic tangent, TanH)。
圖1C繪示部分連接的類神經網路106。例如,類似於圖1B,類神經網路106包括用於接收一組輸入135(例如,輸入值)並產生一組輸出136(例如,輸出值)的一組計算程序。再者,類神經網路106包括複數個層129,其中各層129包括複數個神經元131,且層129包括輸入層130、一或多個隱藏層132、及輸出層134。一個層129中的神經元131係經由突觸138連接至相鄰層129中的神經元131。然而,與圖1B不同,類神經網路106係未完全連接的,其中一個層129中的每個神經元131經由突觸138未與相鄰層129中的每個神經元連接。例如,如上文指示的。權重114a包括經修剪權重字組126及無修剪權重字組120。若突觸138與經修剪權重字組126關聯,可將該突觸138(且因此對應的權重)視為從類神經網路106修剪掉或移除,從而產生部分連接(或不規則)的類神經網路106。
圖1D繪示在學習程序(例如,權重114a的判定)期間可將非常小(且因此具有一些重要性)的權重114a設定成零之類神經網路訓練器122的實例。例如,如圖1D所示,類神經網路106的一部分包括具有四個神經元131(例如,第一神經元131-1、第二神經元131-2、第三神經元131-3、及第四神經元131-4)的第一層129-1、及具有四個神經元131(例如,第一神經元131-1、第二神經元131-2、第三神經元131-3、及第四神經元131-4)的第二層129-2。在修剪程序之前,第二層129-2中的各神經元131經由突觸138連接至第一層129-1中的每個神經元131(例如,第二層129-2係完全連接層)。然而,若與各別突觸138關聯的權重114a低於臨限位準,將該權重114a設定成零,其導致較不複雜的類神經網路106。如圖1D所示,在修剪程序之後,有五個突觸138:a(具有「aaaa」的權重字組值)、b(具有「bbbb」的權重字組值)、c(具有「cccc」的權重字組值)、d(具有「dddd」的權重字組值、及e(具有「eeee的權重字組值),其等表示無修剪權重字組120。將權重114a的其餘部分設定成零(「0000」),從而表示經修剪權重字組126。例如,類神經網路訓練器122可組態以產生包括經修剪權重字組126及無修剪權重字組120的權重114a。雖然圖1D將權重字組描繪為四個位元,各權重字組可包括任何數目的位元,包括八位元權重字組或十六位元權重字組等。若將權重114a儲存在裝置102上的記憶體中,由於記憶體(例如,權重記憶體112)必須儲存許多經修剪權重字組126,其尺寸可能相當大。
圖2至圖4繪示用於經修剪權重字組126之位元編碼的不同編碼機制。例如,圖2至圖4繪示可由權重編碼器128使用以產生經編碼權重114,使得經修剪權重字組126的值不包括在經編碼權重114中,從而降低儲存經編碼權重114所需之記憶體(例如,權重記憶體112)之量的不同編碼方案。
圖2繪示根據一態樣之用於編碼圖1D之權重114a以產生經編碼權重214的編碼方案213。經編碼權重214可係圖1A至圖1D之經編碼權重114的實例,並可包括相關於該等圖式於本文討論的任何細節。如上文討論的,圖1D的權重114a可表示十六個權重字組,其等包括經修剪權重字組126及無修剪權重字組120。在此實例中,各權重字組係四個位元。編碼方案213使用單一位元對經修剪權重字組126編碼。
經編碼權重214的序列不包括經修剪權重字組126的值(「0000」)。更確切地說,經編碼權重214包括表示經修剪權重字組126在權重字組之序列內的存在的編碼資料216。編碼資料216可係代表經修剪權重字組126的單一位元。在一些實例中,如圖2所示,邏輯低值(「0」)指示經修剪權重字組126的存在。在一些實例中,邏輯高值(「1」)指示經修剪權重字組126的存在。
使用圖1D之權重114a的實例,根據圖2的編碼方案213,第一權重字組(「0000」)係經修剪權重字組126,且因此經編碼權重214中的第一位元係具有零之值(例如,編碼資料216)的單一位元。次一權重字組(「aaaa」)係無修剪權重字組120,且因此經編碼權重214中的次一位元係此權重字組的值(「aaaa」)。在一些實例中,編碼資料215(例如,「1」的單一位元值)設置在無修剪權重字組120前方,以指示其後係無修剪權重字組120。第三權重字組及第四權重字組係經修剪權重字組126,且因此,經編碼權重214中的隨後位元包括具有零之值的二個單一位元的列舉(例如,編碼資料216)。第五權重字組係無修剪權重字組120 (「bbbb」),且因此經編碼權重214中的隨後位元係此權重字組的值(「bbbb」),其在編碼資料215(例如,具有「1」之值的單一位元)之後。
第六、第七、及第八權重字組係經修剪權重字組126,且因此,經編碼權重214中的隨後位元係具有零之值的三個單一位元(例如,編碼資料216)。第九權重字組係無修剪權重字組120 (「cccc」),且因此經編碼權重214中的隨後位元係此權重字組的值(「cccc」),其在編碼資料215(例如,具有「1」之值的單一位元)之後。第十權重字組係經修剪權重字組126,且因此,經編碼權重214中的隨後位元包括具有零之值的單一位元的列舉(例如,編碼資料216)。第十一權重字組係無修剪權重字組120 (「dddd」),且因此經編碼權重214中的隨後位元係此權重字組的值(「dddd」),其在編碼資料215(例如,具有「1」之值的單一位元)之後。第十二、第十三、第十四、及第十五權重字組係經修剪權重字組126,且因此,經編碼權重214中的隨後位元包括具有零之值的四個單一位元的列舉(例如,編碼資料216)。第十六權重字組係無修剪權重字組120 (「eeee」),且因此經編碼權重214中的隨後位元係此權重字組的值(「eeee」),其在編碼資料215(例如,具有「1」之值的單一位元)之後。
對於圖2的編碼方案213,解碼邏輯可在位元層級上執行。在圖2中,箭號219表示解碼經編碼權重214所需的索引移位的數目。在此實例中,解壓縮邏輯電路110可能需要實施第十六個索引移位以解碼經編碼權重214。由解壓縮邏輯電路110執行之解碼的細節稍後於本揭露中進一步解釋。
圖3繪示根據一態樣之用於編碼圖1D之權重114a以產生經編碼權重314的編碼方案313。經編碼權重314可係圖1A至圖1D之經編碼權重114的實例,並可包括相關於該等圖式於本文討論的任何細節。如上文討論的,圖1D的權重114a可表示十六個權重字組,其等包括經修剪權重字組126及無修剪權重字組120。經編碼權重314係使用索引權重字組318接著為一或多個無修剪權重字組120(或無)產生。例如,編碼方案313使用索引權重字組318接著為具有四位元字組邊界(例如,四位元權重字組係使用八位元壓縮方案壓縮)的權重字組。
索引權重字組318中之位元的數目可等於該組中之權重字組的數目。例如,特定的四位元索引字組318可表示四個權重字組。若索引權重字組318中之位元的二者具有「0」的邏輯值,且索引權重字組318中之其他位元的二者具有「1」的邏輯值,該序列將包括二個經修剪權重字組126及二個無修剪權重字組120。由於圖1D的權重114a包括十六個字組權重(且索引權重字組318係四個位元),將有四個索引權重字組318以表示該十六個字組權重。
參照圖1D的權重114a,四個權重字組的第一群組可由經編碼權重314中的第一索引權重字組318表示,其中第一群組包括「0000」、「aaaa」、「0000」、及「0000」。圖3的第一索引權重字組318包括「0100」。由於索引權重字組318中之「1」的數目係一,應有一個無修剪權重字組120在第一索引權重字組318之後。索引權重字組318中的第一位元指示第一權重字組係經修剪權重字組126(例如,具有「0」的值)。索引權重字組318中的第二位元指示第二權重字組係無修剪權重字組120(例如,具有「1」的值),其中該無修剪權重字組120的值(「aaaa」)位於索引權重字組318之後。索引權重字組318中的第三位元指示第三權重係經修剪權重字組126(例如,具有「0」的值)。索引權重字組318中的第四位元指示第四權重係經修剪權重字組126(例如,具有「0」的值)。
接著,四個權重字組的第二群組可藉由經編碼權重314之序列中的第二索引權重字組318表示,其中次四個權重字組係「bbbb」、「0000」、「0000」、及「0000」。由於第二索引權重字組318中之「1」的數目係一,應有一個無修剪權重字組120 (「bbbb」)在第二索引權重字組318之後。索引權重字組318中的第一位元指示此組中的第一權重字組係無修剪權重字組120,其中無修剪權重字組120的值(「bbbb」)位於第二索引權重字組318之後。第二索引權重字組318中的第二位元指示此組中的第二權重字組係經修剪權重字組126。第二索引權重字組318中的第三位元指示此組中的第三權重字組係經修剪權重字組126。第二索引權重字組318中的第四位元指示此組中的第四權重字組係經修剪權重字組126。
接著,四個權重字組的第三群組可藉由經編碼權重314之序列中的第三索引權重字組318表示,其中次四個權重字組係「cccc」、「0000」、「dddd」、及「0000」。由於第三索引權重字組318中之「1」的數目係二,應有二個無修剪權重字組120 (「cccc」、「dddd」)在第三索引權重字組318之後。第三索引權重字組318中的第一位元指示此組中的第一權重字組係無修剪權重字組120,其中無修剪權重字組120的值(「cccc」)位於第二索引權重字組318之後。第三索引權重字組318中的第二位元指示此組中的第二權重字組係經修剪權重字組126。第三索引權重字組318中的第三位元指示此組中的第三權重字組係無修剪權重字組120,其中無修剪權重字組120的值(「dddd」)位於「cccc」的權重字組之後。第三索引權重字組318中的第四位元指示此組中的第四權重字組係經修剪權重字組126。
接著,四個權重字組的第四群組可藉由經編碼權重314之序列中的第四索引權重字組318表示,其中次四個權重字組係「0000」、「0000」、「0000」、及「eeee」。由於第四索引權重字組318中之「1」的數目係一,應有一個無修剪權重字組120 (「eeee」)在第四索引權重字組318之後。第四索引權重字組318中的第一位元指示此組中的第一權重字組係經修剪權重字組126。第四索引權重字組318中的第二位元指示此組中的第二權重字組係經修剪權重字組126。第四索引權重字組318中的第三位元指示此組中的第三權重字組係經修剪權重字組126。第四索引權重字組318中的第四位元指示此組中的第四權重字組係無修剪權重字組120,其中無修剪權重字組120的值(「eeee」)位於第四索引權重字組318之後。
對於圖3的編碼方案313,解碼邏輯可在四位元字組層級上執行。在圖3中,箭號319表示解碼經編碼權重314所需的索引移位的數目。在此實例中,解壓縮邏輯電路110可能需要實施四個索引移位以解碼經編碼權重314。由解壓縮邏輯電路110執行之解碼的細節稍後於本揭露中進一步解釋。在一些實例中,與圖2之解碼經編碼權重214相比,用於解碼圖3之經編碼權重314的解碼邏輯可更不複雜且更快。
圖4繪示根據一態樣之用於編碼圖1D之權重114a以產生經編碼權重414的編碼方案413。經編碼權重414可係圖1A至圖1D之經編碼權重114的實例,並可包括相關於該等圖式於本文討論的任何細節。如上文討論的,圖1D的權重114a可表示十六個權重字組,其等包括經修剪權重字組126及無修剪權重字組120。經編碼權重414係使用索引權重字組418接著為一或多個無修剪權重字組120(或無)產生。例如,編碼方案413使用索引權重字組418接著為具有八位元字組邊界的權重字組。
索引權重字組418中之「1」的數目指示無修剪權重字組120的數目。參照圖1D及圖4,由於無修剪權重字組120的數目係五,在索引權重字組418中有五個「1」。由於索引權重字組418係八個位元並將四位元字組權重儲存在八個位元邊界中,單一索引權重字組418可表示圖1D的十六個權重字組。
具體而言,由於字組權重係四個位元,但編碼方案413將其等儲存在八個位元中,索引權重字組418中的第一位元表示前二個權重字組(例如,0000、aaaa)。由於此對權重字組包括無修剪權重字組120,索引權重字組418中的第一位元具有「1」的邏輯值。「1」的指示指示權重字組在索引權重字組418之後。由於編碼方案將八位元邊界用於四位元權重,前四個位元係「0000」,其後係「aaaa」的無修剪權重字組120。
參照圖1D,次二個字組權重係無修剪權重字組126 (「0000」、「0000」),且因此,索引權重字組418中的第二位元具有「0」的邏輯值。「0」的值指示無權重字組跟隨(例如,因為其等係經修剪權重字組126)。接著,列表中的次二個字組權重係「bbbb」及「0000」,且由於此對包括無修剪權重字組120,索引權重字組418中的第三位元具有「1」的邏輯值,其中「bbbb」跟隨「aaaa」的最末權重字組。接著,由於列表中的次二個字組權重係「0000」及「0000」(例如,經修剪權重字組126),索引權重字組418中的第四位元具有「0」的邏輯值。列表中的次二個字組權重係「0000」及「cccc」,且由於此對包括無修剪權重字組120,索引權重字組418中的第四位元具有「1」的邏輯值,其中「0000」及「cccc」跟隨「bbbb」的最末字組權重。列表中的次二個字組權重係「0000」及「dddd」,且由於此對包括無修剪權重字組120,索引權重字組418中的第五位元具有「1」的邏輯值,其中「0000」及「dddd」跟隨「cccc」的最末字組權重。列表中的次四個字組權重係「0000」、「0000」、「0000」、及「0000」,且因此索引權重字組418中的第六及第七位元可具有「0」的邏輯值,但在此實例中,由於索引權重字組418中的第六位元具有「1」的邏輯值,「0000」及「0000」的字組權重跟隨「dddd」的最末字組權重。由於次一權重字組係「eeee」,索引權重字組418中的八個位元作為「1」的邏輯值,其中「eeee」跟隨「0000」的最末字組權重。
對於圖4的編碼方案413,解碼邏輯可在八位元字組層級上執行。在圖4中,箭號419表示解碼經編碼權重314所需的索引移位的數目。在此實例中,解碼邏輯可計數索引權重字組418中的「1」的數目,以判定無修剪權重字組120的數目,並實施單一索引移位以解碼圖1D的十六個字組字組。在一些實例中,與圖3的解碼經編碼權重314相比,用於解碼圖4之經編碼權重414的解碼邏輯更不複雜且更快(例如,快得多)。
圖5繪示根據一實例之解壓縮邏輯電路510的實例。解壓縮邏輯電路510可係圖1A至圖1D之解壓縮邏輯電路110的實例,並可包括參照該等圖式討論的任何細節。解壓縮邏輯電路510可包括經組態以解碼經編碼權重514的權重解碼器511。在一些實例中,解壓縮邏輯電路510包括多個權重解碼器511(例如,二或更多個),其中各權重解碼器511解碼經編碼權重514的各別部分(例如,平行或循序地)。經編碼權重514可根據本文討論之編碼方案的任一者產生。在一些實例中,經編碼權重514包括索引權重字組518接著為一或多個無修剪權重字組520(若有)的序列。索引權重字組518包括位元(例如,四個位元、八個位元、十六個位元等)的序列,其中各位元具有第一位元值(例如,「0」)或第二位元值(「1」)。第一位元值可指示經修剪權重字組(例如,已從經編碼權重514移除的權重字組)。第二位元值可指示無修剪權重字組520(例如,跟隨索引權重字組518)。
權重解碼器511包括索引字組解碼器544、複數個移位器540、及複數個數位邏輯閘542。移位器540包括第一移位器540-1、及第二移位器540-2至N移位器540-N。移位器540的數目可相依於提供至輸入-權重乘法器508之經解碼字組的量。在一些實例中,移位器540並聯連接至索引字組解碼器544,其可使解碼相對快速。在一些實例中,各移位器540經組態以接收跟隨索引權重字組518之無修剪權重字組520的序列,及來自索引字組解碼器544之判定施加至無修剪權重字組520之序列的移位運算的控制信號。在一些實例中,移位器540包括可將資料字組移位指定位元數目的一或多個數位電路。在一些實例中,移位器540係多工器的序列。在一些實例中,移位器540包括正反器的串接。在一些實例中,移位器540包括一或多個桶移位器。
數位邏輯閘542可包括第一數位邏輯閘542-1、第二數位邏輯閘542-2、及第三數位邏輯閘542-3至N數位邏輯閘542-N。第二數位邏輯閘542-2及第三數位邏輯閘542-3至N數位邏輯閘542-N可連接至各別移位器540的輸出。在一些實例中,第一經解碼字組不需要移位器540,因為不需要移位運算(例如,第一數位邏輯閘542-1接收無修剪權重字組520及來自索引字組解碼器544的控制信號)。在一些實例中,各數位邏輯閘542包括經組態以執行AND運算的AND邏輯閘。第一數位邏輯閘542-1經組態以接收無修剪權重字組520(例如,移位運算不會施加在無修剪權重字組520上以恢復第一經解碼字組))、第二數位邏輯閘542-2連接至第一移位器540-1的輸出、且第三數位邏輯閘542-3至N數位邏輯閘542-N分別連接至第二移位器540-2至N移位器540-N。各數位邏輯閘542接收來自索引字組解碼器544的控制信號,以控制由各別數位邏輯閘542實施的布林運算(例如,AND運算)。例如,第一數位邏輯閘542-1可接收「1」或「0」的控制信號並接收無修剪權重字組520,並使用「1」或「0」及無修剪權重字組520執行布林運算。第一數位邏輯閘542-1的輸出係經解碼字組1、第二數位邏輯閘542-2的輸出係經解碼字組2、第三數位邏輯閘542-3的輸出係經解碼字組3、且N數位邏輯閘542-N的輸出係經解碼字組N。
具體而言,索引字組解碼器544接收索引權重字組518並基於索引權重字組518控制移位器540及數位邏輯閘542,以獲得經解碼字組1至N。由索引字組解碼器544產生以控制由移位器540執行之移位的控制信號(或其等的至少一部分)可基於索引權重字組518的位元值。再者,由索引字組解碼器544產生以控制由數位邏輯閘542執行之運算的控制信號(或其等的至少一部分)可基於索引權重字組518的位元值。
使用圖4及圖1D的實例,索引權重字組518可係「10101101」(例如,8位元索引字組)。第一數位邏輯閘542-1可接收無修剪權重字組520(例如,權重字組1至N)的序列。由索引字組解碼器544產生以控制第一數位邏輯閘542-1的控制信號可基於第一位元的位元值。第一數位邏輯閘542-1可接收無修剪權重字組520,且在一些實例中,由於索引權重字組518中的第一位元包括「1」的邏輯值,其指示無修剪權重字組520的存在,索引字組解碼器544可產生並發送「1」的控制信號至第一數位邏輯閘542-1。第一數位邏輯閘542-1可使用「1」及無修剪權重字組520執行AND運算,其導致第一經解碼字組1 (「0000aaaa」)。
第一移位器540-1可接收無修剪權重字組520的序列,且因為索引權重字組518中的第二位元的位元值係「0」,索引字組解碼器544可控制第一移位器540-1以不移位無修剪權重字組520(或在不會使用移位器的輸出時,傳輸任何移位值)。第二數位邏輯閘542-2可接收第一移位器540-1的輸出,且在一些實例中,由於索引權重字組518中的第二位元包括「0」的邏輯值,索引字組解碼器544可產生並發送「0」的控制信號至第二數位邏輯閘542-2。第二數位邏輯閘542-2可使用「0」及第一移位器540-1的輸出執行AND運算,其導致經解碼字組2 (「00000000」)。
第二移位器540-2可接收無修剪權重字組520的序列,且因為索引權重字組518中的第三位元的位元值係「1」,其指示無修剪權重字組520的存在,索引字組解碼器544可控制第二移位器540-2以移位無修剪權重字組520(一個位元組或8個位元),使得次八個字組邊界(「bbbb0000」)在第二移位器540-2的輸出對準。第三數位邏輯閘542-3可接收第二移位器540-2的輸出,且在一些實例中,由於索引權重字組518中的第三位元包括「1」的邏輯值,索引字組解碼器544可產生並發送「1」的控制信號至第三數位邏輯閘542-3。第三數位邏輯閘542-3可使用「1」及第二移位器540-2的輸出執行AND運算,其導致經解碼字組3 (「bbbb0000」)。此程序將繼續,直到所有權重字組已從經編碼權重514恢復。關於圖1D及圖4的實例,移位器540的數目N將係七,且數位邏輯閘542的數目N將係八,由於圖5中的各經解碼字組含有用於總共十六個權重字組的二個權重字組(例如,顯示於圖1D中),從而獲得經解碼字組1至經解碼字組8。
圖6繪示根據一態樣的類神經網路系統604。類神經網路電路604可係圖1A至圖1D之類神經網路電路104的實例,並可包括相關於圖2至圖5之該等圖式及/或細節的任何細節。類神經網路電路604包括處理器記憶體650、輸入/輸出(I/O)組件652、處理器資料匯流排654、加速器656、及處理器658。在一些實例中,處理器658係主機處理器。在一些實例中,類神經網路電路604係系統單晶片(SOC)(例如,耦接至半導體基材的積體電路)。在一些實例中,類神經網路電路604係語音或聲音辨識裝置的部分。在一些實例中,助聽裝置的類神經網路電路604部分。雖然下文描述係關於語音或聲音辨識裝置,本文討論的概念可施用至其他應用。
類神經網路電路604可接收來自I/O組件652(例如,麥克風)的輸入值,並藉由處理經訓練以將特定輸入值辨識成具有特定意義的類神經網路而辨識輸入值。例如,該等輸入值可係由一聲頻流產生的梅爾頻率倒頻譜係數(Mel-frequency cepstral coefficient, MFCC)。在一些實例中,訊框音訊樣本週期性地(每10毫秒)擷取並轉換至用於輸入至類神經網路(例如,圖1A的類神經網路106)的頻域。
處理器658耦接至處理器資料匯流排654。在一些實例中,處理器658可經由在處理器658上運行的軟體執行類神經網路之處理的一部分(例如,無處理、部分處理)。處理器記憶體650耦接至處理器資料匯流排654。在一些實例中,處理器記憶體650包括圖1A的權重記憶體112,並儲存圖1的經編碼權重114。加速器656耦接至處理器資料匯流排654。加速器656可係包括圖1A之解壓縮邏輯電路110及輸入-權重乘法器108之圖1之加速器156的實例。
加速器656可執行類神經網路之處理的一部分(例如,全部處理、部分處理)。在一些實例中,加速器656可使用與處理器658相同的處理器資料匯流排654及相同的處理器記憶體650。但當處理器658不使用處理器資料時,加速器656可使用處理器資料。對於將類神經網路的任務(例如,計算)分割在加速器656與處理器658之間的實施方案,加速器656可藉由產生中斷以觸發處理器658執行任務。在接收該中斷時,處理器658可讀取來自(共用)處理器記憶體650的輸入值、執行任務、將結果寫至處理器記憶體650、及將控制交還(亦即,再啟動)加速器656。
圖7繪示根據一態樣之加速器756的實例。加速器756可係圖1A之加速器156的實例。加速器756包括輸入資料提取器760、解壓縮邏輯電路710、偏差值提取器762、及輸出寫入器764。再者,加速器756包括經組態以產生中斷命令並與圖6之處理器記憶體650介接的計數器邏輯766。輸入資料提取器760、解壓縮邏輯電路710、偏差值提取器762、及輸出寫入器764之各者可與處理器資料匯流排(例如,圖6的處理器資料匯流排654)介接。在一些實例中,輸入資料提取器760係循環緩衝器。輸入資料提取器760可接收並儲存轉換至頻域的音訊樣本。輸入資料提取器760可保持類神經網路於其上運行的音頻長度(例如,0.4至2秒)。解壓縮邏輯電路710可係圖1A之解壓縮邏輯電路110的實例。解壓縮邏輯電路710可從圖6的處理器記憶體650擷取經編碼權重並解碼該等經編碼權重。
加速器756亦包括經組態以接收來自輸入資料提取器760之輸入資料的輸入暫存器770、及經組態以接收來自解壓縮邏輯電路710之經解碼權重的權重暫存器768。加速器756包括將來自權重暫存器768的經解碼權重乘以來自輸入暫存器770的輸入資料的複數個輸入-權重乘法器708。輸入-權重乘法器708包括四個乘法器,例如,第一輸入-權重乘法器708-1、第二輸入-權重乘法器708-2、第三輸入-權重乘法器708-3、及第四輸入-權重乘法器708-4。雖然四個輸入-權重乘法器708顯示於圖7中,輸入-權重乘法器708的數目可係大於四的任何數目,諸如二十個輸入-權重乘法器708、四十個輸入-權重乘法器708、六十個輸入-權重乘法器708等。加速器756包括經組態將輸入-權重乘法器708的結果加總的總和單元772、累加器暫存器774以接收總和單元772的結果、及累加器776以累加累加器暫存器774的內容。加速器756包括接收偏差值的偏差值加法器778、及將偏差值加至累加器776之輸出的偏差值提取器762。加速器756包括實施啟動函數的查找表(look up table, LUT) 601、及經組態以產生類神經網路層之輸出的多工器782。
加速器756的運算通常包括透過多個突觸(亦即,權重)對多個神經元(例如,如圖所示的四個)的處理。在第一循環中,將與第一神經元關聯的四個突觸乘以四個輸入(例如,層輸入),並將該總和儲存在累加器暫存器774的一者中。在次一循環中,將與第二神經元相關聯的不同組突觸乘以(相同的)四個輸入,並將所累加的總和儲存在累加器暫存器774的次一個暫存器中。重複此程序直到所有的累加器暫存器774均寫入為止。一旦寫入所有的累加器暫存器774,獲得第一神經元的新的一組四個輸入,將其乘以權重,並與先前儲存的暫存器值累加。繼續該程序直到運算完該層中的各節點為止。此時,偏差值藉由偏差值加法器778施加至神經元值,且啟動函數在施加至多工器782之前由查找表780施加至神經元值。
在一些實例中,加速器756允許軟體控制類神經網路處理及硬體或軟體施用啟動函數。啟動函數的施用可藉由選擇至多工器782之輸入的一者而組態。多工器782的上輸入係在使用硬體時選擇,而多工器782的下輸入係在使用軟體時選擇。當啟動函數以硬體施用時,寫回(write back)啟動值係可能的,並可在不與主機處理器(例如,圖6的處理器658)互動的情況下處理整個層。在操作中,偏差值可從記憶體提取,並將偏差值加入至經累加總和。接著,可以硬體執行啟動函數,並將所得的神經元值儲存在記憶體中。可針對其他層中的其他神經元重複此程序。在已處理及儲存若干個神經元後,可針對主機處理器(例如,圖6的處理器658)產生中斷(藉由計數器邏輯766)。在接收中斷時及在更新暫存器後,主機處理器(例如,圖6的處理器658)可針對次層再次重啟加速器756,且重複此程序直到整個類神經網路已處理完為止。
圖8繪示解壓縮邏輯電路810的實例。解壓縮邏輯電路810可係圖1A之解壓縮邏輯電路110及/或圖7之解壓縮邏輯電路710的實例,並可包括本文討論的任何細節。解壓縮邏輯電路810包括移位器880、權重字組緩衝器882、第一權重解碼器811-1、第二權重解碼器811-2、控制邏輯888、移位器890、及權重暫存器868。
移位器880可根據由控制邏輯888計算的權重緩衝器填充位準884將來自權重記憶體(例如,圖6的處理器記憶體650或圖1A的權重記憶體112)的經編碼權重814對準至權重字組緩衝器882中。在一些實例中,控制邏輯888經組態以傳輸權重記憶體讀取請求(經由箭號813)至記憶體並接收確認訊息(經由箭號807)。在一些實例中,控制邏輯888經組態以判定記憶體讀取狀態892以判定從記憶體讀取之經編碼權重814的位準。經編碼權重814可根據本文討論之編碼技術的任一者編碼。
移位器880可接收來自記憶體(例如,圖6的處理器記憶體650、圖1A的權重記憶體112)的經編碼權重814,並將經編碼權重814對準至權重字組緩衝器882中。權重字組緩衝器882可暫時儲存經編碼權重814,直到將經編碼權重814提供至第一權重解碼器811-1(經由箭號819)。在一些實例中,第一權重解碼器811-1經組態以在單一時脈循環內解碼至多最大數目之任何數目的權重字組。權重字組的最大數目可係八個權重字組、十六個權重字組、三十二個權重字組等。
在一個實例中,若能夠由第一權重解碼器811-1解碼之權重字組的最大數目係十六,但權重字組的總數係三十二個權重字組,第一權重解碼器811-1可將剩餘權重字組提供至第二權重解碼器811-2(經由箭號821)。接著,若有任何剩餘字組,第二權重解碼器811-2將該等剩餘字組提供回權重字組緩衝器882(經由箭號837)。如此,在一些實例中,第一權重解碼器811-1可解碼經編碼權重814的一部分,且第二權重解碼器811-2可解碼經編碼權重814的其他部分。在一些實例中,第一權重解碼器811-1接收第一索引權重字組及無修剪權重字組的序列,並接著解碼該第一索引權字組以獲得權重字組的第一群組,且第二權重解碼器811-2接收第二索引權重字組(例如,後續索引權重字組)及剩餘的無修剪權重字組,且接著解碼該第二索引權重字組以獲得權重字組的第二群組。雖然描繪二個權重解碼器811,解壓縮邏輯電路810可包括任何數目的權重解碼器811(其可取決於具體實施方案)。
第一權重解碼器811-1可接收來自控制邏輯888的信號(經由箭號815),其中該信號指示可用緩衝器字組的數目。例如,若壓縮方案使用八位元壓縮尺寸,各權重字組係八個位元(或一個位元組)。若權重字組緩衝器882含有四個權重字組(例如,一個索引權重字組加上三個無修剪權重字組),來自控制邏輯888的信號將指示可用緩衝器字組之數目的數目四。
換言之,控制邏輯888可監測及追蹤權重緩衝填充位準884(例如,權重字組緩衝器882中之權重字組的量)。可用緩衝器字組的數目可係儲存在權重字組緩衝器882中之可用於解碼之權重字組的量。在一些實例中,第一權重解碼器811-1可接收權重字組緩衝器882中之可用緩衝器字組的量(經由箭號815)以判定是否有足夠數量的權重字組以解碼其等。在一些實例中,第一權重解碼器811-1亦可接收來自控制邏輯888的信號(經由箭號817),其中該信號包括解碼請求。在一些實例中,解碼請求包括所請求之權重的數目。例如,控制邏輯888可判定待由第一權重解碼器811-1解碼之權重的量,並在信號中將該數目傳輸至第一權重解碼器811-1(經由箭號817)。在一些實例中,第一權重解碼器811-1可比較所請求之權重的數目(經由箭號817接收)及可用緩衝器字組的數目(經由箭號815接收),以判定是否解碼權重字組緩衝器882中的經編碼權重814。例如,若可用緩衝器字組的數目等於或大於所請求之權重的數目,第一權重解碼器811-1可解碼經編碼權重814的權重字組,並提供經解碼字組至移位器890(經由箭號835)。
在一些實例中,第一權重解碼器811-1產生並發送信號至第二權重解碼器811-2(經由箭號823),其中該信號指示已使用字組的量(例如,已由第一權重解碼器811-1解碼之權重字組的量)。再者,第一權重解碼器811-1產生並發送信號至第二權重解碼器811-2(經由箭號825),其中該信號指示可用的經解碼字組的數目。在一些實例中,第一權重解碼器811-1產生並發送信號至第二權重解碼器811-2(經由箭號821),其中該信號包括剩餘字組。剩餘字組可係仍可用的權重字組(例如,超過能夠由第一權重解碼器811-1解碼之權重字組的最大數目且在權重字組緩衝器882中可用的該等者)。
第二權重解碼器811-2可從第一權重解碼器811-1接收剩餘字組(經由箭號821)、已使用字組的數目(經由箭號823)、及可用的經解碼字組的數目(經由箭號825)。再者,第二權重解碼器811-2可從控制邏輯888接收解碼請求(經由箭號827)。第二權重解碼器811-2可從經編碼權重814解碼剩餘字組,並將經解碼字組提供至移位器890(經由箭號829)。若在第二權重解碼器811-2執行解碼操作後有任何剩餘字組殘留,第二權重解碼器811-2將該等剩餘字組傳回至權重字組緩衝器882(經由箭號837)。此外,第二權重解碼器811-2可產生並發送信號至控制邏輯888(經由箭號831),其中該信號指示可用的經解碼字組的數目。再者,第二權重解碼器811-2可產生並發送信號至控制邏輯888(經由箭號833),其中該信號指示已使用字組的數目(例如,已由第二權重解碼器811-2解碼之權重字組的數目)。
解壓縮邏輯電路810包括移位器890、及權重暫存器868。權重暫存器868可係圖7之權重暫存器768的實例。移位器890可接收來自第一權重解碼器811-1(經由箭號835)及/或第二權重解碼器811-2(經由箭號829)的經解碼字組,並將該等經解碼字組對準至適當的權重暫存器868中。接著,將來自權重暫存器868的經解碼字組提供至對應的輸入-權重乘法器808。輸入-權重乘法器808可係圖7之輸入-權重乘法器708的實例。在一些實例中,控制邏輯888可與移位器890通訊以監測權重暫存器868中之權重的量。例如,控制邏輯888可基於從移位器890接收的資訊判定權重暫存器填充位準886,並基於權重暫存器填充位準886控制放置至權重暫存器868中之經解碼字組的量。
在一些實例中,在每個時脈循環將新的經解碼權重字組提供至權重暫存器868。在一些實例中,輸入-權重乘法器808的數目係十六,且解壓縮邏輯電路810經組態以在一個時脈循環中解碼十六個權重。在一些實例中,該時脈循環大於二十百萬赫。在一些實例中,該時脈循環大於四十百萬赫。在一些實例中,該時脈循環大於六十百萬赫。
以下描述描述解壓縮邏輯電路810之解壓縮八十個權重的實例操作,該八十個權重已使用根據圖4之編碼方案413的權重修剪壓縮。以下表1提供以小端格式(例如,第一權重字組在頂部的右方塊中,且從右至左讀取)儲存經壓縮權重的三十二位元記憶體的內容。例如,此等經壓縮權重可儲存在圖1A的權重記憶體112或圖6的處理器記憶體650中。表 1
cccc0000 | bbbb0000 | 0000aaaa | 10101101 |
0000ffff | 01101010 | 0000eeee | dddd0000 |
00000100 | kkkkjjjj | iiii0000 | hhhhgggg |
0000mmmm | 11010001 | 00000000 | llll0000 |
XXXXXXXX | qqqq0000 | 0000pppp | oooonnnn |
在此實例中,權重字組尺寸係四個位元,且經壓縮字組尺寸係八個位元,且加粗
數字指示索引權重字組(例如,圖4的索引權重字組418)。在一些實例中,解壓縮邏輯電路810解碼儲存在表1中的權重,以獲得八十個權重(例如,四十個權重字組,各權重字組係四個位元),將其提供至十六個輸入-權重乘法器808。使用此組態,由於請求至多八個權重字組,因此僅使用第一權重解碼器811-1。
在起始狀態中,權重字組緩衝器882的緩衝器長度係零,且權重字組緩衝器882的內容係空的。第一權重解碼器811-1接收來自控制邏輯888之經請求權重的數目(經由箭號817)。在此實例中,由於八係第一權重解碼器811-1能夠解碼的數目,經請求權重的數目係八。再者,第一權重解碼器811-1接收可用字組的數目(經由箭號815)。在此實例中,因為權重字組緩衝器882係空的(例如,仍無字組可用),可用字組的數目係零。因為可用字組的數目小於所請求之權重字組的數目,第一權重解碼器811-1經組態以不執行解碼操作。再者,第一權重解碼器811-1可判定已使用字組的數目係零(例如,因為無權重字組已解碼),且剩餘字組的數目係零。
解壓縮邏輯電路810可從記憶體讀取經編碼權重814。以下描述使用三十二位元讀取(例如,四個位元組的資料,其由於經壓縮字組尺寸係八個位元(或一個位元組),各讀取將讀取四個權重字組)。然而,解壓縮邏輯電路810可從記憶體讀取任何數目的位元,包括大於三十二個位元的記憶體讀取。
例如,解壓縮邏輯電路810經組態以對記憶體內容執行第一讀取,其中移位器880將下列權重對準在權重字組緩衝器882中:cccc0000;bbbb0000;0000aaaa;10101101。在第一讀取後,權重字組緩衝器882的緩衝器長度係四(例如,四個位元組的資料),且權重字組緩衝器882的緩衝器內容包括:cccc0000;bbbb0000;0000aaaa;10101101。第一權重解碼器811-1接收來自控制邏輯888之經請求權重的數目(經由箭號817)。在此實例中,在第一讀取後,由於八係第一權重解碼器811-1能夠解碼的數目,經請求權重的數目係八。再者,第一權重解碼器811-1接收可用經解碼權重字組的數目(經由箭號815)。在此實例中,可用的經解碼權重字組的數目係零。第一權重解碼器811-1可計數索引權重字組中之1的數目(其係五)。由於權重字組緩衝器882僅包括三個位元組的資料(但需要五個位元組的資料以解碼第一索引權重字組),因為在權重字組緩衝器882中沒有足夠數目的權重字組,第一權重解碼器811-1經組態以不執行解碼操作。再者,第一權重解碼器811-1可判定已使用字組的數目係零(例如,因為無權重字組已解碼),且剩餘字組的數目係四(例如,由於其等係四個八位元權重字組)。
接著,解壓縮邏輯電路810經組態以對記憶體內容執行第二讀取(例如,從記憶體讀取另一32位元)。在第二讀取後,權重字組緩衝器882的緩衝器長度係八(例如,八個位元組的資料),且權重字組緩衝器882的緩衝器內容包括:0000ffff;01101010;0000eeee;dddd0000;cccc0000;bbbb0000;0000aaaa;10101101。第一權重解碼器811-1接收來自控制邏輯888之經請求權重的數目(經由箭號817)。在此實例中,在第二讀取後,由於八係第一權重解碼器811-1能夠解碼的數目,經請求權重的數目係八。再者,第一權重解碼器811-1接收可用經解碼權重字組的數目(經由箭號815)。在此實例中,可用的經解碼權重字組的數目係八。第一權重解碼器811-1計數索引權重字組中之1的數目,且由於權重字組緩衝器882中之權重字組的數目等於或大於索引權重字組中之1的數目,第一權重解碼器811-1經組態以解碼該等權重字組以獲得經解碼權重字組的群組。第一權重解碼器811-1經組態以解碼六個權重字組(例如,採小端格式之「10101101」的索引權重字組加上跟隨此索引字組的五個權重字組)。換言之,為判定使用字組的數目,第一權重解碼器811-1可計數索引權重字組中之1的數目(其係五),並接著對總共六個經使用字組對索引權重字組自身加一。接著,第一權重解碼器811-1可判定剩餘字組的數目,其在此實例中係二(例如,權重字組的量(8)減去經使用字組的量(6))。
接著,解壓縮邏輯電路810經組態以對記憶體內容執行第三讀取。在第三讀取後,權重字組緩衝器882的緩衝器長度係六(例如,六個位元組的資料),且權重字組緩衝器882的緩衝器內容包括:00000100;kkkkjjjj;iiii0000;hhhhgggg;0000ffff;01101010。第一權重解碼器811-1接收來自控制邏輯888之經請求權重的數目(經由箭號817)。在此實例中,在第三讀取後,由於八係第一權重解碼器811-1能夠解碼的數目,經請求權重的數目係八。再者,第一權重解碼器811-1接收可用經解碼字組權重字組的數目(經由箭號815)。在此實例中,可用的字組的數目係八。再次,第一權重解碼器811-1判定索引權重字組中之1的數目(其係四),且由於權重字組緩衝器882包括至少四個位元組的資料,第一權重解碼器811-1經組態以解碼該等權重。在第三讀取後,第一權重解碼器811-1經組態以解碼五個權重字組(例如,採小端格式之「01101010」的索引權重字組加上跟隨此索引字組的四個權重字組)。換言之,為判定使用字組的數目,第一權重解碼器811-1可計數索引權重字組中之1的數目(其係四),並接著對總共五個經使用字組對索引權重字組自身加一。接著,第一權重解碼器811-1可判定剩餘字組的數目,其在此實例中係一(例如,緩衝器中之權重字組的量(6)減去經使用字組的量(5))。
接著,解壓縮邏輯電路810經組態以對記憶體內容執行第四讀取。在第四讀取後,權重字組緩衝器882的緩衝器長度係五(例如,五個位元組的資料),且權重字組緩衝器882的緩衝器內容包括:0000mmmm;11010001;00000000;llll0000;00000100。第一權重解碼器811-1接收來自控制邏輯888之經請求權重的數目(經由箭號817)。在此實例中,在第四讀取後,由於八係第一權重解碼器811-1能夠解碼的數目,經請求權重的數目係八。再者,第一權重解碼器811-1接收可用經解碼權重字組的數目(經由箭號815)。在此實例中,可用的經解碼權重字組的數目係八。因為索引權重字組中之1的數目等於或大於權重字組緩衝器882中之權重字組的數目,第一權重解碼器811-1經組態以解碼該等權重。在第四讀取後,第一權重解碼器811-1經組態以使用二個權重字組解碼該等權重(例如,採小端格式之「00000100」的索引權重字組加上跟隨此索引字組的一個權重字組)。換言之,為判定使用字組的數目,第一權重解碼器811-1可計數索引權重字組中之1的數目(其係一),並接著對總共二個經使用字組對索引權重字組自身加一。接著,第一權重解碼器811-1可判定剩餘字組的數目,其在此實例中係三(例如,緩衝器中之權重字組的量(5)減去經使用字組的量(3))。
接著,解壓縮邏輯電路810經組態以對記憶體內容執行第五讀取。在第五讀取後,權重字組緩衝器882的緩衝器長度係七(例如,七個位元組的資料),且權重字組緩衝器882的緩衝器內容包括:XXXXXXXX;qqqq0000;0000pppp;oooonnnn;0000mmmm;11010001;00000000。第一權重解碼器811-1接收來自控制邏輯888之經請求權重的數目(經由箭號817)。在此實例中,在第五讀取後,由於八係第一權重解碼器811-1能夠解碼的數目,經請求權重的數目係八。再者,第一權重解碼器811-1接收可用經解碼權重字組的數目(經由箭號815)。在此實例中,可用的經解碼權重字組的數目係八。由於1的數目(其係零)等於大於權重字組緩衝器882中之權重字組的數目,第一權重解碼器811-1經組態以解碼該等權重。在第五讀取後,第一權重解碼器811-1經組態以使用一個權重字組(例如,「00000000」的索引權重字組)解碼該等權重。接著,第一權重解碼器811-1可判定剩餘字組的數目,其在此實例中係六(例如,緩衝器中之權重字組的量(7)減去經使用字組的量(1))。
在第五讀取後,由於已經讀取記憶體的內容,沒有從記憶體讀取的需要。在第五讀取後,權重字組緩衝器882的緩衝器長度現在係六,且權重字組緩衝器882的緩衝器內容包括:XXXXXXXX;qqqq0000;0000pppp;oooonnnn;0000mmmm;11010001。所請求之權重的數目係八,且可用的經解碼權重字組的數目係八。第一權重解碼器811-1使用五個權重字組解碼權重814,且剩餘字組係一(例如,XXXXXXXX)。以此方式,所有的經解碼權重均提供至輸入-權重乘法器。
圖9繪示根據一態樣之權重解碼器911的實例。權重解碼器911可係圖8的第一權重解碼器811-1或第二權重解碼器811-2。再者,權重解碼器911可係圖5之權重解碼器511的實例。
權重解碼器911經組態以解碼經編碼權重。經編碼權重可根據本文討論之編碼方案的任一者產生。在一些實例中,經編碼權重包括索引權重字組接著為一或多個無修剪權重字組(若有)。索引權重字組包括位元(例如,四個位元、八個位元、十六個位元等)的序列,其中各位元具有第一位元值(例如,「0」)或第二位元值(「1」)。第一位元值可指示經修剪權重字組(例如,已從經編碼權重移除的權重字組)。第二位元值可指示無修剪權重字組(例如,跟隨索引權重字組)。
權重解碼器911包括索引字組解碼器944、複數個移位器940、及複數個AND閘942。移位器940包括第一移位器940-1、第二移位器940-2、第三移位器940-3、及第四移位器940-4至N移位器940-N。在一些實例中,將移位器940並聯連接至索引字組解碼器944,其可使解碼相對快速。在一些實例中,各移位器940經組態以接收跟隨索引權重字組之無修剪權重字組的序列,及來自索引字組解碼器944之判定施加至無修剪權重字組之序列的移位運算的控制信號。例如,在圖9中,可將第一字組(字組0)視為索引權重字組,並可將跟隨的字組(字組1...n)視為無修剪權重字組。
權重解碼器911可從先前解碼器(例如,若權重解碼器911係圖8的第二權重解碼器811-2)接收經使用字組的數目、可用字組的數目(例如,在圖8之權重字組緩衝器882中可用之權重字組的數目)、解碼請求(其請求經解碼權重字組的數目,例如,八個經解碼權重字組等)、及未解碼字組(例如,索引權重字組及無修剪權重字組)。權重解碼器911可計算已使用字組的數目,例如,用於解碼權重之權重字組(包括無修剪權重字組、索引權重字組)的數目。再者,權重解碼器911可產生並發送經解碼可用權重字組的數目。
AND閘942可包括第一AND閘942-1、第二AND閘942-2、及第三AND閘942-3至N AND閘942-3。除了第一移位器940-1(其輸出剩餘字組)外,各AND閘942可連接至個別移位器940的輸出。在圖9的實例中,第一AND閘942-1連接至第二移位器940-2的輸出、第二AND閘942-2連接至第三移位器940-3的輸出、且第三AND閘942-3至N AND閘942-N分別連接至第四移位器940-4至N移位器940-N。
各AND閘942接收來自索引字組解碼器944的控制信號,以控制由各別AND閘942實施的AND運算。例如,第一AND閘942-1可接收「1」或「0」的控制信號並接收第二移位器940-2的輸出,並使用「1」或「0」及第二移位器940-2的輸出執行布林運算。第一AND閘942-1的輸出係經解碼字組0、第二AND閘942-2的輸出係經解碼字組1、第三AND閘942-3的輸出係經解碼字組2、且N AND 942-N的輸出係經解碼字組N。
具體而言,索引字組解碼器944接收索引權重字組(字0)並基於該索引權重字組控制移位器940及AND閘942,以獲得經解碼字組0至N,並提供剩餘字組至另一權重解碼器或提供回緩衝器。由索引字組解碼器944產生以控制由移位器940執行之移位的控制信號(或其等的至少一部分)可基於索引權重字組的位元值。再者,由索引字組解碼器944產生以控制由AND閘942執行之運算的控制信號(或其等的至少一部分)可基於索引權重字組(例如,索引權重字組118、318、418、或518)的位元值。
使用圖4的編碼方案413(及圖1D的權重),索引權重字組可係「10101101」(例如,8位元索引字組)。第一移位器940-1可接收無修剪權重字組(字組1...n)的序列,且索引字組解碼器944可控制第一移位器940-1以移位五個位元組,使得剩餘字組從第一移位器940-1輸出。例如,索引字組解碼器944可計數索引權重字組中之1的數目,且由於1的數目係五(意指有五個權重字組跟隨索引權重字組),索引字組解碼器944可控制第一移位器940-1以移位五個位元組(例如,各經壓縮權重字組係採圖4之編碼方案413的八個位元),使得可將剩餘字組提供至次一解碼器或提供回緩衝器。
第二移位器940-2可接收無修剪權重字組的序列,且索引字組解碼器944可控制第二移位器940-1以不移位無修剪權重字組,使得第一經壓縮權重字組(例如,字組1)與第二移位器940-2對準,其係「0000aaaa」。在一些實例中,由於第二移位器940-2不必移位,省略第二移位器940-2(例如,類似於圖5的實施例)。在此等實例中,來自未解碼字組的箭號將延伸至第一AND閘942-1。由索引字組解碼器944產生以控制第一AND閘942-1(連接至第二移位器940-2)的控制信號可基於索引權重字組之第一位元的位元值。第一AND閘942-1可接收第二移位器940-2的輸出,且在一些實例中,由於索引權重字組中的第一位元包括「1」的邏輯值,其指示無修剪權重字組的存在,索引字組解碼器944可產生並發送「1」的控制信號至第一AND閘942-1。第一AND閘942-1可使用「1」及第二移位器940-2的輸出執行AND運算,其導致經解碼字組0 (「0000aaaa」)。
第三移位器940-3可接收無修剪權重字組(字組1...2)的序列,且因為索引權重字組中的第二位元的位元值係「0」,索引字組解碼器944可控制第三移位器940-3以不移位無修剪權重字組((或在不會使用移位器的輸出時,傳輸任何移位值))。在一些實例中,第三移位器940-3可僅使用作為輸入的字組1及字組2移位,因此,第三移位器940-3可係二輸入多工器。再者,由索引字組解碼器944產生以控制第二AND閘942-2的控制信號可基於索引權重字組之第二位元的位元值。第二AND閘942-2可接收第三移位器940-9的輸出,且在一些實例中,由於索引權重字組中的第二位元包括「0」的邏輯值,索引字組解碼器944可產生並發送「0」的控制信號至第二AND閘942-2。第二AND閘942-2可使用「0」及第三移位器940-3的輸出執行AND運算,其導致經解碼字組1 (「00000000」)。
第四移位器940-4可接收無修剪權重字組(字組1...3)的序列,且因為索引權重字組中的第三位元的位元值係「1」,其指示無修剪權重字組的存在,索引字組解碼器944可控制第四移位器940-4以移位無修剪權重字組(一個位元組或8個位元),使得次一字組(「bbbb0000」)與第四移位器940-4對準。再者,由索引字組解碼器944產生以控制第三AND閘942-3的控制信號可基於索引權重字組之第三位元的位元值。第三AND閘942-3可接收第四移位器940-4的輸出,且在一些實例中,由於索引權重字組中的第三位元包括「1」的邏輯值,索引字組解碼器944可產生並發送「1」的控制信號至第三AND閘942-3。第三AND閘942-2可使用「1」及第四移位器940-4的輸出執行AND運算,其導致經解碼字組2 (「bbbb0000」)。此程序將繼續,直到所有權重字組已從經編碼權重恢復。關於圖1D及圖4的實例,移位器940的數目N將係八,且AND閘942的數目N將係八,由於圖4中的各經解碼字組含有用於總共十六個未壓縮權重字組的二個權重字組,從而獲得經解碼字組0至經解碼字組7。
如上文所示,將經修剪權重字組解碼成零值權重字組,且使用零值權重字組的乘法係由輸入-權重乘法器(例如,輸入-權重乘法器108、508、708、或808)執行。換言之,與略過該等乘法的一些習知方法相反,即使該權重係經修剪的,乘法仍在硬體中執行(例如,將零饋送至輸入-權重乘法器)。
圖10繪示描繪解碼用於類神經網路之經編碼權重的實例操作的流程圖1000。雖然圖10的流程圖1000係相關於圖1A至圖1D的類神經網路系統100描述,流程圖1000可能可應用於本文討論之實施例的任一者。在一些實例中,類神經網路電路100係裝置102(例如,語音辨識裝置)的部分。在一些實例中,裝置102係接收語音(例如,語言命令)並接著使用類神經網路106以判定哪些命令對應於該語音的助聽器裝置。
操作1002包括從權重記憶體112擷取經編碼權重114,其中經編碼權重包括索引權重字組118。經編碼權重114可根據本文討論之編碼方案的任一者編碼。在一些態樣中,索引權重字組118包括複數個位元,其中各位元具有第一位元值(例如,零)或第二位元值(例如,一)。第一位元值指示該序列中的經修剪權重字組126,且第二位元值指示該序列中的無修剪權重字組120。再者,一或多個無修剪權重字組120可跟隨著索引權重字組118。
操作1004包括使用索引權重字組118解碼經編碼權重114,以獲得一或多個經修剪權重字組126及一或多個無修剪權重字組120的序列。在一些實例中,經修剪權重字組126包括零值權重字組,且無修剪權重字組120包括非零值權重字組。在一些實例中,回應於索引權重字組118內的一位元具有第一位元值(例如,零)而將經修剪權重字組126解碼成零。在一些實例中,解碼包括基於索引權重字組126控制複數個移位器(例如,圖5的移位器540)及複數個數位邏輯閘542。在一些實例中,經編碼權重114係在單一時脈循環內解碼。在一些實例中,時脈循環係在十五百萬赫與八十百萬赫之間。
操作1006包括提供無修剪權重字組120及經修剪權重字組126的序列至複數個輸入-權重乘法器108。例如,即使該權重字組係經修剪的,乘法仍在硬體中執行,其中將零饋送至輸入-權重乘法器108。
在說明書及/或圖式中,已揭示典型的實施例。本揭露不限於此類例示性實施例。用語「及/或(and/or)」之使用包括相關聯之所列項目之一或多者的任何或全部組合。圖式係示意代表圖,且因此非必然按比例繪製。除非另有說明,否則特定用語已採一般性及描述性意義來使用,而非出於限制之目的來使用。
除非另有定義,本文中使用之所有技術及科學用語具有所屬技術領域中具有通常知識者所通常瞭解的相同意義。類似或等效於本文中所述的方法及材料可用於本揭露之實施或測試中。如本說明書中及隨附申請專利範圍中所使用者,除非內文另有明確指示,否則單數形式「一(a/an)」、「該(the)」包括複數的指稱物。本文中所用之用語「包含(comprising)」及其變化詞係與用語「包括(including)」及其變化詞同義地使用,且為非限制性的開放用語。本文中所用之用語「可選的(optional)」或「可選地(optionally)」意指可發生或可不發生隨後描述的特徵、情形、或情況,及意指該描述包括發生和未發生該特徵、情形、或情況的案例。範圍在本文中可表示成從「約」一個特定值及/或至「約」另一特定值。當表示此範圍時,一態樣包括從該一特定值及/或至該另一特定值。類似地,使用前述之「約」來將值表示為近似值時,應理解該特定值會形成另一態樣。應進一步理解的是,該等範圍之各者的端點係顯著相對於另一端點,且又顯著獨立於另一端點。
雖然所描述之實施方案的某些特徵已如本文所描述而說明,但所屬技術領域中具有通常知識者現將想到許多修改、替換、改變及均等物。因此,應當理解,隨附申請專利範圍旨在涵蓋落於實施方案範圍內的所有此類修改及改變。應當理解,其等僅以實例(非限制)方式呈現,並且可進行各種形式及細節改變。本文所描述之設備及/或方法之任何部分可以任何組合進行組合,除了互斥組合之外。本文所描述之實施方案可包括所描述之不同實施方案之功能、組件及/或特徵的各種組合及/或子組合。
100:類神經網路系統
102:裝置
103:計算裝置
104:類神經網路電路
105:訓練資料
106:類神經網路
108:輸入-權重乘法器
110:解壓縮邏輯電路
112:權重記憶體
114:經編碼權重
114a:權重
116:編碼資料
118:索引權重字組
120:無修剪權重字組
122:類神經網路訓練器
126:經修剪權重字組
128:權重編碼器
129:層
129-1:第一層
129-2:第二層
130:輸入層
131:神經元
131-1:第一神經元
131-2:第二神經元
131-3:第三神經元
131-4:第四神經元
132:隱藏層
134:輸出層
135:輸入
136:輸出
138:突觸
140:移位器
156:加速器
213:編碼方案
214:經編碼權重
215:編碼資料
216:編碼資料
219:箭號
313:編碼方案
314:經編碼權重
318:索引權重字組
319:箭號
413:編碼方案
414:經編碼權重
418:索引權重字組
419:箭號
508:輸入-權重乘法器
510:解壓縮邏輯電路
511:權重解碼器
514:經編碼權重
518:索引權重字組
520:無修剪權重字組
540:移位器
540-1:第一移位器
540-2:第二移位器
540-N:N移位器
542:數位邏輯閘
542-1:第一數位邏輯閘
542-2:第二數位邏輯閘
542-3:第三數位邏輯閘
542-N:N數位邏輯閘
544:索引字組解碼器
601:查找表
604:類神經網路電路
650:處理器記憶體
652:輸入/輸出(I/O)組件
654:處理器資料匯流排
656:加速器
658:處理器
708:輸入-權重乘法器
708-1:第一輸入-權重乘法器
708-2:第二輸入-權重乘法器
708-3:第三輸入-權重乘法器
708-4:第四輸入-權重乘法器
710:解壓縮邏輯電路
756:加速器
760:輸入資料提取器
762:偏差值提取器
764:輸出寫入器
766:計數器邏輯
768:權重暫存器
770:輸入暫存器
772:總和單元
774:累加器暫存器
776:累加器
778:偏差值加法器
780:查找表
782:多工器
807:箭號
808:輸入-權重乘法器
810:解壓縮邏輯電路
811-1:第一權重解碼器
811-2:第二權重解碼器
813:箭號
814:經編碼權重
815:箭號
817:箭號
819:箭號
821:箭號
823:箭號
825:箭號
827:箭號
829:箭號
831:箭號
833:箭號
835:箭號
837:箭號
868:權重暫存器
880:移位器
882:權重字組緩衝器
884:權重緩衝器填充位準
886:權重暫存器填充位準
888:控制邏輯
890:移位器
892:記憶體讀取狀態
911:權重解碼器
940:移位器
940-1:第一移位器
940-2:第二移位器
940-3:第三移位器
940-4:第四移位器
940-N:N移位器
942:AND閘
942-1:AND閘
942-2:AND閘
942-3:AND閘
942-N:AND閘
944:索引字組解碼器
1000:流程圖
1002:操作
1004:操作
1006:操作
a:突觸
b:突觸
c:突觸
d:突觸
e:突觸
〔圖1A〕繪示根據一態樣之用於編碼及解碼用於類神經網路之權重的類神經網路系統。
〔圖1B〕繪示根據一態樣之完全連接的類神經網路。
〔圖1C〕繪示根據一態樣之部分連接的類神經網路。
〔圖1D〕繪示根據一態樣之經組態以修剪類神經網路的突觸並將經修剪突觸的權重儲存為零值權重的類神經網路訓練器。
〔圖2〕繪示根據一態樣之用於編碼類神經網路之權重的編碼方案。
〔圖3〕繪示根據另一態樣之用於編碼類神經網路之權重的編碼方案。
〔圖4〕繪示根據另一態樣之用於編碼類神經網路之權重的編碼方案。
〔圖5〕繪示根據一態樣之用於解碼經編碼權重的解壓縮邏輯電路。
〔圖6〕繪示根據一態樣的類神經網路系統。
〔圖7〕繪示根據一態樣之類神經網路系統的加速器。
〔圖8〕繪示根據一態樣之加速器的解壓縮邏輯電路。
〔圖9〕繪示根據一態樣之解壓縮邏輯電路的權重解碼器。
〔圖10〕係根據一態樣之用於解碼類神經網路系統之權重之方法的流程圖。
圖式中之組件非必然相對於彼此按比例繪製。相似的元件符號在若干視圖中標示對應的部件。
100:類神經網路系統
102:裝置
103:計算裝置
104:類神經網路電路
105:訓練資料
106:類神經網路
108:輸入-權重乘法器
110:解壓縮邏輯電路
112:權重記憶體
114:經編碼權重
114a:權重
116:編碼資料
118:索引權重字組
120:無修剪權重字組
122:類神經網路訓練器
126:經修剪權重字組
128:權重編碼器
140:移位器
156:加速器
Claims (10)
- 一種用於解碼一類神經網路之權重的類神經網路電路,該類神經網路電路包含: 一權重記憶體,其經組態以儲存用於該類神經網路的經編碼權重,該等經編碼權重包括一索引權重字組;及 一解壓縮邏輯電路,其經組態以: 從該權重記憶體擷取該等經編碼權重; 使用該索引權重字組解碼該等經編碼權重,以獲得一或多個無修剪權重字組及一或多個經修剪權重字組的一序列,該等經修剪權重字組包括零值權重字組,該等無修剪權重字組包括非零值權重字組;及 提供該等無修剪權重字組及該等經修剪權重字組的該序列至複數個輸入-權重乘法器。
- 如請求項1之類神經網路電路,其中該索引權重字組包括複數個位元,各位元具有一第一位元值或一第二位元值,該第一位元值指示該序列中的一經修剪權重字組,該第二位元值指示該序列中的一無修剪權重字組。
- 如請求項1之類神經網路電路,其中該解壓縮邏輯電路經組態以在一單一時脈循環內解碼該等經編碼權重。
- 如請求項1之類神經網路電路,其中該解壓縮邏輯電路包括一權重字組解碼器,該權重字組解碼器包括: 複數個移位器; 複數個數位邏輯閘,其等耦接至該複數個移位器;及 一索引字組解碼器,其耦接至該複數個移位器及該複數個數位邏輯閘,該索引字組解碼器經組態以基於該索引權重字組控制該複數個移位器及該複數個數位邏輯閘, 其中該複數個移位器並聯連接至該索引字組解碼器, 其中該複數個移位器之各者經組態以接收該等無修剪權重字組及來自該索引字組解碼器之控制施加至該等無修剪權重字組的一移位運算的一控制信號, 其中該等數位邏輯閘之各者經組態以接收來自該索引字組解碼器之控制由一各別數位邏輯閘執行的一布林運算的一控制信號, 其中該複數個數位邏輯閘包括:一第一數位邏輯閘,該第一數位邏輯閘耦接至該複數個移位器的一第一移位器的一輸出;及一第二數位邏輯閘,該第二數位邏輯閘耦接至該複數個移位器的一第二移位器的一輸出。
- 如請求項1之類神經網路電路,其中該解壓縮邏輯電路包括: 一第一權重解碼器,其經組態以解碼該等經編碼權重的一第一部分; 一第二權重解碼器,其經組態以解碼該等經編碼權重的一第二部分;及 一控制邏輯電路,其經組態以控制該第一權重解碼器及該第二權重解碼器, 其中該第一權重解碼器經組態以接收來自該控制邏輯電路之指示儲存在一權重字組緩衝器中的可用權重字組的一數目的一信號,該第一權重解碼器經組態以判定該索引權重字組中具有一第一位元值之位元的一數目,並回應於儲存在該權重字組緩衝器中之可用權重字組的該數目等於或大於具有該第一位元值之位元的該數目而解碼該等經編碼權重的該第一部分。
- 一種裝置,其包含: 一類神經網路,其經組態以接收一組輸入並產生一組輸出,該組輸入包括語音資料,該組輸出包括對應於該語音資料的一或多個潛在語音命令; 一權重記憶體,其經組態以儲存用於該類神經網路的經編碼權重;及 一加速器,其經組態以執行該類神經網路,該加速器包括: 一解壓縮邏輯電路,其經組態以從該權重記憶體擷取該等經編碼權重,並解碼該等經編碼權重以獲得一或多個經修剪權重字組及一或多個無修剪權重字組的一序列,該等經修剪權重字組包括零值權重字組,該等無修剪權重字組包括非零值權重字組;及 複數個輸入-權重乘法器,其等經組態以接收該等經修剪權重字組及該等無修剪權重字組的該序列。
- 如請求項6之裝置,其中該解壓縮邏輯電路包括: 一權重字組緩衝器,其經組態以暫時儲存該等經編碼權重,該等經編碼權重包括一第一索引權重字組及一第二索引權重字組; 一第一權重解碼器,其經組態以接收來自該權重字組緩衝器的該等經編碼權重,並使用該第一索引權重字組產生經解碼權重字組的一第一群組; 一第二權重解碼器,其經組態以接收來自該第一權重解碼器的該等經編碼權重的一部分,並使用該第二索引權重字組產生經解碼權重字組的一第二群組; 一控制邏輯,其經組態以控制該第一權重解碼器及該第二權重解碼器; 一移位器,其經組態以接收來自該第一權重解碼器之經解碼權重字組的該第一群組及來自該第二權重解碼器之經解碼權重字組的該第二群組;及 複數個權重暫存器,其等耦接至該移位器,該複數個權重暫存器的各權重暫存器經組態以接收來自該移位器的一各別經解碼權重字組。
- 如請求項6之裝置,其中該等經編碼權重包括一索引權重字組及一或多個無修剪權重字組,該解壓縮邏輯電路包括一權重字組解碼器,該權重字組解碼器包括: 複數個移位器; 複數個AND閘,其等耦接至該複數個移位器; 一索引字組解碼器,其耦接至該複數個移位器及該複數個AND閘,該索引字組解碼器經組態以基於該索引權重字組之個別位元的位元值控制該複數個移位器及該複數個AND閘, 其中該複數個移位器之各者經組態以接收該等無修剪權重字組及來自該索引字組解碼器的一第一控制信號,各移位器經組態以根據該第一控制信號在該等無修剪權重字組上執行一移位運算, 其中該等AND閘之各者經組態至一各別移位器的一輸出及來自該索引字組解碼器的一第二控制信號,各AND閘經組態以在一各別移位器的該輸出及該第二控制信號上執行一AND運算。
- 一種解碼一類神經網路之權重的方法,該方法包含: 經由一處理器資料匯流排從一權重記憶體擷取經編碼權重,該等經編碼權重包括一索引權重字組; 使用該索引權重字組解碼該等經編碼權重,以獲得一或多個經修剪權重字組及一或多個無修剪權重字組的一序列,該等經修剪權重字組包括零值權重字組,該等無修剪權重字組包括非零值權重字組;及 提供該等無修剪權重字組及該等經修剪權重字組的該序列至複數個輸入-權重乘法器。
- 如請求項9之方法,其中該索引權重字組包括複數個位元,各位元具有一第一位元值或一第二位元值,該第一位元值指示該序列中的一經修剪權重字組,該第二位元值指示該序列中的一無修剪權重字組,回應於該索引權重字組內的一位元具有該第一位元值而將該經修剪權重字組解碼成零,其中該解碼包括基於該索引權重字組控制複數個移位器及複數個數位邏輯閘。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/816,453 | 2020-03-12 | ||
US16/816,453 US20210287074A1 (en) | 2020-03-12 | 2020-03-12 | Neural network weight encoding |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202139073A true TW202139073A (zh) | 2021-10-16 |
Family
ID=77457433
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110107456A TW202139073A (zh) | 2020-03-12 | 2021-03-03 | 類神經網路權重編碼 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20210287074A1 (zh) |
CN (1) | CN113392962A (zh) |
DE (1) | DE102021001218A1 (zh) |
TW (1) | TW202139073A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI819645B (zh) * | 2022-06-08 | 2023-10-21 | 緯創資通股份有限公司 | 更新神經網路模型的方法和電子裝置 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11599773B2 (en) | 2018-12-27 | 2023-03-07 | Micron Technology, Inc. | Neural networks and systems for decoding encoded data |
US11424764B2 (en) | 2019-11-13 | 2022-08-23 | Micron Technology, Inc. | Recurrent neural networks and systems for decoding encoded data |
US11765376B2 (en) * | 2020-10-08 | 2023-09-19 | Tencent America LLC | Pruning methods and apparatuses for neural network based video coding |
US11563449B2 (en) * | 2021-04-27 | 2023-01-24 | Micron Technology, Inc. | Systems for error reduction of encoded data using neural networks |
US11973513B2 (en) | 2021-04-27 | 2024-04-30 | Micron Technology, Inc. | Decoders and systems for decoding encoded data using neural networks |
US11755408B2 (en) | 2021-10-07 | 2023-09-12 | Micron Technology, Inc. | Systems for estimating bit error rate (BER) of encoded data using neural networks |
CN114926706A (zh) * | 2022-05-23 | 2022-08-19 | 支付宝(杭州)信息技术有限公司 | 数据处理方法、装置及设备 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI684141B (zh) * | 2017-10-12 | 2020-02-01 | 英屬開曼群島商意騰科技股份有限公司 | 人工神經元中以非零封包加速乘法運算的裝置及方法 |
CN107895191B (zh) * | 2017-10-30 | 2022-02-22 | 上海寒武纪信息科技有限公司 | 一种信息处理方法及相关产品 |
US11210586B1 (en) * | 2018-04-20 | 2021-12-28 | Perceive Corporation | Weight value decoder of neural network inference circuit |
US10872295B1 (en) * | 2019-09-19 | 2020-12-22 | Hong Kong Applied Science and Technology Institute Company, Limited | Residual quantization of bit-shift weights in an artificial neural network |
US11816446B2 (en) * | 2019-11-27 | 2023-11-14 | Amazon Technologies, Inc. | Systolic array component combining multiple integer and floating-point data types |
-
2020
- 2020-03-12 US US16/816,453 patent/US20210287074A1/en active Pending
-
2021
- 2021-03-03 TW TW110107456A patent/TW202139073A/zh unknown
- 2021-03-08 DE DE102021001218.6A patent/DE102021001218A1/de active Pending
- 2021-03-10 CN CN202110261314.7A patent/CN113392962A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI819645B (zh) * | 2022-06-08 | 2023-10-21 | 緯創資通股份有限公司 | 更新神經網路模型的方法和電子裝置 |
Also Published As
Publication number | Publication date |
---|---|
DE102021001218A1 (de) | 2021-09-16 |
CN113392962A (zh) | 2021-09-14 |
US20210287074A1 (en) | 2021-09-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW202139073A (zh) | 類神經網路權重編碼 | |
JP7349835B2 (ja) | ニューラルネットワークにおいてパラメータを処理する方法及び装置 | |
TWI814818B (zh) | 用於實施一神經網路之方法 | |
CN109685198B (zh) | 用于量化神经网络的参数的方法和装置 | |
US10032463B1 (en) | Speech processing with learned representation of user interaction history | |
US11961513B2 (en) | Low-power automatic speech recognition device | |
WO2019120114A1 (zh) | 数据定点化处理方法、装置、电子设备及计算机存储介质 | |
US10229356B1 (en) | Error tolerant neural network model compression | |
Chelba et al. | One billion word benchmark for measuring progress in statistical language modeling | |
CN107340993B (zh) | 运算装置和方法 | |
JP2020517014A (ja) | メモリ帯域幅利用を低減するために活性化データの圧縮及び復元を使用するニューラルネットワークプロセッサ | |
JP7372347B2 (ja) | データ圧縮方法およびコンピューティングデバイス | |
TW202004658A (zh) | 深度神經網絡自我調整增量模型壓縮的方法 | |
CN110265002B (zh) | 语音识别方法、装置、计算机设备及计算机可读存储介质 | |
CN110287303B (zh) | 人机对话处理方法、装置、电子设备及存储介质 | |
US20220245928A1 (en) | Systems and methods for progressive learning for machine-learned models to optimize training speed | |
WO2023173890A1 (zh) | 实时语音识别方法、模型训练方法、装置、设备及存储介质 | |
WO2022021868A1 (zh) | 一种数据处理的方法、系统、设备及可读存储介质 | |
CN106228976B (zh) | 语音识别方法和装置 | |
CN112687266A (zh) | 语音识别方法、装置、计算机设备和存储介质 | |
Xiyuan et al. | A Review of FPGA‐Based Custom Computing Architecture for Convolutional Neural Network Inference | |
Struharik et al. | Conna–compressed cnn hardware accelerator | |
Dai et al. | The state of the art in implementing machine learning for mobile apps: A survey | |
Jiang et al. | A low-latency LSTM accelerator using balanced sparsity based on FPGA | |
JP2022042467A (ja) | 人工ニューラルネットワークモデル学習方法およびシステム |