隨著深度學習快速發展的浪潮,許多有興趣的工作者都轉入了這個有著很好前景的研究中。工欲善其事,必先利其器。Caffe是一個很不錯的深度學習框架,但它的安裝步驟比較繁瑣,將許多新手拒之門外,於是我就寫了這篇博客,主要是我之前安裝Caffe也是費了很多時間,由零基礎慢慢學習,很羨慕那些有師兄師姐可以幫助的人。
下面開始正式介紹相關安裝步驟,該教程主要包括以下幾方面的內容:
第一部分:安裝所需要的包
第二部分:NVIDIA 驅動和CUDA 安裝
第三部分:Caffe安裝和測試
第一部分:安裝所需要的包
sudo apt-get install build-essential # basic requirement sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler #required by caffe
提示:使用 sudo apt-get install libboost-all-dev ,默認安裝boost1.54版本,如果想要使用1.55版本,可以使用命令:sudo apt-get install libboost1.55-all-dev(推薦)
Ubuntu 14.04 安裝配置CUDA http://www.linuxidc.com/Linux/2014-10/107501.htm
Ubuntu 12.04配置NVIDIA CUDA5.5實錄 http://www.linuxidc.com/Linux/2014-10/107502.htm
Ubuntu安裝Theano+CUDA http://www.linuxidc.com/Linux/2014-10/107503.htm
關於Ubuntu 12.04 下 CUDA5.5 的安裝請參看如下鏈接 Ubuntu 12.04 安裝 CUDA-5.5
Ubuntu 16.04 LTS+NVIDIA@GT620M+CUDA6.5環境搭建總結 http://www.linuxidc.com/Linux/2016-10/135911.htm
重要提示:安裝完Ubuntu系統以及CUDA之後,切莫進行系統更新,會引起不能正常進入桌面的情況,會令你很煩惱的。
安裝之前請進行md5檢驗,確保安裝包完整,檢驗命令為:md5sum 文件名,查看輸出的md5sum是否跟你有的相同。
以cuda-repo-ubuntu1404-7-0-local_7.0-28_amd64.deb為例
目前CUDA官網已經提供離線*.deb安裝的方法,本教程提供兩種安裝方法(*.deb和*.run)
此方法不用切換到文本模型即可安裝。
(2.1.1)首先下載 對應系統的 離線CUDA安裝包 (*.deb) 鏈接:https://developer.nvidia.com/cuda-toolkit
(2.1.2)安裝下載到的 CUDA離線包 (cuda-repo-ubuntu1404-7-0-local_7.0-28_amd64.deb)
添加軟件源 sudo dpkg -i cuda-repo-<distro>_<version>_<architecture>.deb 更新軟件源 sudo apt-get update 安裝CUDA sudo apt-get install cuda 重啟計算機(通過boot設置獨立顯卡支持) sudo reboot
(2.1.3)修改環境變量
1)在 /etc/profile 文件中添加以下內容:
export PATH=/usr/local/cuda-7.0/bin:$PATH
命令:
2)使環境變量生效
命令:
source /etc/profile
(2.1.4)添加lib庫路徑
1)在 /etc/ld.so.conf.d/ 文件夾下添加 cuda.conf 文件,內容如下:
/usr/local/cuda-7.0/lib64
2)使庫路徑立即生效
sudo ldconfig [-v,可選]
(2.1.5)安裝CUDA Samples
命令:
sudo sh cuda-samples-linux-6.5.14-18745345.run
一直aceept就行,建議使用默認路徑。
編譯CUDA Samples
命令:
cd /usr/local/cuda-6.5/samples sudo make
編譯完成後,進入路徑:/samples/bin/x86_64/linux/release
運行命令:
./deviceQuery
輸出:
./deviceQuery Starting... CUDA Device Query (Runtime API) version (CUDART static linking) Detected 1 CUDA Capable device(s) Device 0: "Tesla K40c" CUDA Driver Version / Runtime Version 6.5 / 6.5 CUDA Capability Major/Minor version number: 3.5 Total amount of global memory: 11520 MBytes (12079136768 bytes) (15) Multiprocessors, (192) CUDA Cores/MP: 2880 CUDA Cores GPU Clock rate: 745 MHz (0.75 GHz) Memory Clock rate: 3004 Mhz Memory Bus Width: 384-bit L2 Cache Size: 1572864 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 2 copy engine(s) Run time limit on kernels: No Integrated GPU sharing Host Memory: No Support host page-locked memory mapping: Yes Alignment requirement for Surfaces: Yes Device has ECC support: Enabled Device supports Unified Addressing (UVA): Yes Device PCI Bus ID / PCI location ID: 1 / 0 Compute Mode: < Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) > deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 6.5, CUDA Runtime Version = 6.5, NumDevs = 1, Device0 = Tesla K40c Result = PASS如果輸出上述信息,恭喜你,NVIDIA和CUDA安裝成功,則可以繼續進行下一步安裝Caffe環境。
(2.1.6)驗證NVIDIA 驅動和CUDA是否安裝成功
查看安裝NVIDIA驅動版本 命令:
輸出
NVRM version: NVIDIA UNIX x86_64 Kernel Module 340.96 Sun Nov 8 22:33:28 PST 2015 GCC version: gcc version 4.7.3 (Ubuntu/Linaro 4.7.3-12ubuntu1)
從輸出信息可以看出NVIDIA驅動版本為 340.96
安裝完成後,就可以重新啟動桌面服務了。
命令:
使用該方法安裝,可能需要嘗試多次安裝
(2.2.1)驗證顯卡是否支持CUDA
命令:
lspci | grep -i nvidia
查看該計算機顯卡是否存在於 鏈接 https://developer.nvidia.com/cuda-gpus 中。
(2.2.2)驗證系統,確定為x86架構,64bit系統
命令:
uname -m && cat /etc/*release
輸出:
x86_64 DISTRIB_ID=Ubuntu DISTRIB_RELEASE=14.04 DISTRIB_CODENAME=trusty DISTRIB_DESCRIPTION="Ubuntu 14.04.2 LTS" NAME="Ubuntu" VERSION="14.04.2 LTS, Trusty Tahr" ID=ubuntu ID_LIKE=debian PRETTY_NAME="Ubuntu 14.04.2 LTS" VERSION_ID="14.04" HOME_URL="http://www.ubuntu.com/" SUPPORT_URL="http://help.ubuntu.com/" BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
(2.2.3)驗證系統中是否已經安裝gcc,因為需要用gcc來編譯CUDA和Caffe
命令:
gcc --version
(2.2.4)NVIDIA和CUDA安裝(*.run)
安裝之前請進行md5sum檢驗,確保安裝包完整,檢驗命令為:md5sum 文件名,查看輸出的md5sum是否跟你有的相同。
該方法以 CUDA6.5 為例。
(2.2.4.1)首先下載 對應系統的 離線CUDA安裝包 (*.run) 鏈接:https://developer.nvidia.com/cuda-toolkit
(2.2.4.2)關閉桌面服務
進入Ubuntu, 按 Ctrl+Alt+F1 進入tty, 登錄tty後輸入如下命令:sudo service lightdm stop。
此命令會關閉lightdm服務,如果你使用的是gdm或者其他的桌面服務,請在安裝NVIDIA顯卡驅動前關閉它。
(2.2.4.3)關閉 Nouveau 開源驅動服務
Nouveau是一個開源的顯卡驅動,Ubuntu 14.04 默認安裝了,但是它會影響nVidia驅動的安裝,啟動時需要將這個驅動加入黑名單中。
1):修改nvidia-graphics-drivers.conf文件
sudo vim /etc/modprobe.d/nvidia-graphics-drivers.conf
寫入:
blacklist nouveau
保存並退出:
wq!
檢查:
cat nvidia-graphics-drivers.conf
2):修改grub文件
末尾寫入:
rdblacklist=nouveau nouveau.modeset=0
保存並退出:
wq!
檢查:
cat /etc/default/grub
(2.2.4.4)安裝下載到的 CUDA離線包 (*.run)
1):安裝 *.run文件,可以直接使用命令 sudo sh cuda_6.5.14_linux_64.run 一直aceept就行。
或者
由於CUDA安裝包中NVIDIA驅動的版本並不保證是最新的,也不一定適合你的計算機的顯卡,所以建議使用下面這種方式分開安裝,如果NVIDIA驅動版本和CUDA版本不對應的話,會導致CUDA安裝失敗,或者進入不了桌面服務。可以去NVIDIA官網 下載對應你的顯卡的驅動的最新版,至少要高於CUDA安裝包中自帶的NVIDIA版本。
通過下列命令
cuda_6.5.14_linux_64.run --extract=extract_path
將下載得到的 *.run 文件解壓成三個文件, 分別為
CUDA安裝包: cuda-linux64-rel-6.5.14-18749181.run
NVIDIA安裝包: NVIDIA-Linux-x86_64-340.65.run
CUDA Samples安裝包:cuda-samples-linux-6.5.14-18745345.run
分別運行各個文件,運行前,需要將文件權限修改為可執行權限
命令:
chmod +x *.run
2):安裝CUDA
命令:
sudo sh cuda-linux64-rel-6.5.14-18749181.run
一直aceept就行,建議使用默認路徑。
安裝NVIDIA(如果沒有NVIDIA顯卡,可跳過該步驟,仍可使用Caffe的CPU模式)
命令:(不建議使用)
sudo sh NVIDIA-Linux-x86_64-340.65.run
一直aceept就行,建議使用默認路徑。
3):建議方法(僅限於使用CUDA6.5,如果你需要使用更新的CUDA版本,請去NVIDIA官網 下載對應你的顯卡的驅動的最新版,至少要高於CUDA安裝包中自帶的NVIDIA版本,然後單獨安裝顯卡驅動。鏈接:http://www.nvidia.cn/Download/index.aspx?lang=cn)
1:添加驅動源
sudo add-apt-repository ppa:xorg-edgers/ppa sudo apt-get update
2:安裝340版驅動 (CUDA 6.5.14目前最高僅支持340版驅動, 343, 346版驅動暫不支持)
sudo apt-get install nvidia-340
3:安裝完成後, 繼續安裝下列包 (否則在運行sample時會報錯)
sudo apt-get install nvidia-340-uvm
4:安裝完成後,最好重啟計算機,讓NVIDIA顯卡工作
(2.2.4.5)安裝CUDNN(可選)
1):下載 cudnn-6.5-linux-x64-v2 點擊下載,然後執行以下命令安裝
tar -zxvf cudnn-6.5-linux-x64-v2.tgz cd cudnn-6.5-linux-x64-v2 sudo cp lib* /usr/local/cuda-6.5/lib64/ sudo cp cudnn.h /usr/local/cuda-6.5/include/
2):更新軟連接
(2.2.4.6)修改環境變量
1):在 /etc/profile 文件中添加以下內容:
命令:
2):使環境變量生效
命令:
source /etc/profile
(2.2.4.7)添加lib庫路徑
1):在 /etc/ld.so.conf.d/ 文件夾下添加 cuda.conf 文件,內容如下:
2):使庫路徑立即生效
(2.2.4.8)安裝CUDA Samples
命令:
sudo sh cuda-samples-linux-6.5.14-18745345.run
一直aceept就行,建議使用默認路徑。
編譯CUDA Samples
命令:
編譯完成後,進入路徑:/samples/bin/x86_64/linux/release
運行命令:
./deviceQuery
輸出:
./deviceQuery Starting... CUDA Device Query (Runtime API) version (CUDART static linking) Detected 1 CUDA Capable device(s) Device 0: "Tesla K40c" CUDA Driver Version / Runtime Version 6.5 / 6.5 CUDA Capability Major/Minor version number: 3.5 Total amount of global memory: 11520 MBytes (12079136768 bytes) (15) Multiprocessors, (192) CUDA Cores/MP: 2880 CUDA Cores GPU Clock rate: 745 MHz (0.75 GHz) Memory Clock rate: 3004 Mhz Memory Bus Width: 384-bit L2 Cache Size: 1572864 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 2 copy engine(s) Run time limit on kernels: No Integrated GPU sharing Host Memory: No Support host page-locked memory mapping: Yes Alignment requirement for Surfaces: Yes Device has ECC support: Enabled Device supports Unified Addressing (UVA): Yes Device PCI Bus ID / PCI location ID: 1 / 0 Compute Mode: < Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) > deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 6.5, CUDA Runtime Version = 6.5, NumDevs = 1, Device0 = Tesla K40c Result = PASS如果輸出上述信息,恭喜你,NVIDIA和CUDA安裝成功,則可以繼續進行下一步安裝Caffe環境。
(2.2.4.9)驗證NVIDIA 驅動和CUDA是否安裝成功
查看安裝NVIDIA驅動版本 命令:
cat /proc/driver/nvidia/version
輸出
從輸出信息可以看出NVIDIA驅動版本為 340.96
安裝完成後,就可以重新啟動桌面服務了。
命令:
sudo start lightdm