TensorFlow深度學習運用 GPU與CPU執行效能比較

近年來深度學習和人工智慧技術的加速發展,其中很重要的因素之一,是GPU 提供強大的平行運算架構,可讓深度學習訓練比CPU快數十倍,使模型訓練的時間,從數週縮短為數天。深度學習以大量矩陣運算模擬神經元運作,矩陣運算的特性是,單一運算都很簡單,但是需要大量運算,特別適合平行運算。

GPU vs CPU 


GPU(graphics processing unit)圖形處理器,原本用來處理畫面像素的運算,例如電玩畫面需要大量圖形運算。CPU與GPU架構上有根本不同:CPU含有數顆核心,為循序處理進行最佳化,但是GPU可以達到,數千個小型而且高效率的核心,就可以發揮平行運算的強大功能。

TensorFlow GPU版本說明

TensorFlow要利用GPU強大的平行運算功能,必須安裝TensorFlow GPU版本。 Tensorflow   GPU版本:主要是透過NVIDIA提供的CUDA和CudNN,才能運用GPU執行深度學習訓練。 如下圖:
上圖說明如下:
  • Keras:是Tensorflow的高階API,所以必須透過Tensorflow GPU的版本,才能運用GPU執行深度學習訓練。
  • CUDA:是由NVIDIA所推出的整合技術,統一計算架構CUDA(Compute Unified Device Architecture),CUDA是NVIDIA的平行運算架構,可運用繪圖處理單元(GPU) 的強大處理能力,大幅增加運算效能。Nvidia已售出數百萬顆CUDA GPU,程式設計師、科學家等,將 CUDA 應用於各種領域,如影像處理、視訊處理、醫學診斷..等等。
  • cuDNN: (CUDA Deep Neural Network library)是NVIDIA深度學習 SDK的一部分,是GPU的深度學習程式庫。cuDNN能為深度學習,提供高效能神經網絡層級,例如:卷積、池化和激活層..等等。 

TensorFlow GPU執行環境安裝步驟

在第4章我們已經介紹如何在Windows安裝Tensorflow的CPU的執行環境。
本章將介紹如何安裝TensorFlow GPU執行環境。因為CPU與GPU所需要安裝的Tensorflow版本不一樣。所以我們會分別建立CPU與GPU的anaconda虛擬環境,方便我們後續測試CPU與GPU的執行效能。
TensorFlow GPU執行環境安裝步驟如下:
詳細安裝步驟,請參考本書說明

啟動tensorflow-gpu環境

匯入tensorflow模組



TensorFlow GPU與CPU執行效能比較

我們將建立performanceTest函數,以TensorFlow執行矩陣運算,測試不同的矩陣大小,運用GPU與CPU執行效能。
定義performanceTest函數,傳入下列參數:
  • device_name:設定要使用GPU或CPU進行運算。 
  • size:設定要建立矩陣的大小
以下程式碼詳細說明,請參考本書說明

以for迴圈執行performanceTest函數

以for迴圈分別以GPU與CPU執行不同的矩陣大小(500x500、1000x1000、....5000x5000),測試執行效能。

將執行結果以圖形顯示

上圖X軸是矩陣大小,Y軸是執行時間,矩陣越大,CPU與 GPU的差距越大。也就是說,矩陣越大,越能發揮使用GPU的效能。

以TensorFlow與Keras深度學習模型實際範例,比較CPU與GPU的執行效能

接下來,我們將以實際範例,比較CPU與GPU的執行速度,我們將本書具代表性的範例程式,分別在TensorFlow CPU與GPU虛擬環境中執行:


  • 第18章的Tensorflow_Mnist_MLP_h1000.ipynb (Tensorflow多層感知器辨識手寫數字)
  • 第19章的Tensorflow_Mnist_CNN.ipynb (Tensorflow卷積神經網路辨識手寫數字)
  • 第10章的Keras_Cifar_CNN.ipynb  (Keras卷積神經網路辨識Cifar-10影像)

書中會詳細說明如何在TensorFlow與Keras在CPU與GPU虛擬環境中執行,在這裡我們只整理執行後的結果,如下列表格是:15個訓練週期(epoch)所需時間。

以上執行結果,GPU比起CPU執行時間,平均大約減少了30%。筆者測試的GPU獨立顯示卡,是最入門型的GeForce GT 720,價格不到2000元,有這樣的執行效能還可以接受,您可以選用更高階的顯示卡GPU提高執行效能。

<TensorFlow+Keras深度學習人工智慧實務應用>已經停止銷售

最新版本TensorFlow2+tf.keras是這本書,很適合Deep Learning深度學習入門初學者:
 圖解 TensorFlow 2 初學篇:實作 tf.keras + Colab 雲端、深度學習、人工智慧、影像辨識 

購買本書 限時特價專區》
天瓏網路書店
博客來網路書店

Share on Google Plus

About 林大貴

This is a short description in the author block about the author. You edit it by entering text in the "Biographical Info" field in the user admin panel.
    Blogger Comment
    Facebook Comment

2 意見:

  1. 不好意思 我想請問我安裝tensorflow-gpu後安裝keras也自動安裝tensorflow cpu版所以我用keras在跑好像都是用cpu請問如何指定使用gpu版的tensorflow呢~??

    回覆刪除
  2. 可以到這個網址,安裝有兩種方式
    https://www.tensorflow.org/install/install_windows

    回覆刪除