1.一種可擴(kuò)展的分布式GPU加速裝置,其特征在于,包括:
多個(gè)節(jié)點(diǎn),所述節(jié)點(diǎn)包括CPU、多個(gè)GPU,所述CPU與所述GPU進(jìn)行數(shù)據(jù)交互,多個(gè)所述節(jié)點(diǎn)之間通過(guò)InfiniBand進(jìn)行連接,所述CPU控制所述GPU。
2.如權(quán)利要求1所述的可擴(kuò)展的分布式GPU加速裝置,其特征在于,所述節(jié)點(diǎn)上GPU與CPU通過(guò)主板進(jìn)行連接。
3.如權(quán)利要求1所述的可擴(kuò)展的分布式GPU加速裝置,其特征在于,每個(gè)所述節(jié)點(diǎn)獲取自己對(duì)應(yīng)的訓(xùn)練數(shù)據(jù),將所述訓(xùn)練數(shù)據(jù)分為多個(gè)批次數(shù)據(jù),每個(gè)所述批次數(shù)據(jù)中包含多個(gè)數(shù)據(jù),作為一次訓(xùn)練的輸入,每個(gè)GPU作為一個(gè)單獨(dú)的計(jì)算單元,分別處理相應(yīng)的所述批次數(shù)據(jù)。
4.如權(quán)利要求1所述的可擴(kuò)展的分布式GPU加速裝置,其特征在于,每個(gè)所述節(jié)點(diǎn)中的CPU負(fù)責(zé)把每個(gè)GPU計(jì)算的誤差矩陣更新到全局的權(quán)值矩陣。
5.如權(quán)利要求1所述的可擴(kuò)展的分布式GPU加速裝置,其特征在于,當(dāng)某一節(jié)點(diǎn)的所有GPU處理完一輪批次數(shù)據(jù)后,所述某一節(jié)點(diǎn)與其他節(jié)點(diǎn)進(jìn)行通信,將處理完成的批次數(shù)據(jù)發(fā)送到對(duì)應(yīng)的節(jié)點(diǎn),進(jìn)行全局更新。
6.如權(quán)利要求1所述的可擴(kuò)展的分布式GPU加速裝置,其特征在于,所述可擴(kuò)展的分布式GPU加速裝置的架構(gòu)采用對(duì)等模式。
7.一種利用如權(quán)利要求1-5所述可擴(kuò)展的分布式GPU加速裝置的加速方法,其特征在于,主進(jìn)程啟動(dòng)后,進(jìn)行初始化并讀取所述節(jié)點(diǎn)分到的批次數(shù)據(jù),設(shè)置兩個(gè)線(xiàn)程負(fù)責(zé)CPU與GPU的通信,所述兩個(gè)線(xiàn)程包括Download線(xiàn)程與Upload線(xiàn)程,第一次迭代時(shí),CPU準(zhǔn)備好初始的參數(shù)W權(quán)值矩陣,Download線(xiàn)程讀取參數(shù)W矩陣并將其下載到GPU的內(nèi)存中,并通知GPU計(jì)算線(xiàn)程數(shù)據(jù)已經(jīng)準(zhǔn)備好,然后進(jìn)入阻塞狀態(tài),等待下一輪計(jì)算開(kāi)始,GPU計(jì)算完成參數(shù)W矩陣后,通知Upload線(xiàn)程,Upload線(xiàn)程將誤差矩陣dW從GPU內(nèi)存?zhèn)鬏數(shù)紺PU內(nèi)存,并通知CPU進(jìn)行參數(shù)W矩陣的更新,然后進(jìn)入阻塞狀態(tài),等待下一輪計(jì)算結(jié)束,CPU更新參數(shù)W矩陣后,通知Download線(xiàn)程,進(jìn)行第二輪計(jì)算,直到所有數(shù)據(jù)計(jì)算結(jié)束。