TW202411857A - 用於高效率逐元素聚合、縮放及位移之特殊用途數位運算硬體 - Google Patents
用於高效率逐元素聚合、縮放及位移之特殊用途數位運算硬體 Download PDFInfo
- Publication number
- TW202411857A TW202411857A TW112118017A TW112118017A TW202411857A TW 202411857 A TW202411857 A TW 202411857A TW 112118017 A TW112118017 A TW 112118017A TW 112118017 A TW112118017 A TW 112118017A TW 202411857 A TW202411857 A TW 202411857A
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- data words
- dedicated
- digital data
- aggregate
- Prior art date
Links
- 230000002776 aggregation Effects 0.000 title claims abstract description 34
- 238000004220 aggregation Methods 0.000 title claims abstract description 34
- 230000015654 memory Effects 0.000 claims abstract description 98
- 238000000034 method Methods 0.000 claims abstract description 63
- 238000012545 processing Methods 0.000 claims description 28
- 238000007667 floating Methods 0.000 claims description 14
- 238000003860 storage Methods 0.000 claims description 13
- 238000006073 displacement reaction Methods 0.000 claims description 11
- 238000012937 correction Methods 0.000 claims description 9
- 230000009471 action Effects 0.000 description 20
- 239000011449 brick Substances 0.000 description 13
- 238000010586 diagram Methods 0.000 description 12
- 230000008901 benefit Effects 0.000 description 11
- 230000006870 function Effects 0.000 description 9
- 230000008569 process Effects 0.000 description 9
- 239000013598 vector Substances 0.000 description 8
- 239000000872 buffer Substances 0.000 description 6
- 230000009977 dual effect Effects 0.000 description 6
- 238000013528 artificial neural network Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000004931 aggregating effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000005284 excitation Effects 0.000 description 1
- 238000010304 firing Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Abstract
本發明提供一種數位縮放、位移及聚合操作之高效率管線化實施,其支援逐元素可程式化縮放及位移因數。該方法包括對複數個數位資料字之時間多工平行管線化,該複數個數位資料字中之各者經由一資料路徑編碼來自複數個接收暫存器中之一者的一N位元帶正負號整數,該資料路徑可(1)將該複數個數位資料字直接儲存於一專用第一記憶體中,(2)將該複數個數位資料字直接儲存於一專用第二記憶體中,或(3)將該複數個數位資料字導引至一組平行的融合乘加單元中。該方法進一步包括將各數位資料字乘以自該專用第一記憶體擷取之一對應資料字以形成乘積資料字,及將該等乘積資料字與自該專用第二記憶體擷取之一對應資料字相加以形成一輸出和及乘積資料字。
Description
本揭示大體上係關於數位運算硬體,且更特定言之,係關於數位縮放、位移及聚合操作之高效率管線化實施,其支援逐元素可程式化縮放及位移因數。
AI硬體加速器的快速改良已經成為深度神經網路(DNN)發展之一個難以發現但關鍵的驅動因素。較佳硬體能夠訓練具有巨大資料集的極大網路,以及對所得大型且因此功能強大之DNN模型進行快速推斷。當前DNN硬體介於自具有經特別設計用於DNN訓練及推斷之眾多特徵的現代圖形處理單元(GPU)至併有降低之精確性、稀疏性、資料流架構、硬體-軟體最佳化及極大面積加速器晶片的專業數位CMOS加速器。一般而言,此類加速器必須小心地協調晶片上或晶片外揮發性記憶體(SRAM及DRAM)與高度專業的單指令多資料(SIMD)單元之間的大量資料流。此等單元執行乘法累加指令,該等指令主導大部分DNN運算工作負荷。此資料流不僅涵蓋由各DNN層產生之許多神經元激發,而且亦涵蓋DNN模型權重及部分和。
最近,可改善能效(例如,藉由晶片上記憶體中執行具有時間複雜度之乘法累加操作)的記憶體內運算(CIM)之設計會藉由減少DNN模型權重及部分和之運動而如此改善能效。藉由在短時間間隔內利用諸如SRAM或DRAM之揮發性記憶體或在較長時間間隔內利用諸如快閃記憶體、電阻性RAM (RRAM)、磁性隨機存取記憶體(MRAM)或相變記憶體(PCM)的慢速且耐久有限的非揮發性記憶體(NVM)來採用此類權重穩態性,CIM方法可提供高速及高能效。此等益處可存在於所有DNN工作負荷中,但對於展現具有低權重再使用之大的全連接層的工作負荷尤其明顯。然而,由於大部分此等記憶體僅提供二進位或極少位元的儲存,因此必須調用跨多個字線或位元線之空間多工以實施當前最新技術DNN效能所需的多位元權重。此會權衡區域及能量以達成必要的乘法累加精確性,通常與字線或位元線上之時間多工配對以支援多位元激發。
一些新興的非揮發性記憶體(諸如,PCM及RRAM)展現廣泛且連續之類比傳導狀態範圍,從而提供朝向高密度權重儲存之路徑。此類裝置亦引入額外考慮因素,諸如權重程式化誤差、讀出雜訊及傳導漂移。對類比非揮發性記憶體之面積高效型交叉陣列記憶磚(crossbar-array tile)執行高能效乘法累加(MAC)操作之此類比AI典範(Analog-AI paradigm)代表用於DNN工作負荷的硬體加速之特別有吸引力的記憶體內運算形式。然而,即使對類比AI記憶磚執行絕大部分運算操作,仍存在需要在資料向量可經導引至後續類比AI記憶磚以供更多MAC操作之前對自給定類比AI影像塊出現的各資料向量執行的小但重要之一組複雜操作。此等複雜操作最佳地在數位域中執行,且因此大量平行資料向量之高效率且緊密處置為成功類比AI系統之關鍵組分。
數位化類比AI交叉陣列記憶磚之邊緣處的各單整合乘法累加操作所產生之輸出資料向量的優勢中之一者為有機會簡化可涉及的數位縮放及聚合操作。
舉例而言,可能最佳的係能夠在逐行基礎上任意地按比例縮小或按比例放大聚合資料以獲得以下益處:(1)以便在各MAC操作之後將神經網路權重最佳地編碼成裝置傳導率;(2)以便調整藉由類比數位轉換(ADC)效能之逐行變化引入的增益及/或位移誤差;或(3)以在激勵向量上實施向量化神經網路縮放操作,諸如批量範數(Batch-Norm)。鑒於此等縮放操作之線性,所有突出縮放操作可分解成單一斜率及位移值。
另外,若神經網路層之高度超過各類比AI交叉陣列記憶磚中可用的列之數目,則聚合跨多個不同記憶磚之貢獻可為重要的。在ADC縮放係數的情況下,各記憶磚通常需要其自有縮放因數,但僅存在對每聚合一個位移因素的需要。
當前,不存在數位縮放、位移及聚合操作之高效率管線化實施,其支援逐元素可程式化縮放及位移因數。
根據各種實施例,提供一種運算裝置、一種非暫時性電腦可讀儲存媒體及一種用於高效率向量化縮放、聚合及校正線性操作之方法。在一個態樣中,本揭示提供一種數位縮放、位移及聚合操作之高效率管線化實施,其支援逐元素可程式化縮放及位移因數。已知替代解決方案涉及利用習知記憶體空間及指令集架構之習知微處理器或多處理器解決方案。然而,此類通用解決方案相比於根據本揭示之專用數位運算硬體將顯著地不太高能效。
在一個實施例中,一種用於高效率向量化縮放、聚合及校正線性操作之方法包括對複數個數位資料字之時間多工平行管線化,該複數個數位資料字中之各者經由一資料路徑編碼來自複數個接收暫存器中之一者的一N位元帶正負號整數,該資料路徑可(1)將該複數個數位資料字直接儲存於一專用第一記憶體中,(2)將該複數個數位資料字直接儲存於一專用第二記憶體中,或(3)將該複數個數位資料字導引至一組平行的融合乘加單元中。該方法進一步包括將各數位資料字乘以自該專用第一記憶體擷取之一對應資料字以形成乘積資料字,及將該等乘積資料字與自該專用第二記憶體擷取之一對應資料字相加以形成一輸出和及乘積資料字。
在一個實施例中,該專用第一記憶體為直接緊鄰處理單元而定位以用於高能效存取之一斜率記憶體。
在一個實施例中,該專用第二記憶體為直接緊鄰處理單元而定位以用於高能效存取的一位移/聚合/殘餘記憶體,其中該位移/聚合/殘餘記憶體為能夠在同一執行週期期間讀取及寫入資料字的一雙埠記憶體。此允許該處理單元重疊兩個活動:(1)擷取稍後定位於資料之一時間多工序列內且恰好將進入縮放運算管線的位移值或先前聚合之資料值;且(2)同時儲存對應於沿著同一時間多工序列之一較早時刻的剛剛更新資料值,此係因為該等剛剛更新資料值自該縮放運算管線之出口顯現。
在一個實施例中,該方法進一步包括藉由該等融合乘加單元中之各者執行一校正線性操作,其中具有一負值之該複數個資料字中之各者由零替換。
在一個實施例中,該方法進一步包括將該等輸出和及乘積資料字作為一聚合結果儲存回至該專用第二記憶體中。在一些實施例中,該方法進一步包括以程式化方式控制該等輸出和及乘積資料字以按一預定次序將該聚合結果提供至該專用第二記憶體。
在一個實施例中,該方法進一步包括將該等輸出和及乘積資料字導引至能夠處理和及乘積資料字之其他時間多工及管線化資料處理級。
在一個實施例中,該方法進一步包括在儲存至該專用第一記憶體或該專用第二記憶體中之前,藉由跨該複數個資料字串接資料字或藉由跨複數個時間多工步驟串接,將該複數個資料字中之各者自N位元帶正負號整數表示重新解釋為一可能多於N位元浮動位元表示。該方法進一步包括在將該複數個數位資料字導引至該等融合乘加單元之前,將各資料字自N位元帶正負號整數表示直接轉換成該可能多於N位元浮點表示。根據各種實施例,所有運算及資料字儲存係以該可能多於N位元浮點表示執行。
在一個實施例中,該方法進一步包括以程式化方式控制該專用第一記憶體及該專用第二記憶體以按一預定次序提供資料字。
藉助於本文中所論述之概念,提供一種在當前用於數位縮放、位移及聚合操作中之方法後改良的系統及方法。本文中所論述之系統及方法具有改良數位縮放、位移及聚合操作中之能效同時支援逐元素可程式化縮放及位移因數的技術效應。
此等及其他特徵將自其說明性實施例之以下詳細描述變得顯而易見,該詳細描述將結合隨附圖式來閱讀。
概述
在以下詳細描述中,藉助於實例闡述大量特定細節以提供對相關教示之透徹理解。然而,應顯而易見,可在不具有此類細節之情況下實踐本發明教示。在其他情況下,已在相對較高層次上描述熟知方法、程序、組件及/或電路系統而無細節,以免不必要地混淆本發明教示之態樣。
除非另外具體陳述,否則如自以下描述及申請專利範圍可顯而易見,應瞭解,貫穿本說明書,利用諸如「處理」、「運算」、「計算」、「判定」或類似者之術語的描述係指電腦或操作系統或類似電子操作裝置之動作及/或程序,該電腦或運算系統或類似電子運算裝置操控表示為運算系統之暫存器及/或記憶體內之諸如電子量之實體的資料及/或將該資料轉換為類似地表示為運算系統之記憶體、暫存器或其他此類資訊儲存、傳輸或顯示裝置內之實體量的其他資料。
參考圖1,在說明性實施例中,二進位資料到達,在雙緩衝器RCV-暫存器100 (「接收」暫存器)中以整數-10 (INT10)格式平行縮放,且經由16個連續時間步驟用多工器102多工出。舉例而言,若RCV-暫存器100之每一半含有64個INT10資料元素,則此資料在各週期中多工出四個INT10值。
在一個實施例中,四個INT10資料元素在轉換器區塊104中轉換為浮點-16 (FP16)格式,從而產生四個FP16資料元素,該等資料元素行進通過如下文所描述之仿射縮放運算硬體的其餘部分。在替代性實施中,資料貫穿仿射縮放硬體保持INT10格式,其中以INT10執行所有乘加操作,其中在乘法之後選擇右移以將輸出資料保持在INT10範圍內。在此實施中,兩個斜率、位移及聚合資料以INT10或正負號值-10 (SM10)格式儲存。
資料可以三種可能方式儲存至斜率SRAM 106及位移SRAM 110中而不穿過任何融合乘加(FMA)模組。首先,FP16資料可自RCV-暫存器100直接儲存至斜率SRAM 106中,如由點線108所展示。在此情境下,兩個雙緩衝器RCV暫存器中之一者(例如,「緩衝器0」)視為保持FP16資料元素之上部8位元,而另一雙緩衝器(「緩衝器1」)編碼下部8位元。
類似地,FP16資料可直接傳送至位移SRAM 110中,如由短虛線112所展示。替代地,自傳入之INT10資料產生的FP16資料可直接儲存至位移SRAM中,如點劃虛線114所展示。
類似地,四個FP16資料元素可藉由直接轉換來自RCV雙緩衝器100中之一者的四個INT10資料元素或藉由經由虛線118自其他附近運算電路系統傳送已在FP16格式中之四個中間資料元素而到達A暫存器116。
當四個資料元素到達A暫存器116時,B暫存器120及C暫存器122藉由將斜率及位移SRAM 106之一列讀取至此等暫存器中而同時加載有四個斜率及四個位移。替代地,B暫存器120及/或C暫存器122可由其預設值(「1.0」之斜率,「0.0」之位移)替換。
A暫存器116、B暫存器120及C暫存器122中之各者中的四個資料元素輸入至4向融合乘加(FMA)單元124中,從而允許藉由OUT = A*B + C獨立地計算四個輸出資料元素。簡單切換可用於在必要時執行ReLU操作126 (在跨向量自多個記憶磚獲得之聚合的情況下,此應僅在處理總和中之最後一個記憶磚之向量時啟用)。
對於多記憶磚聚合中之最後一個記憶磚,由FMA單元124產生之四個資料元素可經由出暫存器128發送至後續處理上,從而提供縮放及聚合輸出之管線化串流,使得可在不延遲的情況下起始任何下一個處理級。
對於除最後一個記憶磚外之任何記憶磚,此等四個資料元素可使用專用於聚合資料之寫入位址值寫回至雙埠位移SRAM 110中,如由長虛線130所展示。貫穿多個記憶磚之處理,C暫存器122自此等聚合列擷取,除了使用適當位移縮放因數時的第1記憶磚。替代地,來自較早神經網路步驟之所儲存殘餘資料可用於代替位移資料。
在例示性實施例中,N=12之使用支援跨至多12個不同記憶磚縮放,而M=4支援兩組位移,一組殘餘資料,同時支援用於在多記憶磚聚合期間頻繁更新的隔離的一組列。
歸功於緊密管線化運算,與包括用於儲存資料之多個路徑的專用斜率SRAM 106及位移SRAM 110緊密協調,本揭示提供專用運算硬體,其可在FP16處或以減小之精確性(諸如,INT10)跨大量傳入資料向量有效地執行縮放、位移、聚合及ReLU操作。
在一些實施例中,多工器102將64個INT10資料提供至自零至15排序的16組四個中,應理解,系統不需要以任何特定次序擷取資料。舉例而言,斜率SRAM 106及/或位移SRAM 110可以程式化方式控制以按任何特定次序提供資料。類似地,多工器102亦可以程式化方式控制以按預定次序將資料排序至SRAM 106及/或位移SRAM 110中。類似地,經由長虛線130返回至位移SRAM 110之位移值可以程式化方式控制,使得次序如特定應用可能需要而預定。
實例程序
現考慮實例程序之高層級論述可為有用的。為此,圖2呈現與用於高效率向量化縮放、聚合及校正線性操作之方法相關的說明性程序200。程序200在邏輯流程圖中說明為區塊之集合,其表示可在硬體、軟體或其組合中實施的操作之序列。在軟體之上下文中,區塊表示電腦可執行指令,其在由一或多個處理器執行時執行所敍述之操作。通常,電腦可執行指令可包括執行功能或實施抽象資料類型之常式、程式、目標、組件、資料結構及類似者。在各程序中,描述操作之次序並不意欲理解為限制,且任何數目個所描述區塊可按任何次序組合及/或與實施程序平行地執行。
參考圖2,程序200可包括對複數個數位資料字之時間多工平行管線化的動作202。根據例示性實施例,複數個數位資料字中之各者經由資料路徑編碼來自複數個接收暫存器中之一者的N位元帶正負號整數,該資料路徑可在動作204中將複數個數位資料字直接儲存於專用第一記憶體中,或在動作206中將複數個數位資料字直接儲存於專用第二記憶體中,或在動作208中將複數個數位資料字導引至一組平行的融合乘加單元中。專用第一記憶體可為直接緊鄰處理單元而定位以用於高能效存取之斜率記憶體。專用第二記憶體可為直接緊鄰處理單元而定位以用於高能效存取之位移/聚合/殘餘記憶體。位移/聚合/殘餘記憶體可為雙埠記憶體。
程序200可包括將各數位資料字乘以自專用第一記憶體擷取之對應資料字以形成乘積資料字的動作210。程序200可進一步包括將乘積資料字與自專用第二記憶體擷取之對應資料字相加以形成輸出和及乘積資料字的動作212。程序200可包括如上文所描述之其他步驟,包括執行ReLU操作、將聚合結果儲存於位移/聚合/殘餘SRAM中及以程式化方式控制多工器、斜率SRAM及位移SRAM以按需要特定排序資料的視情況選用之動作。
實例運算平台
圖3提供可用於實施特定經組態運算裝置之電腦硬體平台300的功能方塊圖說明,該運算裝置可代管運算硬體350以用於高效率向量化縮放、聚合及校正線性操作。運算硬體350可包括縮放SRMA 352 (諸如,上文所論述之縮放SRAM 106)、位移SRAM 354 (諸如,上文所論述之位移SRAM 110)、多工器356 (諸如,上文所論述之多工器102)、FMA單元358 (諸如,上文所論述之FMA單元124)及暫存器359 (諸如,上文所論述之暫存器116、120、122)。
電腦平台300可包括連接至系統匯流排302之中央處理單元(CPU) 304、硬碟機(HDD) 306、隨機存取記憶體(RAM)及/或唯讀記憶體(ROM) 308、鍵盤310、滑鼠312、顯示器314及通訊介面316。在一個實施例中,運算硬體350具有包括執行高效率向量化縮放、聚合及校正線性操作之能力,如上文所論述。
結論
已出於說明之目的呈現本發明教示之各種實施例的描述,但該等描述並不意欲為詳盡的或限於所揭示之實施例。在不脫離所描述實施例之範疇及精神之情況下,許多修改及變化對一般熟習此項技術者而言將顯而易見。本文中所使用的術語經選擇以最佳解釋實施例之原理、實際應用或對市場中發現之技術的技術改良,或使得其他一般熟習此項技術者能夠理解本文中所揭示之實施例。
儘管前文已描述所認為之最佳狀態及/或其他實例,但應理解,可在其中進行各種修改,且本文所揭示之主題可以各種形式及實例實施,且教示可應用於諸多應用,本文僅描述其中一些。以下申請專利範圍意欲主張屬於本發明教示之真實範疇的任何及所有應用、修改及變化。
已在本文中所論述之組件、步驟、特徵、目標、益處及優勢僅為說明性的。其中無一者及與其有關之論述均不意欲限制保護範疇。雖然本文中已論述各種優勢,但應理解,並非所有實施例必須包括所有優勢。除非另外陳述,否則本說明書中(包括隨後之申請專利範圍中)所闡述之所有量測結果、值、額定值、位置、量值、大小及其他規格為近似的而非精確的。其意欲具有合理的範圍,該範圍與其相關之功能以及其所屬之技術領域中的慣例一致。
亦涵蓋眾多其他實施例。此等包括具有較少、額外及/或不同組件、步驟、特徵、目標、益處及優勢的實施例。此等實施例亦包括組件及/或步驟不同地配置及/或排序之實施例。
本發明之態樣在本文中參考根據本揭示之實施例的方法、設備(系統)及電腦程式產品之流程圖說明及/或方塊圖進行描述。應理解,可藉由電腦可讀程式指令實施流程圖說明及/或方塊圖中之各區塊以及流程圖說明及/或方塊圖中之區塊的組合。
可將此等電腦可讀程式指令提供至適當地組態的電腦、專用電腦或其他可程式資料處理設備之處理器以產生一機器,以使得經由電腦或其他可程式化資料處理設備之處理器執行之指令建立用於實施一或多個流程圖及/或方塊圖區塊中所指定之功能/動作之構件。亦可將此等電腦可讀程式指令儲存於電腦可讀儲存媒體中,該等電腦可讀程式指令可引導電腦、可程式化資料處理設備及/或其他裝置以一方式起作用,使得其中儲存有指令之電腦可讀儲存媒體包含製品,該製品包括實施一或多個流程圖及/或方塊圖區塊中所指定之功能/動作之態樣的指令。
電腦可讀程式指令亦可載入至電腦、其他可程式資料處理設備或其他裝置上,以使一系列操作步驟在電腦、其他可程式化設備或其他裝置上執行以產生電腦實施的程序,使得在電腦、其他可程式化設備或其他裝置上執行的指令實施一或多個流程圖區塊及/或方塊圖區塊中所指定的功能/動作。
圖式中的調用流程流程圖及方塊圖在本文中說明根據本揭示之各種實施例的系統、方法及電腦程式產品之可能實施的架構、功能性及操作。就此而言,流程圖或方塊圖中之各區塊可表示指令之模組、區段或部分,其包含用於實施指定邏輯功能之一或多個可執行指令。在一些替代性實施中,區塊中提及之功能可能不以圖式中所提及之次序發生。舉例而言,視所涉及之功能性而定,依次展示之兩個區塊實際上可實質上同時執行,或該等區塊有時可以逆向次序執行。亦將注意,可藉由執行指定功能或動作或進行專用硬體及電腦指令之組合的基於專用硬體之系統實施方塊圖及/或流程圖說明的各區塊,及方塊圖及/或流程圖說明中之區塊之組合。
雖然前文已結合例示性實施例進行描述,但應理解,術語「例示性」僅意謂作為實例,而非最好或最佳。除上文剛剛陳述之內容外,任何已陳述或說明之內容均不意欲或不應解釋為使任何組件、步驟、特徵、目標、益處、優勢之專用或等效於公用,無論其是否在申請專利範圍中陳述。
應理解,除非本文中已另外闡述特定含義,否則本文中所使用之術語及表述具有如關於其對應各別查詢及研究領域給予此類術語及表述的一般含義。諸如第一及第二及其類者之關係術語僅可用於區分一個實體或動作與另一實體或動作,而未必需要或意指此類實體或動作之間的任何實際此類關係或次序。術語「包含(comprises/comprising)」或其任何變化形式意欲涵蓋非排他性包括,使得包含一系列元素之程序、方法、物品或設備不僅包括彼等元素,而且亦可包括未明確列出或為此類程序、方法、物品或設備所固有之其他元素。在無進一步約束之情況下,前面帶有「一(a)」或「一(an)」之元素不排除包含該元素之程序、方法、物品或設備中存在額外相同元素。
提供本揭示之摘要以允許讀者快速地確定技術揭示內容之性質。應遵守以下理解:其將不用於解釋或限制申請專利範圍之範疇或意義。此外,在前述實施方式中,可見出於精簡本揭示之目的在各種實施例中將各種特徵分組在一起。不應將此揭示之方法解釋為反映以下意圖:所主張之實施例具有比各技術方案中明確敍述更多的特徵。實情為,如以下申請專利範圍所反映,本發明主題在於單個所揭示實施例之少於全部的特徵。因此,以下申請專利範圍特此併入實施方式中,其中各技術方案就其自身而言作為單獨主張之主題。
100:RCV-暫存器
102:多工器
104:轉換器區塊
106:斜率SRAM
108:點線
110:位移SRAM
112:短虛線
114:點劃虛線
116:A暫存器
118:虛線
120:B暫存器
122:C暫存器
124:4向融合乘加單元
126:ReLU操作
128:出暫存器
130:長虛線
200:程序
202:動作
204:動作
206:動作
208:動作
210:動作
212:動作
300:電腦硬體平台
310:中央處理單元
320:硬碟機
330:隨機存取記憶體及/或唯讀記憶體
340:系統匯流排
350:鍵盤
350:運算硬體
352:縮放SRMA
354:位移SRAM
356:多工器
358:FMA單元
359:暫存器
360:滑鼠
370:顯示器
380:通訊介面
圖式屬於說明性實施例。其並未說明所有實施例。可另外或替代地使用其他實施例。可省略可為顯而易見或不必要的細節以節省空間或用於更有效說明。一些實施例可在有額外組件或步驟之情況下及/或在不具有所說明之所有組件或步驟之情況下實踐。當相同數字出現在不同圖式中時,其係指相同或類似組件或步驟。
圖1為根據說明性實施例之用於高效率向量化縮放、聚合及校正線性操作之方法的表示。
圖2為例示根據說明性實施例之用於高效率向量化縮放、聚合及校正線性操作之方法的流程圖。
圖3為可用以實施根據圖1之用於高效率向量化縮放、聚合及校正線性操作之方法的電腦硬體平台之功能方塊圖說明。
200:程序
202:動作
204:動作
206:動作
208:動作
210:動作
212:動作
Claims (20)
- 一種用於高效率向量化縮放、聚合及校正線性操作之方法,其包含: 對複數個數位資料字之時間多工平行管線化,該複數個數位資料字中之各者經由一資料路徑編碼來自複數個接收暫存器中之一者的一N位元帶正負號整數,該資料路徑可: 將該複數個數位資料字直接儲存於一專用第一記憶體中; 將該複數個數位資料字直接儲存於一專用第二記憶體中;或 將該複數個數位資料字導引至一組平行的融合乘加單元中;及 將各數位資料字乘以自該專用第一記憶體擷取之一對應資料字以形成乘積資料字;及 將該等乘積資料字與自該專用第二記憶體擷取之一對應資料字相加以形成輸出和及乘積資料字。
- 如請求項1之方法,其中該專用第一記憶體為直接緊鄰處理單元而定位以用於高能效存取之一斜率記憶體。
- 如請求項1之方法,其中該專用第二記憶體為直接緊鄰處理單元而定位以用於高能效存取之一位移/聚合/殘餘記憶體。
- 如請求項3之方法,其中該位移/聚合/殘餘記憶體為一雙埠記憶體。
- 如請求項1之方法,其進一步包含藉由該等融合乘加單元中之各者執行一校正線性操作。
- 如請求項5之方法,其進一步包含將具有一負值之該複數個資料字中之各者替換為零。
- 如請求項1之方法,其進一步包含將該等輸出和及乘積資料字作為一聚合結果儲存回至該專用第二記憶體中。
- 如請求項7之方法,其進一步包含以程式化方式控制該等輸出和及乘積資料字以按一預定次序將該聚合結果提供至該專用第二記憶體。
- 如請求項1之方法,其進一步包含將該等輸出和及乘積資料字導引至能夠處理和及乘積資料字之其他時間多工及管線化資料處理級。
- 如請求項1之方法,其進一步包含: 在儲存至該專用第一記憶體或該專用第二記憶體中之前,藉由跨該複數個資料字串接資料字或藉由跨複數個時間多工步驟串接,將該複數個資料字中之各者自N位元帶正負號整數表示重新解釋為一多於N位元浮動位元表示;及 在將該複數個數位資料字導引至該等融合乘加單元之前,將來自N位元帶正負號整數表示之各資料字直接轉換成該多於N位元浮點表示。
- 如請求項10之方法,其中所有運算及資料字儲存係以該多於N位元浮點表示執行。
- 如請求項11之方法,其中該多於N位元浮點表示為一浮點-16表示。
- 如請求項1之方法,其進一步包含以程式化方式控制該專用第一記憶體及該專用第二記憶體以按一預定次序提供資料字。
- 一種用於高效率向量化縮放、聚合及校正線性操作之電腦實施方法,其包含: 對複數個數位資料字之時間多工平行管線化,該複數個數位資料字中之各者經由一資料路徑編碼來自複數個接收暫存器中之一者的一N位元帶正負號整數,該資料路徑可: 將該複數個數位資料字直接儲存於一斜率記憶體中,該斜率記憶體直接緊鄰處理單元而定位以用於高能效存取; 將該複數個數位資料字直接儲存於組態為一雙埠記憶體之一位移/聚合/殘餘記憶體中,該位移/聚合/殘餘記憶體直接緊鄰處理單元而定位以用於高能效存取;或 將該複數個數位資料字導引至一組平行的融合乘加單元中;及 將各數位資料字乘以自該斜率記憶體擷取之一對應資料字以形成乘積資料字;及 將該等乘積資料字與自該位移/聚合/殘餘記憶體擷取之一對應資料字相加以形成一輸出和及乘積資料字。
- 如請求項14之電腦實施方法,其進一步包含將該等輸出和及乘積資料字作為一聚合結果儲存回至該位移/聚合/殘餘記憶體中。
- 如請求項15之電腦實施方法,其進一步包含: 以程式化方式控制該等輸出和及乘積資料字以按一預定次序將該聚合結果提供至該位移/聚合/殘餘記憶體;及 以程式化方式控制該專用第一記憶體及該專用第二記憶體以按一預定次序提供資料字。
- 如請求項14之電腦實施方法,其進一步包含: 在儲存至該斜率記憶體或該位移/聚合/殘餘記憶體中之前,藉由跨該複數個資料字串接資料字或藉由跨複數個時間多工步驟串接,將該複數個資料字中之各者自N位元帶正負號整數表示重新解釋為一多於N位元浮動位元表示;及 在將該複數個數位資料字導引至該等融合乘加單元之前,將來自N位元帶正負號整數表示之各資料字直接轉換成該多於N位元浮點表示, 其中所有運算及資料字儲存係以該多於N位元浮點表示執行。
- 一種非暫時性電腦可讀儲存媒體,其有形地體現具有電腦可讀指令之一電腦可讀程式碼,該等電腦可讀指令在執行時使得一電腦裝置進行用於高效率向量化縮放、聚合及校正線性操作之一方法,該方法包含: 對複數個數位資料字之時間多工平行管線化,該複數個數位資料字中之各者經由一資料路徑編碼來自複數個接收暫存器中之一者的一N位元帶正負號整數,該資料路徑可: 將該複數個數位資料字直接儲存於一斜率記憶體中,該斜率記憶體直接緊鄰處理單元而定位以用於高能效存取; 將該複數個數位資料字直接儲存於組態為一雙埠記憶體之一位移/聚合/殘餘記憶體中,該位移/聚合/殘餘記憶體直接緊鄰處理單元而定位以用於高能效存取;或 將該複數個數位資料字導引至一組平行的融合乘加單元中;及 將各數位資料字乘以自該斜率記憶體擷取之一對應資料字以形成乘積資料字;及 將該等乘積資料字與自該位移/聚合/殘餘記憶體擷取之一對應資料字相加以形成一輸出和及乘積資料字。
- 如請求項18之非暫時性電腦可讀儲存媒體,該方法進一步包含: 將該等輸出和及乘積資料字作為一聚合結果儲存回至該位移/聚合/殘餘記憶體中; 以程式化方式控制該等輸出和及乘積資料字以按一預定次序將該聚合結果提供至該位移/聚合/殘餘記憶體;及 以程式化方式控制該專用第一記憶體及該專用第二記憶體以按一預定次序提供資料字。
- 如請求項18之非暫時性電腦可讀儲存媒體,該方法進一步包含: 在儲存至該斜率記憶體或該位移/聚合/殘餘記憶體中之前,藉由跨該複數個資料字串接資料字或藉由跨複數個時間多工步驟串接,將該複數個資料字中之各者自N位元帶正負號整數表示重新解釋為一多於N位元浮動位元表示;及 在將該複數個數位資料字導引至該等融合乘加單元之前,將來自N位元帶正負號整數表示之各資料字直接轉換成該多於N位元浮點表示, 其中所有運算及資料字儲存係以該多於N位元浮點表示執行。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/931,537 | 2022-09-12 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202411857A true TW202411857A (zh) | 2024-03-16 |
Family
ID=
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107341547B (zh) | 一种用于执行卷积神经网络训练的装置和方法 | |
US10671349B2 (en) | Accelerated mathematical engine | |
CN111213125B (zh) | 使用simd指令进行高效的直接卷积 | |
CN107533459B (zh) | 使用电阻存储器阵列的数据处理方法和单元 | |
Meher | Hardware-efficient systolization of DA-based calculation of finite digital convolution | |
Farrukh et al. | Power efficient tiny yolo cnn using reduced hardware resources based on booth multiplier and wallace tree adders | |
WO2005109221A2 (en) | A bit serial processing element for a simd array processor | |
US20200110604A1 (en) | Energy-efficient memory systems and methods | |
US20220206796A1 (en) | Multi-functional execution lane for image processor | |
KR20220051006A (ko) | Pim(processing-in-memory) 연산 수행 방법, 및 관련 메모리 디바이스 및 시스템 | |
Roohi et al. | Rnsim: Efficient deep neural network accelerator using residue number systems | |
WO2024012180A1 (zh) | 一种矩阵计算方法及装置 | |
CN111158757B (zh) | 并行存取装置和方法以及芯片 | |
TW202411857A (zh) | 用於高效率逐元素聚合、縮放及位移之特殊用途數位運算硬體 | |
US11823771B2 (en) | Streaming access memory device, system and method | |
JP7387017B2 (ja) | アドレス生成方法及びユニット、深層学習処理器、チップ、電子機器並びにコンピュータプログラム | |
US20240086192A1 (en) | Special-purpose digital-compute hardware for efficient element-wise aggregation, scaling and offset | |
Chen et al. | BRAMAC: Compute-in-BRAM Architectures for Multiply-Accumulate on FPGAs | |
WO2020059156A1 (en) | Data processing system, method, and program | |
US20210255832A1 (en) | Bit string accumulation | |
Zhang et al. | A cache structure and corresponding data access method for Winograd algorithm | |
TW202414279A (zh) | 用於整個激發向量之性質之快速估計之學習行權重 | |
US20200076660A1 (en) | Vectorized peak detection for signal processing | |
Tasnim et al. | MAGIC-DHT: Fast in-memory computing for Discrete Hadamard Transform | |
CN117742786A (zh) | 通过存储器处理器执行的计算方法和存储器装置 |