機器之心報導
機器之心編輯部
近日,國產深度學習框架 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做了一份測評報告》
閱讀原文