一種基于gpu的深度學(xué)習(xí)方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及高性能計(jì)算、深度學(xué)習(xí)技術(shù)及互聯(lián)網(wǎng)領(lǐng)域,特別是涉及一種基于GPU的深度學(xué)習(xí)方法及系統(tǒng)。
【背景技術(shù)】
[0002]當(dāng)今,深度學(xué)習(xí)是機(jī)器學(xué)習(xí)研究中的一個(gè)新的領(lǐng)域,其動機(jī)在于建立、模擬人腦進(jìn)行分析學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò),它模仿人腦的機(jī)制來解釋數(shù)據(jù),例如圖像,聲音和文本。
[0003]2006年,加拿大多倫多大學(xué)教授、機(jī)器學(xué)習(xí)領(lǐng)域泰斗--Geoffrey Hinton和他的學(xué)生在頂尖學(xué)術(shù)刊物《科學(xué)》上發(fā)表了一篇文章,開啟了深度學(xué)習(xí)在學(xué)術(shù)界和工業(yè)界的浪潮。自2006年以來,深度學(xué)習(xí)在學(xué)術(shù)界持續(xù)升溫。斯坦福大學(xué)、紐約大學(xué)、加拿大蒙特利爾大學(xué)等成為研究深度學(xué)習(xí)的重鎮(zhèn)。2010年,美國國防部DARPA計(jì)劃首次資助深度學(xué)習(xí)項(xiàng)目,參與方有斯坦福大學(xué)、紐約大學(xué)和NEC美國研究院。支持深度學(xué)習(xí)的一個(gè)重要依據(jù),就是腦神經(jīng)系統(tǒng)的確具有豐富的層次結(jié)構(gòu)。一個(gè)最著名的例子就是Hubel-Wiesel模型,由于揭示了視覺神經(jīng)的機(jī)理而曾獲得諾貝爾醫(yī)學(xué)與生理學(xué)獎。
[0004]如今Google、微軟、百度等知名的擁有大數(shù)據(jù)的高科技公司爭相投入資源,占領(lǐng)深度學(xué)習(xí)的技術(shù)制高點(diǎn),正是因?yàn)樗鼈兌伎吹搅嗽诖髷?shù)據(jù)時(shí)代,更加復(fù)雜且更加強(qiáng)大的深度模型能深刻揭示海量數(shù)據(jù)里所承載的復(fù)雜而豐富的信息,并對未來或未知事件做更精準(zhǔn)的預(yù)測。
[0005]目前,深度學(xué)習(xí)應(yīng)用包括語音識別、圖像識別、自然語言處理、搜索廣告CTR預(yù)估等,在這些應(yīng)用的計(jì)算量十分巨大,其需要大規(guī)模深度學(xué)習(xí)計(jì)算,然而,現(xiàn)有技術(shù)中,通常僅利用CPU來實(shí)現(xiàn)深度學(xué)習(xí)過程中的計(jì)算,計(jì)算耗時(shí)長、效率低。并且,現(xiàn)有的深度學(xué)習(xí)系統(tǒng)通常需要部署網(wǎng)絡(luò)設(shè)備來實(shí)現(xiàn)聯(lián)網(wǎng),但是,部署網(wǎng)絡(luò)設(shè)備很復(fù)雜且系統(tǒng)成本高。
【發(fā)明內(nèi)容】
[0006]有鑒于此,本發(fā)明提供了一種基于GPU的深度學(xué)習(xí)方法及系統(tǒng),以解決現(xiàn)有技術(shù)中計(jì)算耗時(shí)長效率低,系統(tǒng)部署復(fù)雜、成本高的問題。
[0007]為解決上述技術(shù)問題,本發(fā)明提供一種基于GPU的深度學(xué)習(xí)方法,應(yīng)用于基于GPU的深度學(xué)習(xí)系統(tǒng),所述系統(tǒng)為單機(jī)系統(tǒng)且所述系統(tǒng)包括CPU和至少一個(gè)所述GPU,該方法包括:
[0008]所述CPU傳輸待訓(xùn)練數(shù)據(jù)至每個(gè)所述GPU ;
[0009]每個(gè)所述GPU利用所述待訓(xùn)練數(shù)據(jù),前向后向計(jì)算得到神經(jīng)網(wǎng)絡(luò)模型的權(quán)重信息,并將所述權(quán)重信息反饋至所述CPU ;
[0010]所述CPU依據(jù)所述權(quán)重信息更新所述神經(jīng)網(wǎng)絡(luò)模型,并將更新后的神經(jīng)網(wǎng)絡(luò)模型傳輸至每個(gè)所述GPU,循環(huán)執(zhí)行上述步驟直至完成所述神經(jīng)網(wǎng)絡(luò)模型的深度學(xué)習(xí)過程。
[0011]上述方法中,優(yōu)選的,所述CPU傳輸待學(xué)習(xí)數(shù)據(jù)至每個(gè)所述GPU,包括:
[0012]從SSD硬盤中并行讀取所述待訓(xùn)練數(shù)據(jù)至內(nèi)存;
[0013]將所述內(nèi)存中的所述待訓(xùn)練數(shù)據(jù)傳輸至每個(gè)所述GPU。
[0014]上述方法中,優(yōu)選的,所述CPU與每個(gè)所述GPU之間通過PCIE接口進(jìn)行數(shù)據(jù)傳輸。
[0015]本發(fā)明還提供了一種基于GPU的深度學(xué)習(xí)系統(tǒng),所述系統(tǒng)為單機(jī)系統(tǒng),該系統(tǒng)包括:
[0016]CPU 和至少一個(gè) GPU ;
[0017]其中,
[0018]所述CPU用于傳輸待訓(xùn)練數(shù)據(jù)至每個(gè)所述GPU,依據(jù)所述GPU反饋的權(quán)重信息更新神經(jīng)網(wǎng)絡(luò)模型,并將更新后的神經(jīng)網(wǎng)絡(luò)模型傳輸至每個(gè)所述GPU ;
[0019]每個(gè)所述GPU用于利用所述待訓(xùn)練數(shù)據(jù),前向后向計(jì)算得到所述神經(jīng)網(wǎng)絡(luò)模型的權(quán)重信息,并將所述權(quán)重信息反饋至所述CPU ;循環(huán)執(zhí)行上述步驟直至完成所述神經(jīng)網(wǎng)絡(luò)模型的深度學(xué)習(xí)過程。
[0020]上述系統(tǒng)中,優(yōu)選的,還包括:
[0021]SSD硬盤和內(nèi)存;
[0022]所述CPU從所述SSD硬盤中并行讀取所述待訓(xùn)練數(shù)據(jù)至所述內(nèi)存;將所述內(nèi)存中的所述待訓(xùn)練數(shù)據(jù)傳輸至每個(gè)所述GPU。
[0023]上述系統(tǒng)中,優(yōu)選的,還包括:
[0024]PCIE 接口 ;
[0025]所述CPU與每個(gè)所述GPU之間通過所述PCIE接口進(jìn)行數(shù)據(jù)傳輸。
[0026]上述系統(tǒng)中,優(yōu)選的,所述CPU的數(shù)量為兩個(gè),所述至少一個(gè)GPU包括八個(gè)GPU。
[0027]上述系統(tǒng)中,優(yōu)選的,所述八個(gè)GPU具體為四塊GPU卡,每塊所述GPU卡包括2個(gè)GPU芯片。
[0028]以上本發(fā)明提供的一種基于GPU的深度學(xué)習(xí)方法采用了 CPU與多個(gè)GPU卡協(xié)同的高密度計(jì)算方式,具體地,由具有強(qiáng)大并行計(jì)算能力的GPU執(zhí)行耗時(shí)的前向后向計(jì)算,其余的根據(jù)深度學(xué)習(xí)應(yīng)用的算法特點(diǎn)的參數(shù)更新計(jì)算、數(shù)據(jù)讀取和分發(fā)、神經(jīng)網(wǎng)絡(luò)模型更新計(jì)算則由CPU完成;從而加速了數(shù)據(jù)深度學(xué)習(xí)應(yīng)用的處理時(shí)間,提升了計(jì)算效率。
[0029]以上本發(fā)明提供的一種基于GPU的深度學(xué)習(xí)系統(tǒng)為單機(jī)系統(tǒng),不需要部署網(wǎng)絡(luò)設(shè)備進(jìn)行聯(lián)網(wǎng),具體地,采用了 CPU與多個(gè)GPU卡協(xié)同的部署方式,單機(jī)系統(tǒng)內(nèi)插入多個(gè)GPU卡,硬件部署方便、成本低。
[0030]綜上,本發(fā)明提供了一種單機(jī)多GPU并行的基于GPU的深度學(xué)習(xí)方法及系統(tǒng),有效解決了現(xiàn)有技術(shù)中計(jì)算耗時(shí)長效率低,系統(tǒng)部署復(fù)雜、成本高的問題。
【附圖說明】
[0031]為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
[0032]圖1為本發(fā)明實(shí)施例提供的一種基于GPU的深度學(xué)習(xí)方法的流程圖;
[0033]圖2為本發(fā)明實(shí)施例提供的基于圖1的數(shù)據(jù)交互圖;
[0034]圖3為本發(fā)明實(shí)施例提供的一種硬件設(shè)計(jì)架構(gòu)圖;
[0035]圖4為本發(fā)明實(shí)施例提供的一種軟件設(shè)計(jì)架構(gòu)圖;
[0036]圖5為本發(fā)明實(shí)施例提供的一種基于GPU的深度學(xué)習(xí)系統(tǒng)的結(jié)構(gòu)框圖示意圖。
【具體實(shí)施方式】
[0037]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0038]本發(fā)明的核心是提供一種基于GPU的深度學(xué)習(xí)方法及系統(tǒng),以解決現(xiàn)有技術(shù)中計(jì)算耗時(shí)長效率低,系統(tǒng)部署復(fù)雜、成本高的問題。
[0039]為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面結(jié)合附圖和【具體實(shí)施方式】對本發(fā)明作進(jìn)一步的詳細(xì)說明。
[0040]本發(fā)明以下技術(shù)方案以圖片數(shù)據(jù)的深度學(xué)習(xí)為例進(jìn)行說明,當(dāng)然,這僅僅是舉個(gè)例子,并不局限于圖片數(shù)據(jù),還可以是其它的比如語音數(shù)據(jù)、廣告數(shù)據(jù)等等。
[0041]參考圖1,圖1示出了本發(fā)明實(shí)施例提供的一種基于GPU的深度學(xué)習(xí)方法的流程圖,該方法承載于基于GPU的深度學(xué)習(xí)軟件系統(tǒng),該軟件系統(tǒng)應(yīng)用于基于GPU的深度學(xué)習(xí)系統(tǒng)(即硬件系統(tǒng)),系統(tǒng)為單機(jī)系統(tǒng)且系統(tǒng)包括CPU和至少一個(gè)GPU,具體可以包括如下步驟:
[0042]步驟S100、CPU傳輸待訓(xùn)練數(shù)據(jù)至每個(gè)GPU ;
[0043]本發(fā)明中,基于GPU的深度學(xué)習(xí)系統(tǒng)還可以包括SSD硬盤和內(nèi)存,參考圖2,ReadData:CPU從SSD硬盤中并行讀取待訓(xùn)練數(shù)據(jù)至內(nèi)存;Send Data:將內(nèi)存中的待訓(xùn)練數(shù)據(jù)傳輸至每個(gè)GPU。
[0044]步驟S101、每個(gè)GPU利用待訓(xùn)練數(shù)據(jù),前向后向計(jì)算得到神經(jīng)網(wǎng)絡(luò)模型的權(quán)重信息,并將權(quán)重信息反饋至CPU ;
[0045]圖2中,F(xiàn)orward Backward:執(zhí)行前向后向并行計(jì)算;
[0046]Transfer Weight:將計(jì)算得到的權(quán)重信息反饋至CPU。
[0047]步驟S102、CPU依據(jù)權(quán)重信息更新神經(jīng)網(wǎng)絡(luò)模型,并將更新后的神經(jīng)網(wǎng)絡(luò)模型傳輸至每個(gè)GPU,循環(huán)執(zhí)行上述步驟直至完成神經(jīng)網(wǎng)絡(luò)模型的深度學(xué)習(xí)過程。
[0048]圖2 中,Recive New Weight and Send New Net:接收 GPU 反饋的權(quán)重信息,并將更新后的神經(jīng)網(wǎng)絡(luò)模型傳輸至每個(gè)GPU ;
[0049]Compute Update Value and Net Update:依據(jù)權(quán)重信息更新神經(jīng)網(wǎng)絡(luò)模型;
[0050]Send/Recive New Net:傳輸/接收更新后的神經(jīng)網(wǎng)絡(luò)模型。
[0051]以上本發(fā)明提供的一種基于GPU的深度學(xué)習(xí)方法采用了 CPU與多個(gè)GPU卡協(xié)同的高密度計(jì)算方式,具體地,由具有強(qiáng)大并行計(jì)算能力的GPU執(zhí)行耗時(shí)的前向后向計(jì)算,其余的根據(jù)深度學(xué)習(xí)應(yīng)用的算法特點(diǎn)的參數(shù)更新計(jì)算、數(shù)據(jù)讀取和分發(fā)、神經(jīng)網(wǎng)絡(luò)模型更新計(jì)算則由CPU完成;從而加速了數(shù)據(jù)深度學(xué)習(xí)應(yīng)用的處理時(shí)間,提升了計(jì)算效率。
[0052]基于上述本發(fā)明實(shí)施例所公開的技術(shù)方案,本發(fā)