TWI696961B - 深度神經網路硬體加速器與其操作方法 - Google Patents
深度神經網路硬體加速器與其操作方法 Download PDFInfo
- Publication number
- TWI696961B TWI696961B TW107144665A TW107144665A TWI696961B TW I696961 B TWI696961 B TW I696961B TW 107144665 A TW107144665 A TW 107144665A TW 107144665 A TW107144665 A TW 107144665A TW I696961 B TWI696961 B TW I696961B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- bandwidth
- target data
- processing unit
- hardware accelerator
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4208—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30101—Special purpose registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Abstract
一種深度神經網路硬體加速器及其操作方法,深度神經網路硬體加速器包括:一網路分配器,接收一輸入資料,根據一目標資料量的複數頻寬比率來分配該目標資料量的複數個資料類型的個別頻寬;以及一處理單元陣列,耦接至該網路分配器,根據所分配的該些資料類型的個別頻寬,該處理單元陣列與該網路分配器之間互相傳輸該目標資料量的該些資料類型的各自資料。
Description
本發明是有關於一種深度神經網路硬體加速器與其操作方法。
深度神經網路(Deep Neural Networks,DNN)屬於人工神經網路(Artificial Neural Network,ANN)的一環,可用於深度機器學習。人工神經網路可具備學習功能。深度神經網路已經被用於解決各種各樣的問題,例如機器視覺和語音識別等。
如何使得深度神經網路的內部資料傳輸速度最佳化進而加快其處理速度,一直是業界努力方向之一。
根據本案一實施例,提出一種深度神經網路硬體加速器,包括:一網路分配器,接收一輸入資料,根據一目標資料量的複數頻寬比率來分配該目標資料量的複數個資料類型的個別頻寬;以及一處理單元陣列,耦接至該網路分配器,根據所分配的該些資料類型的個別頻寬,該處理單元陣列與該網路分配器之間互相傳輸該目標資料量的該些資料類型的各自資料。
根據本案更一實施例,提出一種深度神經網路硬體加速器的操作方法,該深度神經網路硬體加速器包括一網路分配器與一處理單元陣列,該處理單元陣列包括複數個處理單元,該操作方法包括:分析一目標資料量;根據對該目標資料量的分析結果,設定該目標資料量的複數個資料類型的複數個頻寬比率;根據相關於該目標資料量的該些資料類型的該些頻寬比率所造成的一延遲,判斷是否要重新設定該目標資料量的該些資料類型的該些頻寬比率;根據該目標資料量的該些資料類型的該些頻寬比率,初始化該網路分配器與該處理單元陣列的該些處理單元;以及由該處理單元陣列的至少一被選處理單元來處理一輸入資料。
根據本案另一實施例,提出一種深度神經網路硬體加速器,包括:一頻寬與使用率分析單元,分析一目標資料量,以得到該目標資料量的複數個資料類型的分布情況並設定該目標資料量的該些資料類型的個別傳輸頻寬;一處理單元陣列,包括複數個處理單元;複數個第一多工器,耦接至該處理單元陣列,該些第一多工器接收一輸入資料之一第一資料與一第二資料;以及一控制器,耦接至該頻寬與使用率分析單元以及該些第一多工器,該控制器根據該頻寬與使用率分析單元所設定的該些資料類型的該些傳輸頻寬,來控制該些多工器,其中,該些第一多工器之一多工器輸出該輸入資料之該第一資料與該第二資料中之一資料量較小者給該處理單元陣列,而該些第一多工器之另一多工器輸出該輸入資料之該第一資料與該第二資料中之一資料量較大者給該處理單元陣列。
根據本案又一實施例,提出一種深度神經網路硬體加速器的操作方法,該深度神經網路硬體加速器包括一處理單元陣列與一
網路分配器,該操作方法包括:接收一輸入資料,根據一目標資料量的複數頻寬比率來分配該目標資料量的複數個資料類型的個別頻寬;以及根據所分配的該些資料類型的個別頻寬,該處理單元陣列與該網路分配器之間互相傳輸該目標資料量的該些資料類型的各自資料。
為了對本發明之上述及其他方面有更佳的瞭解,下文特舉實施例,並配合所附圖式詳細說明如下:
100:深度神經網路硬體加速器
110:網路分配器
120:處理單元陣列
RI、RF、RIP、ROP:頻寬比率
ifmap、filter、ipsum、opsum、ifmapA、filterA、ipsumA、opsumA、ifmapB、filterB、ipsumB、ifmapC、filterC:資料類型
122:處理單元
210:標籤產生單元
220:資料分配器
231、233、235與237:FIFO
I_R_TAG、F_R_TAG、IP_R_TAG:列標籤
I_C_TAG、F_C_TAG、IP_C_TAG:行標籤
310:標籤匹配單元
320:資料選擇與調度單元
330:頻寬架構儲存單元
340:運算單元
352、354、356:FIFO
360:重整單元
I_C_ID、F_C_ID、IP_C_ID:行辨別號
H_I、H_F與H_IP:命中參數
I_L、F_L、IP_L、OP_L:頻寬架構參數
341、343、345:內部暫存空間
347:乘加器
410-450:步驟
500:深度神經網路硬體加速器
512:頻寬與使用率分析單元
514:控制器
516、518:多工器
520:處理單元陣列
522:處理單元
611與613:匹配單元
621、623與625:FIFO
631、633與635:重整單元
640:暫存器
641:處理單元控制器
643與645:多工器
650:運算單元
661與663:緩衝單元
d1:資料1
col_tag:行標籤
d2:資料2
col_id:行辨別號
710-730:步驟
第1圖顯示根據本案一實施例的深度神經網路(DNN)硬體加速器的功能方塊圖。
第2圖顯示根據本案一實施例的網路分配器的功能方塊圖。
第3圖顯示根據本案一實施例的處理單元的功能方塊圖。
第4圖顯示根據本案一實施例的深度神經網路硬體加速器的操作方法流程圖。
第5圖顯示根據本案一實施例的深度神經網路硬體加速器的功能方塊圖。
第6圖顯示根據本案一實施例的處理單元的功能方塊圖。
第7圖顯示根據本案一實施例的深度神經網路硬體加速器的操作方法流程圖。
本說明書的技術用語係參照本技術領域之習慣用語,如本說明書對部分用語有加以說明或定義,該部分用語之解釋係以本說
明書之說明或定義為準。本揭露之各個實施例分別具有一或多個技術特徵。在可能實施的前提下,本技術領域具有通常知識者可選擇性地實施任一實施例中部分或全部的技術特徵,或者選擇性地將這些實施例中部分或全部的技術特徵加以組合。
第1圖顯示根據本案一實施例的深度神經網路(DNN)硬體加速器的功能方塊圖。如第1圖所示,深度神經網路硬體加速器100包括網路分配器(network distribution)110與處理單元(processing element,PE)陣列120。
在本揭露的一實施例中,網路分配器110可以是硬體、韌體或是儲存在記憶體而由微處理器或是數位信號處理器所載入執行的軟體或機器可執行程式碼。若是採用硬體來實現,則網路分配器110可以是由單一整合電路晶片所達成,也可以由多個電路晶片所完成,但本揭露並不以此為限制。上述多個電路晶片或單一整合電路晶片可採用特殊功能積體電路(ASIC)或可程式化邏輯閘陣列(FPGA)來實現。而上述記憶體可以是例如隨機存取記憶體、唯讀記憶體或是快閃記憶體等等。處理單元122可例如被實施為微控制器(microcontroller)、微處理器(microprocessor)、處理器(processor)、中央處理器(central processing unit,CPU)、數位訊號處理器(digital signal processor)、特殊應用積體電路(application specific integrated circuit,ASIC)、數位邏輯電路、現場可程式邏輯閘陣列(field programmable gate array,FPGA)及/其它具有運算處理功能的硬體
元件。各處理單元122之間可以特殊應用積體電路、數位邏輯電路、現場可程式邏輯閘陣列及/其它硬體元件相互耦接。
網路分配器110根據目標資料量的複數頻寬比率(RI,RF,RIP,ROP)來分配複數個資料類型的各自頻寬。在一實施例中,深度神經網路硬體加速器100處理完「目標資料量」後,可進行頻寬調整。在此,「目標資料量」例如但不受限於,複數資料層、至少一資料層或一設定資料量。在此底下的說明以「目標資料量」為複數資料層或至少一資料層為例來做說明,但當知本案並不受限於此。該些資料層例如卷積層(convolutional layer)、池層(pool layer)及/或完全連接層(Fully-connect layer)等。資料類型包括:輸入特徵圖(input feature map,ifmap)、濾波器(filter)、輸入部分和(input partial sum,ipsum)與輸出部分和(output partial sum,opsum)。在一實施例中,各資料層包括這些資料類型的任意組合。對於各資料層而言,這些資料類型的組合比例彼此不同,亦即,對於某一資料層而言,可能資料ifmap所佔的比重較高(例如資料量較多),但對於另一資料層而言,可能資料filter所佔的比重較高。故而,在本案一實施例中,可以針對各資料層的資料所佔比重決定各資料層的頻寬比率(RI、RF、RIP及/或ROP),進而調整及/或分配該資料類型的傳輸頻寬(例如處理單元陣列120與網路分配器110之間的傳輸頻寬),其中,頻寬比率RI、RF、RIP與ROP分別代表資料ifmap、filter、ipsum與opsum的頻寬比率,網路分配器110可根據RI、RF、RIP與ROP來分配資料ifmapA、filterA、ipsumA與opsumA的頻寬。
處理單元陣列120包括排列成陣列的複數個處理單元122。處理單元陣列120耦接至網路分配器110。根據所分配的該些資料類型的各自頻寬,處理單元陣列120與網路分配器110之間互相傳輸該些資料類型的各自資料。
在本案一實施例中,深度神經網路硬體加速器100更選擇性包括:頻寬參數儲存單元(未示出),耦接至網路分配器110,用以儲存該些資料層的該些頻寬比率RI、RF、RIP及/或ROP,並將該些資料層的該些頻寬比率RI、RF、RIP及/或ROP傳至網路分配器110。儲存於頻寬參數儲存單元內的頻寬比率RI、RF、RIP及/或ROP可以是離線(offline)訓練獲得。
在本案一實施例中,該些資料層的該些頻寬比率RI、RF、RIP及/或ROP可以是即時(real-time)獲得,例如該些資料層的該些頻寬比率RI、RF、RIP及/或ROP由一微處理器(未示出)動態分析該些資料層而得,並傳送至網路分配器110。在一實施例中,如果是微處理器(未示出)動態產生頻寬比率RI、RF、RIP及/或ROP的話,則可以不需要進行獲得頻寬比率RI、RF、RIP及/或ROP的離線訓練。
現請參照第2圖,顯示根據本案一實施例的網路分配器110的功能方塊圖。如第2圖所示,網路分配器110包括:標籤產生單元(tag generation unit)210、資料分配器220與複數個先入先出緩衝器(first in,first out,FIFO)231、233、235與237。
標籤產生單元210根據該些頻寬比率RI、RF、RIP、ROP以產生複數個第一標籤與複數個第二標籤。在此以該些第一標籤為列
標籤(row tag)I_R_TAG、F_R_TAG、IP_R_TAG,而該些第二標籤為複數個行標籤(column tag)I_C_TAG、F_C_TAG、IP_C_TAG為例做說明,但當知本案並不受限於此。I_R_TAG與I_C_TAG分別代表資料ifmap的列標籤與行標籤,F_R_TAG與F_C_TAG分別代表資料filter的列標籤與行標籤,IP_R_TAG與IP_C_TAG分別代表資料ipsum的列標籤與行標籤。
處理單元122根據該些列標籤與行標籤,決定是否需要處理該筆資料。其細節將於底下說明之。
資料分配器220,耦接至標籤產生單元210,用以接收由該些FIFO 231、233與235所傳來的資料(ifmap,filter,ipsum)及/或傳送資料(opsum)到FIFO 237,並根據該些頻寬比率RI、RF、RIP及/或ROP以分配該些資料(ifmap,filter,ipsum,opsum)的傳輸頻寬,使得該些資料依據所分配的頻寬以在網路分配器110與處理單元陣列120之間傳輸。
FIFO 231、233、235與237分別用以暫存資料ifmap、filter、ipsum與opsum。
在本案一實施例中,網路分配器110以16位元頻寬來接收該些輸入資料ifmap、filter、ipsum,且也以16位元頻寬來輸出該輸出資料opsum(輸入資料至網路分配器110的輸入傳輸頻寬總和是固定的,網路分配器110輸出至輸出資料的輸出傳輸頻寬總和是固定的)。對於某一資料層而言,經資料分配器220處理輸入資料(例如將8個16位元的資料集合為128位元,或將64位元的資料分開成為4個16位元的
資料等)後,資料分配器220以64位元頻寬傳輸資料ifmapA給處理單元陣列120,以128位元頻寬傳輸資料filterA給處理單元陣列120,以16位元頻寬傳輸資料ipsumA給處理單元陣列120,而資料分配器220以64位元頻寬接收由處理單元陣列120所回傳的資料opsumA。如此一來,可以更有效率地將資料傳輸於網路分配器110與處理單元陣列120之間,亦即,如果資料filter所佔比重較高,則以較高位元頻寬來將資料filterA傳輸至處理單元陣列120;而如果資料ifmap所佔比重較高,則以較高位元頻寬來將資料ifmapA傳輸至處理單元陣列120。
現請參考第3圖,其顯示根據本案一實施例的處理單元122的功能方塊圖。如第3圖所示,處理單元122包括:標籤匹配單元(tag match unit)310、資料選擇與調度單元(data selecting and dispatching unit)320、頻寬架構儲存單元(bandwidth configuration register)330、運算單元340、FIFO 352、354、356與重整單元(reshaper)360。
在本案一實施例中,處理單元陣列120更選擇性包括一列解碼器(未示出),用以解碼由標籤產生單元210所產生的該些列標籤I_R_TAG、F_R_TAG、IP_R_TAG,以決定哪一列要接收此筆資料。詳細地說,假設處理單元陣列120包括12列的處理單元。如果該些列標籤I_R_TAG、F_R_TAG、IP_R_TAG是指向第一列(例如,I_R_TAG、F_R_TAG、IP_R_TAG的值皆為1),於列解碼器解碼後,列解碼器將此筆資料送至第一列,其餘可依此類推。
標籤匹配單元310則用於匹配由標籤產生單元210所產生的該些行標籤I_C_TAG、F_C_TAG、IP_C_TAG與行辨別號(col.ID)I_C_ID、F_C_ID、IP_C_ID,以決定該處理單元是否要處理該筆資料。詳細言之,假設處理單元陣列120的每一列包括14個處理單元。對於第一個處理單元,其行辨別號I_C_ID、F_C_ID、IP_C_ID皆為1(其餘可依此類推),如果該些行標籤I_C_TAG、F_C_TAG、IP_C_TAG的值皆為1,則於標籤匹配單元310的匹配後,第一個處理單元會決定要處理該筆資料。在一實施例中,根據標籤匹配單元310的匹配結果,標籤匹配單元310產生複數個命中參數H_I、H_F與H_IP。如果該些命中參數H_I、H_F或H_IP為邏輯高,則代表匹配成功;如果該些命中參數H_I、H_F或H_IP為邏輯低,則代表匹配失敗。資料選擇與調度單元320可以根據該些命中參數H_I、H_F與H_IP,來決定是否要處理該筆資料。如果命中參數H_I為邏輯高,則資料選擇與調度單元320處理該筆資料ifmapA;如果命中參數H_F為邏輯高,則資料選擇與調度單元320處理該筆資料filterA;以及如果命中參數H_IP為邏輯高,則資料選擇與調度單元320處理該筆資料ipsumA。
頻寬架構儲存單元330儲存該些資料類型ifmapA、filterA、ipsumA與opsumA所對應的複數個頻寬架構參數I_L、F_L、IP_L與OP_L,其中,頻寬架構參數I_L、F_L、IP_L與OP_L分別代表由網路分配器110的資料分配器220所分配給該些資料ifmapA、filterA、ipsumA與opsumA的傳輸頻寬(傳輸頻寬的單位例如是位元數)。
資料選擇與調度單元320根據由頻寬架構儲存單元330所傳來的該些頻寬架構參數I_L、F_L、IP_L以及由標籤匹配單元所傳來的該些命中參數H_I、H_F與H_IP,而從FIFO 354中選擇資料,以組成資料ifmapB、filterB與ipsumB,其中,由資料選擇與調度單元320所組出的資料ifmapB、filterB與ipsumB的位元假設皆為16位元。亦即,由資料分配器220所傳來的ifmapA、filterA與ipsumA位元假設是64位元、128位元與16位元(如第2圖所示),則經過資料選擇與調度單元320的重組後,由資料選擇與調度單元320所組出的資料ifmapB、filterB與ipsumB皆為16位元。
運算單元340包括內部暫存空間(Scratch Pad Memory,spad)341、343、345與乘加器347。運算單元340例如但不受限於乘加運算單元。在本案一實施例中,資料選擇與調度單元320所組出的資料ifmapB、filterB與ipsumB(例如皆為16位元)放入至內部暫存空間341、343與345內(如(1)所示)。接著,由乘加器(Multiply Accumulate,MAC)347來作乘加運算,亦即,乘加器347對資料ifmapB與filterB作乘法運算,所得到的乘法結果再與內部暫存空間345中的值作加法運算(如(2)所示)。作完上述乘加運算的值再寫入至內部暫存空間345中,等待之後要再作加法運算時使用,之後,(2)與(3)循環進行。等到放在內部暫存空間341與343中的輸入資料都已經完成運算且產生出對應的opsum後,再把opsum的值由內部暫存空間345輸出至FIFO 356(如(4)所示)。如此即可完成乘加運算。當然,以上乃是用以舉例說明,本案並不受限於此。本案其他實施例可依需要而讓運算單元340
執行其他運算,並據以調整運算單元340的組成單元,其皆在本案精神範圍內。
FIFO 352用以暫存行標籤I_C_TAG、F_C_TAG、IP_C_TAG,並輸出至標籤匹配單元310。FIFO 354用以暫存資料ifmapA、filterA與ipsumA,並輸出至資料選擇與調度單元320。FIFO 356用以暫存由運算單元340所產生的資料,並輸出至重整單元360。
重整單元(reshaper)360用以根據頻寬架構參數OP_L將由FIFO 356所傳來的資料重整成資料opsumA(例如輸出資料opsumA為64位元而由FIFO 356所傳來的資料為16位元,則將4個16位元的資料重整為1個64位元的資料),並回傳給網路分配器120的資料分配器220,以寫入至FIFO 237中,且回傳至記憶體。
在本案一實施例中,輸入至網路分配器110的資料可能是來自深度神經網路硬體加速器100的一內部緩衝器(未示出),其中該內部緩衝器可能是直接耦接至網路分配器110。或者,在本案另一可能實施例中,輸入至網路分配器110的資料可能是來自透過系統匯流排(未示出)而連接的一記憶體(未示出),亦即該記憶體可能是透過系統匯流排而耦接至網路分配器110。
第4圖顯示根據本案一實施例的深度神經網路硬體加速器100的操作方法流程圖。如第4圖所示,於步驟410中,分析目標資料量。於步驟415中,根據對該目標資料量的分析結果,設定各資料類型的頻寬比率(RI、RF、RIP、ROP)。於步驟420中,以目前所設定的頻寬比率(RI、RF、RIP、ROP)來計算延遲。於步驟425中,判斷延遲
是否符合標準,亦即,判斷目前所設定的頻寬比率(RI、RF、RIP、ROP)所造成的延遲是否符合標準。如果步驟425為否,則回到步驟415,重新設定各資料類型的頻寬比率(RI、RF、RIP、ROP)。如果步驟425為是,則重覆上述步驟,直到完成對該目標資料量的各資料類型的頻寬比率(RI、RF、RIP、ROP)的設定(步驟430)。在一實施例中,也可對一層資料層執行步驟410~425之後,即執行步驟435。在一實施例中,也可同時(例如平行處理)執行超過一層或所有資料層的步驟410~425。在本案一實施例中,步驟410-430可以由一微處理器動態/即時執行。在本案一實施例中,步驟410-430可以由離線獲得。
於步驟435中,在處理目標資料量時,根據所設定好的該目標資料量的各資料類型的頻寬比率(RI、RF、RIP、ROP),來初始化該網路分配器110與處理單元陣列120的各處理單元122。在一實施例中,針對該目標資料量的頻寬比率(RI、RF、RIP、ROP),由網路分配器110來調整/分配該資料類型的傳輸頻寬;以及將頻寬架構參數I_L、F_L、IP_L、OP_L寫入至各處理單元122。在一實施例中,將儲存於頻寬參數儲存單元的該目標資料量的頻寬比率(RI、RF、RIP、ROP)寫入標籤產生單元210及/或資料分配器220,並設定各處理單元122中的標籤匹配單元310的行辨別號IC_ID、F_C_ID、IP_C_ID及/或頻寬架構儲存單元330的頻寬架構參數I_L、F_L、IP_L、OP_L。於步驟440,將資料(ifmap,filter,ipsum)由網路分配器110送至處理單元陣列120。在步驟445,由處理單元陣列120的一個或多個被選處理單元122來處理資料。於步驟450中,判斷是否已處理完目標資料
量。如果步驟450為否,則流程回至步驟435,重複步驟435-445,直到處理完目標資料量。如果步驟450為是,則代表處理已完成。
現請參考第5圖,其顯示根據本案一實施例的實施例的深度神經網路硬體加速器的功能方塊圖。如第5圖所示,深度神經網路硬體加速器500至少包括:頻寬與使用率分析(bandwidth and utilization analysis)單元512、控制器514、多工器516、518與處理單元陣列520。處理單元陣列520包括複數個處理單元522。
頻寬與使用率分析單元512進行目標資料量剖析(profiling),在此,目標資料量可為複數資料層、至少一資料層或一設定資料量。同樣地,底下的說明以目標資料量為複數資料層為例來做說明,但當知本案不受限於此。頻寬與使用率分析單元512進行各資料層的剖析(profiling),以得到在各資料層的各資料類型的分布情況。如此一來,頻寬與使用率分析單元512可以據以得到各資料類型的適當傳輸頻寬。在一實施例中,頻寬與使用率分析單元512可以根據各資料層的頻寬比率(RI、RF、RIP、ROP)得到各資料層的各資料類型的分布情況。在一實施例中,網路分配器110包括頻寬與使用率分析單元512。
控制器514耦接至頻寬與使用率分析單元512與多工器516與518。控制器514根據頻寬與使用率分析單元512所設定的各資料類型的適當傳輸頻寬,來控制多工器516與518。
多工器516、518耦接至處理單元陣列520。多工器516、518皆接收資料ifmap與filter。在本案第5圖實施例中,多工器516的輸
出頻寬(假設但不受限於為16位元)小於多工器518的輸出頻寬(假設但不受限於為64位元)。
舉例說明如下。假設由緩衝器(未示出)送至第5圖的多工器516、518的資料ifmap與filter的位元分別為64位元與16位元。對於某一資料層而言,經由頻寬與使用率分析單元512的剖析,資料ifmap的資料量大於資料filter。所以,經由控制器514的控制,多工器516(其輸出頻寬較小)選擇將資料量較小的資料filter送至處理單元陣列520,而多工器518(其輸出頻寬較大)選擇將資料量較大的資料ifmap送至處理單元陣列520。
同樣地,對於另一資料層而言,經由頻寬與使用率分析單元512的剖析,資料ifmap的資料量小於資料filter。所以,經由控制器514的控制,多工器516選擇將資料量較小的資料ifmap送至處理單元陣列520,而多工器518選擇將資料量較大的資料filter送至處理單元陣列520。
亦即,在控制器514的控制下,多工器516固定輸出輸入資料之資料ifmap與filter中之資料量較小者給處理單元陣列520,而多工器518固定輸出輸入資料之資料ifmap與filter中之資料量較大者給處理單元陣列520。
透過上述的方式,可以把目前資料量需求較大的資料類型以較大的頻寬送至處理單元陣列520,以提高處理效率。
現請參考第6圖,其顯示根據本案第5圖實施例的處理單元522的功能方塊圖。處理單元522包括匹配單元611與613,FIFO
621、623與625,重整單元631、633與635,暫存器640,處理單元控制器641,多工器643與645,運算單元650,以及緩衝單元661與663。
匹配單元611與613用以將資料1 d1的行標籤col_tag與資料2 d2的行標籤col_tag匹配於行辨別號col_id,其中,資料1 d1與資料2 d2分別是資料ifmap與filter之其中一者與另一者。或者說,資料1 d1由多工器516所送來,而資料2 d2由多工器518所送來。如果行標籤col_tag與行辨別號col_id兩者匹配,則代表該筆資料是該處理單元522需要處理,所以,資料1 d1與資料2 d2分別輸入至FIFO 621與623。相反地,如果行標籤col_tag與行辨別號col_id兩者不匹配,則代表該筆資料不是該處理單元522需要處理,所以,不需將資料1 d1與資料2 d2輸入至FIFO 621與623。在一實施例中,資料1 d1由第5圖的多工器516而來,資料2 d2由第5圖的多工器518而來,資料1 d1為16位元,資料2 d2為64位元。
重整單元631、633耦接至FIFO 621、623與多工器643與645。重整單元631、633將由FIFO 621與623的輸出資料給予重整,以輸入至多工器643與645;重整單元可以將多位元數資料重整為少位元數資料,也可以將少位元數資料重整為多位元數資料。例如資料2 d2為64位元,將資料2 d2存進FIFO 623後,以64位元輸出到重整單元633,重整單元633將64位元的資料重整為16位元的資料輸出到16位元的多工器643和多工器645;資料1 d1為16位元,將資料1 d1存進FIFO 621後,以16位元輸出到重整單元631,重整單元631將16位元的資料重整為16位元的資料輸出到16位元的多工器643和多工器645。在一實
施例中,若是輸入處理單元522的資料與輸入運算單元650的資料的位元數相同,則可以省略重整單元,例如資料1 d1為16位元,資料2 d2為64位元,輸入運算單元的資料為16位元,則重整單元631可以省略。
處理單元控制器641耦接至暫存器640與多工器643與645。處理單元控制器641根據暫存器640所暫存的頻寬架構參數I_L、F_L來控制多工器643與645。詳細地說,如果頻寬架構參數I_L、F_L指示資料ifmap的傳輸頻寬低於資料filter的傳輸頻寬,則在處理單元控制器641的控制下,多工器643選擇輸出資料1 d1(由傳輸頻寬較小的多工器516所傳來的資料)成為資料ifmapC且多工器645選擇輸出資料2 d2(由傳輸頻寬較大的多工器518所傳來的資料)成為資料filterC。
相反地,頻寬架構參數I_L、F_L指示指示資料ifmap的傳輸頻寬高於資料filter的傳輸頻寬,則在處理單元控制器641的控制下,多工器643選擇輸出資料2 d2(由傳輸頻寬較大的多工器518所傳來的資料)成為資料ifmapC且多工器645選擇輸出資料1 d1(由傳輸頻寬較小的多工器516所傳來的資料)成為資料filterC。
運算單元650耦接至多工器643與645的組成與操作原則可相同或類似於第3圖的運算單元340,故其細節在此省略。
FIFO 625耦接至運算單元650與重整單元635。FIFO 625用以暫存由運算單元650所產生的資料。重整單元635用以將由FIFO 625所傳來的資料重整成資料opsum(資料opsum可送至下一級處理單元522作累加,之後由最後一級處理單元522(如第5圖中的最右邊的處理單元522)送至深度神經網路硬體加速器500的外部)。
緩衝單元661與663用以緩衝前一級處理單元522所送來的資料1及其行標籤(d1,col_tag)與資料2及其行標籤(d2,col_tag),並送至下一級處理單元522。緩衝單元661與663例如可以暫存器(register)實現。
第7圖顯示根據本案一實施例的深度神經網路硬體加速器的操作方法,包括:分析目標資料量(步驟710),以得到目標資料量的複數個資料類型的分布情況並設定目標資料量的該些資料類型的個別傳輸頻寬;由複數個第一多工器接收一輸入資料之一第一資料與一第二資料(步驟720);以及根據所設定的該些資料類型的該些傳輸頻寬,來控制該些第一多工器(步驟730),其中,該些第一多工器之一多工器輸出該輸入資料之該第一資料與該第二資料中之一資料量較小者給該深度神經網路硬體加速器的一處理單元陣列以進行處理,而該些第一多工器之另一多工器輸出該輸入資料之該第一資料與該第二資料中之一資料量較大者給該處理單元陣列以進行處理。至於步驟710-730的細節可參考第5圖與第6圖的說明,其細節在此省略。
在本案一實施例中,對於同一資料層,可以使用相同的頻寬分配與頻寬比率,也可以使用不同的頻寬分配與頻寬比率,例如可以動態調整頻寬分配與頻寬比率,其細節在此省略,其亦在本案精神範圍內。在本案一實施例中,不同資料層可以使用不同的頻寬分配與頻寬比率,也可以使用相同的頻寬分配與頻寬比率。
本案實施例可用於終端裝置(例如但不受限於,智慧型手機)上的人工智慧(AI)加速器,也可用於伺服器等級裝置。
由上述可知,在本案上述二個實施例中,藉由離線或即時分析各資料層的資料類型的分布情況,讓目前資料需求量大的資料類型以較大的頻寬輸入至處理單元陣列,如此可以使處理單元陣列可以較有效率的方式獲得運算所需的輸入資料,減少處理單元陣列因等待輸入資料所造成的閒罝情況。
綜上所述,雖然本發明已以實施例揭露如上,然其並非用以限定本發明。本發明所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作各種之更動與潤飾。因此,本發明之保護範圍當視後附之申請專利範圍所界定者為準。
100:深度神經網路硬體加速器
110:網路分配器
120:處理單元陣列
RI、RF、RIP、ROP:頻寬比率
ifmap,filter,ipsum,opsum:資料類型
122:處理單元
Claims (26)
- 一種深度神經網路硬體加速器,包括:一網路分配器,接收包括複數個資料類型之一輸入資料,根據一目標資料量的複數頻寬比率來分配該目標資料量的該些資料類型的個別頻寬,其中該些資料類型的傳輸頻寬總合為固定;以及一處理單元陣列,耦接至該網路分配器,根據所分配的該些資料類型的個別頻寬,該處理單元陣列與該網路分配器之間傳輸該目標資料量的該些資料類型的各自資料。
- 如申請專利範圍第1項所述之深度神經網路硬體加速器,更包括:一頻寬參數儲存單元,儲存該目標資料量的該些頻寬比率,並將該目標資料量的該些頻寬比率傳至該網路分配器,其中,該目標資料量包括複數資料層、至少一資料層或一設定資料量。
- 如申請專利範圍第1項所述之深度神經網路硬體加速器,其中,該目標資料量的該些頻寬比率由一微處理器動態分析該目標資料量而得,並傳送至該網路分配器。
- 如申請專利範圍第1項所述之深度神經網路硬體加速器,其中,該目標資料量的該些頻寬比率相關於該目標資料量的該些資料類型的個別比重。
- 如申請專利範圍第1項所述之深度神經網路硬體加速器,其中,該網路分配器包括:一標籤產生單元,根據該些頻寬比率以產生複數個第一標籤與複數個第二標籤;以及 一資料分配器,用以接收該輸入資料並根據該些頻寬比率以分配該目標資料量的該些資料類型的個別頻寬。
- 如申請專利範圍第5項所述之深度神經網路硬體加速器,其中,該處理單元陣列包括排列成陣列的複數個處理單元,各處理單元包括:一標籤匹配單元,匹配該些第二標籤與複數個第一辨別號,以產生複數個命中參數;一頻寬架構儲存單元,儲存該些資料類型所對應的複數個頻寬架構參數;一資料選擇與調度單元,耦接至該標籤匹配單元與該頻寬架構儲存單元,用以根據該些命中參數與該些頻寬架構參數,以重組該網路分配器所傳來的該些資料;以及一運算單元,耦接至該資料選擇與調度單元,對該資料選擇與調度單元所重組的該些資料進行運算。
- 如申請專利範圍第1項所述之深度神經網路硬體加速器,其中,該網路分配器所接收的該輸入資料來自一緩衝器或者是來自透過一系統匯流排而連接的一記憶體。
- 如申請專利範圍第1項所述之深度神經網路硬體加速器,其中,當該目標資料量包括複數個資料層時,該些資料層具有不同的該些頻寬比率,且該網路分配器對該些資料層分配不同的個別頻寬。
- 如申請專利範圍第1項所述之深度神經網路硬體加速器,其中,當該目標資料量包括複數個資料層時,該些資料層具有相 同的該些頻寬比率,且該網路分配器對該些資料層分配相同的個別頻寬。
- 一種深度神經網路硬體加速器的操作方法,該深度神經網路硬體加速器包括一網路分配器與一處理單元陣列,該處理單元陣列包括複數個處理單元,該操作方法包括:分析一目標資料量;根據對該目標資料量的分析結果,設定該目標資料量的複數個資料類型的複數個頻寬比率;根據相關於該目標資料量的該些資料類型的該些頻寬比率所造成的一延遲,判斷是否要重新設定該目標資料量的該些資料類型的該些頻寬比率;根據該目標資料量的該些資料類型的該些頻寬比率,初始化該網路分配器與該處理單元陣列的該些處理單元;以及由該處理單元陣列的至少一被選處理單元來處理一輸入資料。
- 如申請專利範圍第10項所述之操作方法,其中,該分析步驟、該設定該些頻寬比率步驟與該判斷步驟由一微處理器動態執行。
- 如申請專利範圍第10項所述之操作方法,其中,該分析步驟、該設定該些頻寬比率步驟與該判斷步驟以離線獲得。
- 如申請專利範圍第10項所述之操作方法,其中初始化該網路分配器與該處理單元陣列的該些處理單元的步驟包括:根據該目標資料量的該些資料類型的該些頻寬比率,由該網路分配器來調整/分配該些資料類型的個別傳輸頻寬;以及 將相關於該些頻寬比率的複數個頻寬架構參數寫入至各該些處理單元。
- 如申請專利範圍第10項所述之深度神經網路硬體加速器的操作方法,其中,當該目標資料量包括複數個資料層時,對該些資料層設定不同的該些頻寬比率。
- 如申請專利範圍第10項所述之深度神經網路硬體加速器的操作方法,其中,當該目標資料量包括複數個資料層時,對該些資料層設定相同的該些頻寬比率。
- 一種深度神經網路硬體加速器,包括:一頻寬與使用率分析單元,分析一目標資料量,以得到該目標資料量的複數個資料類型的分布情況並設定該目標資料量的該些資料類型的個別傳輸頻寬;一處理單元陣列,包括複數個處理單元;複數個第一多工器,耦接至該處理單元陣列,該些第一多工器接收一輸入資料之一第一資料與一第二資料;以及一控制器,耦接至該頻寬與使用率分析單元以及該些第一多工器,該控制器根據該頻寬與使用率分析單元所設定的該些資料類型的該些傳輸頻寬,來控制該些多工器,其中,該些第一多工器之一多工器輸出該輸入資料之該第一資料與該第二資料中之一資料量較小者給該處理單元陣列,而該些第一多工器之另一多工器輸出該輸入資料之該第一資料與該第二資料中之一資料量較大者給該處理單元陣列。
- 如申請專利範圍第16項所述之深度神經網路硬體加速器,其中,各該些處理單元包括:複數個匹配單元,用以將該第一資料與該第二資料的一行標籤匹配於一行辨別號以決定是否要處理該第一資料與該第二資料;一暫存器,用以暫存一頻寬架構參數;一處理單元控制器,耦接至該暫存器,接收該暫存器所傳來的該頻寬架構參數;複數個第二多工器,耦接至該處理單元控制器,該處理單元控制器根據該暫存器所傳來的該頻寬架構參數而控制該些第二多工器,該些第二多工器接收該第一資料與該第二資料;以及一運算單元,耦接至該些第二多工器,該些第二多工器輸出該第一資料與該第二資料至該運算單元以進行運算。
- 如申請專利範圍第16項所述之深度神經網路硬體加速器,其中,當該目標資料量包括複數個資料層時,該頻寬與使用率分析單元對該些資料層設定具有不同的個別傳輸頻寬。
- 如申請專利範圍第16項所述之深度神經網路硬體加速器,其中,當該目標資料量包括複數個資料層時,該頻寬與使用率分析單元對該些資料層設定具有相同的個別傳輸頻寬。
- 一種深度神經網路硬體加速器的操作方法,該深度神經網路硬體加速器包括一處理單元陣列與一網路分配器,該操作方法包括:接收包括複數個資料類型之一輸入資料,根據一目標資料量的複數頻寬比率來分配該目標資料量的該些資料類型的個別頻寬,其中該些資料類型的傳輸頻寬總合為固定;以及 根據所分配的該些資料類型的個別頻寬,該處理單元陣列與該網路分配器之間傳輸該目標資料量的該些資料類型的各自資料。
- 如申請專利範圍第20項所述之操作方法,更包括:儲存該目標資料量的該些頻寬比率,並將該目標資料量的該些頻寬比率傳至該網路分配器,其中,該目標資料量包括複數資料層、至少一資料層或一設定資料量。
- 如申請專利範圍第20項所述之操作方法,其中,該目標資料量的該些頻寬比率由動態分析該目標資料量而得,並傳送至該網路分配器。
- 如申請專利範圍第20項所述之操作方法,其中,該目標資料量的該些頻寬比率相關於該目標資料量的該些資料類型的個別比重。
- 如申請專利範圍第20項所述之操作方法,更包括:根據該些頻寬比率以產生複數個第一標籤與複數個第二標籤;以及接收該輸入資料並根據該些頻寬比率以分配該目標資料量的該些資料類型的個別頻寬。
- 如申請專利範圍第24項所述之操作方法,其中,該處理單元陣列包括排列成陣列的複數個處理單元,該操作方法包括:匹配該些第二標籤與複數個第一辨別號,以產生複數個命中參數;儲存該些資料類型所對應的複數個頻寬架構參數;根據該些命中參數與該些頻寬架構參數,以重組該網路分配器所傳來的該些資料;以及對所重組的該些資料進行運算。
- 如申請專利範圍第20項所述之操作方法,其中,該網路分配器所接收的該輸入資料來自一緩衝器或者是來自透過一系統匯流排而連接的一記憶體。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW107144665A TWI696961B (zh) | 2018-12-12 | 2018-12-12 | 深度神經網路硬體加速器與其操作方法 |
US16/248,042 US11551066B2 (en) | 2018-12-12 | 2019-01-15 | Deep neural networks (DNN) hardware accelerator and operation method thereof |
CN201910065762.2A CN111310908B (zh) | 2018-12-12 | 2019-01-23 | 深度神经网络硬件加速器与其操作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW107144665A TWI696961B (zh) | 2018-12-12 | 2018-12-12 | 深度神經網路硬體加速器與其操作方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202022707A TW202022707A (zh) | 2020-06-16 |
TWI696961B true TWI696961B (zh) | 2020-06-21 |
Family
ID=71072169
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107144665A TWI696961B (zh) | 2018-12-12 | 2018-12-12 | 深度神經網路硬體加速器與其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11551066B2 (zh) |
CN (1) | CN111310908B (zh) |
TW (1) | TWI696961B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI696961B (zh) * | 2018-12-12 | 2020-06-21 | 財團法人工業技術研究院 | 深度神經網路硬體加速器與其操作方法 |
US11005689B2 (en) * | 2019-07-11 | 2021-05-11 | Wangsu Science & Technology Co., Ltd. | Method and apparatus for bandwidth filtering based on deep learning, server and storage medium |
CN112149816B (zh) * | 2020-11-25 | 2021-02-12 | 之江实验室 | 支持深度神经网络推理加速的异构存算融合系统及方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100469072C (zh) * | 2005-09-29 | 2009-03-11 | 西安交通大学 | 多源流媒体传输QoS控制方法 |
CN106228238A (zh) * | 2016-07-27 | 2016-12-14 | 中国科学技术大学苏州研究院 | 现场可编程门阵列平台上加速深度学习算法的方法和系统 |
TW201822076A (zh) * | 2016-12-13 | 2018-06-16 | 瑞典商安訊士有限公司 | 用於訓練神經網路之方法、電腦程式產品及裝置 |
US20180330238A1 (en) * | 2017-05-09 | 2018-11-15 | Neurala, Inc. | Systems and methods to enable continual, memory-bounded learning in artificial intelligence and deep learning continuously operating applications across networked compute edges |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW584835B (en) * | 2002-12-13 | 2004-04-21 | Univ Nat Chiao Tung | Method and architecture of digital coding for transmitting and packing audio signals |
JP4518887B2 (ja) * | 2004-09-10 | 2010-08-04 | 株式会社日立製作所 | ストレージエリアネットワーク管理システム及び管理装置とボリューム割当て方法並びにコンピュータ・ソフトウエア |
GB2443229B (en) * | 2006-08-23 | 2009-10-14 | Cramer Systems Ltd | Capacity management for data networks |
US8838828B2 (en) * | 2011-11-29 | 2014-09-16 | Cisco Technology, Inc. | Managing the bandwidth of a communication session |
TWI664454B (zh) * | 2012-03-05 | 2019-07-01 | 美商英克羅馬公司 | 多頻帶色覺濾光器及使用線性規劃最佳化之方法 |
US9465620B2 (en) * | 2012-12-20 | 2016-10-11 | Intel Corporation | Scalable compute fabric |
US9450879B2 (en) * | 2014-05-09 | 2016-09-20 | Nexgen Storage, Inc. | Adaptive bandwidth throttling |
US9596647B2 (en) * | 2014-07-21 | 2017-03-14 | International Business Machines Corporation | Secure WiFi using predictive analytics |
US9548872B2 (en) * | 2014-09-26 | 2017-01-17 | Dell Products, Lp | Reducing internal fabric congestion in leaf-spine switch fabric |
US9747546B2 (en) | 2015-05-21 | 2017-08-29 | Google Inc. | Neural network processor |
US20160379109A1 (en) | 2015-06-29 | 2016-12-29 | Microsoft Technology Licensing, Llc | Convolutional neural networks on hardware accelerators |
GB2535819B (en) * | 2015-07-31 | 2017-05-17 | Imagination Tech Ltd | Monitoring network conditions |
US20170094296A1 (en) * | 2015-09-28 | 2017-03-30 | Cybrook Inc. | Bandwidth Adjustment For Real-time Video Transmission |
JP2017194931A (ja) * | 2016-04-22 | 2017-10-26 | 富士通株式会社 | ストレージ管理装置、ストレージ装置管理方法及びストレージ装置管理プログラム |
CN107329734B (zh) | 2016-04-29 | 2020-08-07 | 中科寒武纪科技股份有限公司 | 一种用于执行卷积神经网络正向运算的装置和方法 |
US20170330069A1 (en) * | 2016-05-11 | 2017-11-16 | Kneron Inc. | Multi-layer artificial neural network and controlling method thereof |
KR20180012439A (ko) | 2016-07-27 | 2018-02-06 | 삼성전자주식회사 | 회선 신경망에서 가속기 및 이의 동작 방법 |
US10891538B2 (en) | 2016-08-11 | 2021-01-12 | Nvidia Corporation | Sparse convolutional neural network accelerator |
US10528864B2 (en) | 2016-08-11 | 2020-01-07 | Nvidia Corporation | Sparse convolutional neural network accelerator |
TWI616813B (zh) | 2016-11-14 | 2018-03-01 | 耐能股份有限公司 | 卷積運算方法 |
US10394929B2 (en) * | 2016-12-20 | 2019-08-27 | Mediatek, Inc. | Adaptive execution engine for convolution computing systems |
US10838910B2 (en) * | 2017-04-27 | 2020-11-17 | Falcon Computing | Systems and methods for systolic array design from a high-level program |
US11321604B2 (en) * | 2017-06-21 | 2022-05-03 | Arm Ltd. | Systems and devices for compressing neural network parameters |
US11270201B2 (en) * | 2017-12-29 | 2022-03-08 | Intel Corporation | Communication optimizations for distributed machine learning |
TWI696961B (zh) * | 2018-12-12 | 2020-06-21 | 財團法人工業技術研究院 | 深度神經網路硬體加速器與其操作方法 |
US20220124622A1 (en) * | 2019-02-15 | 2022-04-21 | Apple Inc. | System and method of adaptation of reference signal (rs) monitoring for user equipment (ue) power saving |
US20210201118A1 (en) * | 2019-12-26 | 2021-07-01 | Industrial Technology Research Institute | Deep neural networks (dnn) hardware accelerator and operation method thereof |
-
2018
- 2018-12-12 TW TW107144665A patent/TWI696961B/zh active
-
2019
- 2019-01-15 US US16/248,042 patent/US11551066B2/en active Active
- 2019-01-23 CN CN201910065762.2A patent/CN111310908B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100469072C (zh) * | 2005-09-29 | 2009-03-11 | 西安交通大学 | 多源流媒体传输QoS控制方法 |
CN106228238A (zh) * | 2016-07-27 | 2016-12-14 | 中国科学技术大学苏州研究院 | 现场可编程门阵列平台上加速深度学习算法的方法和系统 |
TW201822076A (zh) * | 2016-12-13 | 2018-06-16 | 瑞典商安訊士有限公司 | 用於訓練神經網路之方法、電腦程式產品及裝置 |
US20180330238A1 (en) * | 2017-05-09 | 2018-11-15 | Neurala, Inc. | Systems and methods to enable continual, memory-bounded learning in artificial intelligence and deep learning continuously operating applications across networked compute edges |
Also Published As
Publication number | Publication date |
---|---|
CN111310908B (zh) | 2023-03-24 |
CN111310908A (zh) | 2020-06-19 |
US11551066B2 (en) | 2023-01-10 |
US20200193275A1 (en) | 2020-06-18 |
TW202022707A (zh) | 2020-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI696961B (zh) | 深度神經網路硬體加速器與其操作方法 | |
TWI737145B (zh) | 具有常駐在晶片上之參數的神經網路加速器 | |
CN107679621B (zh) | 人工神经网络处理装置 | |
CN107679620B (zh) | 人工神经网络处理装置 | |
CN107704922B (zh) | 人工神经网络处理装置 | |
US11436143B2 (en) | Unified memory organization for neural network processors | |
CN109409511B (zh) | 一种用于动态可重构阵列的卷积运算数据流调度方法 | |
CN108154229B (zh) | 基于fpga加速卷积神经网络框架的图片处理方法 | |
WO2020133317A1 (zh) | 计算资源分配技术及神经网络系统 | |
CN111142938B (zh) | 一种异构芯片的任务处理方法、任务处理装置及电子设备 | |
CN105808328A (zh) | 任务调度的方法、装置和系统 | |
US11294851B2 (en) | Reconfigurable reduced instruction set computer processor architecture with fractured cores | |
WO2020133463A1 (zh) | 神经网络系统及数据处理技术 | |
CN114270319A (zh) | 在机器学习计算单元之间重新分配张量元素 | |
JP2019159566A (ja) | 計算装置 | |
US11500962B1 (en) | Emulating fine-grained sparsity in a systolic array | |
TW202125337A (zh) | 深度神經網路硬體加速器與其操作方法 | |
CN105760310B (zh) | 地址分配方法及ddr控制器 | |
US11429850B2 (en) | Performing consecutive mac operations on a set of data using different kernels in a MAC circuit | |
US7206917B2 (en) | Address decoding method and related apparatus by comparing mutually exclusive bit-patterns of addresses | |
US11803736B1 (en) | Fine-grained sparsity computations in systolic array | |
CN114912596A (zh) | 面向稀疏卷积神经网络的多chiplet系统及其方法 | |
CN109343826B (zh) | 一种面向深度学习的可重构处理器运算单元 | |
US10824434B1 (en) | Dynamically structured single instruction, multiple data (SIMD) instructions | |
CN111260046A (zh) | 运算方法、装置及相关产品 |