tensorflow 性能調優相關


如何進行優化tensorflow 將極大得加速機器學習模型的訓練的時間,下面是一下tensorflow性能調優相關的閱讀鏈接:

閱讀摘要:

  • input pipeline 優化:
    • 使用 nvidia-smi -l 2 確認一個GPU是否被充分利用;通過gpu 利用率查看瓶頸是否在 input pipeline;
    • 生成一個 timeline, 觀察等待狀態。判斷每一階段的耗時;
    • 預估當前訓練所需要的吞吐,驗證所使用的磁盤,能否支持該吞吐量;
  • CPU 預處理:
    • 在CPU上面,進行處理 input pipeline 操作。來進行釋放GPU;
  • 使用Dataset API:
    • dataset api 會使用C++多線程機制,會比基於python的queue_runner的開銷更低;使用 feed_dict 來進行裝載數據將會存在性能問題;
  • 針對於數據集進行融合和裁剪,也能已經程度上加快tensorflow 的處理速度,在盡量少損失數據的情況下,減少整個數據集的大小,以提高處理速度;
  • 使用大文件:
    • 讀取大量小文件可以極大影響I/O性能。獲取最大的I/O吞吐量的其中一種方法是,將數據預取處理成更大的文件(TFRecord文件)。對於更小數據集,最好的方法是加載整個數據集到內存中。
  • fused Ops:
    • Fused Ops會將多個Op結合成單個kernel來提升性能。在Tensorflow中有許多fused Ops,當可能時XLA會創建fused Ops來自動提升性能。下面的示例會使用fused Ops,可以極大提升性能。

  • Fused batch norm: 沒看懂,之前沒有使用過,所以不知道如何來進行使用;
  • 編譯安裝:缺省的TensorFLow二進制包面向大多數的硬件,以便TensorFlow能為所有人所使用。如果使用CPU進行training或inference,推薦使用CPU的所有優化來編譯TensorFlow。開啟當前適合於當前CPU的優化;
  • GPU優化:數據並行於模型並行,以及考慮GPU之間來進行共享數據;以及CPU 與 GPU 之間的模型共享;
  • CPU優化:Intel® 已經添加了Intel® Math Kernel Library for Deep Neural Networks (Intel® MKL-DNN) 支持;

保持更新,內容來源於網絡。更多內容請關注 cnblogs.com/xuyaowen;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM