TWI829208B - 用於判定用於處理串流輸入資料之硬體架構之設計參數值之方法及系統及電腦可讀儲存媒體 - Google Patents
用於判定用於處理串流輸入資料之硬體架構之設計參數值之方法及系統及電腦可讀儲存媒體 Download PDFInfo
- Publication number
- TWI829208B TWI829208B TW111123650A TW111123650A TWI829208B TW I829208 B TWI829208 B TW I829208B TW 111123650 A TW111123650 A TW 111123650A TW 111123650 A TW111123650 A TW 111123650A TW I829208 B TWI829208 B TW I829208B
- Authority
- TW
- Taiwan
- Prior art keywords
- hardware
- input data
- hardware architecture
- values
- architecture
- Prior art date
Links
- 238000013461 design Methods 0.000 title claims abstract description 131
- 238000000034 method Methods 0.000 title claims abstract description 127
- 238000003860 storage Methods 0.000 title claims abstract description 19
- 238000012545 processing Methods 0.000 title claims description 147
- 230000008569 process Effects 0.000 claims abstract description 49
- 239000011159 matrix material Substances 0.000 claims description 104
- 239000013598 vector Substances 0.000 claims description 95
- 238000010801 machine learning Methods 0.000 claims description 20
- 238000004519 manufacturing process Methods 0.000 claims description 18
- 238000005070 sampling Methods 0.000 claims description 10
- 238000004088 simulation Methods 0.000 claims description 8
- 238000010845 search algorithm Methods 0.000 claims description 7
- 230000004044 response Effects 0.000 claims description 5
- 238000004422 calculation algorithm Methods 0.000 claims description 4
- 230000006835 compression Effects 0.000 claims description 3
- 238000007906 compression Methods 0.000 claims description 3
- 238000004590 computer program Methods 0.000 abstract description 14
- 239000012634 fragment Substances 0.000 description 31
- 238000003491 array Methods 0.000 description 12
- 230000009471 action Effects 0.000 description 5
- 238000013528 artificial neural network Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 239000000872 buffer Substances 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000013473 artificial intelligence Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000002411 adverse Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000002068 genetic effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000005498 polishing Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/398—Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/28—Indexing scheme for image data processing or generation, in general involving image processing hardware
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- Image Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
描述包含在電腦儲存媒體上編碼用於產生一增強硬體架構以處理串流輸入資料之電腦程式之方法、系統及設備。在一個態樣中,一種方法包含接收表示一硬體架構模板之資料。該硬體架構模板包含一可組態設計參數集。基於該串流輸入資料之特性來判定該設計參數集之值。該判定程序包含:基於該可組態設計參數集之一搜尋空間來產生多個候選硬體架構,各候選硬體架構包含各自設計參數值;判定與各候選硬體架構相關聯之各自效能值;基於該等各自效能值來選擇一硬體架構;及基於與該選定候選硬體架構相關聯之參數值來判定該等值。使用該硬體架構模板來產生包含該等值之輸出資料,用於實體化該硬體架構。
Description
本說明書係關於使用一可擴充硬體架構模板來針對對串流輸入資料執行操作之硬體組件(例如,機器學習處理器)產生硬體設計參數及使用該等參數來製造處理器。
人工智慧(AI)係藉由機器演示之智慧且表示一電腦程式或一機器思考及學習之能力。可使用一或多個電腦來執行AI運算以訓練機器進行各自任務。AI運算可包含由一或多個機器學習模型表示之運算。
神經網路屬於機器學習模型之一子領域。神經網路可採用表示多個操作(例如,向量或矩陣操作)之一或多層節點。一或多個電腦可經組態以執行神經網路之操作或運算以產生一輸出,例如,一所接收輸入之一分類、一預測或一分段。除一輸出層以外,一些神經網路亦包含一或多個隱藏層。使用各隱藏層之輸出作為至網路中之下一層(即,下一隱藏層或輸出層)之輸入。網路之各層根據一各自網路參數集之當前值自一所接收輸入產生一輸出。
以下說明書中描述之技術係關於使用一可擴充硬體架構模
板來針對對串流輸入資料執行操作之硬體組件(例如,機器學習處理器)產生硬體設計參數及使用該等參數來製造處理器。硬體架構模板可包含用於製造硬體組件之一可組態設計參數集,該等硬體組件可經組態以對串流輸入資料執行操作,使得架構可基於串流輸入資料之特性進行放大或縮小。技術可用於判定設計參數集之值且使用硬體架構模板及經判定值來實體化一硬體架構。
一硬體架構(亦被稱為一硬體架構表示)大體上係關於一設計(或待設計)電子或機電硬體區塊、組件或系統之一表示。硬體架構可涵蓋用於識別、原型設計及/或製造此一硬體區塊、組件或系統之資料。可用表示區塊、組件或系統之一結構之資料(例如,識別包含於硬體區塊、組件或系統中之子組件或子系統及其等之相互關係之資料)對一硬體架構進行編碼。一硬體架構亦可包含表示製造硬體區塊、組件或系統之一程序之資料,或表示用於有效地實施硬體區塊、組件或系統之設計之規則之資料或兩者。
本文件中之術語「硬體架構模板」係指表示具有一硬體組件(諸如經組態以對串流輸入執行機器學習運算之一機器學習處理器)之一設計參數集之一模板之資料。一硬體架構模板可為具有待基於設計參數集(例如,待包含於硬體架構中之不同運算單元之類型、數量或階層)定製或客製化之多個態樣之一硬體架構之一預設通用設計。
一硬體架構模板可為一抽象概念且非實體化的,直至判定設計參數集之值。在(例如)使用本文件中描述之各種程序判定設計參數之值之後,硬體架構模板可用於基於設計參數集之經判定值而實體化一硬體架構。在一些實施方案中,硬體架構模板可表示以可合成至硬體電路且以
一物件導向方式程式化之一高階電腦語言(例如,C或C++)編碼之資料。為了簡單起見,術語「硬體架構模板」在本文件中有時被稱為「模板」。
設計參數集可在形成或具有一多維「搜尋空間」,在其內鑑於特定設計要求或準則執行搜尋設計參數集之各自值。可藉由使用一或多個演算法或技術探索搜尋空間而判定設計參數之值。在本文件中,術語「搜尋空間」係指涵蓋給定可用資源之設計參數集之全部或至少一組可能解決方案(例如,值)(舉例而言,包含於一硬體架構中之不同運算單元之全部可能類型及數量)之一解決方案空間。
可基於用於執行運算操作之資料之特性重新組態模板。在一些情境中,歸因於輸入資料之一變化(例如,具有一不同稀疏性位準之一不同輸入矩陣),可即時重新實體化藉由模板產生之一硬體架構。
術語「硬體組件」係指用於執行運算操作(例如,機器學習運算)之硬體組件,包含(舉例而言)經組態以基於串流輸入資料而執行向量縮減、張量乘法、基本算術運算及邏輯運算之適合硬體運算單元或運算單元群集。舉例而言,硬體組件可包含一或多個塊(tile)(例如,乘積累加運算(MAC)單元)、包含多個MAC單元之一或多個處理元件、包含多個處理元件之一或多個群集及處理單元(諸如圖形處理單元(GPU)及張量處理單元(TPU))。
術語「串流輸入資料」係指連續提供至一硬體組件用於處理資料的資料。舉例而言,資料可包含多個資料訊框,其中在一特定時間間隔產生各訊框,且將各資料訊框提供至一硬體組件用於以一特定速率進行處理。術語「時間間隔」及「速率」係指用於產生或接收一訊框及一下一資料訊框之一時間週期或一頻率。舉例而言,串流輸入資料之一速率可
為每幾毫秒、幾秒、幾分鐘或其他適當時間週期之一個資料訊框。
串流輸入資料可為藉由一影像感測器根據一時間序列收集之串流影像圖框或視訊圖框。影像感測器可包含一相機或一錄影機。串流影像圖框可藉由影像感測器以一特定速率收集,或以一特定抵達率提供至一硬體組件。
串流輸入資料之各訊框可具有一特定大小。舉例而言,串流影像圖框之各者可包含一各自影像解析度,例如,50×50個像素、640×480個像素、1440×1080個像素或4096×2160個像素。
一硬體組件可經組態以處理以一特定速率接收之串流輸入資料。如上文描述,串流輸入資料可(例如)從一或多個源逐訊框連續產生,且以一特定抵達率提供至硬體組件。舉例而言,速率可為每單位時間之一訊框,或每單位時間之像素數量。理想地,硬體組件可在輸入資料之下一訊框抵達之前處理串流輸入資料之各訊框以及時產生輸出資料。然而,若硬體組件無法在下一訊框抵達之前處理訊框,則硬體組件可導致處理串流輸入資料之後續訊框之背壓。背壓可導致產生輸出資料之中斷或時間延遲,增加系統耗用,特定言之在一系統中之其他硬體組件經組態以處理藉由硬體組件產生之輸出資料時,或導致硬體組件之操作及/或藉由硬體組件進行之運算中之錯誤。
在一些實施方案中,一系統可使用具有一較大訊框大小或以一較高頻率或兩者之新串流輸入資料來產生具有較高準確度之輸出資料(例如,具有每影像之一較高解析度之每單位時間之更多影像圖框)。一最初適合硬體組件可能無法在下一訊框抵達之前處理新串流輸入資料之各訊框,此導致處理串流輸入資料之稍後抵達訊框之背壓。
執行廣義矩陣乘法(GEMM)及廣義矩陣向量乘法(GEMV)之技術無法應用於處理串流輸入資料,此係因為依序接收串流輸入資料之各訊框。舉例而言,可藉由一輸入矩陣表示串流輸入資料之各訊框,且在一特定時間窗期間藉由硬體組件逐列接收輸入矩陣。GEMM或GEMV技術之一實例被稱為迴圈分塊(亦被稱為迴圈巢套最佳化),其將一迴圈之迭代空間分成較小組塊或區塊用於執行矩陣-矩陣或矩陣-向量運算,使得可平行運算輸入之各較小組塊或區塊。然而,迴圈分塊技術不太可能經調適用於處理串流輸入資料,此係因為根據一序列逐列接收輸入。預先儲存一當前訊框之一最後列或一下一訊框之一列且對此等列執行操作同時平行處理當前訊框中之一不同列係不可能或至少不切實際的。
當串流輸入資料在大小或頻率上增加時,一些技術訴諸於藉由包含更多處理元件(PE)或運算單元來解決背壓問題。然而,其可能效率低下、無法擴充,且可在訊框大小或抵達率按比例擴大時,很快達到一硬體組件之一最大功率要求。舉例而言,經組態以處理串流輸入資料(例如,使用輸入資料之各訊框來執行運算)之邊緣裝置(例如,智慧型電話、平板電腦、膝上型電腦及手錶)可能具有功率消耗率之一上限。因此,整合於一邊緣裝置之一硬體組件內之運算單元之總數量或數目可能受一最大功率要求,或每次充電之電池壽命之一要求或兩者的限制。
為了以高處理能力更高效且穩健地處理串流輸入資料,本文件中描述之技術實施具有一設計參數集之一硬體架構模板。執行所描述技術之一系統可基於串流輸入資料之特性而判定設計參數集之值且使用具有經判定設計參數值之硬體架構模板來實體化一硬體架構。硬體架構包含藉由設計參數值指定之運算單元之一特定配置且表示適於處理串流輸入資
料之一硬體組件。硬體架構可用於製造硬體組件。
根據一個態樣,文件描述一種基於一特定串流輸入資料產生一硬體架構之方法。可使用硬體架構來製造可令人滿意地處理特定串流輸入資料之一硬體組件。方法包含接收表示具有一可組態設計參數集之一硬體架構模板之資料,其中設計參數集可包含群集之一數量、各群集中之處理單元之一數量及各處理單元中之一硬體單元陣列之一大小之兩者或更多者。
方法進一步包含至少部分基於待藉由硬體組件處理之串流輸入資料之特性而判定可組態設計參數集之值。判定程序包含:使用可組態設計參數之一搜尋空間來產生多個候選硬體架構;判定與各候選硬體架構相關聯之一組效能度量之各自值;至少部分基於該組效能度量之該等各自值而從全部該多個候選硬體架構選擇一個候選硬體架構;及基於該選定候選硬體架構而判定該等設計參數之值。
藉由方法產生之輸出資料可至少包含用於製造硬體架構之設計參數值。
在一些實施方案中,方法包含將輸出資料提供至硬體架構模板,基於經判定設計參數值而實體化一硬體架構,及使用該硬體架構來製造一硬體組件。
在一些實施方案中,串流輸入資料之特性可包含各訊框之一抵達率及各訊框之一大小。該組效能度量可包含用於處理給定硬體組件之各自串流輸入資料之延時、功率消耗、資源使用或處理能力之至少一者之度量。效能模型可包含一分析成本模型、一機器學習成本模型或一硬體模擬模型之至少一者。串流輸入資料可為藉由一影像感測器根據一時間序
列收集之串流影像圖框。串流影像圖框之特性可包含一特定抵達率,其中串流影像圖框之各圖框可具有一各自影像解析度。在一些實施方案中,串流影像圖框之特性可包含影像圖框之各自影像解析度。串流影像圖框之特性可包含一遮沒週期(例如,一垂直遮沒週期及/或一水平遮沒週期)、一像素或色彩格式(例如,一RGB或YUV色彩格式)及影像圖框之一抵達順序。串流輸入資料可為藉由一音訊感測器根據收集之串流音訊。音訊串流資料之特性可包含串流音訊之一特定取樣率、串流音訊之一位元深度、串流音訊之一位元率或串流音訊之一音訊格式之至少一者。
在一些實施方案中,可以矩陣或向量形式接收串流輸入資料。方法進一步包含將來自一矩陣之輸入之一訊框分段成多個向量,將一矩陣乘矩陣乘法分解成多個向量乘矩陣乘法,判定一矩陣(例如,儲存於一記憶體單元中且用於與串流輸入資料相乘之一矩陣)之一稀疏性位準,及/或判定所儲存矩陣中之非零值以改良運算效率。
可實施本說明書中描述之標的物之特定實施例以實現以下優勢之一或多者。本文件中描述之技術可穩健地產生能夠處理具有不同訊框大小及抵達率之不同串流資料之硬體組件(例如,機器學習處理器)。更明確言之,執行所描述技術之一系統可藉由判定一硬體架構模板之設計參數值而客製化特定串流輸入資料之一硬體架構。技術可快速判定參數值以實現敏捷硬體開發。硬體架構模板可用於基於經判定設計參數值而實體化一硬體架構,從而允許能夠支援在資料速率、資料大小及/或其他特性上具有廣泛變動之串流輸入資料之可擴充及可客製化硬體架構。在處理特定串流輸入資料時,可增強實體化硬體架構以減少且甚至消除背壓。硬體架構可經組態以即時重新實體化以處理非串流且具有至多50%之一稀疏性位
準之不同稀疏性位準之不同矩陣。
另外,本文件中描述之技術改良處理串流輸入資料之效率。更明確言之,所描述技術可使用較少運算資源、較少功率及較少記憶體來對串流輸入資料執行運算(例如,機器學習運算)。基於一或多個因素、要求或準則來判定模板之設計參數值,例如,可判定設計參數值以最小化功率使用且維持一特定輸入抵達率。舉例而言,可判定設計參數,使得可在無背壓之情況下處理串流輸入資料同時仍符合硬體組件之功率及/或大小要求。執行所描述技術之一系統亦可對稀疏矩陣執行特定處理以減少記憶體使用。舉例而言,系統可避免儲存用於處理串流輸入資料之非串流矩陣之零值,且僅對與非串流矩陣之非零值相關聯之輸入值執行操作,此減少用於執行操作之運算資源,且減小用於資料傳送之記憶體頻寬及用於儲存之記憶體大小。
此外,本文件中描述之技術可以高處理能力及效能處理串流輸入資料。所描述技術可藉由根據不同處理要求平衡處理速度及運算單元閒置時間而減少處理串流輸入資料之延時。舉例而言,藉由模板產生之一硬體組件可以一較快速度處理串流輸入資料之各訊框且可能導致硬體組件中之一或多個運算單元之更多閒置時間。替代地,硬體組件可以一降低速度處理各訊框但仍能夠及時處理各訊框。所描述技術亦可藉由避免潛在邏輯擁塞或降低硬體時脈速率而保證一高處理能力。舉例而言,所描述技術可僅探索設計參數集之一子集,直至所產生硬體架構達到一可擴充性極限,其中進一步增加設計參數之子集之值將導致邏輯擁塞或不利地影響硬體時脈速率。
在以下隨附圖式及描述中陳述本說明書之標的物之一或多
項實施例之細節。將從描述、圖式及發明申請專利範圍明白標的物之其他特徵、態樣及優勢。
100:架構設計系統
110:輸入資料
120:架構增強子系統
130:增強引擎
140:候選者產生器
145:候選架構
150:分析引擎
155:效能值
160:選擇引擎
170:輸出資料
175:製造系統
185:效能模型
190:記憶體單元
195:架構模板
200:硬體架構
210:串流輸入向量
215a:非重疊部分片段
215b:非重疊部分片段
215c:非重疊部分片段
220:矩陣資料
230:群集
240:處理單元
250:硬體運算單元陣列
260:累加器陣列
300:硬體架構
310:串流輸入向量
315a:部分片段
315b:部分片段
315c:部分片段
320:矩陣資料
330:群集
340a:處理單元
340b:處理單元
340c:處理單元
350a:硬體單元陣列
350b:硬體單元陣列
350c:硬體單元陣列
360:累加器陣列
400:硬體架構
410:串流輸入向量
415a:部分片段
415b:部分片段
415c:部分片段
420:矩陣資料
430a:群集
430b:群集
440a:處理單元
440b:處理單元
450a:硬體單元陣列
450b:硬體單元陣列
455:累加器單元
460:累加器陣列
500:硬體架構
510:串流輸入向量
515a:部分片段
515b:部分片段
515c:部分片段
520:矩陣資料
530a:群集
530x:群集
540a:處理單元
540h:處理單元
540r:處理單元
540x:處理單元
550a:硬體單元陣列
550b:硬體單元陣列
550x:硬體單元陣列
550y:硬體單元陣列
555:累加器單元
560:累加器陣列
600:非串流矩陣
615a:部分片段
630a:群集
630b:群集
640a:處理元件(PE)/處理單元
640b:處理元件(PE)/處理單元
640c:處理元件(PE)/處理單元
640d至f:處理元件(PE)
700:程序
720:矩陣資料
735:非零元素
735a至d:向量資料
740:零元素
750a:壓縮資料
750b:壓縮資料
750c:壓縮資料
750d:壓縮資料
760:識別符
800:程序
810:步驟
820:步驟
830:步驟
840:步驟
850:步驟
860:步驟
870:步驟
圖1繪示一例示性架構設計系統。
圖2繪示用於處理串流輸入資料之一訊框之一例示性情境。
圖3繪示用於處理串流輸入資料之一訊框之另一例示性情境。
圖4繪示用於處理串流輸入資料之一訊框之另一例示性情境。
圖5繪示用於處理串流輸入資料之一訊框之另一例示性情境。
圖6繪示用於一非串流矩陣之一例示性資料存取型樣。
圖7係處理一稀疏非串流矩陣之一例示性程序。
圖8係使用一硬體架構模板來產生一輸出資料之一例示性程序之一流程圖。
各個圖式中之相同元件符號及名稱指示相同元件。
圖1繪示一例示性架構設計系統100。架構設計系統100係在一或多個位置中之一或多個電腦上實施之一系統之一實例,其中可實施下文描述之系統、組件及技術。架構設計系統100之一些組件可實施為經組態以在一或多個電腦上運行之電腦程式。
如圖1中展示,架構設計系統100可包含一架構增強子系統
120,該架構增強子系統120經組態以處理輸入資料110以產生與一硬體組件之一增強硬體架構相關聯之輸出資料170。
更明確言之,可使用輸出資料170來實體化一硬體架構且可使用硬體架構來製造經組態以處理串流輸入資料(例如,一影像串流)之一硬體組件。硬體組件可經組態以執行不同操作以處理串流輸入資料,舉例而言,使用藉由組件儲存之一矩陣或一向量及串流輸入資料之機器學習運算之操作。串流輸入資料可呈向量、矩陣或張量形式。硬體組件可為一圖形處理單元(GPU)、一張量處理單元(TPU)、一特定應用積體電路(ASIC)或經組態以令人滿意地處理影像串流之另一適當處理單元或電路。
作為一實例,一硬體組件可為被設計成具有經組態以處理一串流輸入資料(例如,一影像或視訊串流)之一或多個運算單元之一用戶端裝置或一邊緣裝置(諸如一智慧型電話、一電腦、一攜帶式平板電腦等)之部分。串流輸入資料可藉由硬體組件以一定義時間間隔逐訊框接收,且藉由邊緣裝置根據接收順序(例如,使用儲存於邊緣裝置處之其他資料)進行處理。舉例而言,邊緣裝置可執行一神經網路之推理操作以逐圖框處理一輸入視訊以使用儲存於邊緣裝置處之網路權重來辨識面部。
輸入資料110可包含表示待藉由具有一特定硬體架構之一硬體組件處理之串流輸入資料之特性之資料。特性可包含串流輸入資料之一特定接收速率。舉例而言,接收速率可為每毫秒、每秒、每分鐘或其他適當時間單位一個訊框。在一些實施方案中,串流輸入資料可包含(例如)一視訊之多個影像圖框。特性可進一步包含在一時間步階接收之各訊框之一特定資料大小。舉例而言,當各訊框係一影像圖框時,資料大小可為
720×480個像素、1280×720個像素、1920×1080個像素、4096×2160個像素或更大之一像素解析度。在另一實例中,各訊框之資料大小可為各訊框之位元或位元組之數量。舉例而言,當訊框係其他類型之資料時,可以位元或位元組表示資料大小。
輸入資料亦可包含其他特性。特性之一個實例可為經組態以接收串流輸入資料之一感測器之一遮沒週期。遮沒週期可包含一垂直遮沒週期、一水平遮沒週期或兩者。遮沒週期通常係指一感測器接收到一訊框或場之最後可見線(例如,一底部或一左側線)之結束之一時間與感測器接收到下一訊框之第一可見線(例如,一頂部或一右側線)之開始之一時間之間的一時間週期。在一個特定實例中,遮沒週期之頻率(即,時間週期之倒數)對於垂直遮沒週期可為60Hz且對於水平遮沒週期可為15,750Hz。亦可使用其他頻率。因此,一硬體組件之處理速率理想地適應串流影像圖框之遮沒週期。
另一例示性特性可為串流輸入影像資料之像素格式(或色彩格式),例如,RGB或YUV。另外,串流輸入資料之特性可包含串流輸入資料之各訊框之一抵達順序。
串流輸入資料亦可為音訊資料或信號。舉例而言,音訊資料可包含藉由一或多個個體產生之一或多個話音之一記錄、聲音之一記錄、背景雜訊或其他適當類型之音訊資料。串流音訊資料可包含藉由一智慧型揚聲器或其他類型之數位助理裝置擷取之音訊。串流音訊輸入可包含播客、無線電廣播及/或可藉由一音訊感測器(例如,一麥克風)擷取之其他類型之音訊。
串流輸入資料可包含串流音訊輸入資料之不同特性。舉例
而言,串流音訊之特性可包含一取樣率。取樣率通常係指使用一音訊感測器從音訊信號取樣之類比信號之一取樣頻率,即,每單位時間收集之樣本類比信號之數量。取樣率可為44.1kHz、48kHz、88.2kHz、96kHz、192kHz或更大。作為另一實例,串流音訊輸入資料之特性可包含一位元深度。位元深度通常係指每音訊樣本之一位元大小,其有時亦被稱為一音訊樣本之一音訊解析度。位元深度可為4位元、16位元、24位元、64位元或其他適當位元深度。在一些實施方案中,串流音訊輸入資料之特性可包含一位元率。位元率通常係指每單位時間輸送或處理之位元之數量。可基於取樣率及位元深度來計算位元率,舉例而言,當一數位音訊光碟音訊(CD)具有44.1kHz之一取樣率、16位元之一位元深度及雙軌時,CD可具有1.4Mbit/s之一位元率。一硬體組件之處理速率理想地快於音訊串流輸入資料之位元率以避免硬體組件處理串流輸入音訊時之積壓。
音訊串流輸入資料之其他特性可包含資料之音訊格式。舉例而言,音訊串流輸入資料可以脈衝編碼調變(PCM)、MPEG-1音訊層3(MP3)、視窗媒體音訊(WMA)或其他適當音訊格式的一音訊格式進行編碼。
在一些實施方案中,輸入資料110可包含待藉由一硬體組件(例如,執行機器學習運算之一機器學習處理器)處理之串流輸入資料。架構增強子系統120可經組態以分析串流輸入資料以產生表示串流輸入資料之特性(例如,各訊框之一接收速率或抵達率及各訊框之一大小)之資料。
視情況,輸入資料110亦可包含表示用於實體化硬體架構模板之可組態設計參數集之初始值之資料。可使用初始值來實體化一預設
架構,例如,包含每群集一個MAC單元之一架構。預設架構可包含(舉例而言)一群集中之一基於靜態隨機存取記憶體(SRAM)之行緩衝單元,其中行緩衝單元具有一單一記憶體庫且經組態以儲存各訊框之一整行輸入像素。作為另一實例,初始值可包含指示一預設架構中之零累加器陣列之資料。
儘管上述實例中之串流輸入資料係一影像圖框串流,然應瞭解,串流輸入資料可包含不同類型之資料,諸如音訊記錄、資料結構(諸如向量及張量),僅舉幾例。
輸出資料170可包含使用架構模板來實體化或重新實體化一硬體架構之至少一組增強參數值。針對架構模板之一設計參數集來判定該組增強參數值。設計參數可至少包含一硬體架構中之群集的數量、各群集中之PE的數量、各處理元件(PE)中之一MAC陣列的一大小,或兩個或更多個此等參數的任何組合。舉例而言,一MAC陣列之大小可為1、4、10或更大。作為另一實例,各群集中之PE的數量可為1、4、7、20、50或更大。作為另一實例,一硬體架構中之群集的數量可為1、2、8、15、30或更大。在一些實施方案中,輸出資料170可包含定義增強硬體架構的資料,包含該組增強參數值及定義應如何製造硬體組件的任何其他資料。
輸出資料170可以可被合成至硬體電路中,且以一物件導向方式程式化之一高階電腦語言(例如,C或C++)進行編碼,如上文描述。在其他實例中,輸出資料170可為一增強參數值清單。
可為一製造系統175提供輸出資料170以產生具有藉由模板使用輸出資料中之參數值實體化之一硬體架構之一硬體組件。製造系統175可為用於製造硬體組件之任何適合系統,例如,一製作系統或一化學
機械拋光系統。
架構增強子系統120可包含一增強引擎130,該增強引擎130經組態以藉由基於輸入資料110處理一架構模板195來產生輸出資料170。舉例而言,架構增強子系統120可包含一記憶體單元190,該記憶體單元190經組態以儲存表示架構模板195之資料,且將該資料提供至增強引擎130。替代地,增強引擎130可接收來自架構增強子系統120外部之一伺服器或一記憶體單元之架構模板195。
架構模板195可為具有多個可組態設計參數之一高階程式碼。架構模板195經組態以接收一組設計參數值,且一旦藉由系統執行,便可產生表示用於製造用於處理一特定類型之串流輸入資料之一硬體組件之一硬體架構的一輸出資料。舉例而言,增強引擎130可將多個組設計參數值提供至架構模板195且產生多個候選架構145。
增強引擎130包含經組態以產生多個候選架構145之一候選者產生器140。候選者產生器140可處理輸入資料110及架構模板195以產生多個候選架構145。候選者產生器140經組態以探索藉由給定一特定時間週期內之可用資源的設計參數集所形成之一搜尋空間中的多個參數值。取決於處理串流輸入資料之標定運算要求,搜尋空間可具有範圍從十個、幾百個、數萬個設計點(例如,各包含全部設計參數之各自值的元組)或其他適當數目個設計點之一大小。對於藉由探索獲取之各組候選設計參數值,候選者產生器140可使用架構模板195來實體化一對應硬體架構。下文描述探索一搜尋空間之細節。
增強引擎130亦包含一分析引擎150,該分析引擎150經組態以分析候選架構145且使用一或多個效能模型185來產生各候選架構145
之一效能值155。舉例而言,效能值可包含任何適合數值,例如,範圍從0至100之一標量值,其指示候選架構145在處理串流輸入資料時之一效能。舉例而言,一候選架構145之效能值155可指示候選硬體架構145在用於處理串流輸入資料時之有效程度。舉例而言,對於符合避免背壓之資料處理速率要求之該等架構,效率可基於運算速度、背壓情形中之時間之一百分比、資料處理速率或相對於資料處理速率之功率或空間消耗。預測一硬體架構在處理一第一串流輸入資料時具有一高效能值(例如,100個中有90個),但在處理具有不同於第一串流輸入資料之特性之第二串流輸入資料時具有一低效能值(例如,100個中有30個)並不少見。因此,藉由產生與用於處理一特定串流輸入資料之多個(例如,全部)候選架構相關聯之效能值,系統100可高效地獲取用於使用架構模板195來處理特定串流輸入資料之最佳執行候選架構設計之一或多者。
效能模型185可為一分析、一基於機器學習或一模擬模型,其經組態以存取一硬體架構之效能之不同態樣以處理一特定類型之串流輸入資料。效能度量可量測硬體架構之不同態樣,例如,功率消耗、資源使用、處理能力或在處理具有藉由輸入資料110指示之特性之串流輸入資料時是否將存在任何背壓。
可以儲存於架構增強子系統120中之記憶體單元190中或藉由一外部記憶體單元或一伺服器提供之資料表示效能模型185。
如圖1中展示,選擇引擎160可經組態以基於效能值155從多個候選架構145選擇一候選架構作為一增強硬體架構。舉例而言,選擇引擎160可選擇具有最高效能值155之一候選架構作為增強候選架構。作為另一實例,選擇引擎160可選擇具有超過一指定(例如,預定義)臨限值
之一效能值155且使用最少功率或資源或兩者之一候選架構。舉例而言,選擇引擎160可從候選架構145過濾具有未滿足或超過指定臨限值之一效能值155之各候選架構。接著,選擇引擎160可基於其等效能值、功率消耗估計、所需資源及/或(若干)電路板上之空間等從剩餘候選架構選擇一特定候選架構。舉例而言,選擇引擎160可選擇消耗最少量功率及/或需要最少量空間之剩餘候選架構145。
在另一實例中,選擇引擎160可基於功率消耗及/或所需空間來過濾候選架構145。舉例而言,針對其設計硬體組件之一裝置可具有有限可用功率及/或空間,例如,尤其在裝置係一智慧型電話或其他行動裝置之情況下。在此實例中,選擇引擎160可從候選架構145過濾將超過可用功率或空間之各候選架構145。接著,選擇引擎160可基於效能值155從剩餘候選架構145選擇,例如,藉由選擇具有最高效能值155之剩餘候選架構。
選擇引擎160可將增強硬體架構或增強參數值或兩者編碼至輸出資料170中用於進一步操作。舉例而言,可將增強參數值提供至多個電腦用於平行實體化增強硬體架構。作為另一實例,可將增強硬體架構提供至一或多個製造設備以(例如)基於增強硬體架構平行製造對應硬體組件。
圖2至圖5繪示其中具有不同設計之例示性硬體組件處理串流輸入資料之一訊框之例示性情境。為了方便起見,上述程序被描述為藉由定位於一或多個位置中之一或多個電腦之一硬體組件執行。舉例而言,使用圖1之架構設計系統100製造之適當地程式化之一硬體組件可執行此等程序。
使用模板製造之所描述硬體組件經組態以用不同設計層級處理串流輸入資料。舉例而言,硬體架構可具有用於群集之一第一級設計、用於處理元件(在本文件中亦被稱為處理單元)之一第二級設計及用於硬體單元陣列(亦被稱為硬體運算單元陣列,或下文硬體運算陣列,例如,MAC單元陣列)之一第三級設計。在判定各設計層級之後可從一模板實體化所描述硬體架構。舉例而言,設計參數可包含群集之一數量及/或配置、各群集中之PE之一數量及/或配置及/或各PE中之硬體單元陣列之一數量。作為另一實例,設計參數對應於各硬體單元陣列之一尺寸,例如,一硬體單元陣列中之硬體單元(例如,MAC單元)之一尺寸或數量。
如圖2中展示,一例示性硬體架構200可包含包括一個處理單元240的一個群集230。處理單元240可包含一硬體運算單元陣列250。作為另一實例,圖3中展示之硬體架構300,各群集330可包含多個處理單元340a至340c,各處理單元340a至340c分別具有一個硬體單元陣列350a至350c。另外,硬體架構400之另一實例可包含多個群集430a、430b。各群集430a及430b可包含一處理單元440a及440b。各處理單元440a及440b可分別包含一個硬體單元陣列450a及450b。此外,硬體架構500之另一實例可包含多個群集530a至530x,各群集具有多個處理單元540a至540x,各處理單元540a至540x包含一硬體單元陣列550a至550z。儘管對於各硬體架構200至500,為了便於繪示,圖2至圖5中僅描繪兩個、三個或四個群集、處理單元或硬體單元陣列,然應瞭解,一硬體架構可包含其他數量之群集、處理單元或硬體單元陣列。
硬體架構可經組態以每單位時間(例如,以各訊框之一時間步階)處理串流輸入資料之一訊框。可以具有多個尺寸之一向量形式(例
如,2、5、10或20個條目之一向量)接收串流輸入資料之各訊框。輸入向量之尺寸可為1×inputdim。替代地,可以一矩陣形式接收串流輸入資料之各訊框,可藉由將輸入矩陣分解成多個向量而將其作為向量處理。
通常,硬體架構可運用一預儲存矩陣或向量對輸入向量執行操作。預儲存矩陣可經建構為具有尺寸(例如,inputdim×outputdim)之一矩陣。在一些實施方案中,操作包含向量或矩陣乘法,因此藉由硬體架構產生之輸出資料可呈具有1×outputdim之一尺寸之一向量形式。或,輸出可呈矩陣形式,例如,若操作包含矩陣-矩陣乘法。
在使用所描述模板基於設計參數值判定硬體架構之後,基於所描述硬體架構製造之一硬體組件或系統可基於一硬體單元陣列之一尺寸(例如,一陣列中之MAC單元之數量)將串流輸入資料之各訊框(例如,一輸入向量)劃分成一或多個部分塊。舉例而言,假設一MAC單元陣列包含陣列中之D個MAC單元,各輸入塊之尺寸可為一尺寸D。部分塊在以下說明書中亦被稱為部分片段。各部分塊包含輸入向量之非重疊值。
返回參考圖2至圖5,可逐訊框以一矩陣或向量形式接收串流輸入。若以一矩陣形式接收一訊框之串流輸入,則一控制器或一排程器可將輸入矩陣重新映射或重新塑形為一長形向量或多個向量供硬體組件進一步處理。舉例而言,若以一矩陣形式接收串流輸入資料之各訊框,則控制器或排程器可將矩陣之各列視為一向量,且將運算從矩陣乘矩陣乘法變換為向量乘矩陣乘法。乘以輸入矩陣或向量之另一矩陣係儲存於一記憶體單元中之一矩陣,例如,而非額外串流輸入資料。
可將串流輸入向量210劃分成多個非重疊部分片段215a至215c,其等各具有對應於硬體單元陣列250之大小之一尺寸D。系統中之
一控制器或一排程器(例如,一硬體階層狀態機)可產生此等片段215a至215c且使用此等片段來排程操作以在不同群集、PE及MAC單元陣列中執行。類似地,串流輸入向量310、410及510可分別被劃分成多個部分片段315a至315c、415a至415c及515a至515c。儘管圖2至圖5中僅展示三個部分片段,然應瞭解,可將一時間步階之輸入向量之各訊框劃分成多於3個部分片段,例如,4、8、12、24、51個或另一適當數目個部分片段。
一般而言,尺寸D可與inputdim相同或小於inputdim,inputdim係儲存於硬體組件中之輸入矩陣之行或列長度。舉例而言,串流輸入資料之一訊框可具有一輸入尺寸100。各部分塊及一對應硬體單元陣列可具有1、10、20、50、100之一尺寸或另一適當尺寸。
組件或系統可將全部部分片段儲存於一或多個緩衝區(例如,包含硬體單元陣列之一處理單元中之緩衝區)中。
硬體組件或系統可經組態以基於從預儲存矩陣之一對應列或行(例如,對應於部分塊之一部分列或行)提取或預提取之大小D之一向量對各輸入部分塊執行操作。返回參考圖2至圖5,預儲存矩陣可分別為矩陣資料220、320、420及520。操作可包含(舉例而言)點積及其他適合逐元素算術運算。硬體組件或系統可藉由以此時間步階執行上述操作而產生一部分輸出(例如,一部分和)且將該部分輸出儲存於一累加器陣列(例如,圖2至圖5中分別展示之累加器陣列260、360、460及560)中。
硬體組件或系統可針對各輸入部分塊及預儲存矩陣之對應部分列或行重複執行上述操作。總重複次數可基於設計參數,例如,群集、PE及硬體單元陣列之不同數量及各硬體單元陣列之尺寸D。
舉例而言且返回參考圖2,對於串流輸入資料之各訊框,
硬體組件或系統可將上述操作重複達outputdim次。因此,累加器陣列之大小可為outputdim用於儲存全部部分輸出。累加器陣列260可彙總所儲存部分輸出且提供彙總輸出用於進一步操作。
作為另一實例且返回參考圖3,硬體架構300可包含一群集330中之多個處理單元340a至340c。假設各處理單元340a至340c可具有大小1之一硬體單元陣列350a至350c(MAC陣列)(例如,各硬體單元陣列350a至350c中僅一單一MAC單元),則MAC陣列之數量等於群集330中之處理單元340a至340c之數量。所描述硬體組件或系統可將輸入向量劃分成多個部分塊,其等各具有一個元素之一尺寸,此係因為硬體單元陣列具有1之一尺寸。
假設輸出尺寸大於或等於處理單元之數量,可使用一或多
個處理單元來執行多於一個部分塊,即,若干部分塊。各處理單元可具有具之一大小之一累加器陣列。舉例而言,輸出尺寸係10且每群集之處理單元350之數量係5,則各處理單元350被使用兩次分別用於處理兩個部分輸入塊,且各處理單元350可具有具2之一大小之一累加器陣列360。圖3中之處理單元經設計為等於或小於運算資源效率之輸出尺寸。
參考圖4,例示性硬體架構400可包含多個群集,例如,兩個群集430a及430b。將串流輸入向量410劃分成多個部分片段415a至415c。多個部分片段415a至415c之各者具有作為(若干)硬體單元陣列450a及450b之一尺寸。
多個部分片段415a至415c可均勻分佈至兩個群集430a及430b之各者。舉例而言,如圖4中展示,將部分片段415a及415c指派給群
集430a,且將部分片段415b及另一部分片段(未展示)指派給群集430b。
群集430a及430b之各者可經組態以使用矩陣資料420之對應部分列或行來處理經指派部分片段。在各群集中執行之程序及操作類似於關於圖2描述之程序及操作。各群集430a及430b可藉由處理經指派部分片段而產生一各自部分和,其中部分和可具有1×outputdim之一尺寸。各群集430a及430b可進一步經組態以將各自部分和向量提供至累加器單元455。累加器單元455可經組態以組合來自不同群集之部分和向量以產生一輸出向量且將該輸出向量提供至累加器陣列460。在一些實施方案中,累加器陣列可具有1×outputdim之一尺寸。
參考圖5且如上文描述,例示性硬體架構500可包含多個群集530a至530x,各群集具有多個處理單元540a至540x,各處理單元具有一各自硬體單元陣列550a至550y。
類似於圖4之程序,所描述硬體組件或系統可經組態以在一時間步階將一輸入向量之一訊框劃分成多個部分片段515a至515c。各群集530a至530x實質上均勻地被指派有部分片段之一各自子集。舉例而言,如圖5中展示,將部分片段515a及515c指派給群集530a,且將部分片段515b及另一部分片段(未展示)指派給群集530x。
各群集530a至530x執行類似於關於圖3描述之程序及操作的一各自程序及操作。各群集530a至530x可產生具有1×outputdim之一尺寸之一各自部分和向量且將各自部分和提供至累加器單元555。累加器單元555經組態以組合對應部分和向量且產生一輸出向量以提供至累加器陣列560供進一步操作。累加器陣列560可包含1×outputdim之一尺寸。
返回參考圖1且結合圖2至圖5,架構設計系統100可根據不
同串流輸入資料之特性產生硬體架構200、300、400及500。舉例而言,當串流輸入資料具有一較慢抵達率(例如,每秒)或各訊框具有一小的大小(例如,對於一影像圖框為120個像素)時,架構設計系統100可使用一群集中之一單一處理單元來產生類似於硬體架構200之一硬體架構。作為另一實例,當串流輸入資料具有一較快抵達率(例如,每毫秒),或各訊框具有類似於硬體架構300、400或500之一大的大小(例如,對於一影像圖框為4000個像素)時,具有一群集中之多個處理元件,或具有多個群集。
如上文描述,例示性硬體架構可具有與硬體單元陣列之尺寸、一處理單元中之硬體單元陣列之一數量、一群集中之處理單元之一數量及一硬體架構中之群集之一數量之至少一者相關聯之一組設計參數值。鑑於輸入資料抵達率、處理能力、功率消耗及可用面積或空間之要求之約束,系統經組態以使用藉由設計參數集形成之一搜尋空間來判定一組設計參數值。結合圖8描述判定一組設計參數值之細節。
轉向用於處理輸入向量之預儲存矩陣。將預儲存矩陣(亦被稱為非串流矩陣)提取或預提取至裝置上記憶體,例如,一片上靜態隨機存取記憶體(SRAM)單元。由於預儲存矩陣之大小對應於輸入向量在一時間步階之大小,故一較大向量輸入需要一較大預儲存矩陣,此導致較大片上SRAM消耗。
圖6繪示用於一非串流矩陣600之一例示性資料存取型樣。為了方便起見,資料存取型樣與藉由定位於一或多個位置中之一或多個電腦之一系統執行之一程序相關聯。舉例而言,基於從圖1之架構設計系統100產生之一硬體架構製造之適當地程式化之一硬體組件可執行程序以產生資料存取型樣。
結合圖5,假設硬體架構包含兩個群集,例如,群集630a及630b,各群集具有三個PE(或處理單元)640a至640c,各PE2具有大小4之一MAC陣列,系統可將例示性非串流矩陣600劃分成以如圖6中展示之兩個矩形繪示之兩個部分。可將頂部部分指派給群集630a且可將底部部分指派給群集630b。
系統可存取非串流矩陣600之一各自部分以處理一對應部分片段。非串流矩陣600具有8×9之一尺寸。舉例而言,當群集630a在PE 640a處接收大小4之一部分片段615a時。群集亦可存取頂部部分之第一行(例如,非串流矩陣600之一部分行)且對部分片段615a之各元素與PE 640a處之部分行中之一對應元素執行逐元素操作以產生一第一部分和。類似地,群集630a可在PE 640b處接收部分片段615a且存取頂部部分之第二行,且使用PE 640b來執行部分片段615a及頂部部分之第二行之操作以產生一第二部分和。群集630a可在PE 640c處接收部分片段615a且存取頂部部分之第三行,且使用PE 640c來執行部分片段615a及頂部部分之第三行之操作以產生一第三部分和。第一、第二及第三部分和可配置成尺寸3之一部分和向量。
接著,PE 640a至640c可藉由存取頂部部分之第四至第六行以產生尺寸3之一第二部分和向量,且存取頂部部分之第七至第九行以產生尺寸3之一第三部分和向量而重複操作。群集630a可將第一、第二及第三部分和向量提供至一累加器單元(例如,圖5之累加器單元555)以形成尺寸1×9之一中間部分和向量。
轉向非串流矩陣600之底部部分(亦即,部分片段615b),群集630b及其對應PE 640d至640f可存取底部部分(亦即,部分片段615b)
之各行以產生尺寸1×9之另一中間部分和向量。在一些實施方案中,系統可提供兩個中間部分和向量作為輸出資料。替代地,系統可組合部分和向量以產生具有1×9之一尺寸之一輸出資料。
當串流輸入資料之一訊框呈一矩陣形式時,系統可依照類似於上述技術之一程序執行操作以處理串流輸入資料之訊框。舉例而言,若輸入訊框具有M列及K行之一尺寸且在硬體組件或系統處被逐列接收,且非串流矩陣具有K列及N行之一尺寸。系統可處理輸入矩陣之各列且載入非串流矩陣達M次。
然而,當輸入訊框之大小為大且非串流矩陣係具有一特定稀疏性位準之一稀疏矩陣(即,具有一特定百分比之零元素之一矩陣)時,多次載入或預提取一大的大小之非串流矩陣在功率消耗及運算資源方面效率低下。結合圖7描述處理一稀疏非串流矩陣之技術。
圖7係處理一稀疏非串流矩陣之一例示性程序700。為了方便起見,程序700被描述為藉由定位於一或多個位置中之一或多個電腦之一系統執行。舉例而言,根據從圖1之架構設計系統100產生之一硬體架構製造之適當地程式化之一硬體組件可執行程序700。
由於非串流矩陣係預定的且儲存於一片上記憶體中,故系統可判定矩陣之一稀疏性位準及矩陣之零元素。稀疏性位準可為10%、20%、50%或另一適當稀疏性位準。
在一些實施方案中,稀疏性位準可為被定義為1×N向量之一區塊中之K個非零元素之一區塊稀疏性比率。可針對各自任務(諸如面部偵測、視線偵測或深度圖產生)調諧非串流矩陣之區塊稀疏性比率。由於可預定稀疏性位準,故本說明書中描述之硬體組件或系統可離線預處理
並壓縮稀疏矩陣。
另外,所描述技術亦可基於預定稀疏性位準及串流輸入資料之特性而判定用於劃分輸入向量之一分段大小(尺寸大小D)。在判定尺寸大小D之後,系統可存取D個元素之粒度中之一非串流矩陣且對非串流矩陣之各部分行或列之非零元素進行編碼。以此方式,與使用現有壓縮格式(例如,壓縮稀疏列(CSR)格式或壓縮稀疏行(CSC)格式)相比,所描述技術可最大化硬體單元陣列之利用且降低後設資料儲存耗用及解碼硬體索引之複雜性。
如圖7中展示,一例示性非串流矩陣(例如,矩陣資料720)包含在陰影區中描繪之非零元素735及在白色區中描繪之零元素740。舉例而言,向量資料735a至735d之各者包含四個元素。向量資料735a之第一及第三元素非零,且向量資料735a之第二及第四元素係零。向量資料735b之第一及第四元素非零,且向量資料735b之第二及第三元素係零。向量資料735c之第二及第三元素非零,且向量資料735c之第一及第四元素係零。
系統可處理各向量資料735a至735d以產生一各自壓縮資料750a至750d,其中各壓縮資料僅包含具有指示相對於原始向量資料735a至735d之一相對位置之識別符760之非零元素。可基於一索引映射或一位元圖來產生識別符760。在於一PE處接收到一部分片段之後,系統可使用識別符從部分片段選擇值以處理部分片段。從部分片段選擇之值對應於對應壓縮資料750a至750d中之非零元素。
舉例而言,基於向量資料735a產生之壓縮資料750可僅包含非零資料,即,第一及第三元素,及與第一及第三元素相關聯之識別符
760。識別符760經組態以指示壓縮資料750之第一元素對應於向量資料735a之第一位置,且壓縮資料750a之第二元素對應於向量資料735a之第三位置。在處理具有一對應輸入部分片段之向量資料735a時,系統可僅從定位於輸入部分片段之第一及第三位置中之部分片段選擇值且運用壓縮資料750a中之對應非零元素來執行選定值之逐元素操作。
此外,所描述技術可支援密集運算及稀疏運算兩者。更明確言之,所描述技術可在硬體組件在執行操作以處理串流輸入資料時回應於判定儲存於硬體組件中之一輸入矩陣之一變化而在一密集模式與一稀疏模式之間切換硬體組件處理串流輸入資料之一模式。舉例而言,所製造之硬體組件可包含一控制及狀態暫存器(CSR),該控制及狀態暫存器(CSR)用於回應於判定新的非串流矩陣符合稀疏矩陣模式之一臨限稀疏值而將運用一新的非串流資料處理串流輸入資料之硬體組件從一密集矩陣模式切換至一稀疏矩陣模式。應注意,識別符僅用於稀疏矩陣模式。
圖8係使用一硬體架構模板來產生一輸出資料之一例示性程序800之一流程圖。為了方便起見,程序800被描述為藉由定位於一或多個位置中之一或多個電腦之一系統執行。舉例而言,適當地程式化之一系統(例如,圖1之架構設計系統100)可執行程序800。
系統接收表示一硬體架構模板之資料(810)。如上文描述,硬體架構模板經組態以包含一可組態設計參數集且基於經判定設計參數值而實體化一硬體架構。可使用硬體架構來製造經組態以處理特定串流輸入資料之一硬體組件。設計參數集包含以下項之兩個或更多個:(i)一硬體架構中之群集之一數量;(ii)各群集中之處理單元之一數量;及(iii)各處理單元中之一硬體單元陣列之一大小。
系統針對用於製造一硬體組件之一硬體架構判定可組態設計參數集之值(820)。值之判定至少部分基於給定硬體組件之各自串流輸入資料之特性。結合步驟840至870描述判定程序之細節。
系統產生包含值之輸出資料(830)。在一些實施方案中,輸出資料可包含藉由運用硬體模板之經判定值來設定可組態設計參數集所產生之一實體化硬體架構。替代地,輸出資料可包含所獲得設計參數值及基於來自模板之值而產生之一對應硬體架構兩者。系統可進一步基於硬體架構來提供用於製造硬體組件之輸出資料。
為產生可組態設計參數集之值,系統首先基於可組態設計參數集之一搜尋空間來產生多個候選硬體架構(840)。如上文描述,搜尋空間係基於可組態設計參數集且受基於可用運算資源、功率消耗及片上面積使用之可能參數值的限制。系統可產生具有一或多個可能組之設計參數值中之一各自組之設計參數值的多個候選硬體架構。
可使用一或多個不同搜尋演算法來判定一或多個可能組之設計參數值。舉例而言,系統可執行隨機搜尋、窮舉搜尋或起源搜尋(genetic search)演算法。
設計參數集之一個實例範圍可為用於製造一硬體組件之5個群集、20個PE及100個MAC單元陣列。換言之,候選硬體組件可具有範圍從1至5之數量的群集,各群集可具有範圍從1至20之數量的PE,且各PE可具有各具有一各自大小之1至100個MAC單元陣列。系統可使用上述搜尋演算法來產生多個候選硬體架構以從實例範圍搜尋多個可能值,且使用模板來應用各集以實體化一各自硬體組件。舉例而言,系統可從設計參數集之最小值開始,且逐漸增加設計參數之一或多者的值。一旦獲取適於
處理能力要求之一組設計參數值,系統便可停止搜尋。
在一些實施方案中,系統可搜尋與硬體單元陣列之一大小、一PE中之硬體單元陣列之一數量及一群集中之PE之一數量相關聯的參數值,但不搜尋或增加群集之一數量直至判定一轉折點,此處進一步增加硬體單元陣列之大小或每群集之PE之數量將不利地影響運算時脈速率或導致邏輯擁塞,即,硬體單元陣列之大小及每群集之處理單元之數量處於群集之一可擴充性極限。以此方式,系統可配置更多硬體單元及PE,且最小化用於實體化一硬體架構之群集的數量以滿足所需處理能力。
系統針對多個候選硬體架構之各者判定一組效能度量之各自值(850)。使用一效能模型(或一成本模型)針對各候選硬體架構判定效能值組之各自值。效能值各與表示一成本或多個成本之組合之一數值相關聯。成本可表示延時、處理能力、功率消耗、片上面積使用、運算資源使用或其等之任何適合組合之一位準。
效能模型可為用於處理具有一組設計參數值之一硬體架構之任何適合模型。效能模型可為一分析模型、一基於機器學習之模型或一硬體模擬模型,僅舉幾例。
一分析模型通常可判定硬體架構之一拓撲(例如,介面、佈線、運算單元(諸如乘法器、加法器及邏輯單元)之數量),且基於拓撲判定硬體架構之效能值。一個例示性分析模型可為一基於頂線(roofline)之模型,其依據機器峰值效能、機器峰值頻寬及算術強度產生一硬體架構之效能值。基於頂線之模型之輸出可為表示在特定運算要求或資源限制下之硬體架構之一效能上限(upper bound)(例如,「上限(ceiling)」)之一功能曲線。基於頂線之模型可自動判定整體效能之「瓶頸」因素且輸出表示延
時、處理能力或功率消耗或兩者之一位準之效能值,如上文描述。
替代地,一效能模型可為運用經標記訓練樣本(例如,監督式學習)訓練之一機器學習模型。可使用高階合成及暫存器傳送級模擬來產生訓練樣本。經訓練機器學習模型經組態以產生效能值之一預測且可為任何適合機器學習模型,例如,一多層感知器模型。
另外,一效能模型可為一模擬模型。鑑於一或多個隨機化輸入刺激,模擬模型可基於硬體架構之特性而產生功率運算及處理能力之一估計。
系統選擇一候選硬體架構作為硬體組件之硬體架構(860)。更明確言之,系統可至少部分基於效能值來選擇增強硬體架構。如上文描述,硬體架構可為具有最高效能值之一候選硬體架構。替代地,硬體架構可具有不錯的效能值但需要最少運算資源。
系統基於與選定候選硬體架構相關聯之設計參數值來判定值(870)。經判定值可被包含於為使用模板實體化一硬體架構而提供或用於製造一硬體組件之輸出資料中。
可在數位電子電路中、在有形體現之電腦軟體或韌體中、在電腦硬體中(包含本說明書中揭示之結構及其等結構等效物)、或在其等之一或多者之組合中實施本說明書中描述之標的物及功能操作之實施例。本說明書中描述之標的物之實施例可經實施為一或多個電腦程式,例如,在一有形非暫時性儲存媒體上編碼以由資料處理設備執行或控制資料處理設備之操作之電腦程式指令之一或多個模組。電腦儲存媒體可係一機器可讀儲存裝置、一機器可讀儲存基板、一隨機或串列存取記憶體裝置或其等之一或多者之一組合。替代地或另外地,程式指令可在一人工產生之傳播
信號(例如,一機器產生之電氣、光學或電磁信號)上編碼,該信號經產生以對資訊進行編碼以傳輸至適合接收器設備供一資料處理設備執行。
術語「資料處理設備」係指資料處理硬體且涵蓋用於處理資料之全部種類之設備、裝置及機器,包含(藉由實例)一可程式化處理器、一電腦或多個處理器或電腦。設備亦可係或進一步包含專用邏輯電路,例如,一FPGA(場可程式化閘陣列)或一ASIC(特定應用積體電路)。除硬體以外,設備可視情況亦包含創建電腦程式之一執行環境之程式碼,例如,組成處理器韌體、一協定堆疊、一資料庫管理系統、一作業系統或其等之一或多者之一組合之程式碼。
亦可被稱為或描述為一程式、軟體、一軟體應用程式、一應用程式、一模組、一軟體模組、一指令碼或程式碼之一電腦程式可以任何形式之程式設計語言(包含編譯或解釋語言,或宣告式或程序語言)撰寫,且其可以任何形式(包含作為一獨立程式或作為一模組、組件、副常式,或適於用於一運算環境中之其他單元)部署。一程式可能但非必需對應於一檔案系統中之一檔案。一程式可儲存於保存其他程式或資料(例如,儲存於一標記語言文件中之一或多個指令碼)之一檔案之一部分中、儲存於專用於討論中程式之一單一檔案中、或儲存於多個協調檔案(例如,儲存程式碼之一或多個模組、副程式或部分之檔案)中。一電腦程式可經部署以在一個電腦上執行或在定位於一個位點處或跨多個位點分佈且藉由一資料通信網路互連之多個電腦上執行。
一或多個電腦之一系統經組態以執行特定操作或動作意謂系統已在其上安裝在操作中導致系統執行操作或動作之軟體、韌體、硬體或其等之一組合。一或多個電腦程式經組態以執行特定操作或動作意謂一
或多個程式包含在由資料處理設備執行時導致設備執行操作或動作的指令。
如本說明書中使用,一「引擎」或「軟體引擎」係指提供不同於輸入之一輸出之一軟體實施之輸入/輸出系統。一引擎可係一編碼功能性區塊,諸如一程式庫、一平台、一軟體開發工具包(「SDK」)或一物件。可在包含一或多個處理器及電腦可讀媒體之任何適當類型之運算裝置(例如,伺服器、行動電話、平板電腦、筆記型電腦、音樂播放器、電子書閱讀器、膝上型或桌上型電腦、PDA、智慧型電話或其他固定或攜帶式裝置)上實施各引擎。此外,可在同一運算裝置上或在不同運算裝置上實施引擎之兩者或更多者。
可由執行一或多個電腦程式之一或多個可程式化電腦執行本說明書中描述之程序及邏輯流程以藉由對輸入資料進行操作且產生輸出而執行功能。亦可由專用邏輯電路(例如,一FPGA或一ASIC),或藉由專用邏輯電路及一或多個程式化電腦之一組合執行程序及邏輯流程。
適於執行一電腦程式之電腦可基於通用或專用微處理器或兩者,或任何其他種類之中央處理單元。通常,一中央處理單元將接收來自一唯讀記憶體或一隨機存取記憶體或兩者之指令及資料。一電腦之必要元件係用於執行(performing或executing)指令之一中央處理單元及用於儲存指令及資料之一或多個記憶體裝置。中央處理單元及記憶體可藉由專用邏輯電路補充或併入專用邏輯電路中。通常,一電腦亦將包含用於儲存資料之一或多個大容量儲存裝置(例如,磁碟、磁光碟或光碟),或操作地耦合以接收來自該一或多個大容量儲存裝置之資料或將資料傳送至該一或多個大容量儲存裝置或兩者。然而,一電腦未必具有此等裝置。此外,一電
腦可嵌入在另一裝置(例如,一行動電話、一個人數位助理(PDA)、一行動音訊或視訊播放器、一遊戲主控台、一全球定位系統(GPS)接收器或一攜帶式儲存裝置,例如,一通用串列匯流排(USB)快閃隨身碟,僅舉幾例)中。
適於儲存電腦程式指令及資料之電腦可讀媒體包含全部形式之非揮發性記憶體、媒體及記憶體裝置,包含(藉由實例):半導體記憶體裝置,例如,EPROM、EEPROM及快閃記憶體裝置;磁碟,例如,內部硬碟或可移除磁碟;磁光碟;以及CD-ROM及DVD-ROM光碟。
為提供與一使用者的互動,可在具有用於將資訊顯示給使用者之一顯示裝置(例如,一CRT(陰極射線管)或LCD(液晶顯示器)監視器)及一鍵盤及指標裝置(例如,一滑鼠、軌跡球或一存在敏感顯示器或使用者可藉由其提供輸入至電腦之其他表面)之一電腦上實施本說明書中描述之標的物之實施例。亦可使用其他種類之裝置來提供與一使用者的互動;舉例而言,提供給使用者之回饋可係任何形式之感覺回饋,例如,視覺回饋、聽覺回饋或觸覺回饋;且來自使用者之輸入可以任何形式被接收,包含聲學、語音或觸覺輸入。另外,一電腦可藉由將文件發送至由使用者使用之一裝置且接收來自該裝置之文件而與一使用者互動;舉例而言,藉由回應於從一使用者之裝置上之一網頁瀏覽器接收之請求而將網頁發送至網頁瀏覽器。再者,一電腦可藉由將文字訊息或其他形式之訊息發送至運行一傳訊應用程式之一個人裝置(例如,一智慧型電話)且作為回報接收來自使用者之回應訊息而與一使用者互動。
可在一運算系統中實施本說明書中描述之標的物之實施例,該運算系統包含一後端組件(例如,作為一資料伺服器),或包含一中
間組件(例如,一應用程式伺服器),或包含一前端組件(例如,具有一使用者可透過其與本說明書中描述之標的物之一實施方案互動之一圖形使用者介面、一網頁瀏覽器或一應用程式之一用戶端電腦),或一或多個此等後端組件、中間組件或前端組件之任何組合。系統之組件可藉由任何形式或介質之數位資料通信(例如,一通信網路)互連。通信網路之實例包含一區域網路(LAN)及一廣域網路(WAN),例如,網際網路。
運算系統可包含用戶端及伺服器。一用戶端及伺服器通常遠離彼此且通常透過一通信網路互動。用戶端及伺服器之關係憑藉在各自電腦上運行且具有相對於彼此之一用戶端-伺服器關係之電腦程式而產生。在一些實施例中,一伺服器將資料(例如,一HTML頁面)傳輸至一使用者裝置,例如,用於將資料顯示給與充當一用戶端之裝置互動之一使用者且接收來自該使用者之使用者輸入之目的。可在伺服器處從裝置接收使用者裝置處產生之資料(例如,使用者互動之結果)。
除上文描述之實施例以外,以下實施例亦係創新性的:實施例1係一種方法,其包含:接收表示用於針對經組態以對各自串流輸入資料執行操作之硬體組件產生硬體架構之一硬體架構模板之資料,其中該硬體架構模板包含一可組態設計參數集,其包含以下項之兩個或更多個:(i)一硬體架構中之群集之一數量;(ii)各群集中之處理單元之一數量;及(iii)各處理單元中之一硬體單元陣列之一大小;至少部分基於一給定硬體組件之該各自串流輸入資料之特性而針對該給定硬體組件之一給定硬體架構判定該可組態設計參數集之值,該判定包含:基於該可組態設計參數集之一搜尋空間而使用該硬體架構模板來產生該給定硬體組件之複數個候選硬體架構,其中各候選硬體架構包含該可組態設計參數
集之各自設計參數值;基於一效能模型及該給定硬體組件之該各自串流輸入資料之該等特性而針對該複數個候選硬體架構之各者判定與該候選硬體架構相關聯之一組效能度量之各自值;至少部分基於該組效能度量之該等各自值而從該複數個候選硬體架構選擇一候選硬體架構作為該給定硬體架構;及判定與該選定候選硬體架構相關聯之設計參數值作為該給定硬體架構之該可組態設計參數集之該等值;及產生指示該給定硬體架構之該設計參數集之該等值之輸出資料。
實施例2係實施例1之方法,其進一步包含:將該輸出資料提供至該硬體架構模板;基於該給定硬體架構之該設計參數集之該等值而實體化該給定硬體架構;及基於該給定硬體架構而製造該給定硬體組件。
實施例3係實施例1或2之方法,其中該給定硬體組件之該各自串流輸入資料之該等特性包含該給定硬體組件之該各自串流輸入資料之各訊框之一抵達率及各訊框之一大小。
實施例4係實施例1至3中任一項之方法,其中該組效能度量包含以下項之至少一者之度量:延時、功率消耗、資源使用或用於處理該給定硬體組件之該各自串流輸入資料之處理能力,其中該效能模型包含一分析成本模型、一機器學習成本模型或一硬體模擬模型之至少一者。
實施例5係實施例1至4中任一項之方法,其中該給定硬體組件之該各自串流輸入資料包括藉由一影像感測器根據一時間序列收集之串流影像圖框。
實施例6係實施例5之方法,其中該等串流影像圖框之特性包括影像圖框之一特定抵達率及該等影像圖框之各者之一各自影像解析度之至少一者。
實施例7係實施例5之方法,其中該等串流影像圖框之特性包括包含一垂直遮沒週期或一水平遮沒週期之至少一者之一遮沒週期。
實施例8係實施例5之方法,其中該等串流影像圖框之特性包括一像素格式,其中該像素格式包括一RGB或YUV色彩格式。
實施例9係實施例1至8中任一項之方法,其中該給定硬體組件之該各自串流輸入資料包括藉由一音訊感測器收集之串流音訊。
實施例10係實施例9之方法,其中該串流輸入資料之特性包括該串流音訊之一特定取樣率、該串流音訊之一位元深度、該串流音訊之一位元率或該串流音訊之一音訊格式之至少一者。
實施例11係實施例1至10中任一項之方法,其中使用該給定硬體組件對該各自串流輸入資料執行操作包含:對於該串流輸入資料之各訊框:將該訊框之一輸入向量分段成各包含該輸入向量之非重疊值之複數個部分向量;及對於該複數個部分向量之各部分向量,將該部分向量指派至複數個群集之一各自群集,其等各具有一各自數量之處理單元且各處理單元具有對應於該給定硬體架構之該設計參數集之該等值之一各自大小之一硬體單元陣列;藉由該各自群集將該部分向量之各值與儲存於記憶體中之一矩陣之一部分列之一對應值相乘以產生一各自部分和;及將該各自部分和儲存於一累加器陣列中。
實施例12係實施例11之方法,其中使用該給定硬體組件對該給定硬體組件之該各自串流輸入資料執行操作包含基於儲存於記憶體中之該矩陣之一稀疏性位準而執行該等操作。
實施例13係實施例1至12中任一項之方法,其中在一密集矩陣模式與一稀疏矩陣模式之間切換該等執行操作,其中藉由一控制及狀
態(CSR)暫存器控制該切換程序。
實施例14係實施例11之方法,其中在一稀疏矩陣模式下執行產生儲存於記憶體中之該矩陣之該部分列之該等對應值時,且其中該產生進一步包含:判定儲存於記憶體中之該矩陣之該部分列中之非零值;產生指示該矩陣中之該部分列之該等非零值之位置的識別符,其中該等識別符包含索引或位元圖;及產生與對應識別符相關聯之非零值之一壓縮向量作為該矩陣之該部分列之該等對應值。
實施例15係實施例14之方法,其進一步包含:基於該等對應識別符而選擇對應於該壓縮向量之該部分向量之值;及將該部分向量之該等選定值之各者與該壓縮向量之一對應非零值相乘。
實施例16係實施例1至15中任一項之方法,其中該給定硬體架構包含指示儲存於記憶體中之一或多個矩陣之一上限稀疏性位準之資料,其中該給定硬體架構經組態以動態地重新實體化以運用該一或多個矩陣之具有不同於該一或多個矩陣之一第一矩陣之一稀疏性位準之一第二矩陣來處理該串流輸入資料。
實施例17係實施例1至16中任一項之方法,其中基於該可組態設計參數集之該搜尋空間使用該硬體架構模板產生該複數個候選硬體架構包含使用以下項之至少一者來探索該設計參數集之該搜尋空間:一隨機搜尋演算法、一窮盡搜尋演算法,或一起源演算法。
實施例18係實施例1至17中任一項之方法,其中探索該可組態設計參數集之該搜尋空間包含:探索對應於各處理單元中之一硬體單元陣列之該大小及一群集中之處理單元之該數量之設計參數值;判定對應於該硬體單元陣列之該大小及該群集中之處理單元之該數量之該等設計參
數值處於該群集之一可擴充性極限;及作為回應,探索對應於群集之該數量之設計參數值。
實施例19係一種包含一或多個電腦及儲存指令之一或多個儲存裝置的系統,該等指令可操作以在由該一或多個電腦執行時導致該一或多個電腦執行實施例1至18中任一項之方法。
實施例20係一種編碼有一電腦程式之電腦儲存媒體,該程式包含可操作以在由資料處理設備執行時導致該資料處理設備執行實施例1至18中任一項之方法的指令。
雖然本說明書含有許多特定實施方案細節,但此等不應被解釋為對任何發明之範疇或對可主張之內容之範疇之限制,而係被解釋為可能特定於特定發明之特定實施例之特徵之描述。本說明書中在分開的實施例之背景內容中描述之某些特徵亦可在一單一實施例中組合實施。相反地,在一單一實施例之背景內容中描述之各種特徵亦可在多個實施例中分開地或以任何適合子組合實施。此外,儘管特徵在上文可被描述為以某些組合起作用且甚至最初如此主張,然來自一所主張組合之一或多個特徵在一些情況中可從該組合刪除,且所主張組合可能係關於一子組合或一子組合之變化例。
類似地,雖然在圖式中以一特定順序描繪操作,但此不應被理解為要求以所展示之特定順序或以循序順序執行此等操作,或執行全部所繪示操作以達成所要結果。在某些境況中,多任務及平行處理可係有利的。此外,上文描述之實施例中之各種系統模組及組件之分離不應被理解為在全部實施例中要求此分離,且應瞭解,所描述之程式組件及系統通常可一起整合於一單一軟體產品中或封裝至多個軟體產品中。
已描述標的物之特定實施例。其他實施例在以下發明申請專利範圍之範疇內。舉例而言,發明申請專利範圍中敘述之動作可按一不同順序執行且仍達成所要結果。作為一個實例,附圖中描繪之程序不一定要求所展示之特定順序,或循序順序以達成所要結果。在特定情況中,多任務及平行處理可係有利的。
100:架構設計系統
110:輸入資料
120:架構增強子系統
130:增強引擎
140:候選者產生器
145:候選架構
150:分析引擎
155:效能值
160:選擇引擎
170:輸出資料
175:製造系統
185:效能模型
190:記憶體單元
195:架構模板
Claims (20)
- 一種用於判定針對經組態以處理串流輸入資料之一硬體架構(hardware architectures)之設計參數值之方法,該方法包括:接收表示用於針對硬體組件(hardware components)而產生硬體架構之一硬體架構模板的資料,該等硬體組件經組態以對各自串流輸入資料執行操作,其中該硬體架構模板包括一可組態設計參數集,其包括以下項之兩個或更多個:(i)一硬體架構中之群集之一數量;(ii)各群集中之處理單元之一數量;及(iii)各處理單元中之一硬體單元陣列之一大小;至少部分基於一給定硬體組件之該各自串流輸入資料的特性,而針對該給定硬體組件之一給定硬體架構判定該可組態設計參數集的值,該判定包括:基於該可組態設計參數集之一搜尋空間而使用該硬體架構模板來產生該給定硬體組件之複數個候選硬體架構,其中各候選硬體架構包括該可組態設計參數集之各自設計參數值;基於一效能模型及該給定硬體組件之該各自串流輸入資料之該等特性,而針對該複數個候選硬體架構之各者判定與該候選硬體架構相關聯之一組效能度量(a set of performance measures)的各自值;至少部分基於該組效能度量之該等各自值,而從該複數個候選硬體架構選擇一候選硬體架構作為該給定硬體架構;及判定與該選定候選硬體架構相關聯之設計參數值作為該給定硬體架構之該可組態設計參數集的該等值;及產生指示該給定硬體架構之該設計參數集之該等值的輸出資料。
- 如請求項1之方法,進一步包括:將該輸出資料提供至該硬體架構模板;基於該給定硬體架構之該設計參數集之該等值來實體化該給定硬體架構;及基於該給定硬體架構來製造該給定硬體組件。
- 如請求項1之方法,其中該給定硬體組件之該各自串流輸入資料之該等特性包括該給定硬體組件之該各自串流輸入資料之各訊框之一抵達率及各訊框之一大小。
- 如請求項1之方法,其中該組效能度量包括以下項中之至少一者的度量:延時、功率消耗、資源使用,或用於處理該給定硬體組件之該各自串流輸入資料的處理能力,其中該效能模型包括一分析成本模型、一機器學習成本模型或一硬體模擬模型之至少一者。
- 如請求項1之方法,其中該給定硬體組件之該各自串流輸入資料包括藉由一影像感測器,根據一時間序列收集之串流影像圖框。
- 如請求項5之方法,其中該等串流影像圖框之特性包括影像圖框之一特定抵達率及該等影像圖框之各者之一各自影像解析度中之至少一者。
- 如請求項5之方法,其中該等串流影像圖框之特性包括包含一垂直遮 沒週期或一水平遮沒週期之至少一者的一遮沒週期。
- 如請求項5之方法,其中該等串流影像圖框之特性包括一像素格式,其中該像素格式包括一RGB或YUV色彩格式。
- 如請求項1之方法,其中該給定硬體組件之該各自串流輸入資料包括藉由一音訊感測器收集之串流音訊。
- 如請求項9之方法,其中該串流輸入資料之特性包括該串流音訊之一特定取樣率、該串流音訊之一位元深度、該串流音訊之一位元率或該串流音訊之一音訊格式之至少一者。
- 如請求項1之方法,其進一步包括使用該給定硬體組件對該各自串流輸入資料執行操作,該等操作包括:對於該串流輸入資料之各訊框:將該訊框之一輸入向量分段成各包含該輸入向量之非重疊值的複數個部分向量;及對於該複數個部分向量之各部分向量,將該部分向量指派至複數個群集之一各自群集,其等各具有一各自數量之處理單元且各處理單元具有對應於該給定硬體架構之該設計參數集之該等值之一各自大小的一硬體單元陣列;藉由該各自群集,將該部分向量之各值與經儲存於記憶體中之一矩陣之一部分列之一對應值相乘以產生一各自部分和;及 將該各自部分和儲存於一累加器陣列中。
- 如請求項11之方法,其中使用該給定硬體組件對該給定硬體組件之該各自串流輸入資料執行操作包括基於經儲存於記憶體中之該矩陣之一稀疏性位準來執行該等操作。
- 如請求項1之方法,其中在一密集矩陣模式與一稀疏矩陣模式之間切換該等執行操作,其中藉由一控制及狀態(CSR)暫存器來控制該切換程序。
- 如請求項11之方法,其中在一稀疏矩陣模式下執行產生經儲存於記憶體中之該矩陣之該部分列的該等對應值時,且其中該產生進一步包括:判定經儲存於記憶體中之該矩陣之該部分列中的非零值;產生指示該矩陣中之該部分列之該等非零值之位置的識別符,其中該等識別符包括索引或位元圖;及產生與對應識別符相關聯之非零值之一壓縮向量作為該矩陣之該部分列的該等對應值。
- 如請求項14之方法,進一步包括:基於該等對應識別符來選擇對應於該壓縮向量之該部分向量的值;及將該部分向量之該等選定值之各者與該壓縮向量之一對應非零值相乘。
- 如請求項1之方法,其中該給定硬體架構包括指示經儲存於記憶體中之一或多個矩陣之一上限稀疏性位準的資料,其中該給定硬體架構經組態以動態地重新實體化以運用該一或多個矩陣之具有不同於該一或多個矩陣之一第一矩陣之一稀疏性位準的一第二矩陣來處理該串流輸入資料。
- 如請求項1之方法,其中基於該可組態設計參數集之該搜尋空間使用該硬體架構模板來產生該複數個候選硬體架構包括使用以下項中之至少一者來探索該設計參數集之該搜尋空間:一隨機搜尋演算法、一窮盡搜尋演算法,或一起源演算法。
- 如請求項1之方法,其中探索該可組態設計參數集之該搜尋空間包括:探索對應於各處理單元中之一硬體單元陣列之該大小及一群集中之處理單元之該數量的設計參數值;判定對應於該硬體單元陣列之該大小及該群集中之處理單元之該數量之該等設計參數值處於該群集的一可擴充性極限;及作為回應,探索對應於群集之該數量的設計參數值。
- 一或多個電腦可讀儲存媒體,其或其等儲存指令,該等指令在由一或多個電腦執行時導致該一或多個電腦執行如請求項1至18中任一項的各自操作。
- 一種用於判定用於經組態以處理串流輸入資料之一硬體架構之設計參數值之系統,該系統包括一或多個電腦及儲存指令之一或多個儲存裝置,該等指令在由一或多個電腦執行時導致該一或多個電腦執行如請求項1至18中任一項的各自操作。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
WOPCT/US21/62817 | 2021-12-10 | ||
PCT/US2021/062817 WO2023107119A1 (en) | 2021-12-10 | 2021-12-10 | Scalable hardware architecture template for processing streaming input data |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202324087A TW202324087A (zh) | 2023-06-16 |
TWI829208B true TWI829208B (zh) | 2024-01-11 |
Family
ID=80112132
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111123650A TWI829208B (zh) | 2021-12-10 | 2022-06-24 | 用於判定用於處理串流輸入資料之硬體架構之設計參數值之方法及系統及電腦可讀儲存媒體 |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP4384932A1 (zh) |
KR (1) | KR20240056563A (zh) |
CN (1) | CN118056203A (zh) |
TW (1) | TWI829208B (zh) |
WO (1) | WO2023107119A1 (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200511113A (en) * | 2003-08-18 | 2005-03-16 | Nvidia Corp | Adaptive load balancing in a multi-processor graphics processing system |
US7305649B2 (en) * | 2005-04-20 | 2007-12-04 | Motorola, Inc. | Automatic generation of a streaming processor circuit |
TW200813705A (en) * | 2005-12-27 | 2008-03-16 | Sony Corp | Information processing apparatus, information processing method and program |
TW201814512A (zh) * | 2016-10-04 | 2018-04-16 | 聯發科技股份有限公司 | 基於場景的電子設備性能和功率管理方法及裝置 |
US20180189032A1 (en) * | 2016-12-30 | 2018-07-05 | Eriko Nurvitadhi | Apparatus and method for processing sparse data |
US20190050968A1 (en) * | 2016-05-10 | 2019-02-14 | Olympus Corporation | Image processing device, image processing method, and non-transitory computer readable medium storing image processing program |
US20190355091A1 (en) * | 2018-05-17 | 2019-11-21 | Intel Corporation | Tile-based multiple resolution rendering of images |
US20200280739A1 (en) * | 2017-11-21 | 2020-09-03 | Immersive Robotics Pty Ltd | Image Compression For Digital Reality |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10394991B2 (en) * | 2016-10-06 | 2019-08-27 | Altera Corporation | Methods and apparatus for dynamically configuring soft processors on an integrated circuit |
-
2021
- 2021-12-10 WO PCT/US2021/062817 patent/WO2023107119A1/en active Application Filing
- 2021-12-10 CN CN202180102947.1A patent/CN118056203A/zh active Pending
- 2021-12-10 EP EP21841072.8A patent/EP4384932A1/en active Pending
- 2021-12-10 KR KR1020247010747A patent/KR20240056563A/ko unknown
-
2022
- 2022-06-24 TW TW111123650A patent/TWI829208B/zh active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200511113A (en) * | 2003-08-18 | 2005-03-16 | Nvidia Corp | Adaptive load balancing in a multi-processor graphics processing system |
US7305649B2 (en) * | 2005-04-20 | 2007-12-04 | Motorola, Inc. | Automatic generation of a streaming processor circuit |
TW200813705A (en) * | 2005-12-27 | 2008-03-16 | Sony Corp | Information processing apparatus, information processing method and program |
US20190050968A1 (en) * | 2016-05-10 | 2019-02-14 | Olympus Corporation | Image processing device, image processing method, and non-transitory computer readable medium storing image processing program |
TW201814512A (zh) * | 2016-10-04 | 2018-04-16 | 聯發科技股份有限公司 | 基於場景的電子設備性能和功率管理方法及裝置 |
US20180189032A1 (en) * | 2016-12-30 | 2018-07-05 | Eriko Nurvitadhi | Apparatus and method for processing sparse data |
US20200280739A1 (en) * | 2017-11-21 | 2020-09-03 | Immersive Robotics Pty Ltd | Image Compression For Digital Reality |
US20190355091A1 (en) * | 2018-05-17 | 2019-11-21 | Intel Corporation | Tile-based multiple resolution rendering of images |
Also Published As
Publication number | Publication date |
---|---|
CN118056203A (zh) | 2024-05-17 |
TW202324087A (zh) | 2023-06-16 |
KR20240056563A (ko) | 2024-04-30 |
WO2023107119A1 (en) | 2023-06-15 |
EP4384932A1 (en) | 2024-06-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102434726B1 (ko) | 처리방법 및 장치 | |
US20230350351A1 (en) | Computer-implemented perceptual apparatus | |
Mazumder et al. | A survey on the optimization of neural network accelerators for micro-ai on-device inference | |
CN111652368A (zh) | 一种数据处理方法及相关产品 | |
US11567770B2 (en) | Human-machine-interface system comprising a convolutional neural network hardware accelerator | |
Daghero et al. | Energy-efficient deep learning inference on edge devices | |
Lin et al. | Tiny machine learning: progress and futures [feature] | |
Liu et al. | AdaSpring: Context-adaptive and runtime-evolutionary deep model compression for mobile applications | |
US20210182670A1 (en) | Method and apparatus with training verification of neural network between different frameworks | |
Liu et al. | AdaDeep: A usage-driven, automated deep model compression framework for enabling ubiquitous intelligent mobiles | |
US20230267307A1 (en) | Systems and Methods for Generation of Machine-Learned Multitask Models | |
JP2022546271A (ja) | カーネルチューニングパラメータを予測するための方法及び装置 | |
US11948090B2 (en) | Method and apparatus for video coding | |
US20230359862A1 (en) | Systems and Methods for Machine-Learned Models Having Convolution and Attention | |
JP7317979B2 (ja) | ピラミッドレイヤのアーキテクチャを生成するためのシステムおよび方法 | |
TWI829208B (zh) | 用於判定用於處理串流輸入資料之硬體架構之設計參數值之方法及系統及電腦可讀儲存媒體 | |
US20230206113A1 (en) | Feature management for machine learning system | |
US20230419082A1 (en) | Improved Processing of Sequential Data via Machine Learning Models Featuring Temporal Residual Connections | |
Kandaswamy et al. | Real-time hyper-dimensional reconfiguration at the edge using hardware accelerators | |
CN115803753A (zh) | 用于高效推理的多阶段机器学习模型合成 | |
CN117063208A (zh) | 无监督多模型联合推理系统和方法 | |
CN115409150A (zh) | 一种数据压缩方法、数据解压方法及相关设备 | |
KR102429804B1 (ko) | 인공지능 모델의 필터 변환을 위한 전자 장치의 제어 방법 및 프로그램 | |
KR20240111317A (ko) | 효율적인 객체 감지를 위한 입력 단위 네트워크 양자화 방법을 수행하는 영상인식장치 | |
KR20230123309A (ko) | 프루닝 방법 및 장치 |