配置
筆者使用Dell Inspiron 7559筆記本電腦,顯卡為NVIDIA GTX 960M。
目標
由於本機顯卡僅有nvidia-384驅動包能夠良好支持(nvidia-387、nvidia-390包均在本機出現了系統無法登陸等異常),而CUDA 9.1需要驅動至少為nvidia-387,故選擇安裝CUDA 9.0及cuDNN7.0。
TensorFlow 1.8完全支持CUDA 9.0因此可以使用最新版。
安裝顯卡驅動
使用apt安裝nvidia-384驅動包(實際安裝驅動為390):
sudo apt-get install nvidia-384
安裝完成后重啟系統。
運行命令
nvidia-smi
若能夠顯示顯卡當前運行狀況(表格)則代表驅動安裝成功。
安裝CUDA 9.0
准備工作
CUDA及TensorFlow體積均較大且下載源在國外,請找到一個良好的網絡環境。可以尋找適當的國內鏡像。
從NVIDIA官網Legacy Releases下載CUDA 9.0版本的.run安裝包(https://developer.nvidia.com/cuda-90-download-archive)。
由於CUDA 9.0僅支持GCC 6.0及以下版本,而Ubuntu 18.04預裝GCC版本為7.3,故手動安裝gcc-6與g++-6:
sudo apt-get install gcc-6 g++-6
之后切換至/usr/bin目錄修改符號鏈接,使GCC 6成為默認使用版本:
cd /usr/bin
sudo rm gcc
sudo ln -s gcc-6 gcc
sudo rm g++
sudo ln -s g++-6 g++
安裝
為CUDA 9.0安裝包賦予運行權限並運行之:
chmod 775 cuda_9.0.176_384.81_linux.run
sudo ./cuda_9.0.176_384.81_linux.run --no-opengl-libs
安裝過程中選擇不安裝驅動,僅安裝CUDA與Samples。若提示"You are attempting to install on an unsupported configuration."選擇y強制安裝(如果前面修改了GCC版本,此處應不報該錯誤)。
安裝完成后若提示安裝失敗,可參考錯誤提示增加--override
參數重新安裝。
測試
進入Samples所在目錄(默認為~/NVIDIA_CUDA-9.0_Samples),運行命令(所需時間較長)
make
(若不願等候太長時間也可進入子目錄單獨make一些示例程序)
若編譯成功(可能有warning)則可以進入bin目錄運行其中的程序。以上皆成功時,則CUDA安裝成功。
安裝cuDNN 7.0
仍從NVIDIA官網下載cuDNN 7.0,注意需要注冊nvidia賬戶才能下載。
之后正常安裝其所有包(筆者使用的是.deb包)
sudo dpkg -i libcudnn7_7.0.4.31-1+cuda9.0_amd64.deb libcudnn7-dev_7.0.4.31-1+cuda9.0_amd64.deb libcudnn7-doc_7.0.4.31-1+cuda9.0_amd64.deb
安裝TensorFlow 1.8
使用pip安裝。若無pip則首先安裝pip:
sudo apt-get install python3-pip
#若Python2則為
#sudo apt-get install python-pip
之后安裝TensorFlow:
由於pip官方源下載速度較慢,可以參考網上辦法修改pip源至國內鏡像,例如清華大學TUNA鏡像
sudo pip3 install tf-nightly-gpu
安裝完成后運行TF示例程序,檢查TensorFlow是否順利運行。
最后的強迫症
以上步驟均完成后,可將默認GCC版本改回7.3,經筆者實測,應不影響TensorFlow的正常使用。
命令:
cd /usr/bin
sudo rm gcc
sudo ln -s gcc-7 gcc
sudo rm g++
sudo ln -s g++-7 g++