數(shù)據(jù)處理裝置和系統(tǒng)、服務(wù)器的制造方法
【專利摘要】本發(fā)明實(shí)施例提供了一種數(shù)據(jù)處理裝置和系統(tǒng)、服務(wù)器,其中數(shù)據(jù)處理裝置包括主控芯片和與所述主控芯片通信連接的節(jié)點(diǎn)矩陣,所述節(jié)點(diǎn)矩陣包括一個(gè)以上節(jié)點(diǎn)芯片;其中:所述主控芯片,設(shè)置有外部接口,用于將通過外部接口接收到的數(shù)據(jù)處理任務(wù)分發(fā)給節(jié)點(diǎn)矩陣,以及向節(jié)點(diǎn)矩陣發(fā)送控制消息,并接收節(jié)點(diǎn)矩陣返回的數(shù)據(jù)處理結(jié)果;所述節(jié)點(diǎn)矩陣,用于接收主控芯片發(fā)送的控制消息和數(shù)據(jù)處理任務(wù),根據(jù)所述控制消息,通過一個(gè)以上節(jié)點(diǎn)芯片對(duì)所述數(shù)據(jù)處理任務(wù)進(jìn)行相應(yīng)的處理,并向主控芯片返回?cái)?shù)據(jù)處理結(jié)果。本發(fā)明實(shí)施例可以提供較強(qiáng)的數(shù)據(jù)處理能力且數(shù)據(jù)處理能力易于擴(kuò)展,數(shù)據(jù)傳輸延遲小。
【專利說明】
數(shù)據(jù)處理裝置和系統(tǒng)、服務(wù)器
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及數(shù)據(jù)處理技術(shù),尤其涉及一種數(shù)據(jù)處理裝置和系統(tǒng)、服務(wù)器。
【背景技術(shù)】
[0002]目前,深度學(xué)習(xí)是機(jī)器學(xué)習(xí)研究中的一個(gè)新的領(lǐng)域,是所有高科技研究和開發(fā)中最熱門的領(lǐng)域之一,其動(dòng)機(jī)在于建立、模擬人腦進(jìn)行分析學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò),它模仿人腦的機(jī)制來解釋數(shù)據(jù),例如圖像,聲音和文本。
[0003]深度學(xué)習(xí)的關(guān)鍵是DNN(Deep Neural Network,深度神經(jīng)網(wǎng)絡(luò)),由于DNN具有深層結(jié)構(gòu)、數(shù)千萬參數(shù)需要學(xué)習(xí),因此DNN的預(yù)測(cè)和訓(xùn)練過程需要巨大的計(jì)算能力。由于采用SIMD(Single Instruct1n Multiple Data,單指令多數(shù)據(jù)流)架構(gòu)特性,GF^KGraphicsProcessing Unit,圖形處理器)具有強(qiáng)大的計(jì)算能力,在深度學(xué)習(xí)領(lǐng)域的應(yīng)用大大優(yōu)于傳統(tǒng)的CPU(Central Processing Unit,中央處理器),目前作為通行的DNN計(jì)算平臺(tái)處于主導(dǎo)地位?,F(xiàn)有采用GPU實(shí)現(xiàn)的DNN計(jì)算平臺(tái)中,一張GPU上只搭載一顆GPU芯片,GPU插入到服務(wù)器主板的PCIE插槽中。
[0004]在實(shí)現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn),現(xiàn)有技術(shù)采用GPU實(shí)現(xiàn)的DNN計(jì)算平臺(tái)至少存在以下問題:
[0005]由于GPU的出現(xiàn)旨在促進(jìn)通用科學(xué)計(jì)算任務(wù),它不是專門為DNN設(shè)計(jì)開發(fā)的,因此其單GPU芯片架構(gòu)限制了其計(jì)算能力,無法滿足DNN對(duì)計(jì)算能力的需求;
[0006]如要擴(kuò)充計(jì)算能力,就需要在同一臺(tái)服務(wù)器中插入多張GPU,然而,由于一臺(tái)服務(wù)器主板上的PCIE插槽數(shù)目有限,可支持的GPU數(shù)目也就受到限制,因此可支持的計(jì)算能力仍然受到限制。
【發(fā)明內(nèi)容】
[0007]本發(fā)明實(shí)施例所要解決的其中一個(gè)技術(shù)問題是,提供一種數(shù)據(jù)處理裝置和系統(tǒng)、服務(wù)器,以提供較強(qiáng)的數(shù)據(jù)處理能力,包括計(jì)算能力。
[0008]為解決上述技術(shù)問題,根據(jù)本發(fā)明實(shí)施例的一個(gè)方面,提供一種數(shù)據(jù)處理裝置,包括主控芯片和與所述主控芯片通信連接的節(jié)點(diǎn)矩陣,所述節(jié)點(diǎn)矩陣包括一個(gè)以上節(jié)點(diǎn)芯片;其中:
[0009]所述主控芯片,設(shè)置有外部接口,用于將通過外部接口接收到的數(shù)據(jù)處理任務(wù)分發(fā)給節(jié)點(diǎn)矩陣,以及向節(jié)點(diǎn)矩陣發(fā)送控制消息,并接收節(jié)點(diǎn)矩陣返回的數(shù)據(jù)處理結(jié)果;
[0010]所述節(jié)點(diǎn)矩陣,用于接收主控芯片發(fā)送的控制消息和數(shù)據(jù)處理任務(wù),根據(jù)所述控制消息,通過一個(gè)以上節(jié)點(diǎn)芯片對(duì)所述數(shù)據(jù)處理任務(wù)進(jìn)行相應(yīng)的處理,并向主控芯片返回?cái)?shù)據(jù)處理結(jié)果。
[0011]在另一個(gè)實(shí)施例的數(shù)據(jù)處理裝置中,所述節(jié)點(diǎn)矩陣包括N列節(jié)點(diǎn)芯片組,每列節(jié)點(diǎn)芯片組分別包括一個(gè)以上節(jié)點(diǎn)芯片;
[0012]其中,第一列節(jié)點(diǎn)芯片組中的每個(gè)節(jié)點(diǎn)芯片分別與所述主控芯片通信連接,第η列節(jié)點(diǎn)芯片組中的每個(gè)節(jié)點(diǎn)芯片,分別與第η-l列節(jié)點(diǎn)芯片組中的對(duì)應(yīng)節(jié)點(diǎn)芯片通信連接,ηe【2,N】,N的取值為不小于I的整數(shù)。
[0013]在另一個(gè)實(shí)施例的數(shù)據(jù)處理裝置中,每列節(jié)點(diǎn)芯片組中的節(jié)點(diǎn)芯片依次通信連接。
[0014]在另一個(gè)實(shí)施例的數(shù)據(jù)處理裝置中,每列節(jié)點(diǎn)芯片組中分別位于首、尾節(jié)點(diǎn)芯片通信連接。
[0015]在另一個(gè)實(shí)施例的數(shù)據(jù)處理裝置中,具有通信連接關(guān)系的主控芯片與節(jié)點(diǎn)芯片之間、節(jié)點(diǎn)芯片之間具體采用SERDES通信通道進(jìn)行通信連接。
[0016]在另一個(gè)實(shí)施例的數(shù)據(jù)處理裝置中,所述主控芯片與節(jié)點(diǎn)芯片上分別設(shè)置有串行器/解串器SERDES接口;具有通信連接關(guān)系的主控芯片與節(jié)點(diǎn)芯片之間、節(jié)點(diǎn)芯片之間具體通過SERDES接口,采用SERDES通信通道進(jìn)行通信連接;
[0017]或者
[0018]所述主控芯片與節(jié)點(diǎn)芯片上分別設(shè)置有總線和接口標(biāo)準(zhǔn)PCIE接口;具有通信連接關(guān)系的主控芯片與節(jié)點(diǎn)芯片之間、節(jié)點(diǎn)芯片之間具體通過PCIE接口,采用PCIE通信通道進(jìn)行通信連接。
[0019]在另一個(gè)實(shí)施例的數(shù)據(jù)處理裝置中,所述節(jié)點(diǎn)芯片包括多個(gè)計(jì)算單元;
[0020]所述數(shù)據(jù)處理任務(wù)包括深度神經(jīng)網(wǎng)絡(luò)DNN的數(shù)據(jù)處理任務(wù)。
[0021]在另一個(gè)實(shí)施例的數(shù)據(jù)處理裝置中,每個(gè)節(jié)點(diǎn)芯片中的多個(gè)計(jì)算單元被分為不同的計(jì)算單元組;
[0022]所述節(jié)點(diǎn)矩陣具體通過一個(gè)節(jié)點(diǎn)芯片對(duì)所述數(shù)據(jù)處理任務(wù)進(jìn)行相應(yīng)的處理;
[0023]接收到數(shù)據(jù)處理任務(wù)的節(jié)點(diǎn)芯片對(duì)所述數(shù)據(jù)處理任務(wù)進(jìn)行相應(yīng)的處理時(shí),具體用于:
[0024]根據(jù)預(yù)先配置的執(zhí)行策略,分別通過所述接收到數(shù)據(jù)處理任務(wù)的節(jié)點(diǎn)芯片中不同的計(jì)算單元組,依次對(duì)DNN中各個(gè)層或連續(xù)多個(gè)層的數(shù)據(jù)處理任務(wù)進(jìn)行處理。
[0025]為解決上述技術(shù)問題,根據(jù)本發(fā)明實(shí)施例的另一個(gè)方面,提供一種數(shù)據(jù)處理系統(tǒng),包括多個(gè)如本發(fā)明上述任一實(shí)施例所述的數(shù)據(jù)處理裝置;
[0026]相鄰數(shù)據(jù)處理裝置中的主控芯片之間通信連接,以通過一個(gè)以上所述數(shù)據(jù)處理裝置實(shí)現(xiàn)對(duì)同一個(gè)數(shù)據(jù)處理任務(wù)的處理。
[0027]為解決上述技術(shù)問題,根據(jù)本發(fā)明實(shí)施例的又一個(gè)方面,提供一種服務(wù)器,包括主板,所述主板上具有一個(gè)以上卡槽,還包括:
[0028]一個(gè)以上如上述任一實(shí)施例所述的數(shù)據(jù)處理裝置,所述數(shù)據(jù)處理裝置中的主控芯片以插接方式插入主板上的卡槽中時(shí),主控芯片通過外部接口與主板進(jìn)行數(shù)據(jù)交互;或者
[0029]如本發(fā)明上述任一實(shí)施例所述的數(shù)據(jù)處理系統(tǒng),所述數(shù)據(jù)系統(tǒng)中的多個(gè)主控芯片分別以插接方式插入主板上的不同卡槽中時(shí),主控芯片分別通過外部接口與主板進(jìn)行數(shù)據(jù)交互。
[0030]基于本發(fā)明上述實(shí)施例提供的數(shù)據(jù)處理裝置和系統(tǒng)、服務(wù)器,每個(gè)數(shù)據(jù)處理裝置包括一個(gè)主控芯片和一個(gè)與主控芯片通信連接的節(jié)點(diǎn)矩陣,每個(gè)節(jié)點(diǎn)矩陣包括一個(gè)以上節(jié)點(diǎn)芯片;其中,主控芯片可以通過外部接口與外部設(shè)備連接,將數(shù)據(jù)處理任務(wù)分發(fā)給節(jié)點(diǎn)矩陣,以及向節(jié)點(diǎn)矩陣發(fā)送控制消息,由節(jié)點(diǎn)矩陣通過一個(gè)以上節(jié)點(diǎn)芯片對(duì)數(shù)據(jù)處理任務(wù)進(jìn)行相應(yīng)的處理,例如計(jì)算,并向主控芯片返回?cái)?shù)據(jù)處理結(jié)果。由于每個(gè)數(shù)據(jù)處理裝置中,只需要主控芯片與外部設(shè)備通信連接,用于對(duì)數(shù)據(jù)處理任務(wù)進(jìn)行具體處理的節(jié)點(diǎn)芯片的數(shù)量可以根據(jù)數(shù)據(jù)處理任務(wù)的處理性能需求無限擴(kuò)展,但是節(jié)點(diǎn)芯片只需與主控芯片進(jìn)行通信連接即可,無需與外部設(shè)備通信連接、因此無需占用外部設(shè)備的通信接口,例如卡槽,因此本發(fā)明實(shí)施例中數(shù)據(jù)處理裝置和系統(tǒng)、服務(wù)器的數(shù)據(jù)處理能力,例如計(jì)算能力,易于擴(kuò)展,從而根據(jù)任務(wù)需要提供足夠的數(shù)據(jù)處理能力,且避免了擴(kuò)展數(shù)據(jù)處理能力需增加外部設(shè)備的通信接口所產(chǎn)生的成本。
[0031]本發(fā)明實(shí)施例的數(shù)據(jù)處理能力(例如計(jì)算能力)易于擴(kuò)展,可適用于對(duì)DNN或其他任意網(wǎng)絡(luò)中數(shù)據(jù)處理任務(wù)的處理。
[0032]上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明實(shí)施例的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的【具體實(shí)施方式】對(duì)本發(fā)明的技術(shù)方案做進(jìn)一步的詳細(xì)描述。
【附圖說明】
[0033]通過閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對(duì)于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對(duì)本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號(hào)表示相同的部件。在附圖中:
[0034]圖1為本發(fā)明數(shù)據(jù)處理裝置一個(gè)實(shí)施例的結(jié)構(gòu)示意圖。
[0035]圖2為現(xiàn)有DNN計(jì)算平臺(tái)采用的單機(jī)多GPU的一個(gè)數(shù)據(jù)并行框架示意圖。
[0036]圖3為本發(fā)明數(shù)據(jù)處理裝置另一實(shí)施例的示意圖。
[0037]圖4為本發(fā)明數(shù)據(jù)處理裝置又一實(shí)施例的示意圖。
[0038]圖5為本發(fā)明數(shù)據(jù)處理裝置再一實(shí)施例的示意圖。
[0039]圖6為本發(fā)明數(shù)據(jù)處理系統(tǒng)一個(gè)實(shí)施例的示意圖。
[0040]圖7為本發(fā)明服務(wù)器一個(gè)實(shí)施例的示意圖。
【具體實(shí)施方式】
[0041]現(xiàn)在將參照附圖來詳細(xì)描述本發(fā)明的各種示例性實(shí)施例。應(yīng)注意到:除非另外具體說明,否則在這些實(shí)施例中闡述的部件和步驟的相對(duì)布置、數(shù)字表達(dá)式和數(shù)值不限制本發(fā)明的范圍。
[0042]同時(shí),應(yīng)當(dāng)明白,為了便于描述,附圖中所示出的各個(gè)部分的尺寸并不是按照實(shí)際的比例關(guān)系繪制的。
[0043]以下對(duì)至少一個(gè)示例性實(shí)施例的描述實(shí)際上僅僅是說明性的,決不作為對(duì)本發(fā)明及其應(yīng)用或使用的任何限制。
[0044]對(duì)于相關(guān)領(lǐng)域普通技術(shù)人員已知的技術(shù)、方法和設(shè)備可能不作詳細(xì)討論,但在適當(dāng)情況下,所述技術(shù)、方法和設(shè)備應(yīng)當(dāng)被視為說明書的一部分。
[0045]應(yīng)注意到:相似的標(biāo)號(hào)和字母在下面的附圖中表示類似項(xiàng),因此,一旦某一項(xiàng)在一個(gè)附圖中被定義,則在隨后的附圖中不需要對(duì)其進(jìn)行進(jìn)一步討論。
[0046]圖1為本發(fā)明數(shù)據(jù)處理裝置一個(gè)實(shí)施例的結(jié)構(gòu)示意圖。如圖1所示,該實(shí)施例的數(shù)據(jù)處理裝置包括主控芯片(Master Chip) I和與主控芯片I通信連接的節(jié)點(diǎn)矩陣(NodeMatrix)2,節(jié)點(diǎn)矩陣包括一個(gè)以上節(jié)點(diǎn)芯片(Node Chip)。其中:
[0047]主控芯片I,設(shè)置有外部接口,主控芯片I可以通過該外部接口接入外部設(shè)備,例如服務(wù)器中的主板上;主控芯片I用于將通過外部接口接收到的數(shù)據(jù)處理任務(wù)(例如,計(jì)算任務(wù))分發(fā)給節(jié)點(diǎn)矩陣2,以及向節(jié)點(diǎn)矩陣2發(fā)送控制消息,并接收節(jié)點(diǎn)矩陣2返回的數(shù)據(jù)處理結(jié)果。
[0048]示例性地,該外部接口可以是一個(gè)PCIE(總線和接口標(biāo)準(zhǔn))接口,以接入外部設(shè)備的PCIE插槽中。另外,外部接口也可以是其他接口,只要與接入的外部設(shè)備的接口類型匹配即可。另外,主控芯片I具體可以基于FPGA(現(xiàn)場(chǎng)可編程門陣列)方式實(shí)現(xiàn),這樣可以根據(jù)用戶需求靈活定制。
[0049]節(jié)點(diǎn)矩陣2,用于接收主控芯片I發(fā)送的控制消息和數(shù)據(jù)處理任務(wù),根據(jù)該控制消息,通過一個(gè)以上節(jié)點(diǎn)芯片對(duì)數(shù)據(jù)處理任務(wù)進(jìn)行相應(yīng)的處理,即:負(fù)責(zé)處理數(shù)據(jù)處理任務(wù),并在獲得數(shù)據(jù)處理結(jié)果后向主控芯片I返回?cái)?shù)據(jù)處理結(jié)果。
[0050]這里,將數(shù)據(jù)處理功能劃分為主控芯片I和節(jié)點(diǎn)矩陣2兩個(gè)獨(dú)立的單元來執(zhí)行,主控芯片I負(fù)責(zé)與外部設(shè)備(例如服務(wù)器中主板)的通信以及數(shù)據(jù)處理任務(wù)的分發(fā),而節(jié)點(diǎn)矩陣2專注于對(duì)數(shù)據(jù)處理任務(wù)的具體處理。
[0051]基于本發(fā)明上述實(shí)施例提供的數(shù)據(jù)處理裝置,每個(gè)數(shù)據(jù)處理裝置包括一個(gè)主控芯片和一個(gè)與主控芯片通信連接的節(jié)點(diǎn)矩陣,每個(gè)節(jié)點(diǎn)矩陣包括一個(gè)以上節(jié)點(diǎn)芯片;其中,主控芯片可以通過外部接口與外部設(shè)備連接,將數(shù)據(jù)處理任務(wù)分發(fā)給節(jié)點(diǎn)矩陣,以及向節(jié)點(diǎn)矩陣發(fā)送控制消息,由節(jié)點(diǎn)矩陣通過一個(gè)以上節(jié)點(diǎn)芯片對(duì)數(shù)據(jù)處理任務(wù)進(jìn)行相應(yīng)的處理,例如計(jì)算,并向主控芯片返回?cái)?shù)據(jù)處理結(jié)果。由于每個(gè)數(shù)據(jù)處理裝置中,只需要主控芯片與外部設(shè)備通信連接,用于對(duì)數(shù)據(jù)處理任務(wù)進(jìn)行具體處理的節(jié)點(diǎn)芯片的數(shù)量可以根據(jù)數(shù)據(jù)處理任務(wù)的處理性能需求無限擴(kuò)展,但是節(jié)點(diǎn)芯片只需與主控芯片進(jìn)行通信連接即可,無需與外部設(shè)備通信連接、因此無需占用外部設(shè)備的通信接口,例如卡槽,因此本發(fā)明實(shí)施例中數(shù)據(jù)處理裝置和系統(tǒng)、服務(wù)器的數(shù)據(jù)處理能力,例如計(jì)算能力,可以根據(jù)需求任意擴(kuò)展,從而根據(jù)任務(wù)需要提供足夠的數(shù)據(jù)處理能力,不會(huì)受到主板卡槽數(shù)量的限制,且避免了擴(kuò)展數(shù)據(jù)處理能力需增加外部設(shè)備的通信接口所產(chǎn)生的成本。
[0052]本發(fā)明實(shí)施例的數(shù)據(jù)處理能力(例如計(jì)算能力)易于擴(kuò)展,可適用于對(duì)DNN或其他任意網(wǎng)絡(luò)中數(shù)據(jù)處理任務(wù)的處理。
[0053]例如針對(duì)DNN,由于DNN是一層一層的,比如說有十層,下一層數(shù)據(jù)處理任務(wù)需要等到當(dāng)前一層數(shù)據(jù)處理任務(wù)處理完之后才能開始處理,層間數(shù)據(jù)處理任務(wù)存在依賴關(guān)系,但同一層的數(shù)據(jù)處理任務(wù)可以并行處理,因此,本發(fā)明實(shí)施例中,同一列節(jié)點(diǎn)芯片組21中的節(jié)點(diǎn)芯片可以同時(shí)去處理DNN同一層的數(shù)據(jù)處理任務(wù),例如這一層的數(shù)據(jù)處理任務(wù)包括十億次運(yùn)算操作,同一列節(jié)點(diǎn)芯片組21中包括四個(gè)節(jié)點(diǎn)芯片,可以將這一層的十億次操作分為四部分讓該列節(jié)點(diǎn)芯片組21中的四個(gè)節(jié)點(diǎn)分別去運(yùn)算,只需占用服務(wù)器中的一個(gè)卡槽便可提供相對(duì)于現(xiàn)有的單個(gè)GHJ成倍增強(qiáng)的數(shù)據(jù)處理能力。
[0054]圖2為現(xiàn)有DNN計(jì)算平臺(tái)采用的單機(jī)多GPU的一個(gè)數(shù)據(jù)并行框架示意圖。在現(xiàn)有的DNN計(jì)算平臺(tái)中,一張GPU上只搭載一顆GPU芯片,GPU再插入到服務(wù)器主板的PCIE卡槽中。在圖2所示的數(shù)據(jù)并行框架中,可能存在以下兩種數(shù)據(jù)通信情況:
[0055]情況1:在同一臺(tái)服務(wù)器上的不同GPU卡之間通信,例如,從一個(gè)服務(wù)器上的GPU A向GPU B發(fā)送數(shù)據(jù)包。GPU之間通過PCIE連接,因此GPU之間的數(shù)據(jù)包需要通過該服務(wù)器主板上的PCIE交換芯片來完成傳輸,該情況I中,數(shù)據(jù)包的傳輸順序是:
[0056]GPU A^PCIE Hub(集線器)—GPU B。
[0057]情況2:在不同服務(wù)器上的GPU之間通信,例如,從一個(gè)服務(wù)器上的GPU A向另一服務(wù)器上的GPU C發(fā)送數(shù)據(jù)包。由于兩個(gè)GHJ之間的數(shù)據(jù)包需要通過交換網(wǎng)絡(luò)才能到達(dá)目的地,該情況2中,數(shù)據(jù)包的傳輸順序是:
[0058]一個(gè)服務(wù)器上GPU A^PCIE Hub—網(wǎng)卡—網(wǎng)絡(luò)交換機(jī)—另一服務(wù)器上網(wǎng)卡—PCIEHub—GPU Co
[0059]由此,若需要同一個(gè)服務(wù)器上的多個(gè)GPU協(xié)作處理同一個(gè)DNN的數(shù)據(jù)處理任務(wù),由于不同GPU之間的通信需要通過主板進(jìn)行,GPU之間的數(shù)據(jù)傳輸時(shí)延較大;如果同一個(gè)服務(wù)器上的所有GPU仍不足以支持同一個(gè)DNN的數(shù)據(jù)處理任務(wù),則還需要多個(gè)服務(wù)器上的GPU之間進(jìn)行通信,則除了需要通過多個(gè)服務(wù)器上的主板轉(zhuǎn)發(fā)外,還需要經(jīng)過網(wǎng)卡、網(wǎng)絡(luò)和網(wǎng)絡(luò)交換機(jī)進(jìn)行,不同服務(wù)器上GPU之間的數(shù)據(jù)傳輸時(shí)延更大。因此現(xiàn)有采用單機(jī)多GPU的DNN計(jì)算平臺(tái)對(duì)DNN的數(shù)據(jù)處理任務(wù)的處理效率低下。
[0060]而本發(fā)明實(shí)施例的數(shù)據(jù)處理裝置中,節(jié)點(diǎn)矩陣易于擴(kuò)展,可以包括多個(gè)節(jié)點(diǎn)芯片,從而單個(gè)數(shù)據(jù)處理裝置即具有強(qiáng)大的數(shù)據(jù)處理能力,由于數(shù)據(jù)處理裝置中主控芯片與節(jié)點(diǎn)芯片、以及節(jié)點(diǎn)芯片之間直接通信,無需通過服務(wù)器的主板、以及網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā),因此相對(duì)于現(xiàn)有技術(shù)具有較小的傳輸時(shí)延。
[0061]在圖1所示實(shí)施例的數(shù)據(jù)處理裝置中,節(jié)點(diǎn)矩陣2具體可以包括N列節(jié)點(diǎn)芯片組,每列節(jié)點(diǎn)芯片組分別包括一個(gè)以上節(jié)點(diǎn)芯片。其中,第一列節(jié)點(diǎn)芯片組中的每個(gè)節(jié)點(diǎn)芯片分別與主控芯片I通信連接,第η列節(jié)點(diǎn)芯片組中的每個(gè)節(jié)點(diǎn)芯片,分別與第η-l列節(jié)點(diǎn)芯片組中的對(duì)應(yīng)節(jié)點(diǎn)芯片通信連接,n e【2,N】,N的取值為不小于I的整數(shù)。
[0062]圖3為本發(fā)明數(shù)據(jù)處理裝置另一實(shí)施例的示意圖。圖3示出了節(jié)點(diǎn)矩陣2包括I列節(jié)點(diǎn)芯片組21、4個(gè)節(jié)點(diǎn)芯片的一個(gè)具體示例。該節(jié)點(diǎn)芯片組21中的每個(gè)節(jié)點(diǎn)芯片均與主控芯片I通信連接,負(fù)責(zé)處理相應(yīng)的數(shù)據(jù)處理任務(wù)。作為示例,在圖3僅示出了節(jié)點(diǎn)矩陣2包括四個(gè)節(jié)點(diǎn)芯片的一個(gè)示例,本領(lǐng)域技術(shù)人員基于本發(fā)明實(shí)施例的記載,可以了解,該列節(jié)點(diǎn)芯片組21中可根據(jù)需要設(shè)置所需數(shù)量的節(jié)點(diǎn)芯片。
[0063]圖4為本發(fā)明數(shù)據(jù)處理裝置又一實(shí)施例的示意圖。如圖4所示,為了滿足數(shù)據(jù)處理任務(wù)的需要,在該I列節(jié)點(diǎn)芯片組21中,各節(jié)點(diǎn)芯片依次通信連接。由于同一列節(jié)點(diǎn)芯片組中的各節(jié)點(diǎn)芯片可通過垂直方向的互聯(lián)鏈路直接進(jìn)行通信,而無需通過主控節(jié)點(diǎn)轉(zhuǎn)發(fā),傳輸時(shí)延較低,提高了數(shù)據(jù)處理任務(wù)的處理效率。
[0064]此外,還可根據(jù)數(shù)據(jù)處理任務(wù)的特定要求,例如根據(jù)DNN的計(jì)算要求,同一列節(jié)點(diǎn)芯片組21中,分別位于首、尾節(jié)點(diǎn)芯片(S卩:一列節(jié)點(diǎn)芯片組兩端的節(jié)點(diǎn)芯片)通信連接,使得同一列節(jié)點(diǎn)芯片組21構(gòu)成一個(gè)回環(huán)結(jié)構(gòu),從而實(shí)現(xiàn)了同一列節(jié)點(diǎn)芯片組21中節(jié)點(diǎn)芯片之間的直接數(shù)據(jù)傳輸。
[0065]在圖3、圖4所示的實(shí)施例中,僅示例性示出了節(jié)點(diǎn)矩陣2包括I列節(jié)點(diǎn)芯片組21的示例,另外,為了進(jìn)一步提高大規(guī)?;虺笠?guī)模的網(wǎng)絡(luò)數(shù)據(jù)處理效率,可以設(shè)置多列節(jié)點(diǎn)芯片組21,也就是說,節(jié)點(diǎn)矩陣2可根據(jù)需要在水平方向上進(jìn)行擴(kuò)展。如圖5所示,為本發(fā)明數(shù)據(jù)處理裝置再一實(shí)施例的示意圖,該實(shí)施例示例性地示出了節(jié)點(diǎn)矩陣包括3列節(jié)點(diǎn)芯片組21的一個(gè)具體示例,本領(lǐng)域技術(shù)人員基于本發(fā)明實(shí)施例的記載,可以了解,節(jié)點(diǎn)矩陣2包括任意多列節(jié)點(diǎn)芯片組21的實(shí)現(xiàn)及各種實(shí)施例中的連接關(guān)系。
[0066]同樣,在節(jié)點(diǎn)矩陣2包括多列節(jié)點(diǎn)芯片組21的實(shí)施例中,同一列列節(jié)點(diǎn)芯片組21中的各節(jié)點(diǎn)芯片依次通信連接,分別位于首、尾節(jié)點(diǎn)芯片也可以進(jìn)一步通信連接,使得同一列節(jié)點(diǎn)芯片組21構(gòu)成一個(gè)回環(huán)結(jié)構(gòu)。
[0067]節(jié)點(diǎn)矩陣2包括I列節(jié)點(diǎn)芯片組21,也稱為一維擴(kuò)展;節(jié)點(diǎn)矩陣2包括多列節(jié)點(diǎn)芯片組21,也稱二維擴(kuò)展。同一列節(jié)點(diǎn)芯片組21中的節(jié)點(diǎn)芯片分工、并行去處理DNN同一層的數(shù)據(jù)處理任務(wù),例如將DNN—個(gè)層的一億詞運(yùn)算量的數(shù)據(jù)處理任務(wù)分成四份,分配給第一列節(jié)點(diǎn)芯片組21中的四個(gè)節(jié)點(diǎn)芯片進(jìn)行運(yùn)算,一個(gè)DNN可能是有很多層的,層間是有依賴關(guān)系的,二維擴(kuò)展便可以實(shí)現(xiàn)DNN不同層數(shù)據(jù)處理任務(wù)的處理,就是說第一列節(jié)點(diǎn)芯片組21中的四個(gè)節(jié)點(diǎn)芯片并行地運(yùn)算第一層的數(shù)據(jù)處理任務(wù),并將數(shù)據(jù)處理結(jié)果傳輸給第二列節(jié)點(diǎn)芯片組21,第二列節(jié)點(diǎn)芯片組2中的四個(gè)節(jié)點(diǎn)芯片并行地運(yùn)算第二層的數(shù)據(jù)處理任務(wù),以此類推,從而實(shí)現(xiàn)了數(shù)據(jù)處理任務(wù)的層間流水。
[0068]基于本發(fā)明上述實(shí)施例提供的數(shù)據(jù)處理裝置,每一列節(jié)點(diǎn)芯片組21中包括多個(gè)節(jié)點(diǎn)芯片,可以在接收到數(shù)據(jù)處理任務(wù)后同時(shí)并行地處理該數(shù)據(jù)處理任務(wù),由于每一列節(jié)點(diǎn)芯片組21構(gòu)成一個(gè)回環(huán)結(jié)構(gòu),每一列節(jié)點(diǎn)芯片組21的節(jié)點(diǎn)芯片形成一條環(huán)形鏈路,因此它們之間可以相互通信,并且通信的時(shí)間可以跟它們處理數(shù)據(jù)處理任務(wù)的時(shí)間重疊,例如針對(duì)DNN,由于DNN是一層一層的,比如說有十層,它的同一層的數(shù)據(jù)處理任務(wù)可以并行處理,本發(fā)明實(shí)施例同一列節(jié)點(diǎn)芯片組21構(gòu)成的一個(gè)回環(huán)結(jié)構(gòu),同一列節(jié)點(diǎn)芯片組21中的節(jié)點(diǎn)芯片可以同時(shí)去處理DNN同一層的數(shù)據(jù)處理任務(wù),例如這一層的數(shù)據(jù)處理任務(wù)包括十億次運(yùn)算操作,可以將這一層的十億次操作分為四部分讓該列節(jié)點(diǎn)芯片組21中的四個(gè)節(jié)點(diǎn)分別去運(yùn)算,在它們運(yùn)算的過程中可能存在一些數(shù)據(jù)交換就通過該環(huán)形鏈路傳輸,也就是說,同一列節(jié)點(diǎn)芯片組21中的四個(gè)節(jié)點(diǎn)可以一邊運(yùn)算,一邊將交互數(shù)據(jù)通過該環(huán)形鏈路傳輸,為下一輪的運(yùn)算做好準(zhǔn)備,這樣就不會(huì)浪費(fèi)時(shí)間,提高了數(shù)據(jù)處理效率;另外,避免了同一列節(jié)點(diǎn)芯片21中節(jié)點(diǎn)芯片之間需要交互數(shù)據(jù)時(shí),交互數(shù)據(jù)需要通過主控節(jié)點(diǎn)I轉(zhuǎn)發(fā)占用帶寬。
[0069]在本發(fā)明上述任一實(shí)施例的數(shù)據(jù)處理裝置中,主控芯片I與節(jié)點(diǎn)芯片上可以分別設(shè)置PCIE接口,具有通信連接關(guān)系的主控芯片I與節(jié)點(diǎn)芯片之間,以及具有通信連接關(guān)系的節(jié)點(diǎn)芯片之間,具體可以通過芯片上的PCIE接口,采用PCOE通信通道進(jìn)行通信連接。
[0070]或者,在本發(fā)明上述任一實(shí)施例的數(shù)據(jù)處理裝置中,主控芯片I與節(jié)點(diǎn)芯片上也可以分別設(shè)置SERDES(串行器/解串器)接口,具有通信連接關(guān)系的主控芯片I與節(jié)點(diǎn)芯片之間,以及具有通信連接關(guān)系的節(jié)點(diǎn)芯片之間,具體可以通過芯片上的SERDES接口,采用SERDES通信通道進(jìn)行通信連接。
[0071]SERDES是一種主流的TDM(時(shí)分多路復(fù)用)、P2P(點(diǎn)對(duì)點(diǎn))的串行通信技術(shù),S卩:在發(fā)送端多路低速并行信號(hào)被轉(zhuǎn)換成高速串行信號(hào),經(jīng)過傳輸媒體(光纜或銅線),最后在接收端高速串行信號(hào)重新轉(zhuǎn)換成低速并行信號(hào)。這種點(diǎn)對(duì)點(diǎn)的串行通信技術(shù)充分利用傳輸媒體的信道容量,減少了所需的傳輸信道和器件引腳數(shù)目,突破了傳統(tǒng)并行I/o接口的數(shù)據(jù)傳輸瓶頸,大大降低通信成本:一是采用差分信號(hào)傳輸代替單端信號(hào)傳輸,從而增強(qiáng)了抗噪聲、抗干擾能力;二是采用時(shí)鐘和數(shù)據(jù)恢復(fù)技術(shù)代替同時(shí)傳輸數(shù)據(jù)和時(shí)鐘,從而解決了限制數(shù)據(jù)傳輸速率的信號(hào)時(shí)鐘偏移問題。因此,本發(fā)明實(shí)施例中,在芯片之間采用SERDES通信通道,有效減少了數(shù)據(jù)傳輸延遲。
[0072]另外,具有通信連接關(guān)系的芯片之間也可采用其它高速率低延遲的通信通道進(jìn)行通信連接。
[0073]另外,在本發(fā)明任一實(shí)施例的數(shù)據(jù)處理裝置中,針對(duì)DNN或類似數(shù)據(jù)流向具有特殊性的網(wǎng)絡(luò),具有通信連接關(guān)系的各芯片之間的通信通道可以是非對(duì)稱的,也就是發(fā)送方向(Tx)和接收方向(Rx)的傳輸帶寬不同,數(shù)據(jù)可主要沿著一個(gè)方向流動(dòng),而在另一方向上主要傳遞一些控制信息或者命令。例如,針對(duì)DNN的數(shù)據(jù)處理任務(wù),可以設(shè)置SERDES通信通道在數(shù)據(jù)處理任務(wù)發(fā)送方向Tx的傳輸帶寬大于接收方向Rx的傳輸帶寬。
[0074]在本發(fā)明上述任一實(shí)施例的數(shù)據(jù)處理裝置中,每個(gè)節(jié)點(diǎn)芯片具體可以包括多個(gè)計(jì)算單元,例如上千個(gè)計(jì)算單元。本發(fā)明實(shí)施例的數(shù)據(jù)處理裝置可用于對(duì)包括但不限于DNN的數(shù)據(jù)處理任務(wù)進(jìn)行處理。在以下的特定實(shí)施例中,以對(duì)DNN的數(shù)據(jù)處理任務(wù)進(jìn)行處理為例對(duì)本發(fā)明實(shí)施例的數(shù)據(jù)處理裝置進(jìn)行進(jìn)一步詳細(xì)說明,但是,本領(lǐng)域技術(shù)人員基于本發(fā)明實(shí)施例的記載,可以知悉本發(fā)明實(shí)施例的數(shù)據(jù)處理裝置基于類似的方式對(duì)其他網(wǎng)絡(luò)中數(shù)據(jù)處理任務(wù)進(jìn)行處理的具體實(shí)現(xiàn)。
[0075]采用發(fā)明實(shí)施例的數(shù)據(jù)處理裝置對(duì)DNN的數(shù)據(jù)處理任務(wù)進(jìn)行計(jì)算處理時(shí),可以示例性而非限制性地采用以下策略:
[0076]通過一個(gè)節(jié)點(diǎn)芯片運(yùn)算處理DNN中全部層的數(shù)據(jù)處理任務(wù);或者,通過一個(gè)節(jié)點(diǎn)芯片運(yùn)算DNN中多個(gè)層的數(shù)據(jù)處理任務(wù),通過多個(gè)節(jié)點(diǎn)完成DNN中全部層的數(shù)據(jù)處理任務(wù)的運(yùn)算處理。其中,前一種情況適用于單節(jié)點(diǎn)芯片模式,可適用于特別小型的DNN,一個(gè)節(jié)點(diǎn)芯片就足以高效完成一個(gè)DNN中所有的數(shù)據(jù)處理任務(wù),這種情況下,DNN的數(shù)據(jù)處理任務(wù)數(shù)據(jù)由服務(wù)器下發(fā)給主控芯片,主控芯片再下發(fā)給節(jié)點(diǎn)芯片,節(jié)點(diǎn)芯片對(duì)DNN中全部層的數(shù)據(jù)處理任務(wù)進(jìn)行運(yùn)算處理,運(yùn)算完畢之后再沿與任務(wù)數(shù)據(jù)相反的方向?qū)⑻幚斫Y(jié)果數(shù)據(jù)回傳給服務(wù)器。后一種情況下,適用于多節(jié)點(diǎn)芯片模式,可適用于小型的DNN,少數(shù)幾個(gè)節(jié)點(diǎn)芯片就可以高效完成一個(gè)DNN中所有的數(shù)據(jù)處理任務(wù),這種情況下,DNN的數(shù)據(jù)處理任務(wù)數(shù)據(jù)由服務(wù)器下發(fā)給主控芯片,主控芯片再下發(fā)給其中一個(gè)節(jié)點(diǎn)芯片,對(duì)DNN中多個(gè)層的數(shù)據(jù)處理任務(wù)進(jìn)行運(yùn)算處理,并將運(yùn)算得到的臨時(shí)結(jié)果數(shù)據(jù)通過節(jié)點(diǎn)芯片間的互聯(lián)鏈路傳輸給下一個(gè)節(jié)點(diǎn)芯片,此時(shí)該節(jié)點(diǎn)芯片便可處理下一個(gè)DNN中多個(gè)層的數(shù)據(jù)處理任務(wù),下一個(gè)節(jié)點(diǎn)芯片開始對(duì)后續(xù)多個(gè)層的數(shù)據(jù)處理任務(wù)進(jìn)行運(yùn)算處理,依次類推,完成DNN的所有數(shù)據(jù)處理任務(wù)的運(yùn)算處理后,沿與任務(wù)數(shù)據(jù)相反的方向?qū)⑻幚斫Y(jié)果數(shù)據(jù)回傳給服務(wù)器。
[0077]通過組成一維矩陣處理DNN的全部數(shù)據(jù)處理任務(wù)。具體地,通過組成一維矩陣的多個(gè)節(jié)點(diǎn)芯片,先處理DNN—個(gè)層的數(shù)據(jù)處理任務(wù),本層的數(shù)據(jù)處理任務(wù)運(yùn)算處理完成后再一起開始運(yùn)算處理下一層的數(shù)據(jù)處理任務(wù)。該情況適用于節(jié)點(diǎn)矩陣為一維矩陣模式。DNN的數(shù)據(jù)處理任務(wù)數(shù)據(jù)由服務(wù)器下發(fā)給主控芯片,再由主控芯片同時(shí)下發(fā)到一維矩陣的所有節(jié)點(diǎn)芯片,一層的數(shù)據(jù)處理任務(wù)運(yùn)算處理結(jié)束之后,得到的臨時(shí)結(jié)果數(shù)據(jù)暫存在節(jié)點(diǎn)芯片中,當(dāng)所有層的數(shù)據(jù)處理任務(wù)均運(yùn)算處理結(jié)束后,將最終的處理結(jié)果數(shù)據(jù)回傳給主控芯片,再由主控芯片回傳給服務(wù)器。在對(duì)一層數(shù)據(jù)處理任務(wù)進(jìn)行運(yùn)算處理時(shí),節(jié)點(diǎn)芯片之間通過節(jié)點(diǎn)芯片間的互聯(lián)通路進(jìn)行數(shù)據(jù)互通,協(xié)同完成任務(wù)。例如,假設(shè)一個(gè)節(jié)點(diǎn)芯片中有兩千個(gè)計(jì)算單元,一維節(jié)點(diǎn)矩陣共有四個(gè)節(jié)點(diǎn)芯片共八千個(gè)計(jì)算單元,八千個(gè)計(jì)算單元一起處理DNN—個(gè)層的數(shù)據(jù)處理任務(wù),DNN—層數(shù)據(jù)處理任務(wù)具體為八億次運(yùn)算,則可以讓這八千個(gè)計(jì)算單元分擔(dān)預(yù)算八千萬次的運(yùn)算量,經(jīng)過十次這樣的循環(huán)運(yùn)算后,便可完成這一層的數(shù)據(jù)處理任務(wù),然后在一起進(jìn)行下一層的數(shù)據(jù)處理任務(wù)的處理。
[0078]通過二維矩陣處理DNN的全部數(shù)據(jù)處理任務(wù),該情況適用于節(jié)點(diǎn)矩陣為二維矩陣模式。具體地,DNN的數(shù)據(jù)處理任務(wù)數(shù)據(jù)由服務(wù)器下發(fā)給主控芯片,再由主控芯片同時(shí)下發(fā)到二維矩陣的第一列節(jié)點(diǎn)芯片組21中的多個(gè)節(jié)點(diǎn)芯片,二維矩陣中每列節(jié)點(diǎn)芯片組21的一個(gè)節(jié)點(diǎn)芯片處理DNN—層數(shù)據(jù)處理任務(wù)的一部分,每列節(jié)點(diǎn)芯片組21中的多個(gè)節(jié)點(diǎn)芯片并行處理,共同完成DNN—個(gè)層的數(shù)據(jù)處理任務(wù),本層的數(shù)據(jù)處理任務(wù)運(yùn)算處理完成后,將運(yùn)算得到的臨時(shí)結(jié)果數(shù)據(jù)通過節(jié)點(diǎn)芯片間的橫向互聯(lián)鏈路傳輸給下一列節(jié)點(diǎn)芯片組21,此時(shí)該節(jié)點(diǎn)芯片組便可處理下一個(gè)DNN中一個(gè)層的數(shù)據(jù)處理任務(wù),下一列節(jié)點(diǎn)芯片組21采用類似方式對(duì)下一層的數(shù)據(jù)處理任務(wù)進(jìn)行運(yùn)算處理,依次類推,完成DNN的所有數(shù)據(jù)處理任務(wù)的運(yùn)算處理后,沿與任務(wù)數(shù)據(jù)相反的方向?qū)⑻幚斫Y(jié)果數(shù)據(jù)回傳給服務(wù)器。
[0079]在單個(gè)節(jié)點(diǎn)芯片中,可以根據(jù)其內(nèi)部計(jì)算單元的不同配置,通過以下方式來處理數(shù)據(jù)處理任務(wù):
[0080]節(jié)點(diǎn)芯片中的計(jì)算單元未分組,都被配置為在同一時(shí)刻進(jìn)行完全相同的運(yùn)算,例如,假設(shè)一個(gè)節(jié)點(diǎn)芯片中有兩千個(gè)計(jì)算單元,DNN—個(gè)層的數(shù)據(jù)處理任務(wù)具體為八億次相同的運(yùn)算,該節(jié)點(diǎn)芯片處理該一個(gè)層的數(shù)據(jù)處理任務(wù)時(shí),兩千個(gè)計(jì)算單元同時(shí)對(duì)該八億次運(yùn)算進(jìn)行分擔(dān)處理;
[0081 ]每個(gè)節(jié)點(diǎn)芯片中的所有計(jì)算單元被配置為幾個(gè)計(jì)算單元組,同一個(gè)計(jì)算單元組內(nèi)的計(jì)算單元在同一時(shí)刻進(jìn)行完全相同的運(yùn)算,不同計(jì)算單元組間可以執(zhí)行不同的運(yùn)算操作。例如,一個(gè)節(jié)點(diǎn)芯片包括兩千個(gè)計(jì)算單元,則可以配置前一千個(gè)計(jì)算單元運(yùn)算處理DNN第一層的數(shù)據(jù)處理任務(wù),另外一千個(gè)計(jì)算單元運(yùn)算處理第二層的數(shù)據(jù)處理任務(wù),從而可以在節(jié)點(diǎn)芯片內(nèi)部實(shí)現(xiàn)一個(gè)層間的流水作業(yè)。
[0082]示例性地,在本發(fā)明實(shí)施例中,節(jié)點(diǎn)芯片啟動(dòng)時(shí),會(huì)從板載的ROM里將固件加載到節(jié)點(diǎn)芯片的微控制器(MCU)中,通過節(jié)點(diǎn)芯片中的固件(f irmware)來選擇具體采用何種方式處理數(shù)據(jù)處理任務(wù)。
[0083]根據(jù)上述策略,在基于本發(fā)明上述實(shí)施例的一個(gè)具體示例中,每個(gè)節(jié)點(diǎn)芯片中的多個(gè)計(jì)算單元被分為不同的計(jì)算單元組。該具體示例中,節(jié)點(diǎn)矩陣2具體通過一個(gè)節(jié)點(diǎn)芯片對(duì)數(shù)據(jù)處理任務(wù)進(jìn)行相應(yīng)的處理。相應(yīng)地,接收到數(shù)據(jù)處理任務(wù)的節(jié)點(diǎn)芯片對(duì)數(shù)據(jù)處理任務(wù)進(jìn)行相應(yīng)的處理時(shí),具體用于:根據(jù)預(yù)先配置的執(zhí)行策略,分別通過該接收到數(shù)據(jù)處理任務(wù)的節(jié)點(diǎn)芯片中不同的計(jì)算單元組,依次對(duì)DNN中各個(gè)層或連續(xù)多個(gè)層的數(shù)據(jù)處理任務(wù)進(jìn)行處理。
[0084]該具體示例可用于對(duì)特別小型DNN網(wǎng)絡(luò)中數(shù)據(jù)處理任務(wù)的處理。
[0085]作為本發(fā)明各實(shí)施例的一個(gè)具體示例而非限制,其中的執(zhí)行策略可以預(yù)先配置在主控芯片I中,由主控芯片I根據(jù)本次待處理DNN網(wǎng)絡(luò)中數(shù)據(jù)處理任務(wù)的大小與單個(gè)節(jié)點(diǎn)芯片可支持的數(shù)據(jù)處理能力之間的關(guān)系,確定執(zhí)行本次DNN網(wǎng)絡(luò)中數(shù)據(jù)處理任務(wù)的節(jié)點(diǎn)芯片的數(shù)量及具體的節(jié)點(diǎn)芯片,從而向第一列節(jié)點(diǎn)芯片組21中的節(jié)點(diǎn)信息發(fā)送數(shù)據(jù)處理任務(wù)與控制消息。其中的執(zhí)行策略可以根據(jù)需求隨時(shí)修改。
[0086]此外,在基于本發(fā)明上述實(shí)施例的另一個(gè)具體示例中,節(jié)點(diǎn)矩陣2具體可以通過同一列節(jié)點(diǎn)芯片組21或不同列節(jié)點(diǎn)芯片組21中的多個(gè)節(jié)點(diǎn)芯片對(duì)一次DNN的數(shù)據(jù)處理任務(wù)進(jìn)行相應(yīng)的處理,每個(gè)節(jié)點(diǎn)芯片處理DNN—個(gè)層的數(shù)據(jù)處理任務(wù)。
[0087]具體地,上述多個(gè)節(jié)點(diǎn)芯片中的各節(jié)點(diǎn)芯片,可以分別用于依次對(duì)DNN中各個(gè)層或連續(xù)多個(gè)層的數(shù)據(jù)處理任務(wù)進(jìn)行處理?;蛘撸鄠€(gè)節(jié)點(diǎn)芯片中的每個(gè)節(jié)點(diǎn)芯片,用于對(duì)DNN一個(gè)層的數(shù)據(jù)處理任務(wù)進(jìn)行處理,并在得到處理結(jié)果數(shù)據(jù)后發(fā)送給縱向通信連接的、所在節(jié)點(diǎn)芯片組21中的下一個(gè)節(jié)點(diǎn)芯片,或者橫向通信連接的、下一列節(jié)點(diǎn)芯片組21中的下一個(gè)節(jié)點(diǎn)芯片,以便該下一個(gè)節(jié)點(diǎn)芯片對(duì)DNN下一個(gè)層的數(shù)據(jù)處理任務(wù)進(jìn)行處理。
[0088]另外,在基于本發(fā)明上述實(shí)施例的又一個(gè)具體示例中,節(jié)點(diǎn)矩陣2具體還可以通過由多列節(jié)點(diǎn)芯片組構(gòu)成的二維節(jié)點(diǎn)矩陣對(duì)所述DNN中所有層的數(shù)據(jù)處理任務(wù)進(jìn)行相應(yīng)的處理。
[0089]具體地,每一列節(jié)點(diǎn)芯片組中的所有節(jié)點(diǎn)芯片,用于對(duì)DNN—個(gè)層的數(shù)據(jù)處理任務(wù)進(jìn)行并行處理,將處理數(shù)據(jù)處理任務(wù)獲得的數(shù)據(jù)處理結(jié)果發(fā)送給該列節(jié)點(diǎn)芯片組中各節(jié)點(diǎn)芯片對(duì)應(yīng)橫向通信連接的、下一列節(jié)點(diǎn)芯片組的節(jié)點(diǎn)芯片,以便下一列節(jié)點(diǎn)芯片組中的所有節(jié)點(diǎn)芯片對(duì)DNN下一層的數(shù)據(jù)處理任務(wù)進(jìn)行并行處理。
[0090]由于數(shù)據(jù)處理裝置連接的存儲(chǔ)單元帶寬和1/0(輸入/輸出)帶寬主要受限于主控芯片I的能力,如果一個(gè)主控芯片I可提供的帶寬不足,本發(fā)明實(shí)施例中,還可以通過主控芯片I互聯(lián)的設(shè)計(jì)來提供額外的帶寬支援。如圖6所示,為本發(fā)明數(shù)據(jù)處理系統(tǒng)一個(gè)實(shí)施例的示意圖。該實(shí)施例的數(shù)據(jù)處理系統(tǒng)中,包括多個(gè)數(shù)據(jù)處理裝置,相鄰數(shù)據(jù)處理裝置中的主控芯片I之間通信連接,以通過一個(gè)以上數(shù)據(jù)處理裝置實(shí)現(xiàn)對(duì)同一個(gè)數(shù)據(jù)處理任務(wù)的處理。圖6僅示例性地示出了數(shù)據(jù)處理系統(tǒng)包括兩個(gè)數(shù)據(jù)處理裝置的一個(gè)具體示例。其中的數(shù)據(jù)處理裝置具體可以基于本發(fā)明上述任一實(shí)施例數(shù)據(jù)處理裝置實(shí)現(xiàn)。
[0091]基于本發(fā)明上述實(shí)施例提供的數(shù)據(jù)處理系統(tǒng),包括多個(gè)本發(fā)明上述實(shí)施例的數(shù)據(jù)處理裝置,數(shù)據(jù)處理能力強(qiáng)大且易于擴(kuò)展,不會(huì)受到主板卡槽數(shù)量的限制,且避免了擴(kuò)展數(shù)據(jù)處理能力需增加外部設(shè)備的通信接口所產(chǎn)生的成本。
[0092]另外,基于本發(fā)明實(shí)施例的數(shù)據(jù)處理系統(tǒng),通過多個(gè)數(shù)據(jù)處理裝置進(jìn)一步擴(kuò)展了數(shù)據(jù)處理能力,若兩個(gè)數(shù)據(jù)處理裝置之間通過插入的主板進(jìn)行通信,延時(shí)較大,而相鄰數(shù)據(jù)處理裝置中的主控芯片I之間通信連接,避免了兩個(gè)數(shù)據(jù)處理裝置之間通過插入的主板進(jìn)行通信,降低了通信時(shí)延,提高了數(shù)據(jù)處理效率。
[0093]在上述數(shù)據(jù)處理系統(tǒng)實(shí)施例的一個(gè)具體示例中,主控芯片I上設(shè)置有SERDES接口,相鄰數(shù)據(jù)處理裝置中的主控芯片I之間具體可以通過主控芯片I上的SERDES接口,采用SERDES通信通道進(jìn)行通信連接。
[0094]與上述數(shù)據(jù)處理裝置實(shí)施例類似地,主控芯片I之間的SERDES通信通道也可以是非對(duì)稱的,在數(shù)據(jù)處理任務(wù)發(fā)送方向Tx的傳輸帶寬大于接收方向Rx的傳輸帶寬。
[0095]或者,在上述數(shù)據(jù)處理系統(tǒng)實(shí)施例的另一個(gè)具體示例中,主控芯片I上設(shè)置有PCIE接口,相鄰數(shù)據(jù)處理裝置中的主控芯片I之間具體可以通過主控芯片I上的PCIE接口,采用PCIE通信通道進(jìn)行通信連接。
[0096]本發(fā)明一個(gè)實(shí)施例提供的服務(wù)器中,包括主板,主板上具有一個(gè)以上卡槽。另外,服務(wù)器中還包括一個(gè)以上數(shù)據(jù)處理裝置,數(shù)據(jù)處理裝置中的主控芯片I以插接方式插入主板上的卡槽中時(shí),主控芯片I可以通過外部接口與主板進(jìn)行數(shù)據(jù)交互。其中的數(shù)據(jù)處理裝置具體可以基于本發(fā)明上述任一實(shí)施例數(shù)據(jù)處理裝置的結(jié)構(gòu)實(shí)現(xiàn)。
[0097]基于本發(fā)明上述實(shí)施例提供的服務(wù)器,包括多個(gè)本發(fā)明上述實(shí)施例的數(shù)據(jù)處理裝置,數(shù)據(jù)處理能力強(qiáng)大且易于擴(kuò)展,不會(huì)受到主板卡槽數(shù)量的限制,且避免了擴(kuò)展數(shù)據(jù)處理能力需增加外部設(shè)備的通信接口所產(chǎn)生的成本。
[0098]本發(fā)明另一個(gè)實(shí)施例提供的服務(wù)器中,包括主板,主板上具有一個(gè)以上卡槽。另夕卜,服務(wù)器中還包括數(shù)據(jù)處理系統(tǒng),數(shù)據(jù)系統(tǒng)中的多個(gè)主控芯片I分別以插接方式插入主板上的不同卡槽中時(shí),主控芯片I可以分別通過外部接口與主板進(jìn)行數(shù)據(jù)交互。其中的數(shù)據(jù)處理系統(tǒng)具體可以基于本發(fā)明上述任一實(shí)施例數(shù)據(jù)處理系統(tǒng)的結(jié)構(gòu)實(shí)現(xiàn)。
[0099]基于本發(fā)明上述實(shí)施例提供的服務(wù)器,包括多個(gè)本發(fā)明上述實(shí)施例的數(shù)據(jù)處理系統(tǒng),數(shù)據(jù)處理能力強(qiáng)大且易于擴(kuò)展,不會(huì)受到主板卡槽數(shù)量的限制,且避免了擴(kuò)展數(shù)據(jù)處理能力需增加外部設(shè)備的通信接口所產(chǎn)生的成本;并且,通信時(shí)延低,具有較高的數(shù)據(jù)處理效率。
[0100]如圖7所示,為本發(fā)明服務(wù)器一個(gè)實(shí)施例的示意圖,圖7所示的實(shí)施例中,僅示例性地示出了服務(wù)器包括兩個(gè)數(shù)據(jù)處理裝置的一個(gè)具體示例。
[0101]在本發(fā)明上述任一實(shí)施例服務(wù)器的一個(gè)具體示例中,主控芯片I外部接口為PCIE接口,主板上的卡槽具體為PCIE插槽。另外,主控芯片I的外部接口與主板上的卡槽也可以采用其他標(biāo)準(zhǔn)實(shí)現(xiàn),只要二者類型匹配即可。
[0102]另外,在本發(fā)明服務(wù)器的又一服務(wù)器中,上述任一實(shí)施例的服務(wù)器中,還可以包括與主板連接的、用于與其他服務(wù)器進(jìn)行數(shù)據(jù)交互的外部通信接口。示例性地,外部通信接口可以是以太網(wǎng)接口,例如40/100G以太網(wǎng)接口,具體的選擇可可以根據(jù)不同的應(yīng)用場(chǎng)景靈活決定。例如,若要搭建一個(gè)云服務(wù)器中心,則外部通信接口相應(yīng)設(shè)置為以太網(wǎng)接口。
[0103]進(jìn)一步地,再參見圖7,在本發(fā)明服務(wù)器的再一服務(wù)器中,還可以包括分別與每個(gè)主控芯片I通信連接的存儲(chǔ)單元,以便進(jìn)行相應(yīng)的信息存儲(chǔ)。作為本發(fā)明實(shí)施例的一個(gè)具體示例而非限制,該存儲(chǔ)單元可以是DDR(雙倍速率同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器)、LPDDR(低功率雙倍速率同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器)、GDDR(圖形雙倍速率同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器)、HBM(高帶寬存儲(chǔ)器)、或者HMC(混合存儲(chǔ)立方體存儲(chǔ)器),另外,也可以是其它類型的高速存儲(chǔ)器。
[0104]綜上所述,由于本發(fā)明實(shí)施例提出了一種新的拓?fù)浣Y(jié)構(gòu),該拓?fù)浣Y(jié)構(gòu)可更適合諸如DNN或深度學(xué)習(xí)的大運(yùn)算量硬件加速平臺(tái)的優(yōu)化實(shí)現(xiàn)。
[0105]本發(fā)明實(shí)施例,具有以下總的有益技術(shù)效果:
[0106]將數(shù)據(jù)處理任務(wù)劃分為主控芯片和節(jié)點(diǎn)芯片的兩種功能芯片的解決方案,增加了數(shù)據(jù)處理裝置的適應(yīng)性。當(dāng)計(jì)算能力不足時(shí),可以通過對(duì)節(jié)點(diǎn)矩陣做一維或二維擴(kuò)展來實(shí)現(xiàn)算力的提升,大大增強(qiáng)了系統(tǒng)的可擴(kuò)展性和可伸縮性,付出的代價(jià)相對(duì)較低,提供的最大計(jì)算能力遠(yuǎn)遠(yuǎn)超過現(xiàn)在的GPU,整個(gè)產(chǎn)品的物理大小也比較緊湊;
[0107]節(jié)點(diǎn)芯片與主機(jī)接口無關(guān),降低了開發(fā)難度,節(jié)點(diǎn)芯片的實(shí)現(xiàn)可以專注于數(shù)據(jù)處理功能的實(shí)現(xiàn),有助于提高集成度和硬件效率;
[0108]節(jié)點(diǎn)芯片不會(huì)占用主板上的卡槽,易于擴(kuò)展節(jié)點(diǎn)芯片、增強(qiáng)數(shù)據(jù)處理裝置、系統(tǒng)和服務(wù)器的數(shù)據(jù)處理能力;
[0109]主控芯片可以采用FPGA方式實(shí)現(xiàn),可以根據(jù)客戶需求靈活定制;
[0110]各芯片間通信的延遲可控,大部分的情況下都是芯片和芯片利用高速通信通道直接進(jìn)行通信;
[0111]主控芯片可以選擇用FPGA(現(xiàn)場(chǎng)可編程門陣列)來實(shí)現(xiàn),這樣可以根據(jù)客戶需求靈活定制。
[0112]本發(fā)明實(shí)施例提供了以下技術(shù)方案:
[0113]1、一種數(shù)據(jù)處理裝置,包括主控芯片和與所述主控芯片通信連接的節(jié)點(diǎn)矩陣,所述節(jié)點(diǎn)矩陣包括一個(gè)以上節(jié)點(diǎn)芯片;其中:
[0114]所述主控芯片,設(shè)置有外部接口,用于將通過外部接口接收到的數(shù)據(jù)處理任務(wù)分發(fā)給節(jié)點(diǎn)矩陣,以及向節(jié)點(diǎn)矩陣發(fā)送控制消息,并接收節(jié)點(diǎn)矩陣返回的數(shù)據(jù)處理結(jié)果;
[0115]所述節(jié)點(diǎn)矩陣,用于接收主控芯片發(fā)送的控制消息和數(shù)據(jù)處理任務(wù),根據(jù)所述控制消息,通過一個(gè)以上節(jié)點(diǎn)芯片對(duì)所述數(shù)據(jù)處理任務(wù)進(jìn)行相應(yīng)的處理,并向主控芯片返回?cái)?shù)據(jù)處理結(jié)果。
[0116]2、根據(jù)I所述的數(shù)據(jù)處理裝置,所述節(jié)點(diǎn)矩陣包括N列節(jié)點(diǎn)芯片組,每列節(jié)點(diǎn)芯片組分別包括一個(gè)以上節(jié)點(diǎn)芯片;
[0117]其中,第一列節(jié)點(diǎn)芯片組中的每個(gè)節(jié)點(diǎn)芯片分別與所述主控芯片通信連接,第η列節(jié)點(diǎn)芯片組中的每個(gè)節(jié)點(diǎn)芯片,分別與第η-l列節(jié)點(diǎn)芯片組中的對(duì)應(yīng)節(jié)點(diǎn)芯片通信連接,ηe【2,N】,N的取值為不小于I的整數(shù)。
[0118]3、根據(jù)2所述的數(shù)據(jù)處理裝置,每列節(jié)點(diǎn)芯片組中的節(jié)點(diǎn)芯片依次通信連接。
[0119]4、根據(jù)3所述的數(shù)據(jù)處理裝置,每列節(jié)點(diǎn)芯片組中分別位于首、尾節(jié)點(diǎn)芯片通信連接。
[0120]5、根據(jù)I至4任意一項(xiàng)所述的數(shù)據(jù)處理裝置,所述主控芯片與節(jié)點(diǎn)芯片上分別設(shè)置有串行器/解串器SERDES接口;具有通信連接關(guān)系的主控芯片與節(jié)點(diǎn)芯片之間、節(jié)點(diǎn)芯片之間具體通過SERDES接口,采用SERDES通信通道進(jìn)行通信連接;
[0121]或者
[0122]所述主控芯片與節(jié)點(diǎn)芯片上分別設(shè)置有總線和接口標(biāo)準(zhǔn)PCIE接口;具有通信連接關(guān)系的主控芯片與節(jié)點(diǎn)芯片之間、節(jié)點(diǎn)芯片之間具體通過PCIE接口,采用PCIE通信通道進(jìn)行通信連接。
[0123]6、根據(jù)5所述的數(shù)據(jù)處理裝置,所述SERDES通信通道在數(shù)據(jù)處理任務(wù)發(fā)送方向Tx的傳輸帶寬大于接收方向Rx的傳輸帶寬。
[0124]7、根據(jù)I至6任意一項(xiàng)所述的數(shù)據(jù)處理裝置,所述節(jié)點(diǎn)芯片包括多個(gè)計(jì)算單元;
[0125]所述數(shù)據(jù)處理任務(wù)包括深度神經(jīng)網(wǎng)絡(luò)DNN的數(shù)據(jù)處理任務(wù)。
[0126]8、根據(jù)7所述的數(shù)據(jù)處理裝置,每個(gè)節(jié)點(diǎn)芯片中的多個(gè)計(jì)算單元被分為不同的計(jì)算單元組;
[0127]所述節(jié)點(diǎn)矩陣具體通過一個(gè)節(jié)點(diǎn)芯片對(duì)所述數(shù)據(jù)處理任務(wù)進(jìn)行相應(yīng)的處理;
[0128]接收到數(shù)據(jù)處理任務(wù)的節(jié)點(diǎn)芯片對(duì)所述數(shù)據(jù)處理任務(wù)進(jìn)行相應(yīng)的處理時(shí),具體用于:
[0129]根據(jù)預(yù)先配置的執(zhí)行策略,分別通過所述接收到數(shù)據(jù)處理任務(wù)的節(jié)點(diǎn)芯片中不同的計(jì)算單元組,依次對(duì)DNN中各個(gè)層或連續(xù)多個(gè)層的數(shù)據(jù)處理任務(wù)進(jìn)行處理。
[0130]9、根據(jù)7所述的數(shù)據(jù)處理裝置,所述節(jié)點(diǎn)矩陣具體通過同一個(gè)節(jié)點(diǎn)芯片組或不同節(jié)點(diǎn)芯片組中的多個(gè)節(jié)點(diǎn)芯片對(duì)所述數(shù)據(jù)處理任務(wù)進(jìn)行相應(yīng)的處理。
[0131]10、根據(jù)9所述的數(shù)據(jù)處理裝置,所述多個(gè)節(jié)點(diǎn)芯片中的各節(jié)點(diǎn)芯片,分別用于依次對(duì)DNN中各個(gè)層或連續(xù)多個(gè)層的數(shù)據(jù)處理任務(wù)進(jìn)行處理。
[0132]11、根據(jù)9所述的數(shù)據(jù)處理裝置,所述多個(gè)節(jié)點(diǎn)芯片中的每個(gè)節(jié)點(diǎn)芯片,用于對(duì)DNN一個(gè)層的數(shù)據(jù)處理任務(wù)進(jìn)行處理,并在得到處理結(jié)果數(shù)據(jù)后發(fā)送給縱向通信連接的、所在節(jié)點(diǎn)芯片組的下一個(gè)節(jié)點(diǎn)芯片,或者橫向通信連接的、下一列節(jié)點(diǎn)芯片組的下一個(gè)節(jié)點(diǎn)芯片,以便所述下一個(gè)節(jié)點(diǎn)芯片對(duì)所述DNN下一個(gè)層的數(shù)據(jù)處理任務(wù)進(jìn)行處理。
[0133]12、根據(jù)7所述的數(shù)據(jù)處理裝置,所述節(jié)點(diǎn)矩陣具體通過由多列節(jié)點(diǎn)芯片組構(gòu)成的二維節(jié)點(diǎn)矩陣對(duì)所述DNN中所有層的數(shù)據(jù)處理任務(wù)進(jìn)行相應(yīng)的處理。
[0134]13、根據(jù)12所述的數(shù)據(jù)處理裝置,每一列節(jié)點(diǎn)芯片組中的所有節(jié)點(diǎn)芯片,用于對(duì)DNN—個(gè)層的數(shù)據(jù)處理任務(wù)進(jìn)行并行處理,并將處理數(shù)據(jù)處理任務(wù)獲得的數(shù)據(jù)處理結(jié)果發(fā)送給該列節(jié)點(diǎn)芯片組中各節(jié)點(diǎn)芯片對(duì)應(yīng)橫向通信連接的、下一列節(jié)點(diǎn)芯片組的節(jié)點(diǎn)芯片,以便所述下一列節(jié)點(diǎn)芯片組中的所有節(jié)點(diǎn)芯片對(duì)DNN下一層的數(shù)據(jù)處理任務(wù)進(jìn)行并行處理。
[0135]14、根據(jù)I至13任意一項(xiàng)所述的數(shù)據(jù)處理裝置,所述外部接口包括PCIE接口。
[0136]15、根據(jù)I至14任意一項(xiàng)所述的數(shù)據(jù)處理裝置,所述主控芯片具體基于現(xiàn)場(chǎng)可編程門陣列FPGA方式實(shí)現(xiàn)。
[0137]16、一種數(shù)據(jù)處理系統(tǒng),包括多個(gè)如I至16任意一項(xiàng)所述的數(shù)據(jù)處理裝置;
[0138]相鄰數(shù)據(jù)處理裝置中的主控芯片之間通信連接,以通過一個(gè)以上所述數(shù)據(jù)處理裝置實(shí)現(xiàn)對(duì)同一個(gè)數(shù)據(jù)處理任務(wù)的處理。
[0139]17、根據(jù)16所述的數(shù)據(jù)處理系統(tǒng),相鄰數(shù)據(jù)處理裝置中的主控芯片之間具體通過主控芯片上的串行器/解串器SERDES接口,采用SERDES通信通道進(jìn)行通信連接;或者
[0140]相鄰數(shù)據(jù)處理裝置中的主控芯片之間具體通過主控芯片上的PCIE接口,采用PCIE通信通道進(jìn)行通信連接。
[0141]18、根據(jù)17所述的數(shù)據(jù)處理系統(tǒng),所述SERDES通信通道在數(shù)據(jù)處理任務(wù)發(fā)送方向Tx的傳輸帶寬大于接收方向Rx的傳輸帶寬。
[0142]19、一種服務(wù)器,包括主板,所述主板上具有一個(gè)以上卡槽,還包括:
[0143]一個(gè)以上如I至15任意一項(xiàng)所述的數(shù)據(jù)處理裝置,所述數(shù)據(jù)處理裝置中的主控芯片以插接方式插入主板上的卡槽中時(shí),主控芯片通過外部接口與主板進(jìn)行數(shù)據(jù)交互;或者
[0144]如16至18任意一項(xiàng)所述的數(shù)據(jù)處理系統(tǒng),所述數(shù)據(jù)系統(tǒng)中的多個(gè)主控芯片分別以插接方式插入主板上的不同卡槽中時(shí),主控芯片分別通過外部接口與主板進(jìn)行數(shù)據(jù)交互。
[0145]20、根據(jù)21所述的服務(wù)器,主控芯片外部接口為總線和接口標(biāo)準(zhǔn)PCIE接口時(shí),所述卡槽具體為PCIE插槽。
[0146]21、根據(jù)19或20所述的服務(wù)器,還包括與主板連接的、用于與其他服務(wù)器進(jìn)行數(shù)據(jù)交互的外部通信接口。
[0147]22、根據(jù)21所述的服務(wù)器,所述外部通信接口包括以太網(wǎng)接口。
[0148]23、根據(jù)19至22任意一項(xiàng)所述的服務(wù)器,還包括分別與每個(gè)主控芯片通信連接的存儲(chǔ)單元。
[0149]24、根據(jù)23所述的服務(wù)器,所述存儲(chǔ)單元包括雙倍速率同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器DDR、低功率雙倍速率同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器LPDDR、圖形雙倍速率同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器⑶DR、高帶寬存儲(chǔ)器HBM、或者混合存儲(chǔ)立方體存儲(chǔ)器HMC。
[0150]在此提供的算法和顯示不與任何特定計(jì)算機(jī)、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對(duì)任何特定編程語言。應(yīng)當(dāng)明白,可以利用各種編程語言實(shí)現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對(duì)特定語言所做的描述是為了披露本發(fā)明的最佳實(shí)施方式。
[0151]在此處所提供的說明書中,說明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒有這些具體細(xì)節(jié)的情況下實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對(duì)本說明書的理解。
[0152]類似地,應(yīng)當(dāng)理解,為了精簡本公開并幫助理解各個(gè)發(fā)明方面中的一個(gè)或多個(gè),在上面對(duì)本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個(gè)特征有時(shí)被一起分組到單個(gè)實(shí)施例、圖、或者對(duì)其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖:即所要求保護(hù)的本發(fā)明要求比在每個(gè)權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個(gè)實(shí)施例的所有特征。因此,遵循【具體實(shí)施方式】的權(quán)利要求書由此明確地并入該【具體實(shí)施方式】,其中每個(gè)權(quán)利要求本身都作為本發(fā)明的單獨(dú)實(shí)施例。
[0153]本領(lǐng)域那些技術(shù)人員可以理解,可以對(duì)實(shí)施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們?cè)O(shè)置在與該實(shí)施例不同的一個(gè)或多個(gè)設(shè)備中。可以把實(shí)施例中的模塊或單元或組件組合成一個(gè)模塊或單元或組件,以及此外可以把它們分成多個(gè)子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對(duì)本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進(jìn)行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個(gè)特征可以由提供相同、等同或相似目的的替代特征來代替。
[0154]此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,所公開的實(shí)施例的任意之一都可以以任意的組合方式來使用。
[0155]本發(fā)明實(shí)施例的各個(gè)部件可以以硬件實(shí)現(xiàn),或者以在一個(gè)或者多個(gè)處理器上運(yùn)行的軟件模塊實(shí)現(xiàn),或者以它們的組合實(shí)現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實(shí)踐中使用微處理器或者數(shù)字信號(hào)處理器(DSP)來實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的裝置、系統(tǒng)、服務(wù)器中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實(shí)現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計(jì)算機(jī)程序和計(jì)算機(jī)程序產(chǎn)品)。這樣的實(shí)現(xiàn)本發(fā)明的程序可以存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上,或者可以具有一個(gè)或者多個(gè)信號(hào)的形式。這樣的信號(hào)可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號(hào)上提供,或者以任何其他形式提供。
[0156]應(yīng)該注意的是上述實(shí)施例對(duì)本發(fā)明進(jìn)行說明而不是對(duì)本發(fā)明進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計(jì)出替換實(shí)施例。在說明書中,不應(yīng)將位于括號(hào)之間的任何參考符號(hào)構(gòu)造成對(duì)本發(fā)明實(shí)施例的限制。單詞“包含”不排除存在未列出的元件或步驟。位于元件之前的單詞“一”或“一個(gè)”不排除存在多個(gè)這樣的元件。本發(fā)明實(shí)施例可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計(jì)算機(jī)來實(shí)現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個(gè)可以是通過同一個(gè)硬件項(xiàng)來具體體現(xiàn)。
[0157]顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。
【主權(quán)項(xiàng)】
1.一種數(shù)據(jù)處理裝置,其特征在于,包括主控芯片和與所述主控芯片通信連接的節(jié)點(diǎn)矩陣,所述節(jié)點(diǎn)矩陣包括一個(gè)以上節(jié)點(diǎn)芯片;其中: 所述主控芯片,設(shè)置有外部接口,用于將通過外部接口接收到的數(shù)據(jù)處理任務(wù)分發(fā)給節(jié)點(diǎn)矩陣,以及向節(jié)點(diǎn)矩陣發(fā)送控制消息,并接收節(jié)點(diǎn)矩陣返回的數(shù)據(jù)處理結(jié)果; 所述節(jié)點(diǎn)矩陣,用于接收主控芯片發(fā)送的控制消息和數(shù)據(jù)處理任務(wù),根據(jù)所述控制消息,通過一個(gè)以上節(jié)點(diǎn)芯片對(duì)所述數(shù)據(jù)處理任務(wù)進(jìn)行相應(yīng)的處理,并向主控芯片返回?cái)?shù)據(jù)處理結(jié)果。2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)處理裝置,其特征在于,所述節(jié)點(diǎn)矩陣包括N列節(jié)點(diǎn)芯片組,每列節(jié)點(diǎn)芯片組分別包括一個(gè)以上節(jié)點(diǎn)芯片; 其中,第一列節(jié)點(diǎn)芯片組中的每個(gè)節(jié)點(diǎn)芯片分別與所述主控芯片通信連接,第η列節(jié)點(diǎn)芯片組中的每個(gè)節(jié)點(diǎn)芯片,分別與第η-l列節(jié)點(diǎn)芯片組中的對(duì)應(yīng)節(jié)點(diǎn)芯片通信連接,ne【2,N】,N的取值為不小于I的整數(shù)。3.根據(jù)權(quán)利要求2所述的數(shù)據(jù)處理裝置,其特征在于,每列節(jié)點(diǎn)芯片組中的節(jié)點(diǎn)芯片依次通信連接。4.根據(jù)權(quán)利要求3所述的數(shù)據(jù)處理裝置,其特征在于,每列節(jié)點(diǎn)芯片組中分別位于首、尾節(jié)點(diǎn)芯片通信連接。5.根據(jù)權(quán)利要求1至4任意一項(xiàng)所述的數(shù)據(jù)處理裝置,其特征在于,所述主控芯片與節(jié)點(diǎn)芯片上分別設(shè)置有串行器/解串器SERDES接口;具有通信連接關(guān)系的主控芯片與節(jié)點(diǎn)芯片之間、節(jié)點(diǎn)芯片之間具體通過SERDES接口,采用SERDES通信通道進(jìn)行通信連接; 或者 所述主控芯片與節(jié)點(diǎn)芯片上分別設(shè)置有總線和接口標(biāo)準(zhǔn)PCIE接口;具有通信連接關(guān)系的主控芯片與節(jié)點(diǎn)芯片之間、節(jié)點(diǎn)芯片之間具體通過PCIE接口,采用PCIE通信通道進(jìn)行通信連接。6.根據(jù)權(quán)利要求5所述的數(shù)據(jù)處理裝置,其特征在于,所述SERDES通信通道在數(shù)據(jù)處理任務(wù)發(fā)送方向Tx的傳輸帶寬大于接收方向Rx的傳輸帶寬。7.根據(jù)權(quán)利要求1至6任意一項(xiàng)所述的數(shù)據(jù)處理裝置,其特征在于,所述節(jié)點(diǎn)芯片包括多個(gè)計(jì)算單元; 所述數(shù)據(jù)處理任務(wù)包括深度神經(jīng)網(wǎng)絡(luò)DNN的數(shù)據(jù)處理任務(wù)。8.根據(jù)權(quán)利要求7所述的數(shù)據(jù)處理裝置,其特征在于,每個(gè)節(jié)點(diǎn)芯片中的多個(gè)計(jì)算單元被分為不同的計(jì)算單元組; 所述節(jié)點(diǎn)矩陣具體通過一個(gè)節(jié)點(diǎn)芯片對(duì)所述數(shù)據(jù)處理任務(wù)進(jìn)行相應(yīng)的處理; 接收到數(shù)據(jù)處理任務(wù)的節(jié)點(diǎn)芯片對(duì)所述數(shù)據(jù)處理任務(wù)進(jìn)行相應(yīng)的處理時(shí),具體用于: 根據(jù)預(yù)先配置的執(zhí)行策略,分別通過所述接收到數(shù)據(jù)處理任務(wù)的節(jié)點(diǎn)芯片中不同的計(jì)算單元組,依次對(duì)DNN中各個(gè)層或連續(xù)多個(gè)層的數(shù)據(jù)處理任務(wù)進(jìn)行處理。9.一種數(shù)據(jù)處理系統(tǒng),其特征在于,包括多個(gè)如權(quán)利要求1至8任意一項(xiàng)所述的數(shù)據(jù)處理裝置; 相鄰數(shù)據(jù)處理裝置中的主控芯片之間通信連接,以通過一個(gè)以上所述數(shù)據(jù)處理裝置實(shí)現(xiàn)對(duì)同一個(gè)數(shù)據(jù)處理任務(wù)的處理。10.一種服務(wù)器,包括主板,所述主板上具有一個(gè)以上卡槽,其特征在于,還包括: 一個(gè)以上如權(quán)利要求1至8任意一項(xiàng)所述的數(shù)據(jù)處理裝置,所述數(shù)據(jù)處理裝置中的主控芯片以插接方式插入主板上的卡槽中時(shí),主控芯片通過外部接口與主板進(jìn)行數(shù)據(jù)交互;或者 如權(quán)利要求9所述的數(shù)據(jù)處理系統(tǒng),所述數(shù)據(jù)系統(tǒng)中的多個(gè)主控芯片分別以插接方式插入主板上的不同卡槽中時(shí),主控芯片分別通過外部接口與主板進(jìn)行數(shù)據(jù)交互。
【文檔編號(hào)】G06N3/02GK105956659SQ201610312410
【公開日】2016年9月21日
【申請(qǐng)日】2016年5月11日
【發(fā)明人】詹克團(tuán), 范靖, 楊存永, 高鵬
【申請(qǐng)人】北京比特大陸科技有限公司