日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

基準(zhǔn)評測 TensorFlow、Caffe、CNTK、MXNet、Torch 在三類流行深度神經(jīng)網(wǎng)絡(luò)...

 好吃好看分子 2017-01-29

基準(zhǔn)評測 TensorFlow、Caffe、CNTK、MXNet、Torch 在三類流行深度神經(jīng)網(wǎng)絡(luò)上的表現(xiàn)(論文)

新智元推薦

來源:微信公眾號醫(yī)AI (med-ai)

論文作者:Shaohuai Shi, Qiang Wang, Pengfei Xu, Xiaowen Chu

譯者:吳博, Elaine, Melody

AI復(fù)始,萬象更新 !

新智元祝廣大訂戶雞年大吉!

基準(zhǔn)評測 TensorFlow、Caffe、CNTK、MXNet、Torch 在三類流行深度神經(jīng)網(wǎng)絡(luò)上的表現(xiàn)(論文)

新智元啟動新一輪大招聘:COO、執(zhí)行總編、主編、高級編譯、主筆、運營總監(jiān)、客戶經(jīng)理、咨詢總監(jiān)、行政助理等 9 大崗位全面開放。

簡歷投遞:jobs@aiera.com.cn

HR 微信:13552313024

新智元為COO和執(zhí)行總編提供最高超百萬的年薪激勵;為骨干員工提供最完整的培訓(xùn)體系、高于業(yè)界平均水平的工資和獎金。

加盟新智元,與人工智能業(yè)界領(lǐng)袖攜手改變世界。

【新智元導(dǎo)讀】新年伊始,新智元向你推薦香港浸會大學(xué)計算機學(xué)院褚曉文團隊最新論文《基準(zhǔn)評測當(dāng)前最先進的深度學(xué)習(xí)軟件工具》,評測了 Caffe、CNTK、MXNet、TensorFlow、Torch 這五個最受歡迎的DL框架在 FCN、CNN、RNN 上的表現(xiàn)。這是伯克利RISE實驗室大牛、RISC之父 David Patterson 也在關(guān)注的深度學(xué)習(xí)庫評測。論文作者強調(diào)這是一個開源項目,所有配置文件和實驗數(shù)據(jù)均在 http: //www.comp.hkbu.edu.hk/~chxw/dlbench.html 公開,歡迎讀者指正。【進入新智元公眾號,在對話框輸入“0128”下載論文】

基準(zhǔn)評測 TensorFlow、Caffe、CNTK、MXNet、Torch 在三類流行深度神經(jīng)網(wǎng)絡(luò)上的表現(xiàn)(論文)

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

基準(zhǔn)評測 TensorFlow、Caffe、CNTK、MXNet、Torch 在三類流行深度神經(jīng)網(wǎng)絡(luò)上的表現(xiàn)(論文)

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

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

《基準(zhǔn)評測當(dāng)前最先進的深度學(xué)習(xí)軟件工具

基準(zhǔn)評測 TensorFlow、Caffe、CNTK、MXNet、Torch 在三類流行深度神經(jīng)網(wǎng)絡(luò)上的表現(xiàn)(論文)

1. 簡介

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

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

鑒于深度學(xué)習(xí)軟件工具及其底層硬件平臺的多樣化,終端用戶難以選擇合適的平臺來執(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)來基準(zhǔn)評測當(dāng)下最先進的基于GPU加速的深度學(xué)習(xí)工具(包括Caffe,CNTK, MXNet, TensorFlow 和Torch),比較它們在CPU和GPU上的運行時間性能。

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

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

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

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

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

  • 比起多核CPU,GPU平臺效率更高。所有的工具都能通過使用GPU達到顯著的加速。

  • 在三個GPU平臺中,GTX1080由于其計算能力最高,在大多數(shù)實驗結(jié)果中性能最出色。

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

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

隨著深度學(xué)習(xí)技術(shù)的快速發(fā)展,人們針對不同的應(yīng)用場合開發(fā)出各類深度神經(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)、局限型波茲曼機(RBM)。此論文著重分析三種神經(jīng)網(wǎng)絡(luò)(FCN、CNN和RNN)的運行性能(或時間速度)及收斂速度。

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

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

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

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

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

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

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

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

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

基準(zhǔn)評測 TensorFlow、Caffe、CNTK、MXNet、Torch 在三類流行深度神經(jīng)網(wǎng)絡(luò)上的表現(xiàn)(論文)

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

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

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

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

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

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

  • Caffe

  • CNTK

  • MXNet

  • TensorFlow

  • Torch

3. 評測方法

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

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

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

  • Caffe

  • CNTK

  • MXNet

  • TensorFlow

  • Torch

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

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

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

基準(zhǔn)評測 TensorFlow、Caffe、CNTK、MXNet、Torch 在三類流行深度神經(jīng)網(wǎng)絡(luò)上的表現(xiàn)(論文)

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

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

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

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

基準(zhǔn)評測 TensorFlow、Caffe、CNTK、MXNet、Torch 在三類流行深度神經(jīng)網(wǎng)絡(luò)上的表現(xiàn)(論文)

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

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

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

基準(zhǔn)評測 TensorFlow、Caffe、CNTK、MXNet、Torch 在三類流行深度神經(jīng)網(wǎng)絡(luò)上的表現(xiàn)(論文)

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

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

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

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

基準(zhǔn)評測 TensorFlow、Caffe、CNTK、MXNet、Torch 在三類流行深度神經(jīng)網(wǎng)絡(luò)上的表現(xiàn)(論文)

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

4. 評測結(jié)果

評測結(jié)果分別在三個子部分呈現(xiàn):CPU結(jié)果,單GPU結(jié)果和多GPU結(jié)果。對于CPU結(jié)果和單GPU結(jié)果,主要關(guān)注運行時長;對于多GPU還提出了關(guān)于收斂速度的比較。不同平臺上的主要評測結(jié)果參見表7及表8。

基準(zhǔn)評測 TensorFlow、Caffe、CNTK、MXNet、Torch 在三類流行深度神經(jīng)網(wǎng)絡(luò)上的表現(xiàn)(論文)

表7:評測對比結(jié)果(每個mini-batch的運算時間,單位:秒)。注: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。

基準(zhǔn)評測 TensorFlow、Caffe、CNTK、MXNet、Torch 在三類流行深度神經(jīng)網(wǎng)絡(luò)上的表現(xiàn)(論文)

表8:單GPU與多GPU間的比對結(jié)果(每個mini-batch的運算時間,單位:秒)。注:FCN-R,AlexNet-R和ResNet-56的mini-batch大小分別為4096,1024和128。

4.1. CPU評測結(jié)果

具體參見表7及原文。

4.2. 單GPU卡評測結(jié)果

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

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

基準(zhǔn)評測 TensorFlow、Caffe、CNTK、MXNet、Torch 在三類流行深度神經(jīng)網(wǎng)絡(luò)上的表現(xiàn)(論文)

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

基準(zhǔn)評測 TensorFlow、Caffe、CNTK、MXNet、Torch 在三類流行深度神經(jīng)網(wǎng)絡(luò)上的表現(xiàn)(論文)

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

基準(zhǔn)評測 TensorFlow、Caffe、CNTK、MXNet、Torch 在三類流行深度神經(jīng)網(wǎng)絡(luò)上的表現(xiàn)(論文)

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

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

基準(zhǔn)評測 TensorFlow、Caffe、CNTK、MXNet、Torch 在三類流行深度神經(jīng)網(wǎng)絡(luò)上的表現(xiàn)(論文)

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

基準(zhǔn)評測 TensorFlow、Caffe、CNTK、MXNet、Torch 在三類流行深度神經(jīng)網(wǎng)絡(luò)上的表現(xiàn)(論文)

AlexNet-R:K80 平臺上CNTK表現(xiàn)最佳,Caffe和Torch次之,然后是MXNet。TensorFlow處理時間最長。

基準(zhǔn)評測 TensorFlow、Caffe、CNTK、MXNet、Torch 在三類流行深度神經(jīng)網(wǎng)絡(luò)上的表現(xiàn)(論文)

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

基準(zhǔn)評測 TensorFlow、Caffe、CNTK、MXNet、Torch 在三類流行深度神經(jīng)網(wǎng)絡(luò)上的表現(xiàn)(論文)

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

4.3.多GPU卡評測結(jié)果

基準(zhǔn)評測 TensorFlow、Caffe、CNTK、MXNet、Torch 在三類流行深度神經(jīng)網(wǎng)絡(luò)上的表現(xiàn)(論文)

FCN-R:單GPU的情況下,Caffe、CNTK及MXNet接近,TensorFlow和Torch稍差。GPU數(shù)量翻番時,CNTK和MXNet的可擴展性最佳,均實現(xiàn)了約35%的提速,caffe實現(xiàn)了大約28%的提速,而Torch和TensorFlow只有約10%。GPU數(shù)量變?yōu)?個時,TensorFlow和Torch沒有實現(xiàn)進一步的提速。

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

基準(zhǔn)評測 TensorFlow、Caffe、CNTK、MXNet、Torch 在三類流行深度神經(jīng)網(wǎng)絡(luò)上的表現(xiàn)(論文)

AlexNet-R:單個GPU時,CNTK,MXNet和Torch性能接近,且比Caffe和TensorFlow快得多。隨著GPU數(shù)量的增長,全部工具均實現(xiàn)高達40%的提速,而TensorFlow只有30%。

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

基準(zhǔn)評測 TensorFlow、Caffe、CNTK、MXNet、Torch 在三類流行深度神經(jīng)網(wǎng)絡(luò)上的表現(xiàn)(論文)

ResNet-56:單GPU時,Torch用時最少。多個GPU時,MXNet往往更高效。

至于收斂速度,整體來說MXNet和Torch比其他三個工具更好,而Caffe最慢。

5. 討論

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

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

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

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

此外,cublasSgemm API完全支持后向傳播,因為它在矩陣乘法后添加了一個縮放的矩陣。因此,如果將梯度計算和更新操作合并到單個GPU核中,則可以提高計算效率。為了優(yōu)化FCN的效率,還可以在不轉(zhuǎn)置的情況下使用cublasSgemm API,并同時使用cublasSgemm來計算梯度及執(zhí)行更新操作。

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

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

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

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

在這類網(wǎng)絡(luò)上,MXNet也表現(xiàn)出良好的可擴展性,因為它是在GPU上進行梯度聚合,這不僅減少了經(jīng)常傳輸梯度數(shù)據(jù)的PCI-e時間,并能利用GPU資源來進行并行計算。

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

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

總的來說,因為有了GPU計算資源,上述所有深度學(xué)習(xí)工具的速度與CPU的版本相比,都有了極大提高。這并不出奇,因為在GPU上的矩陣乘法以及FFT的性能要明顯優(yōu)于CPU。

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

論文作者強調(diào)這是一個開源項目,所有配置文件和實驗數(shù)據(jù)均在 http: //www.comp.hkbu.edu.hk/~chxw/dlbench.html 公開,歡迎讀者指正。

【進入新智元公眾號,在對話框輸入“0128”下載論文】

新智元招聘

職位 執(zhí)行總編、主編

職位年薪:50萬(工資+獎金)-100萬元(工資+獎金+期權(quán))

工作地點:北京-海淀區(qū)

所屬部門:編輯部

匯報對象:CEO

下屬人數(shù):20人

年齡要求:25 歲至 40 歲

語 言:專業(yè)英語八級以上或海外留學(xué)從業(yè)背景

職位背景:在IT媒體領(lǐng)域有專業(yè)團隊管理經(jīng)驗與主流話語權(quán)學(xué)歷要求:碩士及以上

職位描述:

  1. 熱愛人工智能和媒體事業(yè);

  2. 具有3年以上媒體采編經(jīng)驗,在業(yè)內(nèi)有一定影響力及人脈;

  3. 具有原創(chuàng)+編譯團隊管理經(jīng)驗,善于部門間協(xié)作溝通;

  4. 對TMT領(lǐng)域有深入理解,對行業(yè)趨勢有獨到的洞察;

  5. 英文閱讀寫作及溝通能力優(yōu)異;

  6. 較強的抗壓能力和自驅(qū)力,能在競爭激烈的環(huán)境下激勵團隊;

  7. 具有創(chuàng)業(yè)精神及團隊精神,有恒心肯吃苦;

  8. 理工科背景優(yōu)先,有知名企業(yè)或知名媒體機構(gòu)工作經(jīng)驗者優(yōu)先。

職責(zé)

全權(quán)負(fù)責(zé)新智元內(nèi)容平臺策劃、生產(chǎn)與運營,對內(nèi)容質(zhì)量、用戶閱讀體驗、影響力負(fù)責(zé)。具體負(fù)責(zé)完成對內(nèi)容平臺定位和規(guī)劃,組建并管理采編團隊,策劃執(zhí)行重點選題,建立和維護供稿作者資源;監(jiān)控公眾號各項數(shù)據(jù)指標(biāo)變動,并以此為基礎(chǔ)改進提升內(nèi)容質(zhì)量。

新智元歡迎有志之士前來面試,更多招聘崗位請訪問新智元公眾號

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多