TW202314571A - 用於在特殊處理區塊中的稀疏性操作之系統及方法 - Google Patents
用於在特殊處理區塊中的稀疏性操作之系統及方法 Download PDFInfo
- Publication number
- TW202314571A TW202314571A TW111131715A TW111131715A TW202314571A TW 202314571 A TW202314571 A TW 202314571A TW 111131715 A TW111131715 A TW 111131715A TW 111131715 A TW111131715 A TW 111131715A TW 202314571 A TW202314571 A TW 202314571A
- Authority
- TW
- Taiwan
- Prior art keywords
- sum
- values
- configurable
- multipliers
- value
- Prior art date
Links
- 238000012545 processing Methods 0.000 title claims abstract description 56
- 238000000034 method Methods 0.000 title claims description 16
- 239000013598 vector Substances 0.000 description 55
- 238000010586 diagram Methods 0.000 description 34
- 238000007906 compression Methods 0.000 description 15
- 230000006835 compression Effects 0.000 description 15
- 238000007667 floating Methods 0.000 description 14
- 239000011159 matrix material Substances 0.000 description 14
- 238000013473 artificial intelligence Methods 0.000 description 13
- 238000010801 machine learning Methods 0.000 description 8
- 230000004913 activation Effects 0.000 description 7
- 238000001994 activation Methods 0.000 description 7
- 238000009825 accumulation Methods 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 6
- 238000013461 design Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 239000004065 semiconductor Substances 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013144 data compression Methods 0.000 description 2
- 238000000354 decomposition reaction Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 239000004744 fabric Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000003909 pattern recognition Methods 0.000 description 2
- 230000036316 preload Effects 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000001568 sexual effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
- G06F7/5443—Sum of products
-
- 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/50—Adding; Subtracting
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
- Logic Circuits (AREA)
Abstract
本揭露係針對一種數位信號處理(DSP)區塊,其包括可組配以接收並儲存第一複數個值之多個權重暫存器,以及各自可組配以接收該等第一複數個值中之一各別值之多個乘法器。該DSP區塊進一步包括一或多個輸入,該一或多個輸入可組配以接收第二複數個值,及一多工器網路,該多工器網路可組配以接收該等第二複數個值且將該等第二複數個值中之各個各別值路由安排至該等乘法器中之一乘法器。該等乘法器可組配以將該等第一複數個值中之各個值與該等第二複數個值中之一各別值同時相乘,以產生複數個乘積。另外,該DSP區塊包括可組配以基於該等複數個乘積來產生一第一總和及一第二總和之加法器電路系統。
Description
本發明係有關於用於在特殊處理區塊中的稀疏性操作之系統及方法。
發明背景
本揭露大體上係有關於積體電路(IC)裝置,諸如可規劃邏輯裝置(PLD)。更特定而言,本揭露係有關於可包括於一積體電路裝置上之一處理區塊(例如,一數位信號處理(DSP)區塊)以及可利用該處理區塊執行之應用程式。
本章節旨在向讀者介紹可能與本揭露之各種態樣有關的技術之各種態樣,該等態樣係於下文描述及/或主張。相信此討論有利於為讀者提供背景資訊,以促進更好地理解本揭露之各種態樣。據此,可理解的是,此類陳述應從此角度解讀,而非承認先前技術。
積體電路裝置可用於多種目的或應用,例如機器學習或人工智慧(AI)應用。在一些狀況下,機器學習及AI架構可使用對應於多個稀疏性比之稀疏性方案。稀疏性係指用於計算之數個值中之一些值為零的處理。舉例而言,用於一AI應用程式中的一稀疏矩陣可含有許多零。實際上,為了更有效地執行乘法運算,實施稀疏性操作已經變得更加普遍。然而,相對於其他類型的積體電路裝置,可規劃邏輯裝置可能無法有效地實施AI架構。
依據本發明之一實施例,係特地提出一種數位信號處理(DSP)區塊,其包含:複數個權重暫存器,其可組配以接收並儲存第一複數個值;複數個乘法器,其中該等複數個乘法器中之各個各別乘法器可組配以接收該等第一複數個值中之一各別值;一或多個輸入,其可組配以接收第二複數個值;一多工器網路,其可組配以接收該等第二複數個值且將該等第二複數個值中之各個各別值路由安排至該等複數個乘法器中之一乘法器,其中該等複數個乘法器可組配以將該等第一複數個值中之每一值同時乘以該等第二複數個值中之一各別值來產生複數個乘積;以及加法器電路系統,其可組配以基於該等複數個乘積來產生一第一總和及一第二總和。
較佳實施例之詳細說明
下文將描述一或多個特定實施例。為了提供此等實施例之精確描述,並非實際實施方案之所有特徵均描述於本說明書中。應瞭解,在任何此種實際實施方案之開發中,如在任何工程或設計項目中,必須進行許多實施方式專用決策以達成開發者之特定目標,諸如符合系統相關及與企業相關的約束,該等約束可能因不同實施方案而不同。此外,應瞭解,此類開發工作可為複雜且耗時的,但對於受益於本揭露的普通技藝者而言,將仍為一項設計、製作及製造之例行程序。
當引入本揭露之各種實施例的元件時,冠詞「一」及「該」意欲表示存在一或多個該等元件。用語「包括」及「具有」意欲為包括性的,且表示除所列出之元件以外,還可有額外元件。此外,應該理解的是,提及本揭露的「一些實施例」、「數個實施例」、「一個實施例」或「一實施例」並不旨在被解釋為排除額外實施例的存在,該等額外實施例也併入所敘述之特徵。此外,片語A「基於」B意欲表示A至少部分基於B。此外,用語「或」意欲為包括性的(例如,邏輯的OR)且非排他性的(例如,邏輯的XOR)。換言之,片語A「或」B意欲表示A、B或者A及B兩者。
隨著機器學習及人工智慧應用已變得更加盛行,人們對執行機器學習及人工智慧應用中所使用之計算之電路系統的渴望越來越大。為實現硬體設計中之效率,亦可能需要相同電路系統以擴充數位信號處理(DSP)區塊功能性以實施稀疏性操作。本技術係有關於可包括於一FPGA中且使用最小路由資源來實施稀疏性模式(例如,使用多個稀疏性比)的一DSP區塊之實施例。一般而言,一DSP區塊為可用於積體電路裝置中之電路系統的一類型,其包括諸如現場可規劃閘陣列(FPGA)之可規劃邏輯裝置,用以執行乘法、累積及加法運算。因此,儘管以下討論可能討論在一FPGA的上下文中之一DSP區塊或由一DSP區塊所執行的操作,應當注意的是,本文所述之技術可被實現於其他類型的積體電路裝置及可規劃邏輯裝置中。
本文所述之DSP區塊可利用FPGA之靈活性來適應新出現的演算法或修復所計劃實施中之錯誤。AI FPGA可延伸張量行以藉由實施可被分解成子行之張量行來執行稀疏性操作。該等張量行可包括對應於某些多工器型樣之多階層縱橫式架構,該等多工器型樣可被應用於該等子行之不同啟動輸入,以根據該DSP區塊之該稀疏性模式(例如,2:4、4:8)選擇輸入。另外,該等稀疏性操作可包括使用該DSP區塊之該等張量行內之多工器型樣,以使得能夠將暫存器輸入路由安排至該DSP區塊內之多個乘法器。此外,該DSP區塊可使用跨多個DSP區塊的啟動廣播以及將輸出值自一個DSP區塊串接至另一DSP區塊,從而執行大量計算。該等稀疏性操作可涉及串接資料,所述串接資料包括跨越DSP區塊來自每一張量行之兩個輸出,藉此使得較大值稀疏性計算能夠待使用該等DSP區塊予以執行。
當該等張量行經組配以在稀疏性模式下操作時,當前所述之技術亦增加該等張量行每秒可執行的浮點計算之數目(例如TFLOPS)。該等張量行可能夠實施多個稀疏性比,且一或多個DSP區塊可在稀疏性模式下操作且將該等操作之結果串接至其他DSP區塊。本文所述之技術亦可將稀疏性延伸至具有小路由窗口之張量結構。
考慮到這一點,圖1例示出可使用一DSP區塊來實施算術運算的一系統10之一方塊圖。設計者可能希望在一積體電路裝置12(諸如現場可規劃閘陣列(FPGA)或一應用特定積體電路(ASIC))上實施,諸如但不限於,機器學習或AI操作的功能性。在一些狀況中,設計者可指定要實施之高階程式,諸如OpenCL程式,其可使設計者能夠更有效率地且更容易地提供程式設計指令來為積體電路裝置12組配一組可規劃邏輯胞元,而不需要低階硬體描述語言(例如,Verilog或VHDL)之具體知識。舉例而言,由於OpenCL與其他高階程式設計語言,諸如C++,相當類似,熟悉此類程式設計語言之可規劃邏輯之設計者,相比於需要學習不熟悉的低階硬體描述語言以在積體電路裝置12中實施新功能性的設計者,可具有減低的學習曲線。
設計者可使用設計軟體14,諸如由英特爾公司所做之Intel ® Quality ®之版本,來實施他們的高階設計。設計軟體14可使用一編譯器16將高階程式轉換成一較低階描述。編譯器16可將表示高階程式之機器可讀指令提供至一主機18及積體電路裝置12。主機18可接收可由核心程式20實施之一主機程式22。為了實施主機程式22,主機18可經由一通訊鏈路24將指令從主機程式22傳達至積體電路裝置12,該通訊鏈路可為例如直接記憶體存取(DMA)通訊或快速周邊組件互連(PCIe)通訊。在一些實施例中,核心程式20及主機18可實現積體電路裝置12上之一或多個DSP區塊26的組配。DSP區塊26可包括用以實施例如執行AI或非AI資料處理之矩陣矩陣或矩陣向量乘法之操作的電路系統。積體電路裝置12可包括許多(例如,數百或數千個)DSP區塊26。另外,DSP區塊26可通訊地耦接至另一DSP區塊,使得自一個DSP區塊26輸出之資料可被提供至其他DSP區塊26。
雖然前文討論的技術是針對高階程式的應用而描述,在一些實施例中,設計者可使用設計軟體14以產生及/或指定一低階程式,諸如上文所述之低階硬體描述語言。此外,在一些實施例中,系統10可在無單獨的主機程式22之情況下實施。此外,在一些實施例中,本文所述之技術可在電路系統中實施為非可規劃電路設計。本文所述之實施例意欲為例示性而非限制性。
現在轉向對積體電路裝置12的更詳細討論,圖2將積體電路裝置12的一範例繪示作為一可規劃邏輯裝置,諸如現場可規劃閘陣列(FPGA)。另外,應理解的是,積體電路裝置12可為任何其他合適類型的積體電路裝置(例如,應用特定積體電路及/或應用特定標準產品)。如所示,積體電路裝置12可具有輸入/輸出電路系統42,該輸入/輸出電路系統經由輸入/輸出接腳44用以驅動信號離開裝置且用以自其他裝置接收信號。互連資源46,諸如全域及局部垂直與水平導線及匯流排,可用以路由安排積體電路裝置12上的信號。另外,互連資源46可包括固定互連件(導線)及可規劃互連件(例如,各別固定互連件之間的可規劃連接件)。可規劃邏輯48可包括組合式及循序式邏輯電路系統。舉例而言,可規劃邏輯48可包括查找表、暫存器及多工器。在各種實施例中,可規劃邏輯48可組配以執行一客製化邏輯功能。與互連資源相關聯之可規劃互連件可被視為可規劃邏輯48之一部分。
諸如積體電路裝置12之可規劃邏輯裝置可含有在可規劃邏輯48內的可規劃元件50。舉例而言,如上所述,設計者(例如客戶)可規劃(例如組配)可規劃邏輯48以執行一或多個所需功能。舉例來說,一些可規劃邏輯裝置可藉由使用遮罩規劃布置來組配其可規劃元件50來規劃,該遮罩規劃布置係在半導體製造期間進行。其他可規劃邏輯裝置係在已完成半導體製造操作之後組配,諸如藉由使用電氣規劃或雷射規劃來規劃其可規劃元件50。一般而言,可規劃元件50可基於任何合適的可規劃技術,諸如熔絲、反熔絲、電氣可規劃唯讀記憶體技術、隨機存取記憶體胞元、遮罩規劃元件等。
許多可規劃邏輯裝置係電氣規劃的。藉由電氣規劃布置,可規劃元件50可自一或多個記憶體胞元形成。舉例而言,在規劃期間,使用接腳44及輸入/輸出電路系統42將組態資料載入至記憶體胞元中。在一個實施例中,該等記憶體胞元可實施作為隨機存取記憶體(RAM)胞元。基於本文所述之RAM技術之記憶體胞元的使用僅意欲作為一個範例。此外,因為此等RAM胞元在規劃期間載入有組態資料,所以該等RAM胞元有時被稱作組態RAM胞元(CRAM)。此等記憶體胞元可各自提供一對應靜態控制輸出信號,該對應靜態控制輸出信號控制可規劃邏輯48中之一相關聯邏輯組件之狀態。例如,在一些實施例中,該等輸出信號可被施加至可規劃邏輯48內之金屬氧化物半導體(MOS)電晶體的閘極。
在牢記前述內容之情況下,此處所論述之DSP區塊26可用於多種應用,且用以執行與該等應用相關聯之許多不同操作,諸如乘法及加法。舉例而言,矩陣及向量(例如,矩陣矩陣、矩陣向量、向量向量)乘法運算可良好地適於AI及數位信號處理應用兩者。如下所述,DSP區塊26可藉由將一或多個列之資料乘以一或多個行資料來同時計算許多乘積(例如,點乘積)。在描述DSP區塊26之電路系統之前,為了幫助提供DSP區塊26可執行之操作之一概述,提供了圖3。特別是,圖3是DSP區塊26可執行之一程序70的一流程圖,例如對DSP區塊26接收到的資料來確定輸入資料的乘積。此外,應注意,針對程序70所述之操作將針對後續圖式更詳細地討論。
在處理區塊72,DSP區塊26接收資料。該資料可包括將被相乘之值。該資料可包括定點及浮點資料類型。在一些實施例中,該資料可為共用一共同指數之定點資料類型。另外,該資料可為已針對定點值(例如,共用一共同指數值之定點值)轉換之浮點值。如下文針對包括於DSP區塊26中之電路系統所更詳細描述,該等輸入可包括:將被儲存於包括於DSP區塊26中之權重暫存器中的資料;以及將由儲存於該等權重暫存器中之值相乘的值。
在處理區塊74處,DSP區塊26可將所接收資料(例如,該資料之一部分)相乘,以產生乘積。舉例而言,該等乘積可為與數個資料行相關聯之子集乘積(例如,作為確定一矩陣乘法運算中之一或多個部分乘積的一部分而確定之乘積),該等數個資料行係被乘以DSP區塊26所接收到之資料。舉例而言,當將兩個矩陣相乘時,一個矩陣之一列的值可乘以另一矩陣之一行的值,以產生該等子集乘積。
在處理區塊76,DSP區塊26可壓縮該等乘積以產生向量。舉例而言,如下文更詳細所述,許多壓縮階段可被用來產生DSP區塊26加總之向量。
在處理區塊78,DSP區塊26可確定經壓縮資料的總和。舉例而言,對於已被壓縮之一資料行 (例如,成為比子集乘積更少之向量)的子集乘積,可使用DSP區塊26之加法電路系統(例如,一或多個加法器、累加器等)來確定該等子集乘積之總和。可針對每一資料行(或列)確定總和,如下所述,該等資料行(或列)對應於DSP區塊26內之暫存器的行(及列)。另外,應注意,在一些實施例中,在處理區塊78處確定總和之前,DSP區塊26可將定點值轉換成浮點值。
在處理區塊80,DSP區塊26可輸出經確定總和。如下所述,在一些實施例中,可將該等輸出提供至鏈接至DSP區塊26的另一DSP區塊26。
記住圖3之論述,圖4為例示使用DSP區塊26實施之一虛擬頻寬擴展結構100之一方塊圖。虛擬頻寬擴展結構100包括暫存器104之行102,其可儲存DSP區塊26接收之資料值。舉例而言,所接收之資料可為定點值,諸如四位元或八個位元整數值。在其他實施例中,所接收資料可為具有一個至八個整數位元或多於八個整數位元之定點值。另外,所接收之資料可包括一共享指數,在這種狀況中,所接收資料可被視為浮點值。雖然圖中繪示三個行102,但在其他實施例中,可存在少於三個行102或多於三個行102。行102之暫存器104可用以儲存與DSP區塊26所接收之資料的一特定部分相關聯的資料值。舉例而言,當執行矩陣乘法運算時,每一行102可包括對應於一矩陣之一特定行之資料。如下文更詳細所述,可將資料預載到行102中,且該資料可被使用來同時執行多個乘法運算。舉例而言,DSP區塊26所接收到之對應於列106(例如,暫存器104)之資料可被乘以儲存於行102中之值 (使用乘法器108)。更具體地說,在該例示的實施例中,十個資料列可被接收且同時乘以三個行102中之資料,意味著三十筆乘積(例如,子集合乘積)可被計算。應理解,可接收任何合適數目的資料列,且可實行任何數目的乘法器108(例如,8、9、10)以計算一所欲數量的乘積。
舉例而言,當執行矩陣矩陣乘法時,可藉由將所接收資料值乘以儲存於該等行102之該等暫存器104中之資料值,而將相同(數)列或(數)行應用於另一維度的多個扇區。亦即,可預載一矩陣之數個維度中之一個維度的多個向量(例如,儲存於該等行102之該等暫存器104中),且經由DSP區塊26串流傳輸來自另一維度之向量,以與預載值相乘。用以儲存預載值之暫存器104可被稱為「權重暫存器」。據此,在具有三個行102之例示實施例中,針對每一輸入(例如,每一資料列106)至多可同時決定三個獨立點乘積。另外,當DSP區塊26正在使用稀疏性模式時,每一行102可被分解成具有兩個或兩個以上片段之可拆分行,從而可針對三個可拆分行中之每一者的每一輸入同時決定六個獨立(點)乘積。如下所述,此等特徵可用以在實施稀疏性操作的同時將值相乘。此外,如上所述,DSP區塊26亦可針對正接收之資料的共享指數而接收資料(例如,八個資料位元),且當DSP區塊於稀疏性模式下操作時,可提供指定與一特定多工器網路相關聯的一特定多工器控制型樣之資料。這使得所接收資料能夠在DSP區塊26之稀疏性模式操作期間,被路由安排至對應串接資料值,供用於相乘。
每一行102之部分乘積可經壓縮,如由壓縮區塊110所指示,以產生一或多個向量(例如,由暫存器112表示),該等向量可經由進位傳播加法器114相加以產生一或多個值。固定點至浮點轉換電路系統116可將該等值轉換成一浮點格式,諸如如由IEEE標準754提供的一單精度浮點值(例如,FP32),以產生一浮點值(由暫存器118表示)。另外,亦可視需要跨DSP區塊26實施多工器網路電路系統及路由電路系統,以在由每一行102執行之稀疏性模式操作期間對應於稀疏性比。
DSP區塊26可通訊地耦接至其他DSP區塊26,使得DSP區塊26可自其他DSP區塊26接收資料且將資料提供至其他DSP區塊26。舉例而言,DSP區塊26可自另一DSP區塊26接收資料,如由串接暫存器120所指示,其可包括將(例如,經由加法器122)相加以產生(由暫存器124表示之)一值的資料。值可被提供至一多工器選擇電路系統126,其選擇要從DSP區塊26輸出的值或值子集 (例如,提供至可基於所接收資料值而決定針對資料之各行102之一總和的電路系統)。該多工器選擇電路系統126之輸出可為浮點值,諸如FP32值或其他格式之浮點值,諸如bfloat24格式(例如,具有一正負號位元、八個指數位元及十六個隱式(十五個顯式)尾數位元的值)、bfloat16格式(例如,具有一個正負號位元、八個指數位元及七個顯式尾數位元的值)、bfloat20格式(例如,具有一個正負號位元、八個指數位元及十一個顯式位元的值),或任何合適的格式。張量行102中之每一者可再被細分成二個或更多個子張量行且使用乘法器108來產生二個值(例如,乘積或部分乘積),其可各自與經串流傳輸值相加(例如,經由二個加法器122),以產生可被串流傳輸至另一DSP區塊26之兩個值。此可導致六個輸出值從各個DSP區塊26被串接至一後續DSP區塊26(例如,當在一稀疏性模式下操作時)。此可使得DSP區塊26能夠針對大量計算擴展稀疏性模式操作,同時使用最少路由資源。此外,雖然描述六個輸出值從一個DSP區塊26被串接至另一DSP區塊,但可串接不同數量的值,取決於DSP區塊26之操作模式以及將要串接之該等值之類型(例如,FP32值或bfloat24值)。
如上所述,對擴展AI張量處理之DSP區塊26來說,可能是有益的,以還能夠執行稀疏性模式操作。此可包括DSP區塊26執行對應於不同稀疏性比之稀疏性模式操作的能力,其係藉由基於該等稀疏性比來組配張量電路系統以實施特定多工器型樣,以確保輸入值係向下多工以消除零。這使得DSP區塊26能夠對非零值進行計算,而不是在零值上消耗處理能力。另外,使用多工器控制網路操作來實施稀疏性模式操作的能力使得DSP區塊26能夠減少用於稀疏性計算之路由資源的數量。因此,DSP區塊26經由多工器控制網路及路由網路來組配不同稀疏比率的能力提高DSP區塊26的效率。
考慮到前述內容,圖5為根據本揭露之一實施例之DSP區塊26內之單一張量行102的一方塊圖。單一張量行102可為可重新組配以執行對應於多個稀疏性比之稀疏性模式操作。單一張量行102可經劃分為兩個或更多個子行,該等兩個或更多個子行可操作以產生兩個不同點乘積,該等兩個不同點乘積可在稀疏性操作期間被串流傳輸至一或多個額外DSP區塊26中。
單一張量行102可包括權重暫存器104,該等權重暫存器可用以儲存與由DSP區塊26所接收之資料之一特定部分相關聯之資料值,如上所述。舉例而言,當執行矩陣乘法運算時,每一行102可包括對應於一矩陣之一特定行之資料。可將資料預載到欄102之權重暫存器104中,且該資料可被使用來同時執行多個乘法運算。舉例而言,可(使用乘法器108)將由對應於列106之DSP區塊26所接收之資料(例如,暫存器104)乘以儲存於行102中之值。在一些實施例中,單一張量行102可拆分為兩個或更多個子行,以執行稀疏性操作,且同時執行多個乘法運算,其導致來自單一張量行102的兩個單獨(點)乘積輸出。每一行102之部分乘積可經壓縮,如由壓縮區塊110所指示,以產生一或多個向量(例如,由圖4中之暫存器112表示),該等向量可經添加以產生一或多個值。
張量行102之加法器122可將由乘法產生之(點)乘積或子乘積與經由串接暫存器120串流傳輸至DSP區塊26中之一或多個值相加。當DSP區塊26經組配以用於稀疏性模式時,串接暫存器120可串流傳輸至多六個值,該等值可經由一額外加法器來使用,以產生張量行102之兩個子行的相加。串接暫存器120亦可基於串流傳輸至DSP區塊26中之經壓縮資料(例如,移除零之資料)的稀疏性比而串流傳輸於對應於多工器型樣組態之指示符中。此係為了確保加法器運算可根據所接收資料之稀疏性比而進行。張量行102亦可包括位於暫存器104與乘法器108之間的一或多個路由網路及/或多工器網路,其可使得儲存於暫存器中之值取決於計算之稀疏性方案(例如2:4、4:8)而串流傳輸至一或多個位置。
考慮到前述內容,圖6為根據本揭露之實施例的一可拆分張量行140之一方塊圖。例如,當DSP區塊26經組配用於稀疏性模式時,DSP區塊之一或多個張量行102可為可拆分張量行140。可拆分張量行140可產生可從DSP區塊26串流傳輸出來之兩個單獨總和。可拆分張量行140可包括對應於稀疏性操作之一更複雜點乘積結構。在此實施例中,八個乘法器108 (例如,成對的乘法器108A~108D)可存在於可拆分張量行140中,但應理解,當在稀疏性模式中使用可拆分張量行140時,可實施許多不同分解及不同數目之乘法器108。
可拆分張量行140之乘法器108可經分組成乘法器對108A、108B、108C、108D,且可各自被發送至壓縮區塊110中之一對應者,以產生一或多個向量乘積,該一或多個向量乘積可經由一或多個加法器150A、150B、150C(例如,進位傳播加法器)相加以產生一或多個值。路由網路可將向量總和輸出路由安排至或使用一或多個多工器148(例如,多工器148A、148B、148C)及/或至加法器150 (及加法器122),以使得乘法器對108A、108B、108C、108D之向量總和輸出能夠基於串接資料之稀疏性比而在該路由網路內被重新導引。舉例而言,第二乘法器對108B之向量總和輸出可被路由安排至一第一加法器150B以(使用加法器150A而)與第一乘法器對108A之輸出相加在一起。另外,第二乘法器對108B可經由第二加法器150B而與第三乘法器對108C相加在一起。這使得透過暫存器104串流傳輸進入之啟動能夠被路由安排至來自串接資料120之對應資料,且能經由串接加法器122A、122B基於資料之稀疏性比而相加。
各個乘法器對108A、108B、108C、108D可被組合以產生一單一乘法器(點)乘積或兩對(二個)乘法器點乘積。舉例而言,兩個乘法器(點)乘積自身可支援2:4稀疏性操作,且交替的乘法器對108A、108B、108C、108D可相加在一起,以進行一較大串接輸出鏈。該較大串接輸出鏈接著可串接至先前DSP區塊26串接輸出鏈,以實現較大稀疏點乘積。在一些實施例中,可使用50%的稀疏性,在此情況下,相對於現有密集張量,可使用兩倍之串接鏈(例如,當未在一稀疏性模式下操作時)。
如上所述,乘法器對108A、108B、108C、108D中之每一者之乘積輸出可各自被發送至一對應壓縮區塊110,以使得能夠壓縮點乘積輸出之各者。壓縮區塊110可包括可輸出所接收值之總和的一或多個加法器。每一乘法器對之壓縮(點)乘積輸出可接著經由多個多工器網路148A、148B、148C及進位傳播加法器150A、150B、150C被路由安排。舉例而言,第二乘法器對108B之經壓縮點乘積輸出及第四乘法器對108D之經壓縮點乘積輸出可路由安排至該多工器網路之第一多工器148A及第二多工器148B,該第一多工器及該第二多工器中之任一者可輸出對應於乘法器對108B之壓縮區塊110的輸出(例如,取決於多工器148所接收之多工器控制指令,該等多工器控制指令可包含於該串接資料中)。
第一多工器148A之輸出及第一乘法器對108A之壓縮點乘積輸出可路由安排至一第一加法器150A,且第二多工器148B之輸出及第三乘法器對108C之壓縮點乘積輸出可路由安排至一第二加法器150B。第一加法器150A之輸出及第二加法器150B之輸出可路由安排至一第三加法器150C。第一加法器150A之輸出及第三加法器150C之輸出亦可路由安排至第三多工器148C之輸入。此舉使得多個多工器網路能夠動態地選擇乘法器對108A、108B、108C、108D向量總和輸出。
第一串接加法器122A接著將第二加法器150B之輸出與來自串接暫存器120串流傳輸至DSP區塊中之資料(例如,在一DSP區塊之行中自一先前DSP區塊26產生之一值)相加。第一串接加法器122A之輸出係串流傳輸至一後續DSP區塊中(例如,至該DSP區塊之行中之另一DSP區塊26之一可拆分張量行140中)。第二串接加法器122B接收第三多工器148C之輸出以及來自串接暫存器120串流傳輸至DSP區塊中之資料。第二串接加法器122B之輸出亦可被串流傳輸至該DSP區塊之行中之後續DSP區塊中。因此,因為多工器網路(例如,多工器148A、148B、148C)能夠路由由乘法器108產生之乘積,所以可用最小的路由資源來進行2:4稀疏性操作。
考慮到前述內容,圖7為根據本揭露之實施例之可於上述圖6(及本文所述之其他實施例)中之可拆分張量行140內實施之稀疏性比的一範例。可拆分張量行140可藉由使用矩陣映射及向量映射來分離稀疏性操作之維度而能夠實施多個稀疏性比,且使得能夠進行稀疏性操作,同時大大減少用於稀疏性操作之實體路由。
在一些實施例中,DSP區塊26可執行計算而無需稀疏性操作。舉例而言,一第一列160可表示無稀疏性(例如,無非零值)之正規向量。第一列160之每一方塊可對應於可拆分張量行140之權重暫存器104。由於每一權重暫存器104對應於一非零值,因此八個乘法器108用於支援每個非零值之八個啟動。
在另一實施例中,一2:4稀疏性比可由可拆分張量行140實施。舉例而言,可拆分張量行140可由劃分成一第一列區段162A及一第二列區段162B之一列表示,其各自表示可拆分張量行140之四個權重暫存器104。第一列區段162A及第二列區段162B對應於2:4稀疏性比,此係因為每一列具有對應於四個權重暫存器104之每一集合的兩個零值及兩個非零值。對於每一列區段162A、162B,兩個主動乘法器108將被實施,以對應於該等列之各列中的該等兩個非零值。
第三列164可對應於一4:8稀疏性比,其包括具有四個非零值及四個零值之單一列八個值。或者,第三列164可對應於一2:4稀疏性比。在此範例中,非零權重之位置可不同於第二列2:4稀疏性範例。舉例而言,在第三列中,前兩個權重暫存器可對應於非零值,而後兩個權重暫存器可對應於零值。另外,第五權重暫存器可對應於一零值,下面後續暫存器可對應於非零值,且最後的權重暫存器可對應於一零值。由於第三列164對應於四個零值,及四個非零值,稀疏性比為4:8,且四個主動乘法器108將被實施,以對應於如上所述之列之各者中的四個非零值。
此外,第四列166可對應於4:8稀疏性、與該第二列及該第三列相同比率,但該比率在整個向量上分佈不均。第四列166可能不具有跨越向量之均勻比,且基於第四列166內之零的位置,零之數目不對應於一均勻比。第四列166在串流傳輸至上述圖6中所述之可拆分張量行140中時,可能需要額外多工器網路資源。多工器網路資源支援2:4及4:8稀疏性操作二者之能力可使得網路之再訓練以引入稀疏性時更加靈活。
考慮到前述內容,圖8為根據一實施例的用於DSP區塊26之可拆分張量行140中之稀疏性操作之多工器網路控制之一範例。可拆分張量行140可在執行稀疏性操作時(使用多工器148)實施一多工器控制網路以路由安排來自多個第一行暫存器104之輸入。特別是,圖8中所例示之電路系統可用於2:4稀疏性操作。
舉例而言,對應於第一行暫存器170中之每一者的啟動106可經由第一行暫存器170針對每一輸入(例如,每一資料列106)同時串流傳輸。多工器網路之多工器148可接著選擇第一行暫存器170,該第一行暫存器含有串流傳輸至多個多工器148中之第二行暫存器172中的對應於密集封裝(例如,零移除)權重之啟動106。因此,任何啟動106可被提供至乘法器108中之任一者。例如,每一第一行暫存器170中之啟動106可經由路由網路而用作為用於多工器148中之每一者的輸入。乘法器108可將多工器148所選擇之啟動106中之每一者乘以儲存於第二行暫存器172中之一者中的一對應值。第二行暫存器172可為用以儲存預載值之權重暫存器104。乘法器108之輸出可隨後經路由安排至多個壓縮器區塊(例如,圖5或圖6之壓縮器區塊110),以將乘法器108中之每一者的輸出壓縮為向量值,且該等向量值接著經路由安排至一或多個加法器122,以將該等向量值相加至串接值(例如,由DSP區塊之一行中的一先前DSP區塊26所提供之值)。
此外,除了啟動106輸入以外,多工器148中之每一者亦可自一控制暫存器174中之每一者接收輸入值。控制暫存器174可含有包括用於該多工器網路之每一多工器148之多工器型樣的資訊,且指定第二行暫存器172之該等輸入值內的零之位置。舉例而言,控制暫存器174可包括對應於第二行暫存器172之經壓縮值內的零之位置的資訊。此資訊可使得多工器148能夠根據零在該等輸入值內之置放而執行稀疏性操作。
控制暫存器174可由用以載入第二行暫存器172之一相同埠176載入,或可使用一不同埠載入。因此,控制暫存器174及第二行暫存器172可獨立於另一者載入。舉例而言,一外部傳訊位元可經設定以載入控制暫存器174、第二行暫存器172或兩者。或者,控制暫存器174及第二行暫存器172可按順序載入。舉例而言,可在第二行暫存器172之載入起始載入之前,先載入所有控制暫存器174。為了實施順序次序載入,第二行暫存器172可自控制暫存器174循序連接至第二行暫存器172。在一些實施例中,控制暫存器174及第二行暫存器172可使用並聯連接至輸入埠176。
此外,控制暫存器174可對應於可能小於第二行暫存器172之一位元寬度的一較小位元寬度。舉例而言,第二行暫存器172可對應於八個位元之位元寬度。在其他實施例中,第二行暫存器172可虛擬地或實體地分解成兩個四位元寬排組,其可在一些推理應用中用於四個位元乘法。在一2:4稀疏性操作之狀況下,控制暫存器174可對應於二個位元寬度。在此情況下,可使用單一時鐘控制載入多個控制暫存器174,該單一時鐘控制可將該等控制暫存器174之載入速度增大到比第二行暫存器172載入速度更快的速度。舉例而言,若第二行暫存器172對應於八個位元寬度,且存在由單一輸入埠饋送之四個暫存器,則其可採用四個時鐘週期以載入第二行暫存器172。在對應於二個位元寬度的控制暫存器174之狀況下,其可僅採用單一時鐘週期來載入控制暫存器174。
在一些實施例中,可實施控制暫存器174及第二行暫存器172之多個排組。可載入控制暫存器174之該等多個排組中之一者,而將另一者用於處理。此外,控制暫存器174之該等多個排組可藉由可輸入至該等排組中之每一者的一單一外部控制信號而從載入切換至處理。此可進一步啟用在以DSP區塊26之稀疏性操作期間之可重新組配性。
牢記前述內容,圖9為根據當前實施例之用以支援一4:8稀疏性多工器結構之縱橫式佈線結構(其亦可稱為「多工器網路」)之一示意圖。該4:8稀疏性多工器結構可具有比上述圖8中所述之2:4稀疏性多工器結構更多的佈線及路由。這是因為零之置放可在暫存器輸入104之任一者內,而不是在暫存器輸入104的每一半部內之一均勻比。暫存器104之每一值可串流傳輸至多工器148中之每一者,以使得能夠進行該4:8稀疏性方案。該等多工器148之輸出接著被傳送至對應於各暫存器104之八個乘法器108中之每一者以供進一步處理。縱橫式佈線結構使每一暫存器能夠與每一乘法器108連接,以使能夠基於串流傳輸進入可拆分張量行140之壓縮值中的零位置而將啟動串流傳輸至乘法器108中之任一者。
考慮到前述內容,圖10A係根據一當前實施例之以兩對四個乘法器實施的一2:4稀疏性比縱橫式結構之一示意圖。圖10A之2:4稀疏性多工器結構可用兩組四個乘法器來實施,該等乘法器可構成對應於四個乘法器之可拆分張量行140A之第一半部及對應於四個乘法器108之可拆分張量行140B之第二半部。多工器網路178,其可包括圖8之多工器148,可將輸入路由安排至乘法器108。此可使可拆分張量行140A、140B之各半部分中之四個乘法器108能夠執行針對2:4稀疏性比的稀疏性操作。
如上所述,DSP區塊26亦可組配以執行4:8稀疏性比操作。考慮到前述內容,圖10B為根據本發明實施例之可拆分張量行140之一示意圖,其中多工器網路178前面各有一額外2:1比率多工器網路179。可拆分張量行140(其包括半部144A、144B)可組配以支援2:4稀疏性比及4:8稀疏性比操作二者。在一些實施例中,可拆分張量行140可在串流傳輸至行之乘法器108中之多工器網路(如多工器網路178所表示)之前包括該額外2:1多工器網路179。因此,包括半部144A、144B之可拆分張量行140可支援本文所述之4:8稀疏性以及2:4稀疏性操作之所有組合。
考慮到前述內容,圖11A為根據本實施例之來自可拆分張量行140A之第一半部及可拆分張量行140B之第二半部的2:4稀疏性向量輸出之一示意圖。針對可拆分張量行140之各半部(如由行140A、140B所指示)之乘法器108之輸出可藉由壓縮區塊110壓縮成向量乘積輸出。在可拆分張量行140之2:4稀疏性模式中,每一對乘法器108A、108B、108C、108D與其他四個元件(點)乘積中之相同級別對配對。此產生來自四個乘法器108操作中之每一者之兩個向量輸出,該等向量輸出可進一步由壓縮區塊110壓縮,以針對可拆分張量行140A、140B中之每一者產生一個輸出。可拆分張量行140A之向量輸出及可拆分張量行140B之向量輸出可分別經由加法器電路系統122A、122B而與串接自另一DSP區塊26之值相加。加法器運算之輸出可被路由安排至兩個各別串接路徑,以便被提供至另一DSP區塊26。多工器網路178可經控制以實施八個元件點乘積(例如,密集向量),如在圖11A中展現的2:4稀疏性操作,及圖10B上所顯示之具有額外多工能力之4:8稀疏性。
考慮到前述內容,圖11B為根據本實施例之2:4稀疏性比操作求和步驟的一示意圖。每一對乘法器108之乘積可經由壓縮區塊110之一第一階層加法器而相加,其可產生和,該等和被加至壓縮區塊110之另一加法器,其可產生一輸出,該輸出可串流傳輸通過如圖6中所述之串接路徑。以此方式,每一對乘法器108(例如,如圖6所示之乘法器對108A、108B、108C、108D)與如上所述之另外四個元件點乘積中之相同級別對配對。
繼續圖式,圖12係根據當前實施例之實施2:4稀疏性模式之多個串接DSP區塊26的一示意圖。在一些實施例中,DSP區塊26可在以2:4稀疏性模式操作時,根據每一可拆分張量行140之兩個串接輸出而輸出六個串接通路。因為每一DSP區塊26可包括三個可拆分張量行140,所以每一DSP區塊26可對另一DSP區塊26串接六個輸出以擴展稀疏性操作,此可使得能夠執行較大數目之操作。多個串接DSP區塊26亦可使用上述在圖10B中所述之該等路由網路及多工器結構來實施4:8稀疏性模式。應理解,任何合適數目之DSP區塊26可用以串接輸出且實現較大值稀疏性計算。
在一些串接實現例中,串接路徑之數目可能增加路由電路系統上之負擔且需要多個電線來完成多個串接路徑之路由。在一些實施例中,為了限制多個串接路徑所需之導線之數目,自乘法運算輸出的一或多個值可轉換為16b浮點值(例如bfloat16、bfloat24),以減少該等串接路徑所需的路由資源。
考慮到前述內容,圖13為可在六個通路串接模式期間(例如,當使用一稀疏性模式時)將乘法器108輸出值轉換成十六位元浮點值之串接多工電路系統的一示意圖。DSP區塊26之每一可拆分張量行140可將一或多個乘法器108壓縮點乘積值重新組配成一十六位元浮點(例如bfloat16),以使得能夠節省路由資源。DSP區塊26可於針對DSP區塊26啟用稀疏性模式時,實施串接多工以使得值轉換至十六位元浮點值。
可產生諸如圖13所展示之串接值的可拆分張量行140中之每一者可將經壓縮點乘積值輸出至一串接多工網路中。該串接多工網路可包括可將FP32值相加之一第一加法器180 (例如,一FP32加法器,亦稱為一單精度浮點加法器)。當可拆分張量行140在無稀疏性模式下操作時,針對可拆分張量行140A、140B之各半部的壓縮區塊110之輸出可經由串接多工器網路被路由安排至第一FP32加法器180。第一FP32加法器180可接著將經壓縮值相加並將該等值連同來自第一壓縮值之輸入路由安排至一第一多工器182。來自第一多工器182之輸出可接著路由安排至一額外加法器186,以與一值(例如,在DSP區塊之一行中與一先前DSP區塊26串接之值) 相加,以產生一串接輸出值。
當可拆分張量行140在稀疏性模式下操作時,可拆分張量行140可將經壓縮(點)乘積值中之一值路由安排至一bfloat16加法器184,以將該值轉換成一bfloat16格式。舉例而言,稀疏乘法器對中之一者之一經壓縮點乘積輸出可轉換成bfloat16格式,而另一稀疏乘法器對之輸出可在該稀疏性模式下使用現有FP32轉換電路系統(例如,如圖4所示)轉換成FP32。bfloat 16值可接著經由一額外多工器194多工至串接匯流排之下部16個位元中,而該串接匯流排之上部16個位元含有FP32值之一子集。此可將FP32值轉換成bfloat16值,該bfloat16值為比FP32更小的值。此舉可實現藉由實施較小位元值而在串接操作期間節省路由資源。此外,一或多個邏輯閘190、192可在串接加法器184、186之輸入之前實施,以使得能夠基於DSP區塊26之稀疏性模式控制輸入。一或多個邏輯閘190、192可接收自一或多個額外DSP區塊26串接之資料。儘管上文提供bfloat16及FP32值之範例,但應注意,此等技術可針對任何合適的類型或大小的值實施。
儘管DSP區塊26可實施2:4稀疏性比,但此可能並非最可縮放稀疏性比。如下所述,也可藉由DSP區塊26來達成百分之二十五(25%)(例如1:4)比率或百分之四十(40%)(例如2:5)比率。例如,DSP區塊26可使用共享輸入以實現橫跨DSP區塊26之多個行的40%稀疏系統。在一些實施例中,DSP區塊26可增加或減小DSP區塊26內之乘法器108的數目且更改多工器網路148大小以支援5:10稀疏性比、3:8稀疏性比、5:8稀疏性比或任何其他合適稀疏性比。DSP區塊26亦可增加或減小經串接之DSP區塊26的數目及/或更改多工器網路148大小以支援5:10稀疏性比及3:6稀疏性比。應理解,不同多工器配置可用以實施多種不同稀疏性(例如,25%、33%、40%及50%),取決於對DSP區塊26有多少串接可用,以及對DSP區塊26所支援之張量行之分解。
考慮到前述內容,圖14A係根據本揭露之一實施例的用於實施DSP區塊26之一第一可拆分張量行200之25%稀疏性比之一縱橫式型樣的一示意圖。第一可拆分張量行200可包括對應於二個向量輸出之10個輸入暫存器104及十個乘法器108。第一啟動200A可被映射至該等十個乘法器108中之六個。第二啟動200B可被映射至十個乘法器108中之對應於其餘四個乘法器108的子集。
圖14B為根據本揭露之一實施例的用於實施DSP區塊26之一第二可拆分張量行202之25%稀疏性比之縱橫式型樣的一示意圖。該第二可拆分張量行200可包括表示三個多工器網路178之三個縱橫接線,因為較低的四個乘法器在兩個稀疏向量輸出之間分裂。第一啟動202A可被串流傳輸進入縱橫式網路,其可路由安排到六個乘法器108輸出。兩個較小縱橫接線只需要輸入啟動202B、202C的子集,以便將該等啟動串流傳輸至四個乘法器108來組合向量。六個高向量各自具有對其壓縮權重中之所有十個輸入值之存取。此外,圖14C可對應於根據本揭露之一實施例的DSP區塊26之一第三行,且可設計成與圖14A所述之DSP區塊26之第一行相同。第三可拆分張量行204可包括對應於二個向量輸出之十個輸入暫存器及十個乘法器108。第一十個啟動204A可映射至十個乘法器108中之六個。第二啟動204B可映射至對應於其餘四個乘法器108的10個乘法器之子集。
將討論轉到圖15及圖16,圖15為根據本揭露之實施例之實施上文在圖14A-C中描述之三行的DSP區塊26之一示意圖。在所例示之實施例中,DSP區塊26可支援多達五個向量輸出行250。第一可拆分張量行200A可在40%稀疏性模式下操作時,輸出兩個向量值210、212(亦分別標記為A1及B1)。兩個輸出向量值210、212可串流傳輸至路由電路系統中,該路由電路系統可將該等輸出向量值路由安排到轉換電路系統,該轉換電路系統可在40%稀疏性模式下將B1輸出值轉換成bfloat16值。另外,第三可拆分張量行204可在40%稀疏性模式下操作時,輸出兩個向量值224、226(亦分別標記為A3及B3)。兩個輸出向量值224、226可串流傳輸至路由電路系統,該路由電路系統可將該等輸出向量值路由安排到轉換電路系統,該轉換電路系統可將B3輸出值轉換成bfloat16值。
此外,第二可拆分張量行202可在40%稀疏性模式下操作時,輸出三個向量值214、216A、216B (亦分別標記為A2、B2A及B2B)。該等三個輸出向量值214、216A、216B可串流傳輸至路由電路系統,該路由電路系統可將該等輸出向量值路由安排至轉換電路系統,該轉換電路系統可將B2A輸出值及B2B輸出值轉換成bfloat16值。此使得DSP區塊26能夠使用每一行之十個乘法器108來實施40%稀疏性操作,使用多個路由資源及多工器網路將每一行分解成一或多個子行,以支援稀疏性操作,且將輸入資料路由安排到與正確啟動相關聯之適當乘法器108。
圖16為根據本揭露之實施例之DSP區塊26之40%稀疏性操作之路由電路系統的一範例。在密集模式操作中,可支援對應於FP32加法器232操作之三個輸出行,且當執行40%稀疏性操作時,可支援五個行。應理解,當DSP區塊經組配以用於稀疏性操作時,現有介面應提供足夠導線用於五個輸出250之路由。
在密集模式操作(例如,非稀疏性操作)期間,可經由電路系統之邏輯閘停用輸入bfloat16邏輯(例如,212、216、226)。在密集模式操作中,DSP區塊26可僅使用值210、214、224,且使用對應於FP32加法器232之三個加法器將值210、214、224與自另一DSP區塊26串接之值相加。三個FP32加法器232之輸出可接著串流傳輸至另一DSP區塊26。
在40%稀疏性模式中,DSP區塊26可支援40%稀疏性,且使用輸入212、216、226A、226B以實施兩個bfloat16加法器230,以將輸入212、216、226A、226B與三個FP32加法器232相加,以將輸入210、214、224與輸入212、216、226相加。此可使得能夠將對應於40%稀疏計算之五個輸出250串流傳輸至一或多個隨後DSP區塊26中。
在繼續之前,應注意,隨著對應於DSP區塊26之輸出埠之數目增加,該等輸出埠之數目可能大於可支援之至通用組構之可路由輸出之數目。在此情形下,多個通道可累積於區塊外部且串接至下面的區塊中。
圖17A是根據本揭露之一實施例之DSP區塊26在DSP區塊26外部之串接累積的一示意圖。在一些實施例中,包含DSP區塊之輸出埠的路由資源可在稀疏性操作期間增加數量,且可大於可由DSP區塊26支援之(至通用組構之)可路由輸出的數目。在這種狀況中,包括該等輸出之多個通道420可在DSP區塊26外部累積。如果存在於DSP區塊26之該等可路由輸出不足夠大以從DSP區塊26串流傳輸出資料,則可使用位於DSP區塊26外部的該等多個通道420,將來自DSP區塊26之串接輸出中的一或多者累積在該第一區塊外部。
圖17B為根據本揭露之一實施例之多個DSP區塊26外部之一串接之累積之一示意圖。包括DSP區塊26之可路由輸出的路由資源可能由於佈線資源而無法支援所有操作。在這種狀況中,對應於多個DSP區塊26之多個額外通道422、424可被使用來在DSP區塊26外部累積串接輸出。在一些實施例中,一或多個DSP區塊26可能無法支援所有串接輸出操作。舉例而言,一第一DSP區塊26可能需要使用在DSP區塊26外部對應於兩個串接輸出值之多個通道422來累積資料,且可能能夠使用當前的路由資源將串接輸出中之一者直接串流傳輸至隨後的DSP區塊26。該隨後的DSP區塊26可接著使用額外的通道424在該區塊外部累積串接值。此外,累積表示型態就值而言不必與串接表示型態相同。舉例而言,bfloat16值可經串接,但FP24及FP32可用於累積,以便保持大量經累積值之精度。
除了上文所論述之稀疏性操作之外,積體電路裝置12亦可為一資料處理系統或包括於一資料處理系統中的一組件。舉例而言,積體電路裝置12可為圖18中所示的資料處理系統570之一組件。資料處理系統570可包括一主機處理器572(例如一中央處理單元(CPU)、記憶體及/或儲存電路系統574及一網路介面576。資料處理系統570可包括更多或更少組件(例如電子顯示器、使用者介面結構、特定應用積體電路(ASIC))。主機處理器572可包括任何合適的處理器,諸如一INTEL ® Xeon ®處理器或一精簡指令集電腦(例如,一精簡指令集電腦(RISC)、一進階RISC機器(ARM)處理器),該處理器可管理資料處理系統570之一資料處理請求(例如,執行加密、解密、機器學習、視訊處理、語音辨識、影像辨識、資料壓縮、資料庫搜尋排名、生物資訊、網路安全型樣識別、空間導航或類似者)。該記憶體及/或儲存電路系統574可包括隨機存取記憶體(RAM)、唯讀記憶體(ROM)、一或多個硬碟機、快閃記憶體或類似者。該記憶體及/或儲存電路系統574可保持待由資料處理系統570處理之資料。在一些例子中,該記憶體及/或儲存電路574亦可儲存用以規劃該積體電路裝置12之組態程式(位元串流)。網路介面576可允許該資料處理系統570與其他電子裝置通訊。資料處理系統570可包括若干不同封裝體,或可含於一單一封裝體基體上之一單一封裝體內。舉例而言,資料處理系統570之組件可位於一個位置(例如一資料中心)或多個位置處的若干不同封裝體上。舉例來說,資料處理系統570之組件可位於諸如城市、州或國家之各別地理位置或區域中。
在一範例中,該資料處理系統570可為處理各種不同請求之一資料中心的一部分。舉例來說,資料處理系統570可經由該網路介面576接收一資料處理請求,以執行加密、解密、機器學習、視訊處理、語音辨識、影像辨識、資料壓縮、資料庫搜尋排名、生物資訊、網路安全型樣識別、空間導航、數位信號處理或某些其他專用任務。
此外,在一些實施例中,DSP區塊26及資料處理系統570可被虛擬化。亦即,一個或多個虛擬機器可用來實施DSP區塊26及資料處理系統570之一基於軟體的表示型態,該表示型態模擬本文所述之DSP區塊26及資料處理系統570之功能性。舉例而言,(例如,包括一或多個運算裝置之)一系統可包括管理與一或多個虛擬機器相關聯之資源的一超管理器,且可分配模擬DSP區塊26或資料處理系統570的一或多個虛擬機器來執行乘法運算及本文所述之其他操作。
據此,本文所述之技術使得特定應用程式能夠使用DSP區塊26來執行。舉例而言,DSP區塊26增強積體電路裝置(諸如,可規劃邏輯裝置(例如,FPGA))之能力,以用於可在機器學習及人工智慧應用中使用之稀疏性操作。
雖然本揭露中所闡述之實施例可能易受各種修改及替代形式影響,但特定實施例已在圖式中作為範例予以顯示且已在本文中予以詳細地描述。然而,應理解的是,本揭露非意欲受限於所揭露之特定形式。本揭露係將涵蓋落入如以下所附申請專利範圍所界定之本揭露之精神與範疇內的所有修改、同等物以及替代物。
本文呈現且主張之技術經參考且應用於可證明地改良本技術領域之實際性質的材料物件及具體範例,且因而並非抽象、無形或純理論。另外,若附加至此說明書之末端之任何請求項含有經指定為「用以[執行][一功能]……之構件」或「用以[執行][一功能] ……之步驟」的一或多個元件,則其意欲此等元件係要於35 U.S.C.112(f)下解譯。然而,對於含有以任何其他方式指定之元件之任何申請專利範圍,其意欲此等元件係不要於35 U.S.C.112(f)下解譯。
本揭露之範例實施例
以下編號的條項定義本揭露之某些範例實施例。
條項1
一種數位信號處理(DSP)區塊,其包含:
複數個權重暫存器,其可組配以接收並儲存第一複數個值;
複數個乘法器,其中該等複數個乘法器中之各個各別乘法器可組配以接收該等第一複數個值中之一各別值;
一或多個輸入,其可組配以接收第二複數個值;
一多工器網路,其可組配以接收該等第二複數個值且將該等第二複數個值中之各個各別值路由安排至該等複數個乘法器中之一乘法器,其中該等複數個乘法器可組配以將該等第一複數個值中之每一值同時乘以該等第二複數個值中之一各別值來產生複數個乘積;以及
加法器電路系統,其可組配以基於該等複數個乘積來產生一第一總和及一第二總和。
條項2
如條項1之DSP區塊,其包含可組配以儲存第三複數個值之複數個控制暫存器,其中:
該多工器網路可組配以自該等複數個控制暫存器接收該等第三複數個值;以及
基於該等第三複數個值路由安排該等第二複數個值。
條項3
如條項2之DSP區塊,其中該等第三複數個值指示該等第一複數個值中之零的一或多個位置。
條項4
如條項1之DSP區塊,其包含:
第二加法器電路系統,其可組配以接收該等複數個乘積中之一第一乘積及一第二乘積,且藉由將該第一乘積及該第二乘積相加來產生一第三總和;
第三加法器電路系統,其可組配以接收該等複數個乘積中之一第三乘積及一第四乘積,且藉由將該第三乘積及該第四乘積相加來產生一第四總和;
第四加法器電路系統,其可組配以接收該等複數個乘積中之一第五乘積及一第六乘積,且藉由將該第五乘積及該第六乘積相加來產生一第五總和;
第五加法器電路系統,其可組配以接收該等複數個乘積之一第七乘積及第八乘積,且藉由將該第七乘積及該第八乘積相加來產生一第六總和;
一第一多工器,其可組配以接收該第四總和及該第六總和,且將一第一輸出提供至該加法器電路系統之一第一加法器,其中該第一輸出包含該第四總和或該第六總和,其中該第一加法器可組配以藉由將該第三總和及該第一輸出相加來產生一第七總和;
一第二多工器,其可組配以接收該第四總和及該第六總和,且將一第二輸出提供至該加法器電路系統之一第二加法器,其中該第二輸出包含該第四總和或該第六總和,其中該第二總和可組配以藉由將該第五總和及該第二輸出相加來產生該第一總和;
該加法器電路系統之一第三加法器,其可組配以接收該第一總和及該第七總和,且藉由將該第一總和及該第七總和相加來產生一第八總和;以及
一第三多工器,其可組配以接收該第七總和及該第八總和,且選擇性地輸出該第八總和之該第七總和作為該第二總和。
條項5
如請求項4之DSP區塊,其包含:
輸入電路系統,其可組配以自一第二DSP區塊接收一第一值及一第二值;
一第四加法器,其可組配以接收該第一總和及該第一值,且藉由將該第一總和及該第一值相加來產生一第九總和;
一第五加法器,其可組配以接收該第二總和及該第二值,且藉由將該第二總和及該第二值相加來產生一第十總和;以及
輸出電路系統,其可組配以將該第九總和及該第十總和自該DSP區塊輸出至一第三DSP區塊。
條項6
如條項1之DSP區塊,其中:
在該DSP區塊的一第一操作模式中:
該等複數個乘法器為一第一行乘法器;
該加法器電路系統可組配以藉由將由該第一行乘法器之一第一部分所產生之該等複數個乘積之一第一部分相加來產生該第一總和;及
該加法器電路系統可組配以藉由將由該第一行乘法器之一第二部分所產生之該等複數個乘積之一第二部分相加來產生該第二總和;以及
在該DSP區塊的一第二操作模式中:
該等複數個乘法器包含該第一行乘法器及一第二行乘法器;
該加法器電路系統可組配以藉由將由該第一行乘法器所產生之該等複數個乘積之該第一部分相加來產生該第一總和;及
該加法器電路系統可組配以藉由將由該第二行乘法器所產生之該等複數個乘積之該第二部分相加來產生該第二總和。
條項7
如條項1之DSP區塊,其中該多工器網路包含複數個4:1多工器。
條項8
如條項7之DSP區塊,其中該多工器網路包含可組配以產生複數個輸出之複數個2:1多工器,其中該等複數個4:1多工器可組配以自該等複數個2:1多工器接收該等複數個輸出。
條項9
如條項1之DSP區塊,其中該多工器網路包含複數個8:1多工器。
條項10
一種積體電路裝置,其包含一數位信號處理(DSP)區塊,其中該DSP區塊包含:
一可拆分行,其包含:
複數個權重暫存器,其可組配以接收及儲存第一複數個值;
複數個乘法器,其中該等複數個乘法器中之各個各別乘法器可組配以接收該等第一複數個值中之一各別值;
一或多個輸入,其可組配以接收第二複數個值;
一多工器網路,其可組配以接收該等第二複數個值且將該等第二複數個值中之各個各別值路由安排至該等複數個乘法器中之一乘法器,其中該等複數個乘法器可組配以將該等第一複數個值中之每一值同時乘以該等第二複數個值中之一各別值,以產生複數個乘積;及
第一加法器電路系統,其可組配以自該等複數個乘積之一第一部分產生一第一總和且自該等複數個乘積之一第二部分產生一第二總和;以及
輸入電路系統,其可組配以自一第二DSP區塊接收一第一值及一第二值;
第二加法器電路系統,其可組配以:
接收該第一總和及該第一值,且藉由將該第一總和及該第一值相加來產生一第三總和;
接收該第二總和及該第二值,且藉由將該第二總和及該第二值相加來產生一第四總和;以及
輸出電路系統,其可組配以將該第三總和及該第四總和自該DSP區塊輸出至一第三DSP區塊。
條項11
如條項10之積體電路裝置,其中:
該多工器網路包含:
第一複數個多工器,其各自可組配以接收該等第二複數個輸入之一第一部分,且自該等第二複數個輸入之該第一部分選擇性地輸出一值;及
第二複數個多工器,其各自可組配以接收該第二複數個輸入之一第二部分,且自該等第二複數個輸入之該第二部分選擇性地輸出一值;
該等複數個乘法器包含:
第一複數個乘法器,其可組配以基於接收自該等第一複數個多工器之該等值來產生該等複數個乘積之一第一部分;
第二複數個乘法器,其可組配以基於接收自該等第二複數個多工器之該等值來產生該等複數個乘積之一第二部分;以及
該加法器電路系統可組配以:
藉由將該等複數個乘積之該第一部分相加來產生該第一總和;及
藉由將該等複數個乘積之該第二部分相加來產生該第二總和。
條項12
如條項11之積體電路裝置,其中:
該等第二複數個輸入之該第一部分包含該等第二複數個輸入之該第二部分之每一輸入;以及
該等複數個輸入之該第二部分包含小於該等複數個第二輸入之該第一部分之每一輸入。
條項13
如條項11之積體電路裝置,其中該等第二複數個輸入之該第一部分與該等第二複數個輸入之該第二部分相同。
條項14
如條項11之積體電路裝置,其中該等第一複數個乘法器包含比該等第二複數個乘法器更多的乘法器。
條項15
如條項10之積體電路裝置,其中該可拆分行係該DSP區塊之複數個可拆分行中之一第一可拆分行。
條項16
如條項10之積體電路裝置,其中該積體電路裝置包含一可規劃邏輯裝置。
條項17
一種數位信號處理(DSP)區塊,其包含:
一第一可拆分行,其包含:
複數個權重暫存器,其可組配以接收並儲存第一複數個值;
複數個乘法器,其中該等複數個乘法器中之各個各別乘法器可組配以接收該等第一複數個值中之一各別值;
一或多個輸入,其可組配以接收第二複數個值;
複數個控制暫存器,其可組配以儲存第三複數個值,其中:
一多工器網路可組配以:
接收該等第二複數個值及該等第三複數個值;及
基於該等第三複數個值將該等第二複數個值中之一各個各別值路由安排至該等複數個乘法器中之一乘法器,其中該等複數個乘法器係可組配以將該等第一複數個數值中之每一值同時乘以該等第二複數個數值中之一各別值來產生複數個產品;以及
第一加法器電路系統,其可組配以自該等複數個乘積之一第一部分產生一第一總和且自該等複數個乘積之一第二部分產生一第二總和;以及
輸入電路系統,其可組配以自一第二DSP區塊接收一第一值及一第二值;
第二加法器電路系統,其可組配以:
接收該第一總和及該第一值,且藉由將該第一總和及該第一值相加來產生一第三總和;
接收該第二總和及該第二值,且藉由將該第二總和及該第二值相加來產生一第四總和;以及
輸出電路系統,其可組配以將該第三總和及該第四總和自該DSP區塊輸出至一第三DSP區塊。
條項18
如條項17之DSP區塊,其中該等第三複數個值指示該等第一複數個值中之零的一或複數個位置。
條項19
如條項18之DSP區塊,其包含:
一第二可拆分行,其包含可組配以產生一第五總和、一第六總和及一第七總和之第三加法器電路系統;以及
一第三可拆分行,其包含可組配以產生一第八總和及一第九總和之第四加法器電路系統。
條項20
如條項17之DSP區塊,其中該DSP區塊實施於現場可規劃閘陣列(FPGA)上。
10:系統
12:積體電路裝置
14:設計軟體
16:編譯器
18:主機
20:核心程式
22:主機程式
24:通訊鏈路
26:DSP區塊
42:輸入/輸出電路系統
44:輸入/輸出接腳
46:互連資源
48:可規劃邏輯
50:可規劃元件
70:程序
72,74,76,78,80:處理區塊
100:虛擬頻寬擴展結構
102:行,張量行,單一張量行
104:暫存器,權重暫存器,輸入暫存器
106:列,啟動
108:乘法器
108A:乘法器對,第一乘法器對
108B:乘法器對,第二乘法器對
108C:乘法器對,第三乘法器對
108D:乘法器對,第四乘法器對
110:壓縮區塊,壓縮器區塊
112:暫存器
114:進位傳播加法器
116:固定點至浮點轉換電路系統
118:暫存器
120:串接暫存器
122:加法器
122A:串接加法器,第一串接加法器,加法器電路系統
122B:串接加法器,第二串接加法器,加法器電路系統
124:暫存器
126:多工器選擇電路系統
140,140A,140B:可拆分張量行
144A,144B:半部
148:多工器
148A:多工器,第一多工器
148B:多工器,第二多工器
148C:多工器,第三多工器
150:加法器
150A:加法器,第一加法器
150B:加法器,第二加法器
150C:加法器,第三加法器
162A:第一列分段
162B:第二列分段
164:第三列
166:第四列
170:第一行暫存器
172:第二行暫存器
174:控制暫存器
176:埠
178:多工器網路
179:多工器網路
180:第一加法器
182:第一多工器
184:bfloat16加法器
186:額外加法器
190,192:邏輯閘
194:額外多工器
200:第一可拆分張量行
200A:第一啟動
200B:第二啟動,輸入啟動
202B,202C:輸入啟動
204:第三可拆分張量行
204A:第一啟動
204B:第二啟動
210:向量值,輸出向量值
212:向量值,輸出向量值,輸入
216:輸入
214,216A,216B:向量值
224,226:向量值,輸出向量值
226A、226B:輸入
230:bfloat16加法器
232:FP32加法器
250:向量輸出行,輸出
420:通道
422,424:通道
570:資料處理系統
572:主機處理器
574:記憶體及/或儲存電路系統
576:網路介面
圖式簡單說明
本揭露之各種態樣可在閱讀以下詳細說明時且在參看附圖時得以被更佳地理解,其中:
圖1為根據本揭露之一實施例之可使用一數位信號處理(DSP)區塊實施算術運算之一系統的一方塊圖;
圖2係根據本揭露之一實施例之圖1的積體電路裝置的一方塊圖;
圖3是根據本揭露之一實施例之圖1之積體電路裝置的該DSP區塊在進行乘法運算時可執行的一程序的一流程圖;
圖4為根據本揭露之一實施例之可經由圖1之該DSP區塊實施之一虛擬頻寬擴展結構的一方塊圖;
圖5是根據本揭露之一實施例之DSP區塊結構內之一單一行的一方塊圖;
圖6為根據本揭露之一實施例之圖1之該DSP區塊之一可拆分張量行的一方塊圖;
圖7為根據本揭露之實施例的可在圖6之可拆分張量行140內實施之稀疏性比之圖;
圖8為根據本揭露之一實施例的用於該DSP區塊之可拆分張量行140中之稀疏性模式之多工器(mux)網路控制之一範例;
圖9為根據本揭露之一實施例的用以支援一4:8稀疏性模式多工器結構之縱橫式佈線結構的一示意圖;
圖10A為根據本揭露之一實施例的以兩對四個乘法器實施的一2:4稀疏性比縱橫式結構之一示意圖;
圖10B為根據本揭露之一實施例的具有一額外2:1比率多工器網路之可拆分張量行的一示意圖;
圖11A為根據本揭露之一實施例的用於一2:4稀疏性向量輸出之一串接電路系統的一示意圖;
圖11B為根據本揭露之一實施例的圖11A之壓縮區塊連同用於該2:4稀疏性向量輸出之該串接電路系統的一示意圖;
圖12為根據本揭露之一實施例之使用一2:4稀疏性模式之多個串接DSP區塊的一示意圖;
圖13為根據本揭露之一實施例的在一個六通道串接稀疏性模式中之串接多工的一示意圖,該串接多工將乘法器輸出值轉換成十六個位元浮點值;
圖14A為根據本揭露之一實施例的用於實施圖1之DSP區塊之一第一可拆分張量行的百分之二十五(25%)稀疏性比之一縱橫式型樣的一示意圖;
圖14B為根據本揭露之一實施例的用於實施圖1之DSP區塊的一第二可拆分張量行之百分之二十五(25%)稀疏性比的該縱橫式型樣之一示意圖;
圖14C為根據本揭露之一實施例的用於實施圖1之DSP區塊的一第三可拆分張量行之百分之二十五(25%)稀疏性比之該縱橫式型樣的一示意圖;
圖15為根據本揭露之一實施例的實施於圖1之DSP區塊中的圖14A-C之三個可拆分張量行之一示意圖;
圖16為根據本揭露之一實施例的在支援百分之四十(40%)稀疏性模式時用於DSP區塊之累積電路系統的一範例;
圖17A為根據本揭露之一實施例的將一DSP區塊之累積卸載至外部暫存器之串接電路系統之一範例;
圖17B為根據本揭露之一實施例的將多個DSP區塊之累積卸載至外部暫存器之串接電路系統之範例;以及
圖18為根據本揭露的一實施例的一資料處理系統。
100:虛擬頻寬擴展結構
102:行,張量行
104:暫存器
106:列
108:乘法器
110:壓縮區塊
112:暫存器
114:進位傳播加法器
116:固定點至浮點轉換電路系統
118:暫存器
120:串接暫存器
122:加法器
124:暫存器
126:多工器選擇電路系統
Claims (25)
- 一種數位信號處理(DSP)區塊,其包含: 複數個權重暫存器,其可組配以接收並儲存第一複數個值; 複數個乘法器,其中該等複數個乘法器中之各個各別乘法器可組配以接收該等第一複數個值中之一各別值; 一或多個輸入,其可組配以接收第二複數個值; 一多工器網路,其可組配以接收該等第二複數個值且將該等第二複數個值中之各個各別值路由安排至該等複數個乘法器中之一乘法器,其中該等複數個乘法器可組配以將該等第一複數個值中之每一值同時乘以該等第二複數個值中之一各別值來產生複數個乘積;以及 加法器電路系統,其可組配以基於該等複數個乘積來產生一第一總和及一第二總和。
- 如請求項1之DSP區塊,其包含可組配以儲存第三複數個值之複數個控制暫存器,其中: 該多工器網路可組配以自該等複數個控制暫存器接收該等第三複數個值;以及 基於該等第三複數個值路由安排該等第二複數個值。
- 如請求項2之DSP區塊,其中該等第三複數個值指示出該等第一複數個值中之零的一或多個位置。
- 如請求項1之DSP區塊,其包含: 第二加法器電路系統,其可組配以接收該等複數個乘積中之一第一乘積及一第二乘積,且藉由將該第一乘積及該第二乘積相加來產生一第三總和; 第三加法器電路系統,其可組配以接收該等複數個乘積中之一第三乘積及一第四乘積,且藉由將該第三乘積及該第四乘積相加來產生一第四總和; 第四加法器電路系統,其可組配以接收該等複數個乘積中之一第五乘積及一第六乘積,且藉由將該第五乘積及該第六乘積相加來產生一第五總和; 第五加法器電路系統,其可組配以接收該等複數個乘積中之一第七乘積及第八乘積,且藉由將該第七乘積及該第八乘積相加來產生一第六總和; 一第一多工器,其可組配以接收該第四總和及該第六總和,且將一第一輸出提供至該加法器電路系統之一第一加法器,其中該第一輸出包含該第四總和或該第六總和,其中該第一加法器可組配以藉由將該第三總和及該第一輸出相加來產生一第七總和; 一第二多工器,其可組配以接收該第四總和及該第六總和,且將一第二輸出提供至該加法器電路系統之一第二加法器,其中該第二輸出包含該第四總和或該第六總和,其中該第二加法器可組配以藉由將該第五總和及該第二輸出相加來產生該第一總和; 該加法器電路系統之一第三加法器,其可組配以接收該第一總和及該第七總和,且藉由將該第一總和及該第七總和相加來產生一第八總和;以及 一第三多工器,其可組配以接收該第七總和及該第八總和,且選擇性地輸出該第八總和之該第七總和作為該第二總和。
- 如請求項4之DSP區塊,其包含: 輸入電路系統,其可組配以自一第二DSP區塊接收一第一值及一第二值; 一第四加法器,其可組配以接收該第一總和及該第一值,且藉由將該第一總和及該第一值相加來產生一第九總和; 一第五加法器,其可組配以接收該第二總和及該第二值,且藉由將該第二總和及該第二值相加來產生一第十總和;以及 輸出電路系統,其可組配以將該第九總和及該第十總和自該DSP區塊輸出至一第三DSP區塊。
- 如請求項1之DSP區塊,其中: 在該DSP區塊的一第一操作模式中: 該等複數個乘法器為一第一行乘法器; 該加法器電路系統可組配以藉由將由該第一行乘法器之一第一部分所產生的該等複數個乘積之一第一部分相加來產生該第一總和;及 該加法器電路系統可組配以藉由將由該第一行乘法器之一第二部分所產生的該等複數個乘積之一第二部分相加來產生該第二總和;以及 在該DSP區塊的一第二操作模式中: 該等複數個乘法器包含該第一行乘法器及一第二行乘法器; 該加法器電路系統可組配以藉由將由該第一行乘法器所產生之該等複數個乘積之該第一部分相加來產生該第一總和;及 該加法器電路系統可組配以藉由將由該第二行乘法器所產生之該等複數個乘積之該第二部分相加來產生該第二總和。
- 如請求項1之DSP區塊,其中: 該多工器網路包含可組配以接收該等第二複數個值之一第一部分,其中該多工器網路之該第一部分包含具有一第一數量的多工器之第一複數個多工器; 該多工器網路包含可組配以接收該等第二複數個值之一第二部分,其中該多工器網路之該第二部分包含具有該第一數量的多工器之第二複數個多工器; 該等複數個乘法器包含具有一第一數量的乘法器之一第一部分,其中該等複數個乘法器之該第一部分係通訊地耦接至該多工器網路之該第一部分;以及 該等複數個乘法器包含具有該第一數量的乘法器之一第二部分,其中該等複數個乘法器之該第二部分係通訊地耦接至該多工器網路之該第二部分,其中該第一數量的多工器等於該第一數量的乘法器。
- 如請求項7之DSP區塊,其中該多工器網路包含: 一第三部分,其中該多工器網路之該第三部分係通訊地耦接至該多工器網路之該第一部分,其中該多工器網路之該第三部分可組配以接收該等第二複數個值中之各值;以及 一第四部分,其中該多工器網路之該第四部分係通訊地耦接至該多工器網路之該第二部分,其中該多工器網路之該第四部分可組配以接收該等第二複數個值中之各值。
- 如請求項1之DSP區塊,其中該多工器網路包含複數個8:1多工器,該等複數個8:1多工器可針對一或多個稀疏性比而組配。
- 一種積體電路裝置,其包含一數位信號處理(DSP)區塊,其中該DSP區塊包含: 一可拆分行,其包含: 複數個權重暫存器,其可組配以接收並儲存第一複數個值; 複數個乘法器,其中該等複數個乘法器中之各個各別乘法器可組配以接收該等第一複數個值中之一各別值; 一或多個輸入,其可組配以接收第二複數個值; 一多工器網路,其可組配以接收該等第二複數個值且將該等第二複數個值中之各個各別值路由安排至該等複數個乘法器中之一乘法器,其中該等複數個乘法器可組配以將該等第一複數個值中之每一值同時乘以該等第二複數個值中之一各別值來產生複數個乘積;及 第一加法器電路系統,其可組配以自該等複數個乘積之一第一部分產生一第一總和且自該等複數個乘積之一第二部分產生一第二總和;以及 輸入電路系統,其可組配以自一第二DSP區塊接收一第一值及一第二值; 第二加法器電路系統,其可組配以: 接收該第一總和及該第一值,且藉由將該第一總和及該第一值相加來產生一第三總和; 接收該第二總和及該第二值,並藉由將該第二總和及該第二值相加來產生一第四總和;以及 輸出電路系統,其可組配以將該第三總和及該第四總和自該DSP區塊輸出至一第三DSP區塊。
- 如請求項10之積體電路裝置,其中: 該多工器網路包含: 第一複數個多工器,其各自可組配以接收該等第二複數個輸入之一第一部分,且自該等第二複數個輸入之該第一部分選擇性地輸出一值;及 第二複數個多工器,其各自可組配以接收該等第二複數個輸入之一第二部分,且自該等第二複數個輸入之該第二部分選擇性地輸出一值; 該等複數個乘法器包含: 第一複數個乘法器,其可組配成基於接收自該等第一複數個多工器之該等值來產生該等複數個乘積之一第一部分; 第二複數個乘法器,其可組配來基於接收自該等第二複數個多工器之該等值來產生該等複數個乘積之一第二部分;以及 該加法器電路系統,其可組配以: 藉由將該等複數個乘積之該第一部分相加來產生該第一總和;及 藉由將該等複數個乘積之該第二部分相加來產生該第二總和。
- 如請求項11之積體電路裝置,其中: 該等第二複數個輸入之該第一部分包含該等第二複數個輸入之該第二部分之每一輸入;並且 該等複數個輸入之該第二部分包含小於該等複數個第二輸入之該第一部分之每一輸入。
- 如請求項11之積體電路裝置,其中該等第二複數個輸入之該第一部分與該等第二複數個輸入之該第二部分相同。
- 如請求項11之積體電路裝置,其中該等第一複數個乘法器包含比該等第二複數個乘法器更多的乘法器。
- 如請求項10之積體電路裝置,其中該可拆分行係該DSP區塊之複數個可拆分行之一第一可拆分行。
- 如請求項10之積體電路裝置,其中該積體電路裝置包含一可規劃邏輯裝置。
- 一種數位信號處理(DSP)區塊,其包含: 一第一可拆分行,其包含: 複數個權重暫存器,其可組配以接收及儲存第一複數個值; 複數個乘法器,其中該等複數個乘法器中之各個各別乘法器可組配以接收該等第一複數個值中之一各別值; 一或多個輸入,其可組配以接收第二複數個值; 複數個控制暫存器,其可組配以儲存第三複數個值,其中: 一多工器網路可組配以: 接收該等第二複數個值及該等第三複數個值;及 基於該等第三複數個值將該等第二複數個值中之各個各別值路由安排至該等複數個乘法器中之一乘法器,其中該等複數個乘法器可組配以將該等第一複數個值中之每一值同時乘以該等第二複數個值中之一各別值來產生複數個乘積;及 第一加法器電路系統,其可組配以自該等複數個乘積之一第一部分產生一第一總和且自該等複數個乘積之一第二部分產生一第二總和;以及 輸入電路系統,其可組配以自一第二DSP區塊接收一第一值及一第二值; 第二加法器電路系統,其可組配以: 接收該第一總和及該第一值,且藉由將該第一總和及該第一值相加來產生一第三總和; 接收該第二總和及該第二值,並藉由將該第二總和及該第二值相加來產生一第四總和;以及 輸出電路系統,其可組配以將該第三總和及該第四總和自該DSP區塊輸出至一第三DSP區塊。
- 如請求項17之DSP區塊,其中該等第三複數個值指示出該等第一複數個值中之零的一或多個位置。
- 如請求項18之DSP區塊,其包含: 一第二可拆分行,其包含可組配以產生一第五總和、一第六總和及一第七總和之第三加法器電路系統;以及 一第三可拆分行,其包含可組配以產生一第八總和及一第九總和之第四加法器電路系統。
- 如請求項19之DSP區塊,其中: 輸入電路系統,其可組配以自該第二DSP區塊接收一第三值及一第四值;以及 該第二加法器電路系統可組配以: 接收該第二總和及該第六總和,且藉由將該第二總和及該第六總和相加來產生一第十總和; 接收該第十總和及該第四值,且藉由將該第十總和及該第四值相加來產生一第十一總和; 接收該第九總和及該第七總和,且藉由將該第九總和及該第七總和相加來產生一第十二總和;以及 接收該第十二總和及該第三值,且藉由將該第十二總和及該第三值相加來產生一第十三總和,其中: 該第十二總和及該第十三總和各自具有一第一數量的尾數位元; 該第三總和及該第四總和各自具有一第二數量的尾數位元;且 該第一數量的尾數位元與該第二數量的尾數位元不同。
- 一種數位信號處理(DSP)區塊,其包含: 一可拆分行,其包含: 用以接收及儲存第一複數個值之構件; 用以接收第二複數個值並將該等第二複數個值中之各個各別值路由安排至複數個乘法器中之一乘法器之構件; 用以將該等第一複數個值中之每一值同時乘以該等第二複數個值中之一各別值以產生複數個乘積之構件;及 用以自該等複數個乘積之一第一部分產生一第一總和且自該等複數個乘積之一第二部分產生一第二總和之構件;以及 輸入電路系統,其包含用以在輸入電路系統中自一第二DSP區塊接收一第一值及一第二值之構件; 第二加法器電路系統,其包含: 用以接收該第一總和及該第一值且藉由將該第一總和及該第一值相加來產生一第三總和之構件;及 用以接收該第二總和及該第二值且藉由將該第二總和及該第二值相加來產生一第四總和之構件;以及 輸出電路系統,其包含用以將該第三總和及該第四總和自該DSP區塊輸出至一第三DSP區塊之構件。
- 如請求項21之DSP區塊,其中該用以接收及儲存該等第一複數個值之構件包含複數個權重暫存器。
- 如請求項21之DSP區塊,其中該用以接收該等第二複數個值並將該等第二複數個值中之各個各別值路由安排至該等複數個乘法器中之該乘法器之構件包含一多工器網路。
- 一種用以操作一數位信號處理(DSP)區塊之方法,該方法包含: 在該DSP區塊之一可拆分行中: 將第一複數個值接收並儲存至複數個權重暫存器中; 將該等第一複數個值中之一各別值接收至各別複數個乘法器中; 將第二複數個值接收至一或多個輸入中; 將該等第二複數個值接收至一多工器網路中並將該等第二複數個值中之各個各別值路由安排至該等複數個乘法器中之一乘法器; 將該等複數個乘法器中之該等第一複數個值中之每一值同時乘以該等第二複數個值中之一各別值以產生複數個乘積;及 在第一加法器電路系統中自該等複數個乘積之一第一部分產生一第一總和且自該等複數個乘積之一第二部分產生一第二總和;以及 在該DSP區塊之輸入電路系統中,在輸入電路系統中自一第二DSP區塊接收一第一值及一第二值; 在該DSP區塊之第二加法器電路系統中: 接收該第一總和及該第一值且藉由將該第一總和及該第一值相加來產生一第三總和;及 接收該第二總和及該第二值且藉由將該第二總和及該第二值相加來產生一第四總和;以及 使用該DSP區塊之輸出電路系統,將該第三總和及該第四總和自該DSP區塊輸出至一第三DSP區塊。
- 如請求項24之方法,其包含: 在該多工器網路中: 將該等第二複數個輸入之一第一部分接收至第一複數個多工器中,且自該等第二複數個輸入之該第一部分選擇性地輸出一值;及 將該等第二複數個輸入之一第二部分接收至第二複數個多工器中,且自該等第二複數個輸入之該第二部分選擇性地輸出一值; 在該等複數個乘法器中: 在第一複數個乘法器中基於接收自該等第一複數個多工器之該等值來產生該等複數個乘積之一第一部分;及 在第二複數個乘法器中基於接收自該等第二複數個多工器之該等值來產生該等複數個乘積之一第二部分;以及 在加法器電路系統中: 藉由將該等複數個乘積之該第一部分相加來產生該第一總和;及 藉由將該等複數個乘積之該第二部分相加來產生該第二總和。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/485,123 US20220012012A1 (en) | 2021-09-24 | 2021-09-24 | Systems and Methods for Sparsity Operations in a Specialized Processing Block |
US17/485,123 | 2021-09-24 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202314571A true TW202314571A (zh) | 2023-04-01 |
Family
ID=79172507
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111131715A TW202314571A (zh) | 2021-09-24 | 2022-08-23 | 用於在特殊處理區塊中的稀疏性操作之系統及方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20220012012A1 (zh) |
EP (1) | EP4155901A1 (zh) |
CN (1) | CN115878074A (zh) |
TW (1) | TW202314571A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11907719B2 (en) * | 2019-12-13 | 2024-02-20 | Intel Corporation | FPGA specialist processing block for machine learning |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10489116B1 (en) * | 2014-07-09 | 2019-11-26 | Altera Corporation | Programmable integrated circuits with multiplexer and register pipelining circuitry |
US10509846B2 (en) * | 2017-12-13 | 2019-12-17 | Intel Corporation | Accelerator for processing data |
US12099912B2 (en) * | 2018-06-22 | 2024-09-24 | Samsung Electronics Co., Ltd. | Neural processor |
-
2021
- 2021-09-24 US US17/485,123 patent/US20220012012A1/en active Pending
-
2022
- 2022-08-05 EP EP22189009.8A patent/EP4155901A1/en active Pending
- 2022-08-23 TW TW111131715A patent/TW202314571A/zh unknown
- 2022-08-24 CN CN202211015685.8A patent/CN115878074A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20220012012A1 (en) | 2022-01-13 |
CN115878074A (zh) | 2023-03-31 |
EP4155901A1 (en) | 2023-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20240176619A1 (en) | FPGA Specialist Processing Block for Machine Learning | |
US11899746B2 (en) | Circuitry for high-bandwidth, low-latency machine learning | |
US11809798B2 (en) | Implementing large multipliers in tensor arrays | |
US20210075425A1 (en) | Adder circuitry for very large integers | |
US20210326111A1 (en) | FPGA Processing Block for Machine Learning or Digital Signal Processing Operations | |
US10853037B1 (en) | Digital circuit with compressed carry | |
TW202314571A (zh) | 用於在特殊處理區塊中的稀疏性操作之系統及方法 | |
WO2022150058A1 (en) | Numerical precision in digital multiplier circuitry | |
EP4109235A1 (en) | High precision decomposable dsp entity | |
CN114675804A (zh) | 用于低延时模块化乘法的系统和方法 | |
US20220113940A1 (en) | Systems and Methods for Structured Mixed-Precision in a Specialized Processing Block | |
US20230239136A1 (en) | Pipelined Galois Counter Mode Hash Circuit |