CUDA與PyCUDA開發環境配置詳情
1、安裝CUDA
1.1安裝前工作
1.1.1選取實驗器材
實驗中的計算機裝有雙系統,是在Windows 7 系統環境下的F盤,安裝了一個Ubuntu14.04 64位的作業系統,配置8G記憶體和80G的儲存。計算機配置有GeForce GTX 650顯示卡,擁有384個CUDA核心。
1.1.2安裝前準備
$ lspci | grep -i nvidia
用以下命令驗證有一個支援CUDA的Linux版本,主要是“x86_64”一項,需要是x86架構,64bit系統:
$ uname -m && cat /etc/*release
用以下命令驗證系統中是否安裝有gcc,Ubuntu14.04預設安裝,沒有的話手動安裝,這個用來編譯CUDA Toolkit:
$ gcc --version
系統中的核心標頭檔案和開發包需要與系統核心版本保持一致,系統核心版本用以下命令確認:
$ uname –r
Ubuntu下安裝對應核心版本的核心標頭檔案和開發包的命令如下:
$ sudo apt-get install linux-headers-$(uname -r)
以下命令安裝必要的庫檔案:
$ sudo apt-get update
$ sudo apt-get install build-essential
去NVIDIA官網(https://developer.nvidia.com/cuda-downloads)下載最新版本的RUN包,本實驗用到的是cuda_7.5.18_linux.run
$ sudo ./ cuda_7.5.18_linux.run –extract=/home/hadoop/
解壓後在目的資料夾下生成三個檔案,分別為驅動檔案(NVIDIA-Linux-x86_64-352.39.run),CUDA安裝包(cuda-linux64-rel-7.5.18-19867135.run),Samples包(cuda-samples-linux-7.5.18-19867135.run)。
1.2安裝NVIDIA顯示卡驅動
1.2.1刪除原有顯示卡驅動
可以通過以下命令刪除Ubuntu自帶的NVIDIA顯示卡驅動:
$ sudo apt-get remove nvidia*
$ sudo apt-get autoremove
1.2.2禁止其它顯示卡驅動執行
需要將Ubuntu整合的NVIDIA驅動加入黑名單,防止驅動衝突導致後期黑屏。具體地,通過修改/etc/modprobe.d/blacklist.conf檔案:
$ sudo gedit /etc/modprobe.d/blacklist-nouveau.conf
在blacklist-nouveau.conf中寫入:
blacklist nouveau
blacklist lbm-nouveau
options nouveau modeset=0
alias nouveau off
alias lbm-nouveau off
儲存並退出,這樣就已經禁止了其它顯示卡驅動。
或者,也可以通過以下兩個命令來禁止顯示卡驅動:
$ echo options nouveau modeset=0 | sudo tee -a/etc/modprobe.d/nouveau-kms.conf
$ sudoupdate-initramfs -u
1.2.3重啟計算機
重啟計算機之後,通過Ctrl+Alt+F1(或者 F2 ~ F6) 切換到命令控制檯,按照命令列提示輸入計算機的使用者名稱和密碼,進入之後,用以下命令關閉桌面服務:
$ sudo stoplightdm
1.2.4安裝驅動
在/home/hadoop/檔案路徑下,對已經解壓好的驅動檔案NVIDIA-Linux-x86_64-352.39.run,設定為可執行許可權,並執行。
$ cd /home/hadoop/
$ sudo chmod +x NVIDIA-Linux-x86_64-352.39.run
$ sudo sh NVIDIA-Linux-*-346.35.run
按照螢幕上的提示執行下去即可,直到顯示安裝成功介面。
1.2.4重啟計算機
執行以下命令儲存新的NVIDIA配置:
$ sudo nvidia-xconfig
1.2.5驅動重灌
如果安裝失敗,或者更換驅動版本,則需要解除安裝先前驅動,具體地:
重啟計算機,按下Ctrl+Alt+F1(或者 F2 ~ F6) 切換到命令控制檯,關閉桌面服務,將驅動檔案所在目錄定位到當前目錄,通過以下命令解除安裝即可:
$ cd /home/hadoop/
$ sudo sh NVIDIA-Linux-x86_64-352.39.run --uninstall
通過以下操作刪除先前配置的檔案:
$ cd /etc/modprobe.d/
$ sudo rm blacklist-nouveau.conf nouveau-kms.conf
$ sudo update-initramfs –u
這樣就成功解除安裝了安裝的NVIDIA驅動,如果希望重灌,按照上面的步驟再操作即可。可以通過重啟計算機或者以下命令開啟桌面服務:
$ sudo start lightdm
1.3安裝CUDA
1.3.1 安裝操作
在/home/hadoop/檔案路徑下有解壓後的CUDA安裝包cuda-linux64-rel-7.5.18-19867135.run,對它設定為可執行許可權,並執行。
$ cd /home/hadoop/
$ sudo chmod +x cuda-linux64-rel-7.5.18-19867135.run
$ sudo ./cuda-linux64-rel-7.5.18-19867135.run
然後按照提示安裝即可,我們選擇預設的安裝路徑/usr/local/cuda-7.5。
1.3.2修改環境變數
安裝CUDA之後,必須配置正確的環境變數才可以使用。具體地通過編輯~/.bashrc檔案完成。具體操作如下:
$ sudo gedit ~/.bashrc
在~/.bashrc檔案中新增下面內容:
export CUDA_ROOT=$CUDA_ROOT:/usr/local/cuda-7.5
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-7.5/lib64/
export PATH=$PATH:/usr/local/cuda-7.5/bin/
通過下面的操作來使得我們修改的環境變數生效:
$ source ~/.bashrc
1.4 安裝CUDA Samples
Samples包中含有許多CUDA示例,可用來驗證CUDA安裝是否已經成功,通過下面的操作來完成Samples的安裝:
$ cd /home/hadoop/
$ sudo chmod +x cuda-samples-linux-7.5.18-19867135.run
$ sudo ./cuda-samples-linux-7.5.18-19867135.run
本實驗中選擇的安裝路徑為預設安裝路徑/usr/local/cuda-7.5/samples。完成後就可以開始編譯Sample檔案。編譯命令如下:
$ cd /usr/local/cuda-7.5/samples
$ sudo make
等待全部編譯工作完成之後,開始進行驗證操作。具體地:
$ cd /usr/local/cuda-7.5/samples/bin/x86_64/linux/release
$ ./deviceQuery
如果出現對應的顯示卡資訊,就說明CUDA安裝成功。
CUDA安裝路徑為/usr/local/cuda-7.5/,samples安裝路徑為/usr/local/cuda-7.5/samples,成功安裝CUDA之後,再開始接下來的步驟。
2、安裝PyCUDA。
2.1確保CUDA已經正確安裝,並可以通過測試。需要設定$CUDA_ROOT為CUDA的安裝路徑,將$CUDA_ROOT/bin設定在$PATH中。
2.2通過以下命令安裝 Boost C++ 庫。
$ sudo apt-get install libboost-all-dev
2.3通過以下操作安裝numpy
$ sudo apt-get install python-numpy
2.4安裝必要的庫操作
$ sudo apt-get install python-dev python-setuptoolslibboost-python-dev libboost-thread-dev -y
2.5在pycuda官網(https://pypi.python.org/pypi/pycuda)下載最新版本的PyCUDA安裝包pycuda-2015.1.3.tar.gz到/usr/local/目錄下,並解壓。
$ cd /usr/local/
$ sudo tar xzvf pycuda-2015.1.3.tar.gz
2.6修改PyCUDA的配置檔案,操作命令如下:
$ cd /usr/local/pycuda-2015.1.3
$ sudo ./configure.py --cuda-root=/usr/local/cuda-7.5 --cudadrv-lib-dir=/usr/lib/x86_64-linux-gnu--boost-inc-dir=/usr/include --boost-lib-dir=/usr/lib--boost-python-libname=boost_python --boost-thread-libname=boost_thread
2.7為避免找不到nvcc的路徑,可以通過下面的命令進行編譯安裝:
$ sudo env PATH=$PATH make –j 4
$ sudoenv PATH=$PATH python setup.py install
2.8安裝完成後,可以通過測試pycuda-2015.1裡面的例子來驗證安裝:
$ cd /usr/local/pycuda-2015.1.3/examples
$ python demo.py
如果出現正確的矩陣計算結果,則表示PyCUDA安裝成功。
PyCUDA安裝路徑為/usr/local/pycuda-2015.1.3。
以上為本人經過實踐的良心總結,希望能夠對剛開始研究GPU計算的童鞋們有一些幫助,其中可能有些不足之處,還請見諒,希望和大家互相交流共同進步!