国产精品久久久久久久,亚洲中文字幕在线观看,中文字幕在线观看,鲁大师在线日韩免费  
您現(xiàn)在的位置:首頁 ? 新聞動(dòng)態(tài) ? 公司新聞 公司新聞
PaddlePaddle之后,百度開源深度學(xué)習(xí)硬件基準(zhǔn)DeepBench
發(fā)布日期:2016-09-28

      谷歌、微軟、Facebook 等傳統(tǒng)的人工智能技術(shù)巨頭之外,百度近來也加入到了技術(shù)開源的浪潮之中,繼 PaddlePaddle 之后,百度又宣布開源了一項(xiàng)深度學(xué)習(xí)基準(zhǔn) DeepBench。

       開源地址:https://github.com/baidu-research/DeepBench

1.DeepBench

       DeepBench 是一個(gè)開源的基準(zhǔn)工具,用來測量深度神經(jīng)網(wǎng)絡(luò)訓(xùn)練中的基礎(chǔ)操作的表現(xiàn)。使用神經(jīng)網(wǎng)絡(luò)庫,這些操作在不同的硬件平臺被執(zhí)行。如今測試基準(zhǔn)工具 DeepBench 在 github 上已經(jīng)開源。

      DeepBench 的主要目標(biāo)是 benchmark 對深度學(xué)習(xí)在不同硬件平臺上而言很重要的運(yùn)算。盡管深度學(xué)習(xí)背后的基礎(chǔ)計(jì)算已經(jīng)被很好的理解了,但在實(shí)踐中它們被使用的方式驚人的不同。例如,矩陣相乘運(yùn)算基于被相乘矩陣的大小和 Kernel 實(shí)現(xiàn),可能是 compute-bound,也可能是 bandwidth-bound, 或者 occupancy-bound。因?yàn)槊總€(gè)深度學(xué)習(xí)模型帶著不同的參數(shù)使用這些運(yùn)算,面向深度學(xué)習(xí)硬件和軟件的優(yōu)化空間還是很大的,也是不足的。

      DeepBench 試圖解決這個(gè)問題,「在被用于訓(xùn)練深度神經(jīng)網(wǎng)絡(luò)時(shí),在基礎(chǔ)運(yùn)算上哪種硬件提供最好的表現(xiàn)?」我們在低層次上詳細(xì)說明了這些運(yùn)算,建立深度學(xué)習(xí)處理器的團(tuán)隊(duì)很適合在硬件模擬中使用 DeepBench。

1.1 DeepBench 適合用在哪里?

       深度學(xué)習(xí)生態(tài)系統(tǒng)包含不同的模塊。我們想要強(qiáng)調(diào) DeepBench 適合用于該生態(tài)系統(tǒng)的哪部分。在下面的圖表中,描述了關(guān)于深度學(xué)習(xí)的軟件和硬件組件。在最頂端是百度的 PaddlePaddle、Theano、TensorFlow、Torch 等這樣的深度學(xué)習(xí)框架,這些框架使得我們能夠建立深度學(xué)習(xí)模型。它們包含層(layer)這樣的基礎(chǔ)建筑模塊,可通過不同的方式連接從而創(chuàng)造模型。為了訓(xùn)練這些模型,框架使用英偉達(dá)的 cuDNN 和英特爾的 MKL 這樣的基礎(chǔ)神經(jīng)網(wǎng)絡(luò)庫。這些庫執(zhí)行矩陣相乘這樣的用來訓(xùn)練深度學(xué)習(xí)模型的運(yùn)算。最后,在英偉達(dá) GPU 或英特爾 Xeon Phi 處理器這樣的硬件上訓(xùn)練這些模型。

      DeepBch 使用神經(jīng)網(wǎng)絡(luò)庫 benchmark 基礎(chǔ)運(yùn)算在不同硬件上的表現(xiàn)。它對建立應(yīng)用的深度學(xué)習(xí)框架或深度學(xué)習(xí)模型沒用。我們不能測量使用 DeepBench 訓(xùn)練整個(gè)模型所需要的時(shí)間。為不同應(yīng)用建立的模型的表現(xiàn)特性彼此間差別很大。因此,我們要 benchmark 涉及到深度學(xué)習(xí)模型訓(xùn)練中的潛在運(yùn)算。benchmark 這些運(yùn)算有助于提高硬件供應(yīng)商的 意識,也有助于軟件開發(fā)者了解深度學(xué)習(xí)訓(xùn)練的瓶頸。

1.2 方法論

      DeepBench 包括一系列的基礎(chǔ)操作(稠密矩陣相乘、卷積和通信)以及一些循環(huán)層類型。在開源的代碼中有一個(gè) Excel 表格描述了所有的大小。

      前向和后向的運(yùn)算都會被測試。該基準(zhǔn)的第一代版本將注重在 32 位浮點(diǎn)算法中的訓(xùn)練表現(xiàn)。未來的版本可能擴(kuò)展到注重推理工作負(fù)載(inference workloads)和更低精度的算法。

      即使存在更快的獨(dú)立庫或公開了更快的結(jié)果,我們也將使用供應(yīng)商提供的庫。大部分用戶將默認(rèn)使用供應(yīng)商提供的庫,而且這種庫更代表用戶的體驗(yàn)。

1.3. Entry

      我們正在釋放在 4 個(gè)硬件平臺上的結(jié)果:英偉達(dá)的 TitanX、M40、TitanX Pacal 和英特爾的 Knights Landing。硬件供應(yīng)商或獨(dú)立用戶可運(yùn)行大致的基準(zhǔn),并將結(jié)果輸入到表格中。

2. 運(yùn)算的類型

2.1 稠密矩陣相乘

      稠密矩陣相乘存在于大部分深度神經(jīng)網(wǎng)絡(luò)中。它們被用于執(zhí)行全連接層和 vanilla RNN,以及為其他類型的循環(huán)層建立基石。有時(shí)它們也被用作快速執(zhí)行新類層(在這里面自定義的代碼不存在)的方式。

      當(dāng)執(zhí)行 GEMM 運(yùn)算 A * B = C 時(shí),A 和 B 中的一個(gè)或兩個(gè)都能被隨意的換位。描述一個(gè)矩陣問題的常用術(shù)語是 triple(M,N,K), 該術(shù)語描述了矩陣的大小。

2.2 卷積

      卷積構(gòu)成了網(wǎng)絡(luò)中在圖像和視頻操作上的絕大多數(shù)的浮點(diǎn)計(jì)算,也構(gòu)成了語音和自然語言模型網(wǎng)絡(luò)中的主要部分,從模型表現(xiàn)角度來看,它可能也是唯一最重要的層。

      卷積有 4 或 5 維的輸入和輸出,為這些維提供了大量可能的排序。在改基準(zhǔn)的第一代版本,我們只考慮了在 NCHW format 中的表現(xiàn),即數(shù)據(jù)是在圖像、特征映射、行和列中展示的。

      有很多計(jì)算卷積的技術(shù)對不同大小的過濾器和圖像來說都是很好的選擇,包括:direct approaches、基于矩陣相乘的方法、基于 FFT 的方法以及基于 Winograd 的方法。在該基準(zhǔn)的第一代版本,我們沒考慮不同方法的準(zhǔn)確率,因?yàn)槠毡楣沧R是 32 位浮點(diǎn)計(jì)算對它們每個(gè)方法而言都是足夠準(zhǔn)確的。

2.3 循環(huán)層(recurrent layers)

      循環(huán)層總是由之前的運(yùn)算與一元(unary)或二元(binary)運(yùn)算這樣的簡單計(jì)算結(jié)合而成的——這些簡單運(yùn)算不是計(jì)算密集型的,通常只需占據(jù)總體運(yùn)算時(shí)間的一小部分。然而,在循環(huán)層中,GEMM 和卷積運(yùn)算相對較小,所以這些更小運(yùn)算的成本變得有極大影響。如果開始計(jì)算就有一個(gè)很高的固定成本,那上述內(nèi)容就尤其準(zhǔn)確。也可以為循環(huán)矩陣使用額外的存儲格式,因?yàn)檗D(zhuǎn)換成一個(gè)新的存儲格式的成本可被分?jǐn)偟窖h(huán)計(jì)算的許多步驟上。如果能做到這一點(diǎn),那么從一個(gè)自定格式轉(zhuǎn)換或轉(zhuǎn)換成一個(gè)自定義格式的時(shí)間應(yīng)該被包含在整體時(shí)間之內(nèi)。

       在一個(gè)時(shí)間步驟內(nèi)和跨序列的時(shí)間步驟上,這些因素會導(dǎo)致很多優(yōu)化的可能性,因此測定運(yùn)算的原始性能并不一定能夠代表整個(gè)循環(huán)層的的性能。在這樣的基準(zhǔn)上,我們僅關(guān)注一個(gè)循環(huán)層,即使還存在其它更多的優(yōu)化機(jī)會(如果考慮它們的層疊(stack))。

      輸入的計(jì)算不應(yīng)該被包含在用于循環(huán)層計(jì)算的時(shí)間內(nèi),因?yàn)槠淇梢宰鳛橐粋€(gè)大的乘法計(jì)算,然后被實(shí)際的循環(huán)運(yùn)算所消化。所以在 h_t = g(Wx_t + Uh_t-1) 中,Wx_t 對于所有 t 的計(jì)算時(shí)間不應(yīng)被包含在循環(huán)層的時(shí)間內(nèi)。

      反向計(jì)算應(yīng)該在考慮權(quán)重而非輸入的基礎(chǔ)上計(jì)算更新(update)。所有的循環(huán)工作完成以計(jì)算權(quán)重更新,所以同時(shí)考慮輸入來計(jì)算更新會掩蓋我們想要測定的內(nèi)容。

      vanilla RNN 的非線性應(yīng)該是一個(gè) ReLU。LSTM 的內(nèi)在非線性應(yīng)該是標(biāo)準(zhǔn)運(yùn)算——門(gate)是 S 型函數(shù),激活(activation)是雙曲正切函數(shù)。LSTM 不應(yīng)該有窺視孔連接(peephole connections)。

2.4. All-Reduce

      現(xiàn)在的神經(jīng)網(wǎng)絡(luò)通常在多 GPU 或多系統(tǒng)與 GPU 并行的情況下訓(xùn)練,這主要有兩個(gè)技術(shù)分類:同步和異步。同步技術(shù)依賴于保持參數(shù)和所有模型實(shí)例的同步,它通常要保證在優(yōu)化步驟執(zhí)行前,所有模型實(shí)例有一些梯度的備份。最簡單運(yùn)行這些計(jì)算結(jié)果的 Message Passing Interface (MPI) 被稱為 All-Reduce。有很多可以執(zhí)行 All-Reduce 的方法,我們可以依靠數(shù)字的排列、數(shù)據(jù)的大小和網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)來執(zhí)行。這種基準(zhǔn)測試的方式在執(zhí)行時(shí)是沒有限制的,所以它的結(jié)果是不確定的。異步的方法則非常的不同,在這個(gè)版本的基準(zhǔn)測試中我們不會測試這些方法。

      為了評估 All-Reduce,我們使用了下面的庫和基準(zhǔn):NVIDIA's NCCL Ohio State University (OSU) Benchmarks

      NCCL 庫包括一組標(biāo)準(zhǔn)的通信程序。這個(gè)庫支持在單個(gè)節(jié)點(diǎn)任意數(shù)量的 GPU 運(yùn)行,并且它能在單個(gè)或多個(gè)進(jìn)程中運(yùn)行,但 NCC 程序不支持多節(jié)點(diǎn)下的 All-Reduce。為了能夠在多節(jié)點(diǎn)下評估 All-Reduce,我們使用了 OSU 下的 benchmark。我們在三個(gè)執(zhí)行過程中 (NCCL single process, NCCL MPI, OpenMPI) 報(bào)告了最短的延遲。

Nvidia 8 GPU 系統(tǒng)的拓?fù)浣Y(jié)構(gòu)

       每個(gè)節(jié)點(diǎn)都有兩個(gè) GPU 插槽,而每個(gè)插槽都有一個(gè) PCIe root complex。每個(gè)節(jié)點(diǎn)都有兩個(gè) GPU 插槽,而每個(gè)插槽都有一個(gè) PCIe root complex。每一套插槽都有兩個(gè) PLX 開關(guān),它們通過 16 個(gè) PCIe v3 的 lanes 各自連接到 CPU 插槽中。每個(gè) PLX 插槽有兩個(gè) GPU,所有的 GPU 通過 16 個(gè) PCIe v3 的 lanes 進(jìn)行同時(shí)通信。這兩個(gè) CPU 插槽通過 Intel 的 QPI 連接,而跨界點(diǎn)的互聯(lián)則是通過 InfiniBand FDR。下圖顯示了一個(gè)原理圖的節(jié)點(diǎn),在圖中,所有的設(shè)備均由同一個(gè)虛線框內(nèi)的 PCL root 連接。

       英特爾 Xeon Phi 和 Omni-Path 系統(tǒng)的拓?fù)浣Y(jié)構(gòu)

       MPI_AllReduce 時(shí)間是在英特爾 Xeon Phi 7250 處理器上測定的——在英特爾內(nèi)部的帶有 fat-tree 拓?fù)涞?Intel® Omni-Path Architecture (Intel® OPA) series 100 fabric 結(jié)構(gòu)的 Endeavor 集群上,使用了 Intel MPI 5.1.3.181。

3. 結(jié)果

      在這部分,我們記錄了一些運(yùn)算的表現(xiàn)。下面這些結(jié)果是隨機(jī)挑選的,它們只是為了演示幾個(gè)應(yīng)用的運(yùn)算表現(xiàn)。下面的結(jié)果僅包括了特定操作和參數(shù)下最快的處理器的時(shí)間和浮點(diǎn)運(yùn)算速度。完整的結(jié)果可以在庫里查看。

      這些軟件庫(例如 cuDNN 和 OpenMPI)和一些硬件系統(tǒng)的細(xì)節(jié)同樣在 github 的庫里適用。如有問題,請隨時(shí)和我們聯(lián)系。

      一旦更多硬件平臺的結(jié)果被發(fā)現(xiàn)可以適用,它們都會被加到庫里面來。我們也歡迎所有硬件廠商為此貢獻(xiàn)結(jié)果。

3.1. GEMM Results

3.2. Convolution Results

3.3. Recurrent Ops Results

      周期性的操作內(nèi)核僅能在 NVIDIA 的硬件上運(yùn)行,而周期性的標(biāo)準(zhǔn)檢查程序也將很快可以在 Intel 的硬件上運(yùn)行。在今年十月份我們將會得到這些結(jié)果。

3.4. All-Reduce Results

      因?yàn)槲覀儍H僅只有一個(gè) Pascal GPU,所有我們不能在 NVIDIA's TitanX Pascal GPU 運(yùn)行 All-Reduce benchmark。


  • 1.公司登記注冊于2003年1月27日,清遠(yuǎn)市桑達(dá)電子網(wǎng)絡(luò)媒體有限公司
    2.公司2006年起成為清遠(yuǎn)市政府定點(diǎn)協(xié)議供貨商,電子采購供貨商
    3.公司2007年被清遠(yuǎn)市相關(guān)政府部門評為安防行業(yè)狀元
    4.公司2007年起成為長城電腦清遠(yuǎn)如意服務(wù)站(SP368)
    5.公司2007年承建清遠(yuǎn)市橫河路口電子警察工程,開創(chuàng)清遠(yuǎn)電子警察先河。
  • 6.公司2007年起成為IBM合作伙伴、公司2010年底成為金蝶軟件清遠(yuǎn)金牌代理(伙伴編號:30030013)
    7.公司組團(tuán)隊(duì)參加南方都市報(bào)組織的創(chuàng)富評選,獲廣東80強(qiáng)。公司申請多項(xiàng)軟件著作權(quán)、專利權(quán)
    8.2016年起公司成為粵東西北地區(qū)為數(shù)不多的雙軟企業(yè),確立“讓軟件驅(qū)動(dòng)世界,讓智能改變生活!"企業(yè)理想
    9.2016-01-29更名為廣東互動(dòng)電子網(wǎng)絡(luò)媒體有限公司
    10.2021-01-13更名為廣東互動(dòng)電子有限公司
  • 投資合作咨詢熱線電話:0763-3391888 3323588
  • 做一個(gè)負(fù)責(zé)任的百年企業(yè)! 天行健,君子以自強(qiáng)不息;地勢坤,君子以厚德載物;
    為用戶創(chuàng)造價(jià)值! 讓軟件驅(qū)動(dòng)世界; 讓智能改變生活; 超越顧客期望,幫助顧客成功;
    對客戶負(fù)責(zé),對員工負(fù)責(zé),對企業(yè)命運(yùn)負(fù)責(zé)!幫助支持公司的客戶成功;幫助忠誠于公司的員工成功!
  • 聯(lián)系電話:0763-3391888 3323588 3318977
    服務(wù)熱線:18023314222 QQ:529623964
  • 工作QQ:2501204690 商務(wù)QQ: 602045550
    投資及業(yè)務(wù)投訴QQ: 529623964
    微信:小米哥 微信號:qysed3391888
    騰訊微博:桑達(dá)網(wǎng)絡(luò)-基石與起點(diǎn)
  • E-MAIL:222#www.nongkaibiao.com ok3391888#163.com (請用@替換#)
在線客服
  • 系統(tǒng)集成咨詢
    點(diǎn)擊這里給我發(fā)消息
  • 網(wǎng)站\微信\軟件咨詢
    點(diǎn)擊這里給我發(fā)消息
  • 售后服務(wù)
    點(diǎn)擊這里給我發(fā)消息
  • 投資合作
    點(diǎn)擊這里給我發(fā)消息