1. 程式人生 > >ubuntu16.04安裝 cuda7.5

ubuntu16.04安裝 cuda7.5

在文章開始前,先辨析幾個概念GPU、NVIDIA、NVIDIA驅動、CUDA、cudnn等,這些概念對於一個新手來說肯定是很暈的,正如我當初一樣,所以我這裡就稍微介紹一下這幾個概念:

  • GPU:Graphics Processing Units,也就是我們常說的顯示卡。現在的筆記本或者桌上型電腦都會有顯示卡,但是能夠讓我們用來做平行計算的真正的GPU就只有NVIDIA出產的GPU了。
  • NVIDIA:GPU生產廠商,在運算GPU處於壟斷地位。
  • NVIDIA驅動:就是NVIDIA生產的GPU想在電腦上正常使用所需的驅動。
  • CUDA:Compute Unified Device Architecture,是顯示卡廠商NVIDIA推出的運算平臺。 CUDA是一種由NVIDIA推出的通用並-行計算架構,該架構使GPU能夠解決複雜的計算問題。我們想使用GPU進行深度學習運算的時候,必須要用到這個運算平臺。
  • cudnn:CuDNN是NVIDIA專門針對Deep Learning框架設計的一套GPU計算加速方案,目前支援的DL庫包括Caffe,ConvNet, Torch7等.

安裝cuda7.5

第一步:選擇最新的nvidia驅動(很重要!!!)

   先開啟計算機中的“軟體和更新”,檢視“附加驅動”,選擇nvidia的驅動為最新的驅動。更新完之後最好重啟一下。
我曾經遇到一些錯誤,就是因為我的NVIDIA驅動太老了,而cuda7.5則依賴於比較新的驅動。

第二步:下載cuda

   去官網https://developer.nvidia.com/cuda-downloads

下載,選擇linux——ubuntu——15.04(我安裝的時候還只支援到15.04,沒有支援16.04版本的)——runfile(local)

第三步:安裝PPA軟體管理包工具

什麼是 PPA?
PPA,表示 Personal Package Archives,也就是個人軟體包集。
有很多軟體因為種種原因,不能進入官方的 Ubuntu 軟體倉庫。 為了方便 Ubuntu 使用者使用,launchpad.net 提供了 ppa,允許使用者建立自己的軟體倉庫, 自由的上傳軟體。PPA 也被用來對一些打算進入 Ubuntu 官方倉庫的軟體,或者某些軟體的新版本進行測試。PPA 上的軟體極其豐富,如果 Ubuntu 官方倉庫中缺少您需要的某款軟體,可以去 PPA 上找找看。
我們安裝的cuda可能在Ubuntu倉庫中木有,所以用PPA來下載。

    sudo add-apt-repository ppa:xorg-edgers/ppa
    sudo apt-get update

第四步:執行cuda的.run檔案

   cd到下載的.run資料夾執行:

    sudo ./cuda_7.5.18_linux.run --override

第五步:選擇安裝選項

   選擇安裝選項:(注意:應為之前已經安裝過NVIDIA Display Driver的驅動了(如第一步),所以這裡選擇不安裝NVIDIA Accelerated Graphics Driver for Linux-x86_64 352.39。如果選擇安裝會出現錯誤,並且導致安裝CUDA失敗。

   Do you accept the previously read EULA? (accept/decline/quit): accept
   You are attempting to install on an unsupported configuration. Do you wish to continue? ((y)es/(n)o) [ default is no ]: y
   Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 352.39? ((y)es/(n)o/(q)uit): n
   Install the CUDA 7.5 Toolkit? ((y)es/(n)o/(q)uit): y
   Enter Toolkit Location [ default is /usr/local/cuda-7.5 ]:
   Do you want to install a symbolic link at /usr/local/cuda? ((y)es/(n)o/(q)uit): y
   Install the CUDA 7.5 Samples? ((y)es/(n)o/(q)uit): y
   Enter CUDA Samples Location [ default is /home/kinghorn ]: /usr/local/cuda-7.5
   Installing the CUDA Toolkit in /usr/local/cuda-7.5 ...
   Finished copying samples.

   ===========
   = Summary =
   ===========

   Driver:   Not Selected
   Toolkit:  Installed in /usr/local/cuda-7.5
   Samples:  Installed in /usr/local/cuda-7.5

第六步: 新增cuda到環境變數裡面

     sudo nano /etc/profile.d/cuda.sh
   export PATH=$PATH:/usr/local/cuda/bin
   sudo nano /etc/ld.so.conf.d/cuda.conf
   /usr/local/cuda/lib64
   source /etc/ld.so.conf.d/cuda.confcd /usr/local/cuda-7.5/samples/1_Utilities/deviceQuery
   make
   sudo ./deviceQuery
   sudo ldconfig

第七步:將GCC降級或者採用暴力的方式讓cuda7.5支援高版本GCC。

   由於cuda7.5不支援gcc4.9以上的版本,而ubuntu16.04預設的是gcc5,這會造成安裝的失敗,解決方法有兩種,
1、對gcc進行降級,讓系統採用低版本的GCC,但是這種方式有一定的問題,因為Ubuntu16.04很多系統檔案預設是使用gcc5編譯的,因此如果用降級的方法安裝完cuda後,在後期安裝caffe的時候,可能會報類似於undefined的錯誤,這是因為你的gcc版本低,其所需的系統檔案找不到。.

     sudo apt-get install g++-4.9

   sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 20
   sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 10

   sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9 20
   sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 10

   sudo update-alternatives --install /usr/bin/cc cc /usr/bin/gcc 30
   sudo update-alternatives --set cc /usr/bin/gcc

   sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++ 30
   sudo update-alternatives --set c++ /usr/bin/g++

2、這種方式有點類似於黑箱方式,即強制讓他不報錯。編輯/usr/local/cuda/include/host_config.h,將其中的第115行註釋掉:

將
#error -- unsupported GNU version! gcc versions later than 4.9 are not supported!

改為
//#error -- unsupported GNU version! gcc versions later than 4.9 are not supported!

   上面就是設定gcc版本優先順序的。20和10就代表你所使用的gcc、g++的版本優先順序。

第八步:測試是否安裝成功

執行如下指令,正常情況下會出現裝置中所有的GPU,並把每個GPU的資訊打印出來。

       nvidia-smi

   如果沒有出現錯誤之類的話,就說明安裝成功了。

第九步:測試cuda的Samples


cd /usr/local/cuda-7.5/samples/1_Utilities/deviceQuery
   make
   sudo ./deviceQuery

   如果顯示的是一些關於GPU的資訊,則說明安裝成功了。