重大進展!Paddle Fluid 加速float16卷積神經網絡預測!

重大進展!Paddle Fluid 加速float16卷積神經網絡預測!

​所有 PaddlePaddle 的應用者們:

我們很高興地宣佈,

PaddlePaddle Fluid 可以支持在卷積神經網絡上進行 float 16模式的低精度預測了!

同時在 NVIDIA 最新的支持 Tensor core 的 GPU 提供的 float 16加速運算支持下,float 16模式的預測在不損失準確率的情況下,實現了很大的加速效果(跟float 32比較)!

重大進展!Paddle Fluid 加速float16卷積神經網絡預測!

為什麼可以非常開心的慶祝起來?

這就需要從 float 講起。通常的深度學習預測(inference)的參數,輸入輸出和運算都是用的4個字節的 float(也叫 float 32)浮點數表示。 Float 指的是浮點數,由 IEEE 指定規則,這種結構是一種科學計數法,用符號、指數和尾數來表示,底數定位2。float 包括1個符號位、8個指數位和23個尾數位。

重大進展!Paddle Fluid 加速float16卷積神經網絡預測!

​如果改成用2個字節的 float 16浮點數來表示,可以節約內存佔用、耗電量和運算時間。PaddlePaddleFluid 完成了在卷積神經網絡(CNN)上進行 float16inference 的支持。跟 float 32模式的預測比較,在準確率一致的前提下,float 16模式的預測在 GPU 上更快,更省電,更節省內存佔用。

這就好比在吃食物時,同樣熱量的棉花糖和軟糖,顯然後者的食用速度是快於前者的,這樣也可以儘快消化。

重大進展!Paddle Fluid 加速float16卷積神經網絡預測!

加速效果到底是怎樣的呢?

PaddlePaddle 在支持 float 16加速運算(NVIDIA 的 Tensor Core 技術) 的 NVIDIA 最新 GPU(V100)上測試了 Fluid float 16 預測(inference)的效果,可以總結為兩點:

(1)float16inference 的準確率: 和 float32inference 的準確率非常一致。

(2)float16inference 的加速效果(跟 float 32模式下平均一個 batch 的預測時間做比較):在 Vgg 16上隨著 batch size 的不同有2~4倍的加速效果,在 Resnet 50上有1.15~2倍的加速效果。

這也就是說,今後再使用 PaddlePaddle Fluid 時,參數處理速度被大大提升,能夠留出更多時間可以用於後續的模型搭建和訓練環節,這就像高鐵提速能夠讓大家更快到達目的地,此次改變能讓開發者們快捷操作,把更多的 Idea 更好更快速的實現!

當然,這一突破的背後,除了感謝夜以繼日付出努力的開發工程師們,更是要感謝 PaddlePaddle 使用者們。PaddlePaddle Fluid 仍在不斷成長,希望今後能夠帶給大家更多驚喜,也歡迎各位開發者們及時提出問題與建議!感謝每位使用 PaddlePaddle 的開發者們的信任!

重大進展!Paddle Fluid 加速float16卷積神經網絡預測!

你們的 PaddlePaddle

2018年5月17日


分享到:


相關文章: