深度學習框架哪家強?國產框架OneFlow做了一份測評報告

2021-01-10 澎湃新聞

機器之心報導

機器之心編輯部

近日,國產深度學習框架 OneFlow 發布了人工智慧方向深度學習領域的 DLPerf 測評報告。

數據顯示,OneFlow 在 4 機 32 卡下的 ResNet50-v1.5 和 BERT-base 兩個模型中,無論是 Float32 類型還是自動混合精度,在同樣的算法和硬體條件下,吞吐率及加速比均優於其他深度學習框架。

OneFlow 是一流科技自主研發、擁有完全自主智慧財產權的深度學習框架軟體,是國內首個由初創團隊研發並開源的 AI 框架,今年 7 月 31 日正式開源。OneFlow 獨創的自動數據模型混合併行、靜態調度、去中心化和全鏈路異步流式執行四大核心技術,使用軟體技術解決大數據、大模型、大計算所帶來的異構集群分布式橫向擴展挑戰,獲得了廣泛的業內關注。

報告連結:https://github.com/Oneflow-Inc/DLPerf/blob/master/reports/dlperf_benchmark_test_report_v1_cn.md

此次測評是 OneFlow 開源百天後向廣大開發者交出的第一份「大型答卷」。對此,創始人袁進輝表示:「OneFlow 從研發之初就主打高效性,致力於解決大規模分布式 AI 訓練問題。這三個多月來,我們做了大量工作來增強穩定性、圖編譯和運行速度,在多機多卡場景下持續優化,以達到分布式最佳性能。」

參與本次測評的框架共有四款:OneFlow、TensorFlow 1.x & 2.x、PyTorch 和 MXNet。

除了數據對比,在本次測評報告中,OneFlow 還公布了對其他深度學習框架進行調優的過程,以保證測評報告公正、準確、可復現。在談到為何公布如此詳細的調優過程時,袁進輝說道:「首先,我們要保證這份測評報告是客觀、可復現的,這樣才能幫助到開發者的日常工作。隨著數據量級的增長,開發者對於深度學習框架如何激發硬體性能持續關注,我們希望這份報告可以給開發者在應用深度學習框架時提供必要的助力,並以此填補業界沒有在嚴格對齊算法和硬體配置的條件下科學測評分布式深度學習框架的空白。」

據機器之心了解,OneFlow 開源後收到了來自世界範圍內的廣泛關注,關注者包括來自谷歌、臉書、微軟、亞馬遜、阿里、字節跳動、騰訊、百度、商湯、曠視等企業的核心技術人員。開源一個多月後,接到多家頭部網際網路企業和人工智慧企業的使用意向。

下一步,OneFlow 將基於本次 DLPerf 測試報告,為開發者提供更多關於深度學習框架的系列課程、分享與論文,繼續支持企業與機構對深度學習框架的性能優化,提升深度學習框架在行業中的應用水平。

測評背景

這份報告比較了幾個深度學習框架在兩個經典的深度學習模型訓練任務上的吞吐率及分布式訓練任務上的加速比。測試均採用相同的數據集、相同的硬體環境和算法。

與其他的評測相比,這次評測有兩大特色:

1)強調分布式訓練任務的多機擴展性:與 NVIDIA DeepLearningExamples 相比,這次評測對比了多機擴展性,而 NVIDIA 的訓練任務僅測試了單機情況。

2)僅測試框架本身的性能差異:與 DAWNBench 相比,這次評測在相同的物理環境下,做了嚴格的算法對齊工作,讓各個框架使用相同的硬體和相同的算法腳本比較吞吐率,僅評測各個框架在系統實現方面的性能表現。而 DAWNBench 對算法要求不限,僅對比收斂到相同精度所使用的時間,所以會把算法改進和系統改進混在一起進行整體比較。

本次評測選擇了兩個經典主流的深度學習模型 ResNet-50 v1.5 和 BERT-Base。測試環境共有 4 臺機器,每臺機器配置了 8 張 V100 GPU 顯卡(每臺機器配置與 NVIDA DGX-1 接近)。對於每個框架的每一次性能測試,他們都至少測試了 1 機 1 卡、1 機 8 卡、2 機 16 卡、4 機 32 卡這幾種情況。

針對每個框架的每個模型,評測者都測試了其分布式環境下的吞吐率,包含不同的 batch size、是否經過 XLA 優化加速、是否使用自動混合精度訓練。最後,他們選取了吞吐率(throughput)和加速比(speedup)作為評測指標。

ResNet-50 v1.5 性能測試結果

參與 ResNet-50 v1.5 評測的框架、版本、模型庫,以及額外特性如表 4-1 所示:

在 FP32 batch size = 128 時各框架的吞吐率如下所示:

從中可以看出,無論是何種情況( 1 機 1 卡、1 機 8 卡、2 機 16 卡、4 機 32 卡),OneFlow 在 ResNet50-v1.5 模型上的吞吐率均高於其他框架。而且,隨著硬體數量的增加,這種優勢變得越來越明顯。

下圖展示了 7 個框架實現在 ResNet50-v1.5 模型上(FP32 batch size = 128)的加速比對比情況:

從中可以看出,在其他條件都相同的情況下,OneFlow 是最接近理想加速比的框架。

除了 Float32,評測者還測試了自動混合精度下各個框架的表現。

註:其中 NGC TensorFlow 1.x 的 batch size = 224,因為 batch size = 256 會遇到 OOM(out of memory)。

從表 4-3 和圖 4-3 中可以看出,無論是何種情況( 1 機 1 卡、1 機 8 卡、2 機 16 卡、4 機 32 卡),在自動混合精度下,OneFlow 在 ResNet50-v1.5 模型上的吞吐率均高於其他框架。而且,隨著硬體數量的增加,這種優勢變得越來越明顯。

下圖展示了 8 個框架實現在 ResNet50-v1.5 模型上(AMP batch size = 256)的加速比對比情況:

圖 4-4 8 個框架實現在 ResNet50-v1.5 模型上(AMP batch size = 256)的加速比對比。

BERT-base pretrain 性能測試結果

參與 BERT-base pretrain 評測的框架、版本、模型庫,以及額外特性如表 5-1 所示:

在 FP32 batch size = 32 時各框架的吞吐率如下所示:

和在 ResNet50-v1.5 模型上的表現類似,無論是何種情況( 1 機 1 卡、1 機 8 卡、2 機 16 卡、4 機 32 卡),OneFlow 在 BERT-base pretrain 模型上的吞吐率均高於其他框架。而且,隨著硬體數量的增加,這種優勢變得越來越明顯。

下圖展示了 4 個框架實現在 BERT-base 模型上(FP32 batch size = 32)的加速比對比情況:

此外,在 FP32 batch size = max、FP32 batch size = 64 的情況下,OneFlow 在 BERT-base pretrain 模型上也展現出了類似的性能。

除了 Float32,評測者還測試了自動混合精度下各個框架的表現。

從上圖可以看出,無論是何種情況( 1 機 1 卡、1 機 8 卡、2 機 16 卡、4 機 32 卡),在自動混合精度下,OneFlow 在 BERT-base 模型上的吞吐率均高於其他框架。而且,隨著硬體數量的增加,這種優勢變得越來越明顯。

下圖展示了 4 個框架實現在 BERT-base 模型上(AMP batch size = max)的加速比對比情況:

測評總結

根據上述性能測試結果,評測者得出結論:在 ResNet50 和 BERT-base 兩個模型中,無論是 Float32 類型還是自動混合精度,OneFlow 的性能表現都優於其他各個框架。

在復現各個框架的性能評測過程中,評測者對比了 OneFlow 框架和其他框架的性能差異以及復現難易程度,總結了一些優缺點。

其他框架的常見缺陷

在評測過程中,評測者發現:

很多框架的數據讀取 pipeline 性能存在瓶頸,尤其是 CNN 網絡的 AMP 訓練,常常依賴 DALI 才能達到理想的性能結果。

在多卡訓練時,其他官方框架和官方提供的模型腳本的默認配置一般跑不出最好的吞吐率,經常需要修改數據讀取的參數(如 PyTorch 的 worker 數量)並測試多次才能找到最佳的配置參數。

有些框架的分布式性能表現不如 Horovod。

很多框架和模型腳本實現的分布式訓練易用性不夠好,常常需要測試工程師進行額外的踩坑和腳本修復、第三方依賴安裝才能完成分布式訓練,有些框架的官方腳本只支持單機,多機即使經過調試、修改代碼也難以運行成功。

OneFlow 的優勢

評測者還總結了 OneFlow 的優勢:

OneFlow 分布式訓練非常易用。

OneFlow 不需要依賴 DALI 和 Horovod 就可以實現優秀的分布式訓練性能。

OneFlow 多卡訓練不需要調試參數,就可以在各種情況下達到最快。

除評測過程、結果等信息以外,該報告還總結了各個框架性能評測復現的踩坑經驗,更多內容參見原報告。

如想了解OneFlow是怎麼實現評測中卓越性能的,如想了解 OneFlow 的基礎原理,如想了解 OneFlow 的實現細節,請點擊下方文章

© THE END

轉載請聯繫本公眾號獲得授權

投稿或尋求報導:content@jiqizhixin.com

原標題:《深度學習框架哪家強?國產框架OneFlow做了一份測評報告》

閱讀原文

相關焦點

  • OneFlow開源日:再看《深度學習框架的靈魂》
    NeuralTalk評:OneFlow框架開源日,各媒體都在轉發相關PR稿件。
  • 深度學習框架哪家強?MXNet稱霸CNN、RNN和情感分析,TensorFlow僅擅長推斷特徵提取
    翻譯 | 劉暢編輯 | Donna來源 | AI科技大本營深度學習框架哪家強:TensorFlow?Caffe?MXNet?Keras?PyTorch?不過作者表示,項目內的測試代碼並非專門為深度學習性能而編寫,目的僅在於簡單比較一下各框架之間的性能差異。以下為該項目的詳情,have fun!我們做這個榜單的初衷是為了好玩,所以省略了很多重要部分的比較。比如:幫助和支持,自定義圖層(可以創建一個膠囊網絡嗎?),數據加載器,調試,不同的平臺支持,分布式訓練等等。
  • 2020,國產AI開源框架「亮劍」TensorFlow、PyTorch
    在那個3月28日,華為在開發者大會2020上完成了輪值董事長徐直軍在去年8月的承諾,宣布正式開源MindSpore,這是一款支持端邊雲全場景的深度學習訓練推理框架。 時間撥到四天前,AI獨角獸曠視科技宣布開源天元(MegEngine),強調這是訓練推理一體化、動靜態合一的工業級深度學習框架。
  • TensorFlow、PyTorch、Keras:NLP框架哪家強
    全文共3412字,預計學習時長7分鐘在對TensorFlow、PyTorch和Keras做功能對比之前,先來了解一些它們各自的非競爭性柔性特點吧。非競爭性特點下文介紹了TensorFlow、PyTorch和Keras的幾個不同之處,便於讀者對這三個框架有初步了解。列出這些區別的重點不在於對三者做比較,而在於做一個初步介紹。
  • TensorFlow與PyTorch之爭,哪個框架最適合深度學習
    選自builtin作者:Vihar Kurama機器之心編譯參與:吳攀、杜偉谷歌的 Tensorflow 與 Facebook 的 PyTorch 一直是頗受社區歡迎的兩種深度學習框架。那麼究竟哪種框架最適宜自己手邊的深度學習項目呢?本文作者從這兩種框架各自的功能效果、優缺點以及安裝、版本更新等諸多方面給出了自己的建議。如果你在讀這篇文章,那麼你可能已經開始了自己的深度學習之旅。如果你對這一領域還不是很熟悉,那麼簡單來說,深度學習使用了「人工神經網絡」,這是一種類似大腦的特殊架構,這個領域的發展目標是開發出能解決真實世界問題的類人計算機。
  • 對比深度學習十大框架:TensorFlow 並非最好?
    為什麼要做這一個盤點呢?他寫道:「我常聽到人們談論深度學習——我該從哪裡開始呢?TensorFlow 是現在最流行的吧?我聽說 Caffe 很常用,但會不會太難了?在 BEEVA Labs,我們常常需要應對許多不同的深度學習庫,所以我希望能夠將我們的發現和感想分享出來,幫助那些剛剛進入深度學習這一美麗世界的人。」
  • PYTORCH與TENSORFLOW:哪種框架最適合您的深度學習項目?
    為了幫助開發這些架構,諸如Google,Facebook和Uber之類的技術巨頭已經發布了適用於Python深度學習環境的各種框架,從而使學習,構建和訓練多樣化的神經網絡變得更加容易。在本文中,我們將研究兩個流行的框架並進行比較:PyTorch與TensorFlow。簡要地比較一下,最常用和依賴的Python框架TensorFlow和PyTorch。
  • 深度學習框架 fast.ai 2.0 正式發布
    經歷了長久的等待之後,深度學習框架 fast.ai 2.0 版本終於正式發布了。fast.ai 課程,是為了踐行 Jeremy Howard 「讓深度學習不再酷」的承諾。這話的意思是也消除掉門檻,讓更多沒有高等數學和統計專業基礎的人,都有機會來了解和應用深度學習。關於這個事兒,我在《如何從零基礎學最前沿的 Python 深度學習?》一文中,給你介紹過。
  • 深度| 對比深度學習十大框架:TensorFlow最流行但並不是最好
    選自Medium機器之心編譯參與:吳攀、朱思穎、李亞洲2016 年已經過去,BEEVA Labs 數據分析師 Ricardo Guerrero Gomez-Ol 近日在 Medium 上發表了一篇文章,盤點了目前最流行的深度學習框架。為什麼要做這一個盤點呢?他寫道:「我常聽到人們談論深度學習——我該從哪裡開始呢?TensorFlow 是現在最流行的吧?
  • 最熱門的深度學習框架TensorFlow入門必備書籍
    但進入機器學習和人工智慧領域並不是一件簡單的事情,目前市場上有許多大量的學習資源,許多開發者和想要進入的愛好者往往很難找到適合自己的發展路徑。其實,早在 2015 年底,谷歌就開源了內部使用的深度學習框架 TensorFlow 。眾多研究表明,Tensorflow 是研究深度學習的首選平臺。
  • 深度 對比深度學習十大框架:TensorFlow最流行但並不是最好
    為什麼要做這一個盤點呢?他寫道:「我常聽到人們談論深度學習——我該從哪裡開始呢?TensorFlow 是現在最流行的吧?我聽說 Caffe 很常用,但會不會太難了?在 BEEVA Labs,我們常常需要應對許多不同的深度學習庫,所以我希望能夠將我們的發現和感想分享出來,幫助那些剛剛進入深度學習這一美麗世界的人。」
  • TensorFlow、Keras、CNTK...到底哪種深度學習框架更好用?
    作者 | 微軟 Cortana AI 和 ML 團隊 AI 前線導讀:社區裡流行的深度學習框架不少,但是 TensorFlow、Julia、CNTK... 到底哪種使用起來既方便又高效呢?微軟的 CortanaAI 和 ML 團隊對幾種主流的深度學習框架進行了比較,並在 GitHub 上開放了測試結果。那麼,測試的結果如何呢?
  • 從TensorFlow到Theano:橫向對比七大深度學習框架
    最近,來自數據科學公司 Silicon Valley Data Science 的數據工程師 Matt Rubashkin(UC Berkeley 博士)為我們帶來了深度學習 7 種流行框架的深度橫向對比,希望本文能對你帶來幫助。在 SVDS,我們的研發團隊一直在研究不同的深度學習技術;從識別圖像到語音,我們也在各類框架下實現了不少應用。
  • 超越PyTorch 和 TensorFlow,這個國產框架有點東西
    在這樣資源主導、肉食者謀的競爭環境下 ,一家國產深度學習框架的創業公司 OneFlow 出現了。它以處理大規模模型見長,甚至今年將全部源碼和實驗對比數據,在 GitHub 進行了開源。質疑不可避免的出現了:OneFlow 這種擅長解決大模型訓練的新架構有必要嗎?深度學習框架的效率有那麼重要嗎?創業公司有可能在競爭中脫穎而出麼?
  • 對比深度學習十大框架:TensorFlow最流行但並不是最好
    為什麼要做這一個盤點呢?他寫道:「我常聽到人們談論深度學習——我該從哪裡開始呢?TensorFlow 是現在最流行的吧?我聽說 Caffe 很常用,但會不會太難了?在 BEEVA Labs,我們常常需要應對許多不同的深度學習庫,所以我希望能夠將我們的發現和感想分享出來,幫助那些剛剛進入深度學習這一美麗世界的人。」
  • 從框架優缺點說起,這是一份TensorFlow入門極簡教程
    隨著 TensorFLow 在研究及產品中的應用日益廣泛,很多開發者及研究者都希望能深入學習這一深度學習框架。而在昨天機器之心發起的框架投票中,2144 位參與者中有 1441 位都在使用 TensorFlow 框架,是所有框架中使用率最高的。但 TensorFLow 這種靜態計算圖有一定的學習成本,因此也阻擋了很多初學者入坑。
  • 最流行的深度學習框架比較 I Tensorflow, PyTorch, Keras 與 FastAI
    TensorFlow無疑是深度學習框架的重量級冠軍。Pythorch是個年輕的菜鳥,很有風頭。🐝在過去的24個月裡,領先的深度學習框架的情況發生了怎樣的變化?為了回答這個問題,我查看了Monster、LinkedIn和SimplyHired上的招聘信息。我還評估了Google搜索量、GitHub活動、媒體文章、ArXiv文章和Quora主題關注者的變化。
  • 深度學習筆記7:Tensorflow入門
    個人公眾號:數據科學家養成記 (微信ID:louwill12)前文傳送門:深度學習筆記1:利用numpy從零搭建一個神經網絡深度學習筆記2:手寫一個單隱層的神經網絡深度學習筆記3:手動搭建深度神經網絡(DNN)深度學習筆記4:深度神經網絡的正則化深度學習筆記5:正則化與dropout
  • 我用Python做了一個深度學習框架,秘訣在這裡!
    深度學習框架平臺佔據人工智慧產業生態的核心地位,具有統領產業進步節奏、帶動終端場景與雲端服務協同發展的重要作用,處於承上啟下的關鍵地位,其意義媲美移動網際網路作業系統。隨著深度學習框架的不斷演進,以深度學習為代表的人工智慧將大放異彩。
  • 大神擼了個暗黑系深度學習框架...
    深度學習神經網絡正步入成熟,而深度學習框架目前眾多,大都可以在圖像識別、手寫識別、視頻識別、語音識別、目標識別和自然語言處理等諸多領域大顯身手。深度學習框架平臺佔據人工智慧產業生態的核心地位,具有統領產業進步節奏、帶動終端場景與雲端服務協同發展的重要作用,處於承上啟下的關鍵地位,其意義媲美移動網際網路作業系統。隨著深度學習框架的不斷演進,以深度學習為代表的人工智慧將大放異彩。