1. 程式人生 > >Win7 中安裝Theano及配置CUDA以搭建GPU加速環境

Win7 中安裝Theano及配置CUDA以搭建GPU加速環境

      根據官方文件來安裝theano庫會顯得比較繁瑣,在此介紹一種簡潔的配置方式,包含以下4步(以64位Win7環境為例):
1) 安裝TDM-GCC     (64位)
2)安裝Anaconda      (64位)
3)安裝Theano
4)安裝CUDA             (64位)

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

1.安裝TDM-GCC

    現在的Thenao庫需要編譯C程式碼,因此我們需要安裝GCC編譯器。在http://tdm-gcc.tdragon.net/中下載64位的TDM-GCC 進行安裝即可。安裝完後,在系統環境變數中新增環境變數:
  PATH=C:\TDM-GCC-64\bin     [紅色部分為預設安裝路徑]
設定完後,在cmd.exe中通過命令 gcc –v 驗證是否安裝成功.


2.安裝Anaconda
    在官網https://www.continuum.io/downloads#_windowshttps://repo.continuum.io/archive/中下載相應版本的anaconda安裝包.我電腦是64位的,故下載的64位的安裝包Anaconda2-2.4.0-Windows-x86.exe,直接安裝即可.
   安裝好Anaconda後,在cmd.exe(命令提示符)中輸入python命令檢視安裝結果

  如果輸入python命令,可能是環境變數沒有設定,可通過命令echo %PATH% 檢視是否有關於Anaconda的環境變數,如果沒有,在系統變數PATH中新增:
     E:\Installsoftware\Anaconda                    [anaconda的安裝目錄,根據實際情況更改]
     E:\Installsoftware\Anaconda\Scripts

3.安裝Theano
  兩種方法:
1)直接在cmd.exe 中輸入命令:pip install theano,安裝成功後會在 E:\Installsoftware\Anaconda\Lib\site-packages (紅色部分為Anaconda的安裝目錄)中出現於theano相關的兩個目錄。
2) 在
https://github.com/Theano/Theano
中打包下載Theano,然後解壓進入目錄,在cmd.exe中輸入python setup.py install 命令執行安裝指令碼,成功後,在E:\Installsoftware\Anaconda\Lib\site-packages 中也會出現與Theano相關的兩個目錄。
安裝Theano後,新建系統環境變數:
    PYTHONPATH :  E:\Installsoftware\Anaconda\Lib\site-packages\theano

 然後在 C:\Users\**\ 目錄(**指使用者名稱)下新建.theanorc.txt檔案(注意檔名最前面有”.”),在檔案中配置如下:

[blas]
ldflags=

[gcc]
cxxflags = -IC:\TDM-GCC-64
紅色部分為TCD-GCC的安裝目錄。儲存配置檔案,在cmd.exe中輸入python命令,然後輸入import theano 命令,結果如下:

   至此,theano已經安裝成功。然而此時的深度學習相關的演算法,只能在CPU上執行。如若想提高執行效率,可以通過搭建GPU加速環境來實現。為此我們需要安裝CUDA。
4.安裝CUDA
    在官網https://developer.nvidia.com/cuda-toolkit-archive中下載相應版本,但是所下載的版本位數需與電腦位數匹配,否則安裝不上CUDA.安裝CUDA後,會自動生成與CUDA相關的環境變數(可以在cmd.exe中通過命令echo %PATH%檢視),然後通過nvcc –V 命令(注意V大寫)檢視安裝詳情。

     NVCC的編譯器可以是VS2008,VS2010,VS2013,VCForPython等。如果沒有安裝NVCC相應的編譯器,推薦安裝VCForPython(安裝速度快)。最後在 .theanorc.txt 中增添配置資訊:

[nvcc]
fastmath = True
flags=-LE:\Installsoftware\Anaconda\libs
compiler_bindir=E:\Installsoftware\VS2010\VC\bin
flags = -arch=sm_12
base_compiledir=path_to_a_directory_without_such_characters
 
[global]
openmp = False
floatX = float32
device = gpu0
allow_input_downcast=True
需要說明的是:
 紅色部分第一行:表示Anaconda安裝目錄下的Libs目錄
 紅色部分第二行:表示nvcc的編譯器是VS2010,由於我電腦中安裝有VCForPython ,因此也可以將其更換成C:\Program Files (x86)\Common Files\Microsoft\Visual C++ forPython\9.0\VC  (VCForPython的預設安裝目錄),
 紅色部分第三行:這一行我也不懂什麼意思,在其他資料中看到基本是將-arch設定為-arch=sm_30,但是我這樣設定在import theano時會報錯:Invalid device function. 因此更改為了sm_12,可以解決這個問題。
  至此GPU加速環境搭建完成,輸入import theano命令後,會發現多了一行顯示卡資訊,表明安裝成功:


------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

注意事項:
1) 版本的一致性:Windows版本與CUDA的一致性,以及CUDA與Anconda,TDM-GCC之間的一致性。
2) GCC編譯器問題:
     早期的Anaconda版本會自帶MinGW,安裝後在Anconda安裝目錄下會有一個MinGW目錄,因此我們可以不必安裝TDM-GCC,直接設定MinGW的環境變數,然後在.theanorc.txt中的[gcc]選項中將flags設定為MinGW的路徑即可;新版本的Anaconda版本沒有自帶MinGW,我們可以在安裝Anconda後,在cmd.exe中輸入:conda install mingw libpython 來安裝MinGW,這樣也不必安裝TDM-GCC。
 MinGW的環境變數PATH配置如下:
     E:\Installsoftware\Anaconda\MinGW\bin
     E:\Installsoftware\Anaconda\MinGW\x86_64-w64-mingw32\lib        [紅色部分為Anaconda的安裝路徑]