成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專(zhuān)欄INFORMATION COLUMN

基準(zhǔn)評(píng)測(cè)TensorFlow、Caffe等在三類(lèi)流行深度神經(jīng)網(wǎng)絡(luò)上的表現(xiàn)

canopus4u / 3807人閱讀

摘要:在兩個(gè)平臺(tái)三個(gè)平臺(tái)下,比較這五個(gè)深度學(xué)習(xí)庫(kù)在三類(lèi)流行深度神經(jīng)網(wǎng)絡(luò)上的性能表現(xiàn)。深度學(xué)習(xí)的成功,歸因于許多層人工神經(jīng)元對(duì)輸入數(shù)據(jù)的高表征能力。在年月,官方報(bào)道了一個(gè)基準(zhǔn)性能測(cè)試結(jié)果,針對(duì)一個(gè)層全連接神經(jīng)網(wǎng)絡(luò),與和對(duì)比,速度要快上倍。

在2016年推出深度學(xué)習(xí)工具評(píng)測(cè)的褚曉文團(tuán)隊(duì),趕在猴年最后一天,在arXiv.org上發(fā)布了的評(píng)測(cè)版本。這份評(píng)測(cè)的初版,通過(guò)國(guó)內(nèi)AI自媒體的傳播,在國(guó)內(nèi)業(yè)界影響很大。在學(xué)術(shù)界,其反響更是非同一般。褚曉文教授在1月5日的朋友圈說(shuō)David Patterson發(fā)郵件咨詢(xún)他文章細(xì)節(jié),感慨老人家論文看得仔細(xì)。

David Patterson在體系結(jié)構(gòu)領(lǐng)域的名聲如雷貫耳,RISC之父。不熟悉的吃瓜群眾可能留意到1月25日螞蟻金服宣布跟伯克利大學(xué)前身為AmpLab,更名為RISE實(shí)驗(yàn)室合作的新聞。David Patterson就是RISE實(shí)驗(yàn)室的頂梁大佬之一。

褚曉文教授版本的論文對(duì)Caffe、CNTK、MXNet、TensorFlow、Torch進(jìn)行比較評(píng)測(cè)。在兩個(gè)CPU平臺(tái)、三個(gè)GPU平臺(tái)下,比較這五個(gè)深度學(xué)習(xí)庫(kù)在三類(lèi)流行深度神經(jīng)網(wǎng)絡(luò)(FCN、CNN、RNN)上的性能表現(xiàn)。并對(duì)它們?cè)趩螜C(jī)多GPU卡環(huán)境下分布式版本進(jìn)行了比較。相比以前的評(píng)測(cè),的評(píng)測(cè)添加了對(duì)多GPU卡的測(cè)試,把MXNet納入評(píng)比范圍,還測(cè)試了MNIST和Cifar10這兩個(gè)真實(shí)數(shù)據(jù)集。

《基準(zhǔn)評(píng)測(cè)當(dāng)前較先進(jìn)的深度學(xué)習(xí)軟件工具》

?1. 簡(jiǎn)介

在過(guò)去十年中,深度學(xué)習(xí)已成功應(yīng)用到不同領(lǐng)域,包括計(jì)算機(jī)視覺(jué)、語(yǔ)音識(shí)別和自然語(yǔ)言處理等。深度學(xué)習(xí)的成功,歸因于許多層人工神經(jīng)元對(duì)輸入數(shù)據(jù)的高表征能力。而GPU通過(guò)顯著縮短訓(xùn)練時(shí)間,在深度學(xué)習(xí)的成功中扮演著重要的角色。為了提高開(kāi)發(fā)深度學(xué)習(xí)方法的效率,有很多開(kāi)源的深度學(xué)習(xí)工具包,包括伯克利大學(xué)的Caffe,微軟的CNTK,谷歌的TensorFlow,還有Torch,MXNet,Theano,百度的 PaddlePaddle等。這些工具都支持多核CPU和超多核GPU。

深度學(xué)習(xí)的主要任務(wù)之一,是學(xué)習(xí)網(wǎng)絡(luò)的每一層的權(quán)重,這可以通過(guò)向量或矩陣運(yùn)算來(lái)實(shí)現(xiàn)。TensorFlow使用 Eigen作為矩陣加速庫(kù),而 Caffe、CNTK、MXNet和Torch采用OpenBLAS、Intel MKL 或 cuBLAS 來(lái)加快相關(guān)矩陣運(yùn)算。所有這些工具包都引入了cuDNN,這是一個(gè)為神經(jīng)網(wǎng)絡(luò)計(jì)算進(jìn)行GPU加速的深度學(xué)習(xí)庫(kù)。但是,由于優(yōu)化方法的差異,加上不同類(lèi)型的網(wǎng)絡(luò)或使用不同類(lèi)型的硬件,上述工具包的性能差異很大。

鑒于深度學(xué)習(xí)軟件工具及其底層硬件平臺(tái)的多樣化,終端用戶(hù)難以選擇合適的平臺(tái)來(lái)執(zhí)行深度學(xué)習(xí)任務(wù)。在此論文中,作者用三種最主要的深度神經(jīng)網(wǎng)絡(luò)(全連接神經(jīng)網(wǎng)絡(luò)FCN,卷積神經(jīng)網(wǎng)絡(luò)CNN,以及循環(huán)神經(jīng)網(wǎng)絡(luò)RNN)來(lái)基準(zhǔn)評(píng)測(cè)當(dāng)下較先進(jìn)的基于GPU加速的深度學(xué)習(xí)工具(包括Caffe,CNTK, MXNet, TensorFlow 和Torch),比較它們?cè)贑PU和GPU上的運(yùn)行時(shí)間性能。

幾個(gè)工具的性能評(píng)估既針對(duì)合成數(shù)據(jù),也針對(duì)真實(shí)數(shù)據(jù)。評(píng)測(cè)的硬件平臺(tái)包括兩種CPU(臺(tái)式機(jī)級(jí)別的英特爾i7-3820 CPU,服務(wù)器級(jí)別的英特爾Xeon E5-2630 CPU)和三種Nvidia GPU (GTX 980、GTX 1080、Telsa K80,分別是Maxwell、Pascal和Kepler 架構(gòu))。作者也用兩個(gè)Telsa K80卡(總共4個(gè)GK210 GPU)來(lái)評(píng)估多GPU卡并行的性能。每種神經(jīng)網(wǎng)絡(luò)類(lèi)型均選擇了一個(gè)小型網(wǎng)絡(luò)和大型網(wǎng)絡(luò)。

該評(píng)測(cè)的主要發(fā)現(xiàn)可概括如下:

總體上,多核CPU的性能并無(wú)很好的可擴(kuò)展性。在很多實(shí)驗(yàn)結(jié)果中,使用16核CPU的性能僅比使用4核或8核稍好。TensorFlow在CPU環(huán)境有相對(duì)較好的可擴(kuò)展性。

僅用一塊GPU卡的話,F(xiàn)CN上Caffe、CNTK和Torch比MXNet和TensorFlow表現(xiàn)更好;CNN上MXNet表現(xiàn)出色,尤其是在大型網(wǎng)絡(luò)時(shí);而Caffe和CNTK在小型CNN上同樣表現(xiàn)不俗;對(duì)于帶LSTM的RNN,CNTK速度最快,比其他工具好上5到10倍。

通過(guò)將訓(xùn)練數(shù)據(jù)并行化,這些支持多GPU卡的深度學(xué)習(xí)工具,都有可觀的吞吐量提升,同時(shí)收斂速度也提高了。多GPU卡環(huán)境下,CNTK平臺(tái)在FCN和AlexNet上的可擴(kuò)展性更好,而MXNet和Torch在CNN上相當(dāng)出色。

比起多核CPU,GPU平臺(tái)效率更高。所有的工具都能通過(guò)使用GPU達(dá)到顯著的加速。

在三個(gè)GPU平臺(tái)中,GTX1080由于其計(jì)算能力較高,在大多數(shù)實(shí)驗(yàn)結(jié)果中性能最出色。

某種程度上而言,性能也受配置文件的影響。例如,CNTK允許用戶(hù)調(diào)整系統(tǒng)配置文件,在運(yùn)算效率和GPU內(nèi)存間取舍,而MXNet則能讓用戶(hù)對(duì)cuDNN庫(kù)的自動(dòng)設(shè)置進(jìn)行調(diào)整。

?

2. 背景及相關(guān)知識(shí)

隨著深度學(xué)習(xí)技術(shù)的快速發(fā)展,人們針對(duì)不同的應(yīng)用場(chǎng)合開(kāi)發(fā)出各類(lèi)深度神經(jīng)網(wǎng)絡(luò),包括全連接神經(jīng)網(wǎng)絡(luò)(FCN)、卷積神經(jīng)網(wǎng)絡(luò)(CNN)、循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)、局限型波茲曼機(jī)(RBM)。此論文著重分析三種神經(jīng)網(wǎng)絡(luò)(FCN、CNN和RNN)的運(yùn)行性能(或時(shí)間速度)及收斂速度。

FCN的歷史可追溯到上世紀(jì)80年代,反向傳播算法(backpropagation)發(fā)明之時(shí)。而CNN和RNN,一直以來(lái)分別在圖像識(shí)別和自然語(yǔ)言處理應(yīng)用上展現(xiàn)出優(yōu)異的效果。

FCN是一個(gè)前向神經(jīng)網(wǎng)絡(luò),由Yann LeCun等人在1989年成功應(yīng)用于郵編識(shí)別。為了減少每一層的參數(shù)數(shù)量,CNN通過(guò)使用一組核(kernel),建立了一個(gè)卷積層,每個(gè)核的參數(shù)在整個(gè)域(例如:一個(gè)彩色圖像的通道)共享。CNN能減輕全連接層容易導(dǎo)致需要學(xué)習(xí)大量參數(shù)的問(wèn)題。從LeNet架構(gòu)開(kāi)始,CNN已經(jīng)實(shí)現(xiàn)很多成果,包括ImageNet分類(lèi)、人臉識(shí)別和目標(biāo)檢測(cè)。

RNN允許網(wǎng)絡(luò)單元的循環(huán)連接。RNN可以將整個(gè)歷史輸入序列跟每個(gè)輸出相連,找到輸入的上下文特性和輸出之間的關(guān)系。有了這個(gè)特性,RNN可以保留之前輸入的信息,類(lèi)似于樣本訓(xùn)練時(shí)的記憶功能。此外,長(zhǎng)短時(shí)記憶(LSTM)通過(guò)適當(dāng)?shù)赜涗浐蛠G棄信息,能解決RNN訓(xùn)練時(shí)梯度消失和爆炸的難題。含LSTM單元的RNN被證實(shí)是處理語(yǔ)音辨識(shí)和自然語(yǔ)言處理任務(wù)最有效的方法之一。

隨著深度學(xué)習(xí)日益成功,誕生了許多受歡迎的開(kāi)源GPU加速工具包。其中,Caffe、CNTK、MXNet、TensorFlow和Torch是最活躍、更受歡迎的例子。

Caffe由伯克利視覺(jué)和學(xué)習(xí)中心(BVLC)開(kāi)發(fā),自2014成為開(kāi)源項(xiàng)目。作者聲稱(chēng)Caffe可以借助NVIDIA K40或Titan GP卡,每天用GPU加速版本處理4000萬(wàn)圖像。結(jié)合cuDNN之后,還可以加速約1.3倍。

CNTK是一個(gè)由微軟研究院開(kāi)發(fā)的工具包,支持大部分流行的神經(jīng)網(wǎng)絡(luò)。在2015年2月,官方報(bào)道了一個(gè)基準(zhǔn)性能測(cè)試結(jié)果,針對(duì)一個(gè)4層全連接神經(jīng)網(wǎng)絡(luò),CNTK與Caffe、TensorFlow、Theano和Torch對(duì)比,速度要快上1.5倍。

MXNet是一個(gè)支持多種語(yǔ)言的深度學(xué)習(xí)框架,旨在提供更靈活有效的編程接口,以提升生產(chǎn)效率。

TensorFlow由谷歌開(kāi)發(fā),它使用數(shù)據(jù)流圖集成了深度學(xué)習(xí)框架中最常見(jiàn)的單元。它支持許多的網(wǎng)絡(luò)如CNN,以及帶不同設(shè)置的RNN。TensorFlow是為超凡的靈活性、輕便性和高效率而設(shè)計(jì)的。

Torch是一個(gè)科學(xué)計(jì)算框架,它為機(jī)器學(xué)習(xí)里更為有用的元件——如多維張量——提供數(shù)據(jù)結(jié)構(gòu)。

(a) 全連接神經(jīng)網(wǎng)絡(luò) ?(b) 卷積神經(jīng)網(wǎng)絡(luò)(AlexNet) ?(c) 循環(huán)神經(jīng)網(wǎng)絡(luò)

圖1:深度學(xué)習(xí)模型的例子

為了加快深度神經(jīng)網(wǎng)絡(luò)的訓(xùn)練速度,有的使用CPU SSE技術(shù)和浮點(diǎn)SIMD模型來(lái)實(shí)現(xiàn)深度學(xué)習(xí)算法,相比浮點(diǎn)優(yōu)化的版本能實(shí)現(xiàn)3倍加速。Andre Viebke等人利用多線程及SIMD并行化在英特爾Xeon Phi處理器上加速CNN。針對(duì)多GPU卡的并行化,Jeffrey Dean等人提出了一種大規(guī)模分布式深度網(wǎng)絡(luò),開(kāi)發(fā)了兩種算法(Downpour SGD和Sandblaster L-BFGS),可以在混有GPU機(jī)器的集群上運(yùn)行。

加快訓(xùn)練方法的另一種方式是減少要學(xué)習(xí)的參數(shù)數(shù)量,Song Han等人使用修剪冗余連接的方法,在不失去網(wǎng)絡(luò)表征能力下減少參數(shù),這可以減少670萬(wàn)到6100萬(wàn)的AlexNet參數(shù)。Bahrampour等人也做了類(lèi)似的性能評(píng)測(cè)工作,但他們僅用了一個(gè)GPU架構(gòu)(NVIDIA Maxwell Titan X)和舊版的軟件(cuDNN v2, v3)。

本文作者早前工作也探討了單個(gè)GPU上跑舊版軟件的基準(zhǔn)測(cè)試結(jié)果。此文針對(duì)三版主要的GPU架構(gòu)和一些的網(wǎng)絡(luò)(如:ResNet-50)和軟件(如:cuDNN v5)進(jìn)行基準(zhǔn)評(píng)測(cè),并深入到工具包代碼分析性能。此外,本文也比較了單臺(tái)機(jī)器里多個(gè)GPU卡的性能。

因?yàn)閱蝹€(gè)GPU卡內(nèi)存相對(duì)較少,限制了神經(jīng)網(wǎng)絡(luò)規(guī)模,訓(xùn)練的可伸縮性對(duì)于深度學(xué)習(xí)框架至關(guān)重要。在如今的深度學(xué)習(xí)工具中,支持多GPU卡成為了一個(gè)標(biāo)準(zhǔn)功能。為了利用多個(gè)GPU卡,分布式同步隨機(jī)梯度下降法(SDG)使用很廣泛,實(shí)現(xiàn)了很好的擴(kuò)展性能。

在可擴(kuò)展性方面,本文作者著重評(píng)估處理時(shí)間,以及數(shù)據(jù)同步方法的收斂速度。在數(shù)據(jù)并行模型里,針對(duì)N個(gè)worker,把有M個(gè)樣本的一個(gè)mini-batch分成N份,每份M/N個(gè)樣本,每個(gè)worker用相同的模型獨(dú)立向前向后處理所分配的樣本。當(dāng)所有worker完成后,把梯度聚合,更新模型。

實(shí)際上,不同工具實(shí)現(xiàn)同步SGD算法的方式各有不同。

Caffe:采用刪減樹(shù)策略減少GPU間的數(shù)據(jù)通信。例如,假設(shè)有4個(gè)標(biāo)記為0,1,2,3的GPU。首先,GPU 0和GPU 1交換梯度,GPU 2和GPU 3交換梯度,然后GPU 0和GPU 2交換梯度。之后,GPU 0會(huì)計(jì)算更新的模型,再將更新的模型傳輸?shù)紾PU 2中;接著GPU 0把模型傳輸?shù)紾PU 1,同時(shí)GPU 2把模型傳輸?shù)紾PU 3。

CNTK:使用MPI作為GPU之間的數(shù)據(jù)通信方法。CNTK支持4種類(lèi)型的并行SGD算法(即:DataParallelSGD,BlockMomentumSGD,ModelAveragingSGD,DataParallelASGD)。對(duì)于本文關(guān)心的 data parallel SGD,CNTK把每個(gè)minibatch分?jǐn)偟絅個(gè)worker上。每次mini-batch后將梯度進(jìn)行交換和聚合。

MXNet:同樣將mini-batch樣本分配到所有GPU中,每個(gè)GPU向前后執(zhí)行一批規(guī)模為M/N的任務(wù),然后在更新模型之前,將梯度匯總。

TensorFlow:在每個(gè)GPU上放置一份復(fù)制模型。也將mini-batch分到所有GPU。

Torch:其數(shù)據(jù)并行機(jī)制類(lèi)似于MXNet,把梯度聚合的操作放在GPU端,減少了PCI-e卡槽的數(shù)據(jù)傳輸。

3. 評(píng)測(cè)方法

處理時(shí)間(Processing time)及收斂速度(Convergence rate)是用戶(hù)訓(xùn)練深度學(xué)習(xí)模型時(shí)最看重的兩個(gè)因素。因此該實(shí)驗(yàn)主要通過(guò)測(cè)量這兩個(gè)指標(biāo)以評(píng)估這幾種深度學(xué)習(xí)工具。

?

一方面,評(píng)估處理時(shí)長(zhǎng)有一種高效且主流的方法,就是測(cè)出對(duì)一個(gè)mini-batch所輸入數(shù)據(jù)一次迭代的時(shí)長(zhǎng)。在實(shí)際操作中,經(jīng)歷多輪迭代或收斂以后,深度學(xué)習(xí)的訓(xùn)練過(guò)程會(huì)終止。因此,對(duì)于每種神經(jīng)網(wǎng)絡(luò),該實(shí)驗(yàn)使用不同大小的mini-batch來(lái)評(píng)測(cè)各個(gè)深度學(xué)習(xí)軟件工具。作者針對(duì)每種大小的mini-batch都多次迭代,最后評(píng)估其平均運(yùn)行速度。另一方面,由于數(shù)據(jù)并行化可能影響收斂速度,該評(píng)測(cè)還在多GPU卡的情況下比較了收斂速度。

?

評(píng)測(cè)使用合成數(shù)據(jù)集和真實(shí)數(shù)據(jù)集。合成數(shù)據(jù)集主要用于評(píng)估運(yùn)行時(shí)間,真實(shí)數(shù)據(jù)集用于測(cè)量收斂速度。每種工具的時(shí)間測(cè)量方法如下:

?

Caffe:使用“caffe train”命令訓(xùn)練所指定網(wǎng)絡(luò),隨之計(jì)算兩次連續(xù)迭代過(guò)程間的平均時(shí)間差。

CNTK:與Caffe類(lèi)似,但排除包含磁盤(pán)I / O時(shí)間的較早的epoch。

MXNet:使用內(nèi)部定時(shí)功能,輸出每個(gè)epoch和迭代的具體時(shí)間。

TensorFlow:在源腳本里使用計(jì)時(shí)功能,計(jì)算平均迭代時(shí)間。

Torch:和TensorFlow一樣。

?

這幾種工具均提供非常靈活的編程API或用于性能優(yōu)化的配置選項(xiàng)。例如CNTK中可以在配置文件中指定“maxTempMemSizeIn-SamplesForCNN”選項(xiàng),以控制CNN使用的臨時(shí)內(nèi)存的大小,雖然可能導(dǎo)致效率略微降低,但是內(nèi)存需求更小了。

?

MXNet、TensorFlow和Torch也有豐富的API,在用于計(jì)算任務(wù)時(shí)供用戶(hù)選擇。換句話說(shuō),可能存在不同API以執(zhí)行相同的操作。因此本評(píng)測(cè)結(jié)果僅僅是基于作者對(duì)這些工具用法的理解,不保證是較佳配置下的結(jié)果。

?

評(píng)測(cè)中的深度學(xué)習(xí)軟件版本和相關(guān)庫(kù)如表1所示。

表1:用于評(píng)測(cè)的深度學(xué)習(xí)軟件

神經(jīng)網(wǎng)絡(luò)和數(shù)據(jù)集:對(duì)于合成數(shù)據(jù)的測(cè)試,實(shí)驗(yàn)采用具有約5500萬(wàn)個(gè)參數(shù)的大型神經(jīng)網(wǎng)絡(luò)(FCN-S)來(lái)評(píng)估FCN的性能。同時(shí)選擇ImageNet所選的AlexNet和ResNet-50作為CNN的代表。

?

對(duì)于真實(shí)數(shù)據(jù)的測(cè)試,為MNIST數(shù)據(jù)集構(gòu)建的FCN(FCN-R)較??;針對(duì)Cifar10數(shù)據(jù)集則使用名為AlexNet-R和ResNet-56的AlexNet架構(gòu)。對(duì)于RNN,考慮到主要計(jì)算復(fù)雜度與輸入序列長(zhǎng)度有關(guān),作者選擇2個(gè)LSTM層進(jìn)行測(cè)試,輸入長(zhǎng)度為32。每個(gè)網(wǎng)絡(luò)的詳細(xì)配置信息如表2和表3所示。

表2:合成數(shù)據(jù)的神經(jīng)網(wǎng)絡(luò)設(shè)置。注意:FCN-S有4層隱藏層,每層2048個(gè)節(jié)點(diǎn);并且AlexNet-S中排除了batch normalization操作和dropout操作;為了測(cè)試CNN,輸入數(shù)據(jù)是來(lái)自ImageNet數(shù)據(jù)庫(kù)的彩色圖像(維度224×224×3),輸出維度是ImageNet數(shù)據(jù)的類(lèi)別數(shù)量。

表3:真實(shí)數(shù)據(jù)的神經(jīng)網(wǎng)絡(luò)設(shè)置。注:FCN-R有3個(gè)隱藏層,節(jié)點(diǎn)數(shù)分別為2048、4096和1024。AlexNet-R的架構(gòu)與原始出處里Cifar10所用的AlexNet相同,但不包括本地響應(yīng)規(guī)范化(LRN)操作(CNTK不支持)。對(duì)于ResNet-56,作者沿用了最原始文件里的架構(gòu)。

硬件平臺(tái):評(píng)測(cè)使用兩種類(lèi)型的多核CPU,其中包括一個(gè)4核臺(tái)式機(jī)級(jí)CPU(Intel i7-3820 CPU @ 3.60GHz)和兩個(gè)8核服務(wù)器級(jí)CPU(Intel XeonCPU E5-2630 v3 @ 2.40GHz),測(cè)試不同線程數(shù)下各個(gè)工具的性能。另外還用三代不同的GPU卡,分別是采用Maxwell架構(gòu)的NVIDIA GTX 980 @ 1127MHz,采用Pascal架構(gòu)的GTX 1080 @1607MHz,以及采用Kepler架構(gòu)的Telsa K80 @ 562MHz。

?

評(píng)測(cè)只使用K80 GPU兩個(gè)GK210芯片中的一個(gè)進(jìn)行單GPU比較,同時(shí),為了使得結(jié)果可重復(fù),已禁用GPU自動(dòng)超頻功能。為了避免神經(jīng)網(wǎng)絡(luò)大小對(duì)主機(jī)內(nèi)存的依賴(lài),兩臺(tái)測(cè)試機(jī)分別配備64GB內(nèi)存和128GB內(nèi)存。硬件配置的詳細(xì)信息如表4所示。

表4:本評(píng)測(cè)的硬件設(shè)置。注:K80卡上有2個(gè)GK210 GPU,但為了比較測(cè)試單GPU性能僅使用一個(gè)GPU。

數(shù)據(jù)并行化評(píng)測(cè)則在兩個(gè)Tesla K80卡上進(jìn)行,這樣共有4個(gè)GK210 GPU。對(duì)于多GPU卡實(shí)驗(yàn),系統(tǒng)配置如表5所示。

表5:數(shù)據(jù)并行性的評(píng)測(cè)硬件設(shè)置。注:K80卡上有兩個(gè)GK210 GPU,因此進(jìn)行雙GPU并行評(píng)測(cè)時(shí)使用一個(gè)K80卡,進(jìn)行四GPU并行評(píng)測(cè)時(shí)使用兩個(gè)K80卡。

各神經(jīng)網(wǎng)絡(luò),軟件工具和硬件的組合結(jié)果如表6所示。

表6:各神經(jīng)網(wǎng)絡(luò)、軟件工具和硬件的組合結(jié)果

4. 評(píng)測(cè)結(jié)果

評(píng)測(cè)結(jié)果分別在三個(gè)子部分呈現(xiàn):CPU結(jié)果,單GPU結(jié)果和多GPU結(jié)果。對(duì)于CPU結(jié)果和單GPU結(jié)果,主要關(guān)注運(yùn)行時(shí)長(zhǎng);對(duì)于多GPU還提出了關(guān)于收斂速度的比較。不同平臺(tái)上的主要評(píng)測(cè)結(jié)果參見(jiàn)表7及表8。

表7:評(píng)測(cè)對(duì)比結(jié)果(每個(gè)mini-batch的運(yùn)算時(shí)間,單位:秒)。注:FCN-S,AlexNet-S,ResNet-50,F(xiàn)CN-R,AlexNet-R,ResNet-56和LSTM的mini-batch大小分別為64,16,16,1024,1024,128,128。

表8:?jiǎn)蜧PU與多GPU間的比對(duì)結(jié)果(每個(gè)mini-batch的運(yùn)算時(shí)間,單位:秒)。注:FCN-R,AlexNet-R和ResNet-56的mini-batch大小分別為4096,1024和128。

4.1. CPU評(píng)測(cè)結(jié)果

具體參見(jiàn)表7及原文。

4.2. 單GPU卡評(píng)測(cè)結(jié)果

在單GPU的比較上,該評(píng)測(cè)還展示了不同mini-batch大小的結(jié)果,以展示mini-batch大小對(duì)性能的影響。(譯者注:原論文結(jié)論中詳細(xì)描述了不同mini-batch大小下各學(xué)習(xí)工具的性能,具體見(jiàn)圖表)

?

4.2.1. 合成數(shù)據(jù)(Synthetic Data)

FCN-S:Caffe較佳,其次是CNTK和Torch,最后是TensorFlow及MXNet。

AlexNet-S:MXNet性能較佳,其次是Torch。

ResNet-50:MXNet性能遠(yuǎn)遠(yuǎn)高于其他工具,尤其是mini-batch大小比較大的時(shí)候。其次是CNTK和TensorFlow,Caffe相對(duì)較差。

?

4.2.2. 真實(shí)數(shù)據(jù)(Real Data)

FCN-R:Torch較佳,Caffe、CNTK及MXNet三個(gè)工具次之,TensorFlow最差。

AlexNet-R:K80 平臺(tái)上CNTK表現(xiàn)較佳,Caffe和Torch次之,然后是MXNet。TensorFlow處理時(shí)間最長(zhǎng)。

ResNet-56:MXNet最優(yōu),其次是Caffe、CNTK 和Torch,這三個(gè)接近。最后是TensorFlow。

LSTM:CNTK全面超越其他工具。

?

4.3.多GPU卡評(píng)測(cè)結(jié)果

FCN-R:?jiǎn)蜧PU的情況下,Caffe、CNTK及MXNet接近,TensorFlow和Torch稍差。GPU數(shù)量翻番時(shí),CNTK和MXNet的可擴(kuò)展性較佳,均實(shí)現(xiàn)了約35%的提速,caffe實(shí)現(xiàn)了大約28%的提速,而Torch和TensorFlow只有約10%。GPU數(shù)量變?yōu)?個(gè)時(shí),TensorFlow和Torch沒(méi)有實(shí)現(xiàn)進(jìn)一步的提速。

而收斂速度往往隨著GPU數(shù)量的增加而增快。單個(gè)GPU時(shí),Torch的訓(xùn)練融合速度最快,其次是Caffe、CNTK和MXNet,TensorFlow最慢。當(dāng)GPU的數(shù)量增加到4時(shí),CNTK和MXNet的收斂速度率接近Torch,而Caffe和TensorFlow收斂相對(duì)較慢。

AlexNet-R:?jiǎn)蝹€(gè)GPU時(shí),CNTK,MXNet和Torch性能接近,且比Caffe和TensorFlow快得多。隨著GPU數(shù)量的增長(zhǎng),全部工具均實(shí)現(xiàn)高達(dá)40%的提速,而TensorFlow只有30%。

至于收斂速度,MXNet和Torch最快,CNTK稍慢,但也比Caffe和TensorFlow快得多。

ResNet-56:?jiǎn)蜧PU時(shí),Torch用時(shí)最少。多個(gè)GPU時(shí),MXNet往往更高效。

至于收斂速度,整體來(lái)說(shuō)MXNet和Torch比其他三個(gè)工具更好,而Caffe最慢。

5. 討論

對(duì)于CPU并行,建議線程數(shù)不大于物理CPU內(nèi)核數(shù)。因?yàn)樵谟?jì)算過(guò)程中需要額外的CPU資源來(lái)進(jìn)行線程調(diào)度,如果CPU資源全部用于計(jì)算則難以實(shí)現(xiàn)高性能。然而,借助于Eigen的BLAS庫(kù)(BLAS library),因其為了SIMD指令優(yōu)化過(guò),因此隨著CPU內(nèi)核數(shù)的增長(zhǎng),TensorFlow的性能能更好。

?

在FCN神經(jīng)網(wǎng)絡(luò)上,如果只用一個(gè)GPU卡,那么Caffe、CNTK和Torch的性能要比MXNet和TensorFlow略好。

?

通常來(lái)說(shuō),訓(xùn)練一個(gè)網(wǎng)絡(luò)包含兩階計(jì)算(即前饋和后向傳播)。在前饋階段,矩陣乘法是最耗時(shí)的操作,評(píng)測(cè)的四個(gè)工具全部采用cuBLAS API:cublasSgemm。如果想要把矩陣A乘以矩陣B的轉(zhuǎn)置,可以將cublasSgemm API的第二個(gè)參數(shù)設(shè)置為CUBLAS_OP_T,即應(yīng)用in-place矩陣轉(zhuǎn)置。但這就導(dǎo)致與沒(méi)有轉(zhuǎn)置的矩陣乘法相比,性能減慢3倍(例如,C = A×B^T,其中 A∈R^1024×26752 ,B∈R^2048×26752)。這是因?yàn)閕n-place矩陣轉(zhuǎn)置非常耗時(shí)。CNTK和TensorFlow構(gòu)造自己的數(shù)據(jù)結(jié)構(gòu),從而用的是cublasSgemm的CUBLAS_OP_N,而Caffe和Torch使用CUBLAS_OP_T。

?

在后向傳播的階段,則需要使用矩陣乘法來(lái)計(jì)算梯度,并使用element-wise矩陣運(yùn)算來(lái)計(jì)算參數(shù)。如果通過(guò)調(diào)用cuBLAS來(lái)將A乘以B的轉(zhuǎn)置,效率低時(shí),可先轉(zhuǎn)置B(如果GPU具有足夠的內(nèi)存,則采用out-place)再應(yīng)用矩陣乘法可能會(huì)效果更好。

?

此外,cublasSgemm API完全支持后向傳播,因?yàn)樗诰仃嚦朔ê筇砑恿艘粋€(gè)縮放的矩陣。因此,如果將梯度計(jì)算和更新操作合并到單個(gè)GPU核中,則可以提高計(jì)算效率。為了優(yōu)化FCN的效率,還可以在不轉(zhuǎn)置的情況下使用cublasSgemm API,并同時(shí)使用cublasSgemm來(lái)計(jì)算梯度及執(zhí)行更新操作。

?

在CNN上,所有工具包均使用cuDNN庫(kù)進(jìn)行卷積運(yùn)算。盡管API調(diào)用相同,但是參數(shù)可能導(dǎo)致GPU內(nèi)核不同。相關(guān)研究發(fā)現(xiàn),在許多情況下,與直接執(zhí)行卷積運(yùn)算相比,F(xiàn)FT是更合適的解決方案。在矩陣的FFT之后,卷積計(jì)算可以被轉(zhuǎn)換為更快速的內(nèi)積運(yùn)算(inner product operation)。

?

對(duì)于使用多個(gè)GPU卡的數(shù)據(jù)并行性,運(yùn)算的擴(kuò)展性受到梯度聚合處理的極大影響,因?yàn)槠湫枰ㄟ^(guò)PCI-e傳輸數(shù)據(jù)。在本評(píng)測(cè)的測(cè)試平臺(tái)中,Telsa K80的PCIe 3.0的較高吞吐量約為8GB/秒,這意味著在FCN-R情況下需要0.0256秒的時(shí)間將GPU的梯度轉(zhuǎn)移到CPU。但是一個(gè)mini-batch的計(jì)算時(shí)間只有大約100毫秒。因此,減少GPU和CPU之間傳輸數(shù)據(jù)的成本將變得極為關(guān)鍵。

?

不同軟件工具的性能表現(xiàn)各異,且與并行設(shè)計(jì)的策略相關(guān)。在Caffe中,梯度更新在GPU端執(zhí)行,但它使用了樹(shù)減少策略(tree reduction strategy)。如果說(shuō)有4個(gè)GPU用于訓(xùn)練,則兩對(duì)GPU將首先各自交換梯度(即GPU 0與GPU 1交換,GPU 2與GPU 3交換),然后GPU 0與GPU 2交換。之后,GPU 0負(fù)責(zé)計(jì)算更新的模型,再將模型傳送到GPU 1,然后0將模型傳送到1,2傳送模型到3,這是一個(gè)并行過(guò)程。

因此,Caffe的可擴(kuò)展性(Scalability)的性能在很大程度上取決于系統(tǒng)的PCI-e拓?fù)?。CNTK的作者在框架中添加了1比特的隨機(jī)梯度下降(1-bit stochastic gradient descent),這意味著PCI-e交換梯度的時(shí)間可大大縮短。因此,即使使用大型網(wǎng)絡(luò),CNTK的可伸縮性也依舊表現(xiàn)良好。

?

在這類(lèi)網(wǎng)絡(luò)上,MXNet也表現(xiàn)出良好的可擴(kuò)展性,因?yàn)樗窃贕PU上進(jìn)行梯度聚合,這不僅減少了經(jīng)常傳輸梯度數(shù)據(jù)的PCI-e時(shí)間,并能利用GPU資源來(lái)進(jìn)行并行計(jì)算。

?

然而,TensorFlow在CPU端進(jìn)行梯度聚合和模型更新,這不僅需要很多時(shí)間通過(guò)PCI-e傳輸梯度,而且還使用單個(gè)CPU更新串行算法中的模型。因此TensorFlow的伸縮性不如其他工具。

?

對(duì)于多個(gè)GPU,Torch在擴(kuò)展性上與TensorFlow類(lèi)似。其梯度聚合和更新都在CPU端執(zhí)行,但Torch使用了并行算法來(lái)利用所有空閑的CPU資源。因此,其伸縮性要略好于TensorFlow,但仍然比不上Caffe、CNTK和MXNet。

?

總的來(lái)說(shuō),因?yàn)橛辛薌PU計(jì)算資源,上述所有深度學(xué)習(xí)工具的速度與CPU的版本相比,都有了極大提高。這并不出奇,因?yàn)樵贕PU上的矩陣乘法以及FFT的性能要明顯優(yōu)于CPU。

未來(lái)作者還將評(píng)測(cè)更多的深度學(xué)習(xí)工具(比如百度的Paddle),也會(huì)把 AMD的GPU等也加入評(píng)測(cè)。并在高性能GPU集群上進(jìn)行評(píng)測(cè)。

歡迎加入本站公開(kāi)興趣群

商業(yè)智能與數(shù)據(jù)分析群

興趣范圍包括各種讓數(shù)據(jù)產(chǎn)生價(jià)值的辦法,實(shí)際應(yīng)用案例分享與討論,分析工具,ETL工具,數(shù)據(jù)倉(cāng)庫(kù),數(shù)據(jù)挖掘工具,報(bào)表系統(tǒng)等全方位知識(shí)

QQ群:81035754

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/4441.html

相關(guān)文章

  • ArXiv最受歡迎開(kāi)源深度學(xué)習(xí)框架榜單:TensorFlow第一

    摘要:但年月,宣布將在年終止的開(kāi)發(fā)和維護(hù)。性能并非最優(yōu),為何如此受歡迎粉絲團(tuán)在過(guò)去的幾年里,出現(xiàn)了不同的開(kāi)源深度學(xué)習(xí)框架,就屬于其中典型,由谷歌開(kāi)發(fā)和支持,自然引發(fā)了很大的關(guān)注。 Keras作者Fran?ois Chollet剛剛在Twitter貼出一張圖片,是近三個(gè)月來(lái)arXiv上提到的深度學(xué)習(xí)開(kāi)源框架排行:TensorFlow排名第一,這個(gè)或許并不出意外,Keras排名第二,隨后是Caffe、...

    trilever 評(píng)論0 收藏0
  • MATLAB更新R2017b:轉(zhuǎn)換CUDA代碼極大提升推斷速度

    摘要:陳建平說(shuō)訓(xùn)練是十分重要的,尤其是對(duì)關(guān)注算法本身的研究者。代碼生成其實(shí)在中也十分簡(jiǎn)單,陳建平不僅利用車(chē)道線識(shí)別模型向我們演示了如何使用生成高效的代碼,同時(shí)還展示了在脫離環(huán)境下運(yùn)行代碼進(jìn)行推斷的效果。 近日,Mathworks 推出了包含 MATLAB 和 Simulink 產(chǎn)品系列的 Release 2017b(R2017b),該版本大大加強(qiáng)了 MATLAB 對(duì)深度學(xué)習(xí)的支持,并簡(jiǎn)化了工程師、...

    Corwien 評(píng)論0 收藏0
  • 四大深度學(xué)習(xí)框架+四類(lèi)GPU+七種神經(jīng)網(wǎng)絡(luò):交叉性能評(píng)測(cè)

    摘要:最近,等人對(duì)于英偉達(dá)的四種在四種不同深度學(xué)習(xí)框架下的性能進(jìn)行了評(píng)測(cè)。本次評(píng)測(cè)共使用了種用于圖像識(shí)別的深度學(xué)習(xí)模型。深度學(xué)習(xí)框架和不同網(wǎng)絡(luò)之間的對(duì)比我們使用七種不同框架對(duì)四種不同進(jìn)行,包括推理正向和訓(xùn)練正向和反向。一直是深度學(xué)習(xí)方面最暢銷(xiāo)的。 最近,Pedro Gusm?o 等人對(duì)于英偉達(dá)的四種 GPU 在四種不同深度學(xué)習(xí)框架下的性能進(jìn)行了評(píng)測(cè)。本次評(píng)測(cè)共使用了 7 種用于圖像識(shí)別的深度學(xué)習(xí)模...

    jk_v1 評(píng)論0 收藏0
  • 23種深度學(xué)習(xí)庫(kù)排行榜:TensorFlow最活躍、Keras最流行

    摘要:我們對(duì)種用于數(shù)據(jù)科學(xué)的開(kāi)源深度學(xué)習(xí)庫(kù)作了排名。于年月發(fā)布了第名,已經(jīng)躋身于深度學(xué)習(xí)庫(kù)的上半部分。是最流行的深度學(xué)習(xí)前端第位是排名較高的非框架庫(kù)。頗受對(duì)數(shù)據(jù)集使用深度學(xué)習(xí)的數(shù)據(jù)科學(xué)家的青睞。深度學(xué)習(xí)庫(kù)的完整列表來(lái)自幾個(gè)來(lái)源。 我們對(duì)23種用于數(shù)據(jù)科學(xué)的開(kāi)源深度學(xué)習(xí)庫(kù)作了排名。這番排名基于權(quán)重一樣大小的三個(gè)指標(biāo):Github上的活動(dòng)、Stack Overflow上的活動(dòng)以及谷歌搜索結(jié)果。排名結(jié)果...

    princekin 評(píng)論0 收藏0
  • 深度學(xué)習(xí)三大硬件+四大學(xué)習(xí)庫(kù)基準(zhǔn)測(cè)試對(duì)比,指標(biāo)全面呈現(xiàn)

    摘要:基準(zhǔn)測(cè)試我們比較了和三款,使用的深度學(xué)習(xí)庫(kù)是和,深度學(xué)習(xí)網(wǎng)絡(luò)是和。深度學(xué)習(xí)庫(kù)基準(zhǔn)測(cè)試同樣,所有基準(zhǔn)測(cè)試都使用位系統(tǒng),每個(gè)結(jié)果是次迭代計(jì)算的平均時(shí)間。 購(gòu)買(mǎi)用于運(yùn)行深度學(xué)習(xí)算法的硬件時(shí),我們常常找不到任何有用的基準(zhǔn),的選擇是買(mǎi)一個(gè)GPU然后用它來(lái)測(cè)試?,F(xiàn)在市面上性能較好的GPU幾乎都來(lái)自英偉達(dá),但其中也有很多選擇:是買(mǎi)一個(gè)新出的TITAN X Pascal還是便宜些的TITAN X Maxwe...

    YacaToy 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<