安裝CUDA和cuDNN
GPU和CPU區別
1,CPU主要用於處理通用邏輯,以及各種中斷事物
2,GPU主要用於計算密集型程序,可並行運作;
NVIDIA 的 GeForce 顯示卡系列采用 GPU 特性進行快速計算,渲染電腦畫面,比如大型遊戲,圖像處理等場景的畫面
深度學習的訓練過程中,包含了大量重復性的計算,利用 GPU 的計算和並行特性,可提高訓練的效率,具備 GPU 特性的電腦顯卡就有用武之地啦!
使用 GPU 的計算前需要做些準備,下面以 window 7 x64 系統為例子
一,檢查顯卡類型和計算能力
1,查看筆記本顯卡型號,以及計算能力
下載個 GPU 查看器, https://www.techpowerup.com/download/gpu-z/
我筆記本顯卡型號:NVIDIA GeForce 940M
2,確定對應顯卡 GPU 的計算能力
去 NVIDIA 官網查看 https://developer.nvidia.com/cuda-gpus
NVIDIA GeForce 940M Compute Capability 是 5.0
tensorflow 1.3 版本要求 GPU 計算能力必須在 3.0 以上
https://www.tensorflow.org/versions/r1.3/install/install_windows
GPU card with CUDA Compute Capability 3.0 or higher. See NVIDIA documentation for a list of supported GPU cards.
要是計算能力不支持,運行 tensorflow 會報錯
Ignoring visible gpu device (device: 0, name: GeForce GT 630M, pci bus id: 0000:01:00.0) with Cuda compute capability 2.1. The minimum required Cuda capability is 3.0.
二,安裝顯卡驅動, CUDA ,cuDNN
1,安裝顯卡驅動
顯卡一般都安裝好了,但可能會出現顯卡驅動版本跟 CUDA 不對應的問題
自己去 NVIDIA 官網下載驅動 http://www.nvidia.com/Download/index.aspx,或者使用驅動精靈
2,安裝 CUDA
CUDA的主要作用是鏈接 GPU 和 應用程序,方便用戶通過 CUDA 的 API 調度 GPU 進行計算
安裝說明地址:http://docs.nvidia.com/cuda/cuda-installation-guide-microsoft-windows/
選擇對應版本,window7 系統 64 位, tensorflow 1.3 當前使用 CUDA 8.0版本
安裝 cuda 的時候,會詢問是否安裝顯卡驅動,說明 cuda 安裝程序裏包含了的顯卡驅動;
建議先不要安裝 cuda 裏的顯卡驅動,待安裝完 cuda 後,執行例子程序,如果報錯再檢查顯卡驅動是否正確,避免覆蓋原來的顯卡驅動
安裝完後執行 nvcc -V 檢查
C:\Users\yunhuichen>nvcc -V nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2016 NVIDIA Corporation Built on Mon_Jan__9_17:32:33_CST_2017 Cuda compilation tools, release 8.0, V8.0.60
運行例子
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\extras\demo_suite>device Query.exe deviceQuery.exe Starting... CUDA Device Query (Runtime API) version (CUDART static linking) Detected 1 CUDA Capable device(s) Device 0: "GeForce 940M" CUDA Driver Version / Runtime Version 9.0 / 8.0 CUDA Capability Major/Minor version number: 5.0 Total amount of global memory: 1024 MBytes (1073741824 bytes) ( 3) Multiprocessors, (128) CUDA Cores/MP: 384 CUDA Cores GPU Max Clock rate: 980 MHz (0.98 GHz) Memory Clock rate: 1001 Mhz Memory Bus Width: 64-bit L2 Cache Size: 1048576 bytes Maximum Texture Dimension Size (x,y,z) 1D=(65536), 2D=(65536, 65536), 3D=(4096, 4096, 4096) Maximum Layered 1D Texture Size, (num) layers 1D=(16384), 2048 layers Maximum Layered 2D Texture Size, (num) layers 2D=(16384, 16384), 2048 layers Total amount of constant memory: 65536 bytes Total amount of shared memory per block: 49152 bytes Total number of registers available per block: 65536 Warp size: 32 Maximum number of threads per multiprocessor: 2048 Maximum number of threads per block: 1024 Max dimension size of a thread block (x,y,z): (1024, 1024, 64) Max dimension size of a grid size (x,y,z): (2147483647, 65535, 65535) Maximum memory pitch: 2147483647 bytes Texture alignment: 512 bytes Concurrent copy and kernel execution: Yes with 1 copy engine(s) Run time limit on kernels: Yes Integrated GPU sharing Host Memory: No Support host page-locked memory mapping: Yes Alignment requirement for Surfaces: Yes Device has ECC support: Disabled CUDA Device Driver Mode (TCC or WDDM): WDDM (Windows Display Driver Mo del) Device supports Unified Addressing (UVA): Yes Device PCI Domain ID / Bus ID / location ID: 0 / 4 / 0 Compute Mode: < Default (multiple host threads can use ::cudaSetDevice() with device simu ltaneously) > deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 9.0, CUDA Runtime Versi on = 8.0, NumDevs = 1, Device0 = GeForce 940M Result = PASS C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\extras\demo_suite>
至此已經安裝 cuda 成功
當然此過程可能會遇到以下問題
NVIDIA Geforce GTX 940M 設備是不可移動的,無法彈出或拔出
這是因為顯卡驅動和CUDA版本不對應,可試下安裝CUDA裏的顯卡驅動
3,安裝 cuDNN
cuDNN 是一個為了優化深度學習計算的類庫,它能將模型訓練的計算優化之後,再通過 CUDA 調用 GPU 進行運算
當然你也可直接使用 GUDA,而不通過 cuDNN ,但運算效率會低好多
cuDNN 下載地址:https://developer.nvidia.com/cudnn
選擇跟CUDA 8.0 對應的版本 cuDNN 6.1
其實就幾個 lib 文件,解壓出來把安裝路徑添加到 PATH 中;你也可以把所有 lib 文件復制到 CUDA 對應目錄下
安裝CUDA和cuDNN