四大深度學習框架+四類GPU+七種神經網絡:交叉性能評測

2020-12-04 機器之心Pro

選自add-for作者:Pedro Gusmo機器之心編譯參與:李澤南、黃小天

最近,Pedro Gusmo 等人對於英偉達的四種 GPU 在四種不同深度學習框架下的性能進行了評測。本次評測共使用了 7 種用於圖像識別的深度學習模型。

第一個評測對比不同 GPU 在不同神經網絡和深度學習框架下的表現。這是一個標準測試,可以在給定 GPU 和架構的情況下幫助我們選擇合適的框架。

第二個測試則對比每個 GPU 在不同深度學習框架訓練時的 mini-batch 效率。根據以往經驗,更大的 mini-batch 意味著更高的模型訓練效率,儘管有時會出現例外。在本文的最後我們會對整個評測進行簡要總結,對涉及到的 GPU 和深度學習架構的表現進行評價。

GPU、深度學習框架和不同網絡之間的對比

我們使用七種不同框架對四種不同 GPU 進行,包括推理(正向)和訓練(正向和反向)。這對於構建深度學習機器和選擇合適的框架非常有意義。我們發現目前在網絡中缺乏對於此類研究的對比。

這是首次針對不同 GPU(Tesla K40,Titan-X Maxwell,GTX 1080 和 Titan-X Pascal)與不同網絡(AlexNet,Overfeat,Oxford VGG,GoogLeNet,ResNet-50,ResNet-101 和 ResNet-52)在不同深度學習框架下(Torch,Caffe,TensorFlow 和 Neon)的評測。在評測中,除了 Neon,所有框架都使用了英偉達 cuDNN 5.1。我們在每個 minibatch 裡使用了 64 個取樣,每次進行超過 100 次推理和訓練。圖表中缺失的數據意味著該次測試遭遇內存不足。

用於 TensorFlow 的 Minibatch 效率

訓練深度學習框架時知道每個 minibatch 中的樣本數量將會加快訓練。在第二個測評中,我們分析了 minibatch 尺寸與訓練效率的對比。由於 TensorFlow 1.0.0 極少出現內存不足的情況,我們只使用它進行這項評測。這次實驗中我們重新評估了 100 次運行中的平均正向通過時間和和正向+反向通過時間。

測評分析

關於第一個測評,我們注意到,Neon 幾乎總是能為 Titans 和 GTX 1080 導出最好的結果,而對 K40 的優化最差。這是因為 Neon 針對 Maxwell 和 Pascal 架構做了優化。Tesla K40,作為一個 Kepler GPU,缺少這樣低層級的優化。Torch 在所有架構中都可以輸出好結果,除了被用在現代 GPU 和更深的模型時。這又一次成了 Neon 發揮作用的時候。最後,我們指出 TensorFlow 是唯一一個可以訓練所有網絡的框架,並且不會出現內存不足的情況,這是我們繼續使用它作為第二個測評的框架的原因。

關於第二個測評,一般來說更大的 minibatch 可以減少每個樣本的運行時間繼而減少每個 epoch 的訓練時間。正如我們在上圖看到的,當使用 VGG 網絡時,GTX 1080 需要 420.28 毫秒為一個 64 樣本的 minibatch 運行正反向通過;相同的配置訓練 128 個樣本需要 899.86 毫秒,是前者的兩倍還要再多出 60 毫秒。此外,我們注意到對於所有大小為 8 的 minibatch 中的網絡,Tesla K40 有一個下凹曲率; Titan X Pascal 在使用相同 batch 大小的更淺架構上(例如 AlexNet 和 Overfeat)表現出上凹曲率。下凹曲率表明有效率在下降而上凹曲率則相反。更有趣的是 minibatch 大小的特殊取值也意味著更明顯的效率。分析兩個 GPU 將有助於解釋這為什麼會發生。

附錄

以下是對測評中使用的 GPU 還有架構和框架版本的扼要介紹。

GPU

1.Tesla K40:

K40 具有 2880 個 cuda 內核,745MHz 的基本頻率和可達 288GB/s 的內存寬帶的 12G GDDR5 RAM。這是一個基於 Kepler 架構的伺服器 GPU,具備 3.5Tflops 的計算能力。K40 已經停產,但仍被廣泛用於很多數據中心,了解其性能對於我們將來是否要購買新硬體很有幫助。

2.Titan X Maxwell:

Titan X 是具有 5.1Tflops 計算能力、用於 Maxwell 架構的旗艦消費級 GPU。它具有 3072 cuda 內核,1000MHz 的基本頻率,傳送速率為 336.5GB/s 的 12G GDDR5。考慮到其硬體規格和大多數深度學習應用僅依靠於單精度浮點運算,Titan X Maxwell 目前能用 750 美元左右買到,被認為是基於起始價格為 1000 美元的 GPU 的伺服器的最佳替換方案。

3.GTX 1080:

GTX 1080 是英偉達目前生產的高端遊戲 GPU,售價 599 美元。它具備 2560 個 cuda 內核,1607MHz 的基本頻率,提供 320GB/s 寬帶的 8GB GDDR5X。先進的 Pascal 架構為其帶來了 6.1Tflops 的計算能力。

4.Titan X Pascal:

Titan X Pascal 一直是深度學習方面最暢銷的 GPU。它具備 3584 cuda 內核,1417MHz 的基本頻率,提供 480GB/s 內存寬帶的 12GB GDDR5X。它比 GTX 1080 有更強大的計算能力(約 11Tflops),目前標價 1200 美元。儘管消費者趨之若鶩,英偉達目前在官方網站上直銷 Titan X Pascal,每個消費者限購 2 塊。

此外,在 3 月 10 日售價 699 美元,計算能力 11.34Tflops 的 GeForce GTX 1080Ti 推出以後,消費者擁有了 Titan X 以外的另一個選擇。

神經網絡

1.AlexNet:

2012 年,Alex Krizhevsky 使用五層卷積、三層完全連接層的 CNN 網絡贏得了 ImageNet 競賽(ILSVRC)。AlexNet 證明了 CNN 在分類問題上的有效性(15.3% 錯誤率),而此前的圖片識別錯誤率高達 25%。這一網絡的出現對於計算機視覺在深度學習上的應用具有裡程碑意義。

2.Overfeat

2013 年,Overfeat 通過降低第一層的步幅改進了 AlexNet 的架構,讓圖片識別錯誤率降低至 14.2%。這一方法證明了卷積神經網絡使用同步分類、本地化和圖片中對象檢測的方式可以增加圖片識別任務的準確度。

3.VGG Network:

2014 年,牛津大學的研究人員通過訓練 11 到 19 層的卷積神經網絡證明了深度對於圖像識別任務的重要性。他們的工作表明,使用 3×3 空間內核的兩個連續卷積層比使用單個 5×5 卷積層具有更高的準確性,同時這一優勢也能為非線性層帶來幫助。此外,作者證明 19 層 CNN 輸出的結果與 16 層網絡具有相似的精度,這暴露了當時技術訓練深度 CNN 的困難。最後,VGG Net 進一步將 ILSVRC-2014 分類任務中的錯誤率減少到了 7.3%。

4.GoogLeNet:

該方式由谷歌研究人員於 2014 年推出,它是由 22 層卷積神經網絡構成的模型,它被稱為 Inception,是由並行和串行的網絡進行的級聯。網絡分類器的誤差為 6.67%。

5.殘差網絡:

在 2015 年,微軟研究院的學者提出了一種新的 CNN 架構——殘差網絡(ResNet)。在殘差網絡中,殘差塊的任務是學習連續輸出的表示差異。這一方法通過 110 層模型在 ImageNet 競賽時達到了 3.57% 的誤差率。

本次評測中使用的深度學習架構版本:

Caffe: commit 746a77e6d55cf16d9b2d4ccd71e49774604e86f6Torch7: commit d03a42834bb1b674495b0c42de1716b66cc388f1Nervana Neon: 1.8.1TensorFlow: 1.0.0

相關焦點

  • 盤點:GPU加速的神經網絡與JavaScript的交叉
    本概述中不包括那些旨在運行現有模型的庫(特別是那些使用Python框架訓練的模型)。最後,四個項目榜上有名。雖然它的特性集面向神經網絡,但deeplearn.js可以被描述為通用機器學習框架。Propel是一個提供自動微分的科學計算的庫。
  • 深度卷積神經網絡CNNs的多GPU並行框架 及其在圖像識別的應用
    Deep CNNs的單機多GPU模型並行和數據並行框架是騰訊深度學習平臺的一部分,騰訊深度學習平臺技術團隊實現了模型並行和數據並行技術加速Deep CNNs訓練,證實模型拆分對減少單GPU上顯存佔用有效,並且在加速比指標上得到顯著收益,同時可以以較快速度訓練更大的深度卷積神經網絡,提升模型準確率。
  • 初學AI神經網絡應該選擇Keras或是Pytorch框架?
    對於許多開發者來說,TensorFlow是他們接觸的第一個機器學習框架。TensorFlow框架儘管意義非凡,引起極大關注和神經網絡學習風潮,但對一般開發者用戶太不友好。軟體開發者畢竟不是科學家,很多時候簡單易學易用是程式設計師選擇的第一要素。
  • 深度卷積神經網絡CNNs的多GPU並行框架及其應用
    7.3.效果展示圖9為圖像標籤識別的示例,通過對兩千多類物體的圖像進行訓練,可實現對常見物體的自動識別。 8.結論與展望本文描述了深度卷積神經網絡Deep CNNs的多GPU模型並行和數據並行框架,通過多個Worker Group實現了數據並行
  • 伯克利RISE實驗室大牛也在關注的深度學習庫評測
    在此論文中,作者用三種最主要的深度神經網絡(全連接神經網絡FCN,卷積神經網絡CNN,以及循環神經網絡RNN)來基準評測當下最先進的基於GPU加速的深度學習工具(包括Caffe,CNTK, MXNet, TensorFlow 和Torch),比較它們在CPU和GPU上的運行時間性能。幾個工具的性能評估既針對合成數據,也針對真實數據。
  • 深度學習框架哪家強?國產框架OneFlow做了一份測評報告
    OneFlow 是一流科技自主研發、擁有完全自主智慧財產權的深度學習框架軟體,是國內首個由初創團隊研發並開源的 AI 框架,今年 7 月 31 日正式開源。OneFlow 獨創的自動數據模型混合併行、靜態調度、去中心化和全鏈路異步流式執行四大核心技術,使用軟體技術解決大數據、大模型、大計算所帶來的異構集群分布式橫向擴展挑戰,獲得了廣泛的業內關注。
  • 35 萬行代碼,曠視重磅開源天元深度學習框架 ,四大特性實現簡單開發
    自2007年Theano誕生以來,經過十餘年發展,深度學習技術與應用突飛猛進,深度學習框架也處在不斷迭代與進化的過程;另一方面,開源的概念在全球範圍內越來越深入人心,這使得人工智慧開發依賴的環境安裝、部署、測試,以及不斷迭代改進準確性和性能調優的工作變得更加簡單,在人工智慧領域,開源深度學習框架已經成為開發者離不開的平臺和工具。
  • TensorFlow和Caffe、MXNet、Keras等其他深度學習框架的對比
    TensorFlow 在最開始發布時只支持單機,而且只支持 CUDA 6.5 和 cuDNN v2,並且沒有官方和其他深度學習框架的對比結果。在 2015 年年底,許多其他框架做了各種性能對比評測,每次 TensorFlow 都會作為較差的對照組出現。那個時期的 TensorFlow 真的不快,性能上僅和普遍認為很慢的 Theano 比肩,在各個框架中可以算是墊底。
  • 深度學習進入晶片領域,揭秘寒武紀神經網絡處理器
    模擬實驗表明,採用DianNaoYu指令集的寒武紀深度學習處理器相對於x86指令集的CPU有兩個數量級的性能提升。為解決此問題,使用了一套基於機器學習的處理器性能建模方法,並基於該性能模型最終為DianNao選定了各項設計參數,在運算和訪存間取得了平衡,顯著提升了執行神經網絡算法時的效能。即便數據已經從內存取到了片上,搬運的能耗依然非常高。
  • Nature Neurosci: 神經科學的深度學習框架是什麼?
    為什麼建立神經科學的深度學習框架,神經科學的深度學習框架的內容(是什麼),我們應該如何在深度學習框架下發展神經科學(怎麼做)。而深度神經網絡可能可以用來研究這類問題,其用簡化的units來模擬真實神經元的整合和激活特性,而且更重要的是,是通過學習而不是提前設計來實現具體運算的。 為什麼能呢?最近的大量研究表明,深度學習能夠幫助我們研究大腦。
  • 通過對比深度學習各大框架的優缺點尋找最優
    開源的深度學習神經網絡正步入成熟,而現在有許多框架具備為個性化方案提供先進的機器學習和人工智慧的能力。那麼如何決定哪個開源框架最適合你呢?本文試圖通過對比深度學習各大框架的優缺點,從而為各位讀者提供一個參考。你最看好哪個深度學習框架呢?
  • 深度學習框架比較,我該選擇哪一個?
    Theano 基於 Python,是一個擅長處理多維數組的庫,十分適合與其它深度學習庫結合起來進行數據探索。它設計的初衷是為了執行深度學習中大規模神經網絡算法的運算。其實,Theano 可以被更好地理解為一個數學表達式的編譯器:用符號式語言定義你想要的結果,該框架會對你的程序進行編譯,在 GPU 或 CPU 中高效運行。
  • 亞馬遜開源神經機器翻譯框架Sockeye:基於Apache MXNet的NMT平臺
    作為 MXNet 的支持者,亞馬遜也開源了自己的 NMT 框架 Sockeye。在本文中,亞馬遜宣稱這個基於 MXNet 的工具可以用於構建目前業內表現最佳的神經機器翻譯模型。近來,深度神經網絡(DNN)顯著提升了這些模型的性能。Sockeye 同時提供了一個當前最優的神經機器翻譯(NMT)模型的實現和一個開展 NMT 研究的平臺。Sockeye 是一個基於 Apache MXNet 的快速而可擴展的深度學習庫。Sockeye 代碼庫具有來自 MXNet 的獨特優勢。
  • 清華自研深度學習框架「計圖」開源!多項任務性能超過PyTorch
    值得一提的是,這也是首個來自中國高校科研機構的開源深度學習框架,之前,業內來自「高校」的還有加拿大蒙特婁大學的Theano,UC伯克利的Caffe。與主流的深度學習框架TensorFlow、Pytorch不同,Jittor是一個完全基於動態編譯(Just-in-time)、使用元算子和統一計算圖的深度學習框架。
  • Keras vs PyTorch:誰是第一深度學習框架?
    【IT168 資訊】「第一個深度學習框架該怎麼選」對於初學者而言一直是個頭疼的問題。本文中,來自 deepsense.ai 的研究員給出了他們在高級框架上的答案。在 Keras 與 PyTorch 的對比中,作者還給出了相同神經網絡在不同框架中性能的基準測試結果。
  • 神經網絡和深度學習簡史(全)
    讓我告訴你,說來話長——這不僅僅是一個有關神經網絡的故事,也不僅僅是一個有關一系列研究突破的故事,這些突破讓深度學習變得比「大型神經網絡」更加有趣,而是一個有關幾位不放棄的研究員如何熬過黑暗數十年,直至拯救神經網絡,實現深度學習夢想的故事。
  • GoogLeNet神經網絡的複雜交叉路口識別方法
    Parameter of the sample area, resolution, and size1.4 樣本的增強要訓練具有22層結構的GoogLeNet深度神經網絡,數據量是基礎。即使本文將全國多個城市的OSM交通數據作為訓練複雜交叉路口樣本的採樣源,樣本量仍不夠充足。為此,本文通過對樣本進行處理和變換來擴充訓練數據容量。
  • 【PPT下載】深度學習入門指南!六步構建深度神經網絡
    在過去一年時間裡,我們透過各種各樣的教材,在全國各地分享NVIDIA對於深度學習的理解和體驗,讓更多的人理解深度學習。今天將從以下四個方面來跟大家分享我對深度學習這個概念的理解:–機器學習和深度學習的定義;-深度學習的應用範圍;-深入學習的實現以及特點;-上手NVIDIA交互式深度學習訓練平臺DIGITS。
  • 用光速實現深度學習,跟GPU說再見
    這樣,衍射深度神經網絡就能夠識別目標,其耗時與計算機 「看到」 目標所花費的時間相仿。DNN: 光速實時學習,成本不到 50 美元而隨著來自不同目標的光通過 DNN, 研究人員利用深度學習訓練神經網絡,以學習每個目標產生的衍射光圖案。
  • AI 從業者該如何選擇深度學習開源框架丨雷鋒網公開課
    正如程序語言一樣,深度學習開源框架同樣各有優劣和適用的場景,那麼 AI 從業者該如何有針對性地選擇這些平臺來玩轉深度學習?本期公開課特邀了先後在谷歌、亞馬遜、微軟供職的機器學習科學家彭河森博士為大家講述《MXNet火了,AI從業者該如何選擇深度學習開源框架》。彭河森博士親眼見證並深入參與了這三家巨頭布局深度學習的過程。嘉賓介紹彭河森,埃默裡大學統計學博士。