TWI768497B - 智慧處理器、資料處理方法及儲存介質 - Google Patents

智慧處理器、資料處理方法及儲存介質 Download PDF

Info

Publication number
TWI768497B
TWI768497B TW109134790A TW109134790A TWI768497B TW I768497 B TWI768497 B TW I768497B TW 109134790 A TW109134790 A TW 109134790A TW 109134790 A TW109134790 A TW 109134790A TW I768497 B TWI768497 B TW I768497B
Authority
TW
Taiwan
Prior art keywords
operation unit
sub
data
input data
output data
Prior art date
Application number
TW109134790A
Other languages
English (en)
Other versions
TW202215230A (zh
Inventor
鄧亞明
Original Assignee
大陸商星宸科技股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 大陸商星宸科技股份有限公司 filed Critical 大陸商星宸科技股份有限公司
Priority to TW109134790A priority Critical patent/TWI768497B/zh
Publication of TW202215230A publication Critical patent/TW202215230A/zh
Application granted granted Critical
Publication of TWI768497B publication Critical patent/TWI768497B/zh

Links

Images

Landscapes

  • Advance Control (AREA)
  • Communication Control (AREA)

Abstract

本申請實施例公開了一種智慧處理器、資料處理方法、及儲存介質,其中,智慧處理器包括一第一運算單元和一第二運算單元,第一運算單元用於獲取對應一第一運算元的一第一輸入資料,並將第一輸入資料劃分為多個第一子輸入資料,以及運行第一運算元對每一第一子輸入資料進行運算,得到對應每一第一子輸入資料的多個第一子輸出資料;第二運算單元用於將每一子輸出資料作為第二運算元的一第二輸入資料,以及運行第二運算元對每一第二輸入資料進行運算,得到對應每一第二輸入資料的一第二輸出資料。這樣,第二運算元無需等待第一運算元完成對第一輸入資料的全部運算,可以使得相鄰的兩個運算元在一定程度上實現部分平行計算,達到提高運算效率的目的。

Description

智慧處理器、資料處理方法及儲存介質
本申請涉及人工智慧技術領域,具體涉及一種智慧處理器、資料處理方法及儲存介質。
人工智慧(Artificial Intelligence, AI)是利用數位電腦或者數位電腦控制的機器類比、延伸和擴展人的智慧,感知環境、獲取知識並使用知識獲得最佳結果的理論、方法、技術及應用系統。換句話說,人工智慧是電腦科學的一個綜合技術,它企圖瞭解智慧的實質,並生產出一種新的能以人類智慧相似的方式做出反應的智慧型機器。人工智慧也就是研究各種智慧型機器的設計原理與實現方法,使機器具有感知、運算與決策的功能。
人工智慧技術是一門綜合學科,涉及領域廣泛,既有硬體層面的技術也有軟體層面的技術。人工智慧基礎技術一般包括如感測器、專用人工智慧晶片、雲端運算、分散式儲存、大資料處理技術、操作/交互系統、機電一體化等技術。人工智慧軟體技術主要包括電腦視覺技術、語音處理技術、自然語言處理技術以及機器學習/深度學習等幾大方向。
其中,機器學習(Machine Learning, ML)是一門多領域交叉學科,涉及概率論、統計學、逼近論、凸分析、演算法複雜度理論等多門學科。專門研究電腦怎樣類比或實現人類的學習行為,以獲取新的知識或技能,重新組織已有的知識結構使之不斷改善自身的性能。機器學習是人工智慧的核心,是使計算機具有智慧的根本途徑,其應用遍及人工智慧的各個領域。機器學習和深度學習通常包括人工神經網路、信念網路(belief network)、強化學習(reinforcement learning)、遷移學習(transfer learning)、歸納學習(inductive learning)等技術。利用機器學習技術,以及對應的訓練資料集,能夠訓練得到實現不同功能的網路模型,比如,基於一訓練資料集能夠訓練得到用於性別分類的網路模型,基於另一訓練資料集能夠訓練得到圖像優化的網路模型。
目前,隨著人工智慧技術的不斷發展,網路模型被部署在如智慧手機、平板電腦等電子設備上,用於增強電子設備的處理能力。比如,電子設備通過其部署的圖像優化模型,可以對其拍攝的圖像進行優化,提升圖像品質。
相關技術中,網路模型中相鄰的兩個運算元串列運算,在網路模型的運算邏輯上,前一個運算元運算完成的輸出結果作為後一個運算元的輸入資料,後一個運算元依賴於前一個運算元的輸出。比如,請參照圖1,示出了某卷積網路模型中相鄰的卷積運算元和加法運算元,在卷積網路模型的運算邏輯上,卷積運算元的卷積結果作為加法運算元的輸入資料,加法運算元依賴卷積運算元的輸出結果。實際運算中,加法運算元需要等待卷積運算元完全運算完畢,才能夠根據卷積運算元的卷積結果進行加法運算。如圖2所示,加法運算元需要等待卷積運算元完成對高為H、寬為W、C通道的卷積輸入資料的卷積運算,得到高為H、寬為W、C’通道的卷積結果後,再將高為H、寬為W、C’通道的卷積結果作為加法輸入資料進行加法運算,得到高為H、寬為W、C’通道的加法結果。可以看出,這種相鄰運算元間的強行等待,將嚴重拖慢網路模型的運算效率。
從拓撲結構上看,網路模型由多種不同類型的運算元組成,相鄰的運算元串列運算,即後一個運算元運算依賴於前一個運算元的運算結果,這種串列結構會造成強行等待,不利於網路模型運算效率的提高。基於此,本申請提供一種智慧處理器、晶片、電子設備、資料處理方法及資料處理裝置,以提高網路模型的運算效率。
本申請提供了一種智慧處理器、資料處理方法及儲存介質,能夠提高網路模型的運算效率。
本申請提供一種智慧處理器,包括:一第一運算單元及一第二運算單元。該第一運算單元,用於獲取對應一第一運算元的一第一輸入資料,並將該第一輸入資料劃分為複數個第一子輸入資料,及運行該第一運算元對每一該第一子輸入資料進行運算,得到對應每一該第一子輸入資料的一第一子輸出資料。該第二運算單元,用於將每一該第一子輸出資料作為一第二運算元的一第二輸入資料,及運行該第二運算元對每一該第二輸入資料進行運算,得到對應每一該第二輸入資料的一第二輸出資料。
本申請提供一種資料處理方法,應用於一智慧處理器,該智慧處理器包括一第一運算單元和一第二運算單元,該資料處理方法包括:該第一運算單元獲取對應一第一運算元的一第一輸入資料,並將該第一輸入資料劃分為複數個第一子輸入資料;該第一運算單元運行該第一運算元對每一該第一子輸入資料進行運算,得到對應每一該第一子輸入資料的一第一子輸出資料;該第二運算單元將每一該第一子輸出資料作為一第二運算元的一第二輸入資料;以及,該第二運算單元運行該第二運算元對每一該第二輸入資料進行運算,得到對應每一該第二輸入資料的一第二輸出資料。
本申請提供一種儲存介質,其上儲存有一電腦程式,該電腦程式用以執行一資料處理方法,該資料處理方法應用於一智慧處理器,該智慧處理器包括一第一運算單元和一第二運算單元,其中該資料處理方法包括:該第一運算單元獲取對應一第一運算元的一第一輸入資料,並將該第一輸入資料劃分為複數個第一子輸入資料;該第一運算單元運行該第一運算元對每一該第一子輸入資料進行運算,得到對應每一該第一子輸入資料的一第一子輸出資料;該第二運算單元將每一該第一子輸出資料作為一第二運算元的一第二輸入資料;以及,該第二運算單元運行該第二運算元對每一該第二輸入資料進行運算,得到對應每一該第二輸入資料的一第二輸出資料。
前述的智慧處理器、資料處理方法、及儲存介質中,第二運算元無需等待第一運算元完成對第一輸入資料的全部運算,即可在不同的小塊輸入資料上實現與第一運算元的平行計算。由此,利用不同的運算單元,可以使得相鄰的兩個運算元在一定程度上實現部分平行計算,達到提高網路模型運算效率的目的。
應當說明的是,本申請的原理是以實施在一適當的運算環境中來舉例說明。以下的說明是通過所例示的本申請具體實施例,其不應被視為限制本申請未在此詳述的其它具體實施例。
本申請提供一種智慧處理器、晶片、電子設備、資料處理方法及資料處理裝置,以提高網路模型的運算效率。
本申請實施例提供的方案涉及人工智慧的機器學習技術,具體涉及網路模型的運算階段,通過如下實施例進行說明:
請參照圖3,圖3為本申請實施例提供的智慧處理器100的第一種結構示意圖。該智慧處理器100可包括相互連接的一第一運算單元110和一第二運算單元120。
應當說明的是,第一運算單元110和第二運算單元120為不同類型的硬體運算單元(或稱硬體引擎,運算加速單元等),比如,在第一運算單元110為卷積運算單元時,第二運算單元120為向量運算單元;又比如,在第一運算單元110為向量運算單元時,第二運算單元120為卷積運算單元。
其中,卷積運算單元也稱卷積計算引擎,其內部可包括多個乘加單元(Multiplication Add Cell,MAC),該乘加單元的個數可以為幾千個,比如卷積運算單元內部可包括4096個乘加單元,這4096個乘加單元可以進一步分成16個單元(cell),每個單元可以進行最大元素數為256向量內積操作。
向量運算單元也稱單指令多資料(Single Instruction Multiple Data ,SIMD)處理單元。向量運算單元是一個元素級向量計算引擎,可以處理常規的向量間的加減乘除等算數運算,同時也可以處理位元級的及(AND)、或(OR)、非(NOT)、互斥(exclusive)或等邏輯運算。此外,向量運算單元支援線性整流函數(Rectified Linear Unit, ReLU)、PRelU等常見的啟動函數操作。
本申請實施例中,第一運算單元110用於獲取對應一第一運算元的一輸入資料,記為第一輸入資料,即第一運算元進行運算所需的資料。
其中,第一運算元可以為第一運算單元110所能夠運算的任意類型運算元,比如,在第一運算單元110為卷積運算單元時,第一運算元可以為卷積運算元,又比如,在第一運算單元110為向量運算單元時,第一運算元可以為加法運算元、減法運算元、乘法運算元、除法運算元或者啟動運算元等。
在獲取到對應第一運算元的第一輸入資料之後,第一運算單元100進一步按照配置資料劃分策略,將第一輸入資料劃分為多個第一子輸入資料。
應當說明的是,本申請實施例中對於資料劃分策略的配置不做具體限制,可由本領域普通技術人員根據實際需要進行配置。
比如,請參照圖4,假設第一運算單元110為卷積運算單元,第一運算元為卷積運算元,如圖4所示,獲取到高為H、寬為W、C通道的第一輸入資料,第一運算單元110對該第一輸入資料進行拆分,得到N個高為H’、寬為W’、C通道的第一子輸入資料。
在將對應第一運算元的第一輸入資料劃分為多個第一子輸入資料之後,第一運算單元110即運行第一運算元對劃分得到的每一第一子輸入資料進行運算,相應得到對應每一第一子輸入資料的一輸出資料,記為第一子輸出資料。
應當說明的是,本申請實施例中對於第一運算單元110運行第一運算元對各第一子輸入資料的運算先後順序不做具體限制,可由本領域普通技術人員根據實際需要進行配置。
本申請實施例中,第二運算元可以為第二運算單元120所能夠運算的任意類型運算元,比如,在第二運算單元120為卷積運算單元時,第二運算元可以為卷積運算元,又比如,在第二運算單元120為向量運算單元時,第二運算元可以為加法運算元、減法運算元、乘法運算元、除法運算元或者啟動運算元等。應當說明的是,本申請實施例中的第一運算元和第二運算元屬於同一網路模型且相鄰。比如,第一運算單元110為卷積運算單元,第二運算單元120為向量運算單元,則第一運算元可以為一卷積網路模型中的卷積運算元,第二運算元可以為同一卷積網路模型中與前述卷積運算元相鄰的加法運算元。
在第一運算單元110運行第一運算元對第一子輸入資料進行運算,得到對應第一子輸入資料的第一子輸出資料之後,第二運算單元120將第一運算單元110得到的第一子輸出資料作為第二運算元的一輸入資料,記為第二輸入資料。然後,第二運算單元120即運行第二運算元對第二輸入資料進行運算,相應得到對應第二輸入資料的一第二輸出資料。
由上可知,本申請提供的智慧處理器包括不同的運算單元,分別為一第一運算單元和一第二運算單元,其中,第一運算單元用於獲取對應一第一運算元的一第一輸入資料,並將第一輸入資料劃分為多個第一子輸入資料,以及運行第一運算元對每一第一子輸入資料進行運算,得到對應每一第一子輸入資料的一第一子輸出資料;第二運算單元用於將每一第一子輸出資料作為第二運算元的一第二輸入資料,以及運行第二運算元對每一第二輸入資料進行運算,得到對應每一第二輸入資料的一第二輸出資料。這樣,第二運算元無需等待第一運算元完成對第一輸入資料運算,即可在不同的小塊輸入資料上實現與第一運算元的平行計算。由此,利用不同的運算單元,可以使得相鄰的兩個運算元在一定程度上實現部分平行計算,達到提高網路模型運算效率的目的。
可選地,在一實施例中,第二運算單元120用於在第一運算單元110每次得到第一子輸出資料時,將第一運算單元110得到的第一子輸出資料作為第二運算元的第二輸入資料。
其中,在第一運算單元110每次得到第一子輸出資料時,第二運算單元120即將第一運算單元110得到的第一子輸出資料作為第二運算元的第二輸入資料,並運行第二運算元對第二輸入資料進行運算,相應得到對應第二輸入資料的第二輸出資料。
比如,假設第一運算單元110將第一輸入資料拆分為5個第一子輸入資料,分別為第一子輸入資料A、第一子輸入資料B、第一子輸入資料C、第一子輸入資料D以及第一子輸入資料E。第一運算單元110運行第一運算元先對第一子輸入資料A進行運算,得到對應第一子輸入資料A的第一子輸出資料A’,此時,第二運算單元120即將第一子輸出資料A’作為第二運算元的第二輸入資料,並運行第二運算元對第一子輸出資料A’進行運算,得到對應第一子輸出資料A’(即第二輸入資料)的第二輸出資料。其中,在第二運算單元120運行第二運算元對第一子輸出資料A’進行運算的同時,第一運算單元110可以繼續運行第一運算元對第一子輸入資料B進行運算。這樣,當第一運算單元110運行第一運算元完成對第一子輸入資料B的運算,並得到對應第一子輸入資料B的第一子輸出資料B’時,第二運算單元120即將第一子輸出資料B’作為第二運算元的第二輸入資料,運行第二運算元對第一子輸出資料B’進行運算,得到對應第一子輸出資料B’(即第二輸入資料)的第二輸出資料。
如上,在第一運算單元110運行第一運算元完成對第一子輸入資料E的運算,並得到對應第一子輸入資料E的第一子輸出資料E’時,第二運算單元120即將第一子輸出資料E’作為第二運算元的第二輸入資料,運行第二運算元對第一子輸出資料E’進行運算,得到對應第一子輸出資料E’(即第二輸入資料)的第二輸出資料。
可以看出,以上在第一運算單元110運行第一運算元對第一輸入資料進行分塊運算的過程中,第二運算單元120運行第二運算元對第一運算元的分塊運算結果進行運算,使得第一運算元和第二運算元在不同資料塊上實現了平行計算,當第一運算元完成對第一輸入資料的運算時,第二運算元隨即完成後續運算,由此,使得網路模型整體的運算效率得以提高。
可選地,在一實施例中,第二運算單元120用於在得自第一運算單元110的第一子輸出資料的資料量達到預設資料量時,將已得到的第一子輸出資料作為第二運算元的第二輸入資料。
應當說明的是,運算元在進行運算時,存在最小資料量的要求,即運算元正常運算的前提是提供足夠其運算所需資料量的資料。因此,本申請實施例設置預設資料量來約束第二運算元進行運算的資料量。其中,本申請實施例中對預設資料量的取值不做具體限定,以預設資料量大於第二運算元進行運算的最小資料量為約束,可由本領域普通技術人員根據第二運算元的特性取經驗值。
本申請實施例中,第二運算單元120在第一運算單元110每次運算得到第一子輸出資料時,並不直接將第一運算單元110運算得到的第一子輸出資料作為第二運算元的第二輸入資料,而是先識別第一運算單元110已經得到的第一子輸出資料的資料量是否達到預設資料量,若已達到,第二運算單元120將第一運算單元110已得到的第一子輸出資料作為第二運算元的第二輸入資料,並進一步運行第二運算元對第二輸入資料進行運算,得到對應第二輸入資料的第二輸出資料;若未達到,則等待第一運算單元110下次運算得到第一子輸出資料,再次進行識別,直至第一運算單元110已得到的第一子輸出資料的資料量達到預設資料量。
可選地,在一實施例中,請參照圖5,圖5為本申請實施例提供的智慧處理器110的第二種結構示意圖。該智慧處理器110包括一第一運算單元110、一第二運算單元120以及一快取單元130,其中,第一運算單元110和第二運算單元120可以相應參照圖3中的第一運算單元110和第二運算單元120,此處不再贅述。
本申請實施例中,第一運算單元110還用於將第一子輸出資料寫入快取單元130,而第二運算單元120還用於從快取單元130讀取第一子輸出資料。第一運算單元110和第二運算單元120並不直接進行資料交換,而是利用協力廠商元件快取單元130實現資料交換。
詳細來說,第一運算單元110在每次運行第一運算元對一第一子輸入資料進行運算時,將得到的對應該第一子輸入資料的第一子輸出資料寫入快取單元130中進行暫存。而第二運算單元120在第一運算單元110每次運算得到第一子輸出資料並寫入快取單元130時,從快取單元130中讀取第一子輸出資料,將其作為第二運算元的第二輸入資料,並運行第二運算元對第二輸入資料進行運算,得到對應第二輸入資料的第二輸出資料;或者,第二運算單元120在第一運算單元110每次運算得到第一子輸出資料並寫入快取單元130時,識別快取單元130中所暫存的第一運算單元110已得到的第一子輸出資料的資料量是否達到預設資料量,若已達到,則說明快取單元130中暫存的第一子輸出資料足夠第二運算單元120進行運算,此時,第二運算單元120從快取單元130中讀取其中暫存的第一子輸出資料,作為第二運算元的第二輸入資料,並進一步運行第二運算元對第二輸入資料進行運算,得到對應第二輸入資料的第二輸出資料;若未達到,則等待第一運算單元110下次運算得到第一子輸出資料,再次進行識別,直至第一運算單元110已得到的第一子輸出資料的資料量達到預設資料量。
可選地,在一實施例中,第一運算單元110還用於:根據第一運算元的類型資訊確定對應第一輸入資料的一目標劃分策略,並按照目標劃分策略將第一輸入資料劃分為多個第一子輸入資料,再寫入快取單元中130。
應當說明的是,本申請實施例中預先針對不同類型的運算元,設置有與之對應的劃分策略。
相應的,在將對應第一運算元的第一輸入資料劃分為多個第一子輸入資料時,第一運算單元首先獲取到第一運算元的類型資訊,也即是識別第一運算元為何種類型的運算元;然後,根據第一運算元的類型資訊確定與之對應的劃分策略,記為目標劃分策略;然後,按照目標劃分策略將第一輸入資料劃分為多個第一子輸入資料,並寫入快取單元130中。由此,第一運算單元110可以進一步從快取單元130中讀取第一子輸入資料,並運行第一運算元對第一子輸入資料進行運算,得到對應第一子輸入資料的第一子輸出資料。
可選地,在一實施例中,第一運算單元110可用於:在確定的目標劃分策略為一第一劃分策略時,根據第一運算單元110的處理能力以及快取單元130的暫存空間,確定劃分的多個第一子輸入資料的一第一目標資料大小;並按照第一目標資料大小將第一輸入資料劃分為多個第一子輸入資料,並寫入快取單元130中。
舉例來說,本申請實施例中將運算元類型分為兩類,其中,第一類型運算元為運算只發生在向量分量之間的運算元,其輸入資料的結構與第二輸出資料的結構相同,第一類型運算元比如加法運算元、減法運算元、乘法運算元、除法運算元以及啟動運算元等。第二類型運算元即非第一類型運算元,其輸入資料的結構與第二輸出資料的結構不同,比如卷積運算元、池化(pooling)運算元等。
本申請實施例中,針對第一類型運算元,根據其特性可知,對其輸入資料的拆分,無需考慮運算元本身在運算邏輯上的特徵,只需考慮硬體資源的限制。
相應的,針對第一類型運算元,設置有一第一劃分策略,其根據第一運算單元110的處理能力以及快取單元的暫存空間,確定劃分的多個第一子輸入資料的一第一目標資料大小。
詳細來說,第一運算單元110根據第一運算單元110的處理能力確定出其能夠運算的輸入資料的最大資料量,並根據快取單元130的暫存空間確定快取單元130能存放的資料的最大資料量,然後,以快取單元130能存放的最大資料量,第一運算單元110能夠運算的最大資料量為約束,使得劃分的第一子輸入資料在不超過快取單元130能存放的最大資料量的前提下,盡可能的達到第一運算單元110能夠運算的最大資料量。
比如,假設第一運算單元110能夠運算的最大資料量為5,快取單元能夠存放的最大資料量為3,則可以確定劃分的第一子輸入資料的第一目標資料大小為3;又比如,假設第一運算單元110能夠運算的最大資料量為4,快取單元能夠存放的最大資料量為5,則可以確定劃分的第一子輸入資料的第一目標資料大小為4。
可選地,在一實施例中,第一運算單元110還用於:當目標劃分策略為一第二劃分策略時,根據第一運算元的運算邏輯,確定劃分的多個第一子輸入資料的一第二目標資料大小,及按照第二目標資料大小將第一輸入資料劃分為多個第一子輸入資料,並寫入快取單元130中。
本申請實施例中,針對第二類型運算元,根據其特性可知,只需考慮運算元本身在運算邏輯上的特徵。
比如,當第一運算元為卷積運算元時,根據卷積運算元的運算邏輯,以卷積可運算第一子輸出資料的資料大小來確定劃分的第一子輸入資料的資料大小。其中,假定第一子輸出資料的通道為C,以第一子輸出資料的寬度和高度能夠被存入快取單元130為約束,確定劃分的第一子輸入資料的第二目標資料大小。
又比如,當第一運算元為池化運算元時,根據池化運算元的運算邏輯,可以根據池化運算元中濾波器(Filter)的尺寸和步增值(step size)來確定劃分的第一子輸入資料的資料大小。其中,可以將濾波器看做是一個矩形視窗,其在輸入資料按照步增值進行滑動,被濾波器框住的資料執行池化運算,相應的,將濾波器框住的資料的資料大小確定為第二目標資料大小。
本申請還提供一種晶片,其包括:一中央處理器及一智慧處理器。其中此智慧處理器可為本申請任一實施例所提供的智慧處理器,用於從中央處理器獲取運算所需的輸入資料,並將運算得到的輸出資料返回至中央處理器。
本申請還提供一種資料處理方法,應用於本申請提供的智慧處理器,請參照圖6,該資料處理方法的流程如下:
在210中,第一運算單元獲取對應一第一運算元的一第一輸入資料,並將第一輸入資料劃分為多個第一子輸入資料;
在220中,第一運算單元運行第一運算元對每一第一子輸入資料進行運算,得到對應每一第一子輸入資料的一第一子輸出資料;
在230中,第二運算單元將每一第一子輸出資料作為一第二運算元的一第二輸入資料;
在240中,第二運算單元運行第二運算元對每一第二輸入資料進行運算,得到對應每一第二輸入資料的一第二輸出資料。
請參照圖3,以本申請提供的資料處理方法適用於圖3所示的智慧處理器100為例,相關說明請參照前述關於圖3的說明,在此不再贅述。
可選地,在一實施例中,請參照圖5,智慧處理器100還包括一快取單元130,本申請提供的資料處理方法還包括:第一運算單元110將第一子輸出資料寫入快取單元130;以及,第二運算單元120從快取單元130讀取第一子輸出資料。相關說明請參照前述關於圖5的說明,在此不再贅述。
可選地,本申請還提供一種資料處理裝置,應用於本申請提供的智慧處理器,此智慧處理器包括一第一運算單元和一第二運算單元,請參照圖7,資料處理裝置300包括一資料獲取模組310、一第一運算模組320、一輸入設定模組330、及一第二運算模組340。資料獲取模組310,用於通過第一運算單元獲取對應一第一運算元的一第一輸入資料,並將第一輸入資料劃分為多個第一子輸入資料。第一運算模組320,用於通過第一運算單元運行第一運算元對每一第一子輸入資料進行運算,得到對應每一第一子輸入資料的一第一子輸出資料。輸入設定模組330,用於通過第二運算單元將每一第一子輸出資料作為一第二運算元的一第二輸入資料。第二運算模組340,用於通過第二運算單元運行第二運算元對每一第二輸入資料進行運算,得到對應每一第二輸入資料的一第二輸出資料。
可選地,在一實施例中,在將每一第一子輸出資料作為一第二運算元的一第二輸入資料時,輸入設定模組330用於通過第二運算單元在第一運算單元每次得到第一子輸出資料時,將該第一子輸出資料作為第二輸入資料。
可選地,在一實施例中,在將每一第一子輸出資料作為一第二運算元的一第二輸入資料時,輸入設定模組330通過第二運算單元在得自第一運算單元的第一子輸出資料的資料量達到預設資料量時,將已得到的第一子輸出資料作為第二輸入資料。
可選地,在一實施例中,智慧處理器還包括一快取單元,第一運算模組320還用於通過第一運算單元將第一子輸出資料寫入快取單元,而輸入設定模組330還用於通過第二運算單元從快取單元讀取第一子輸出資料。
需要說明的是,對本申請實施例的資料處理方法而言,本領域普通技術人員可以理解實現本申請實施例的資料處理方法的全部或部分流程,是可以通過電腦程式來控制相關的硬體來完成,該電腦程式可儲存於一電腦可讀取儲存介質中,其在被包括一第一運算單元和一第二運算單元的一智慧處理器載入時執行可包括如資料處理方法的實施例的流程。其中,儲存介質可為磁碟、光碟、唯讀記憶體、隨機存取記憶體等。
以上對本申請實施例提供的智慧處理器、晶片、資料處理方法、資料處理裝置及儲存介質進行了詳細介紹。本文中應用了具體個例對本申請的原理及實施方式進行了闡述,以上實施例的說明只是用於幫助理解本申請。同時,對於本領域的技術人員,依據本申請的思想,在具體實施方式及應用範圍上均會有改變之處,綜上所述,本說明書內容不應理解為對本申請的限制。
H,H’:高 W,W’:寬 C,C’:通道 100:智慧處理器 110:第一運算單元 120:第二運算單元 130:快取單元 210~240:步驟 300:資料處理裝置 310:資料獲取模組 320:第一運算模組 330:輸入設定模組 340:第二運算模組
為了更清楚地說明本申請實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請的一些實施例,對於本領域技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為相關技術中相鄰兩個運算元示意圖。 圖2為圖1中在卷積網路模型的運算邏輯上相鄰兩個運算元進行串列運算的示意圖。 圖3是本申請實施例中提供的智慧處理器100的一結構示意圖。 圖4是本申請實施例中將第一輸入資料拆分為N個子輸入資料的示意圖。 圖5是本申請實施例中提供的智慧處理器100的另一結構示意圖。 圖6是本申請實施例提供的資料處理方法的流程示意圖。 圖7是本申請實施例提供的資料處理裝置300的結構示意圖。
100:智慧處理器
110:第一運算單元
120:第二運算單元

Claims (12)

  1. 一種智慧處理器,包括:一第一運算單元,用於獲取對應一第一運算元的一第一輸入資料,並將該第一輸入資料劃分為複數個第一子輸入資料,及運行該第一運算元對每一該第一子輸入資料進行運算,得到對應每一該第一子輸入資料的一第一子輸出資料;以及一第二運算單元,用於將每一該第一子輸出資料作為一第二運算元的一第二輸入資料,及運行該第二運算元對每一該第二輸入資料進行運算,得到對應每一該第二輸入資料的一第二輸出資料;其中該第二運算元與該第一運算元屬於同一網路模型且相鄰。
  2. 如請求項1之智慧處理器,其中該第二運算單元用於在該第一運算單元每次得到該第一子輸出資料時,將該第一子輸出資料作為該第二輸入資料。
  3. 如請求項1之智慧處理器,其中該第二運算單元用於在得到的第一子輸出資料的資料量達到一預設資料量時,將該已得到的第一子輸出資料作為該第二輸入資料。
  4. 如請求項1之智慧處理器,其中該智慧處理器還包括一快取單元,該第一運算單元還用於將該第一子輸出資料寫入該快取單元,而該第二運算單元還用於從該快取單元讀取該第一子輸出資料。
  5. 如請求項4之智慧處理器,其中該第一運算單元更用於: 根據該第一運算元的類型資訊確定對應該第一輸入資料的一目標劃分策略;以及按照該目標劃分策略將該第一輸入資料劃分為該些第一子輸入資料。
  6. 如請求項5之智慧處理器,其中:當該目標劃分策略為一第一劃分策略時,根據該第一運算單元的處理能力以及該快取單元的暫存空間,確定劃分的複數個第一子輸入資料的一第一目標資料大小。
  7. 如請求項5之智慧處理器,其中:當該目標劃分策略為一第二劃分策略時,根據該第一運算元的運算邏輯,確定劃分的複數個第一子輸入資料的一第二目標資料大小。
  8. 如請求項1之智慧處理器,其中該智慧處理器包含於一晶片中。
  9. 一種資料處理方法,應用於一智慧處理器,該智慧處理器包括一第一運算單元和一第二運算單元,其中該資料處理方法包括:該第一運算單元獲取對應一第一運算元的一第一輸入資料,並將該第一輸入資料劃分為複數個第一子輸入資料;該第一運算單元運行該第一運算元對每一該第一子輸入資料進行運算,得到對應每一該第一子輸入資料的一第一子輸出資料;該第二運算單元將每一該第一子輸出資料作為一第二運算元的一第二輸入資料;以及該第二運算單元運行該第二運算元對每一該第二輸入資料進行運算,得到對應每一該第二輸入資料的一第二輸出資料; 其中該第二運算元與該第一運算元屬於同一網路模型且相鄰。
  10. 如請求項9之資料處理方法,其中該第二運算單元用於在該第一運算單元每次得到該第一子輸出資料時,將該第一子輸出資料作為該第二輸入資料。
  11. 如請求項9之資料處理方法,其中該第二運算單元用於在得到的第一子輸出資料的資料量達到一預設資料量時,將該已得到的第一子輸出資料作為該第二輸入資料。
  12. 一種儲存介質,其上儲存有一電腦程式,該電腦程式用以執行一資料處理方法,該資料處理方法應用於一智慧處理器,該智慧處理器包括一第一運算單元和一第二運算單元,其中該資料處理方法包括:該第一運算單元獲取對應一第一運算元的一第一輸入資料,並將該第一輸入資料劃分為複數個第一子輸入資料;該第一運算單元運行該第一運算元對每一該第一子輸入資料進行運算,得到對應每一該第一子輸入資料的一第一子輸出資料;該第二運算單元將每一該第一子輸出資料作為一第二運算元的一第二輸入資料;以及該第二運算單元運行該第二運算元對每一該第二輸入資料進行運算,得到對應每一該第二輸入資料的一第二輸出資料;其中該第二運算元與該第一運算元屬於同一網路模型且相鄰。
TW109134790A 2020-10-07 2020-10-07 智慧處理器、資料處理方法及儲存介質 TWI768497B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW109134790A TWI768497B (zh) 2020-10-07 2020-10-07 智慧處理器、資料處理方法及儲存介質

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW109134790A TWI768497B (zh) 2020-10-07 2020-10-07 智慧處理器、資料處理方法及儲存介質

Publications (2)

Publication Number Publication Date
TW202215230A TW202215230A (zh) 2022-04-16
TWI768497B true TWI768497B (zh) 2022-06-21

Family

ID=82197501

Family Applications (1)

Application Number Title Priority Date Filing Date
TW109134790A TWI768497B (zh) 2020-10-07 2020-10-07 智慧處理器、資料處理方法及儲存介質

Country Status (1)

Country Link
TW (1) TWI768497B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI592897B (zh) * 2017-02-20 2017-07-21 Image Recognition Accelerator System
US20180157969A1 (en) * 2016-12-05 2018-06-07 Beijing Deephi Technology Co., Ltd. Apparatus and Method for Achieving Accelerator of Sparse Convolutional Neural Network
CN109886400A (zh) * 2019-02-19 2019-06-14 合肥工业大学 基于卷积核拆分的卷积神经网络硬件加速器系统及其计算方法
TW201942808A (zh) * 2018-03-29 2019-11-01 聯發科技股份有限公司 深度學習加速器及加快深度學習操作的方法
US20200265106A1 (en) * 2019-02-15 2020-08-20 Apple Inc. Two-dimensional multi-layer convolution for deep learning

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180157969A1 (en) * 2016-12-05 2018-06-07 Beijing Deephi Technology Co., Ltd. Apparatus and Method for Achieving Accelerator of Sparse Convolutional Neural Network
TWI592897B (zh) * 2017-02-20 2017-07-21 Image Recognition Accelerator System
TW201942808A (zh) * 2018-03-29 2019-11-01 聯發科技股份有限公司 深度學習加速器及加快深度學習操作的方法
US20200265106A1 (en) * 2019-02-15 2020-08-20 Apple Inc. Two-dimensional multi-layer convolution for deep learning
CN109886400A (zh) * 2019-02-19 2019-06-14 合肥工业大学 基于卷积核拆分的卷积神经网络硬件加速器系统及其计算方法

Also Published As

Publication number Publication date
TW202215230A (zh) 2022-04-16

Similar Documents

Publication Publication Date Title
CN110197276B (zh) 用于深度学习加速的数据体雕刻器
Gao et al. Highly efficient salient object detection with 100k parameters
Li et al. A high performance FPGA-based accelerator for large-scale convolutional neural networks
US20220391678A1 (en) Neural network model processing method and apparatus, computer device, and storage medium
WO2021227726A1 (zh) 面部检测、图像检测神经网络训练方法、装置和设备
US11144823B1 (en) Method and system for hierarchical weight-sparse convolution processing
CN111401406B (zh) 一种神经网络训练方法、视频帧处理方法以及相关设备
US20220083857A1 (en) Convolutional neural network operation method and device
TWI766396B (zh) 資料暫存裝置、資料暫存方法以及計算方法
CN111105023B (zh) 数据流重构方法及可重构数据流处理器
US20210056357A1 (en) Systems and methods for implementing flexible, input-adaptive deep learning neural networks
CN112799599B (zh) 一种数据存储方法、计算核、芯片和电子设备
CN112200310B (zh) 智能处理器、数据处理方法及存储介质
CN109598250A (zh) 特征提取方法、装置、电子设备和计算机可读介质
WO2020062299A1 (zh) 一种神经网络处理器、数据处理方法及相关设备
CN113869495B (zh) 神经网络卷积权重layout优化的方法、装置、设备及可读介质
Wang et al. An optimization of im2col, an important method of cnns, based on continuous address access
Zhang et al. Graph-pbn: Graph-based parallel branch network for efficient point cloud learning
Zhang et al. Design and implementation of deep neural network for edge computing
TWI768497B (zh) 智慧處理器、資料處理方法及儲存介質
Rodriguez-Borbon et al. Heterogeneous acceleration of HAR applications
CN108388886A (zh) 图像场景识别的方法、装置、终端和计算机可读存储介质
Miao et al. BCLNet: Bilateral Consensus Learning for Two-View Correspondence Pruning
CN116802646A (zh) 数据处理的方法和装置
CN114254563A (zh) 数据处理方法及装置、电子设备、存储介质