---------[2017.07.20 更新]--------升级cuda到8.0,找不到各种库----------------------------------
cuda7.5各种不适用, 就给卸了重新安装了8.0,结果caffe不能用了.
卸载cuda强烈建议用 /usr/local/cuda/bin/uninstall*** 这个脚本
1. 找不到 libcudart.so.7.5
地址:https://pan.baidu.com/s/1hbiTi99FPAz4hktXg9LV6g
放到: /usr/lib
sudo ldconfig /usr/local/cuda/lib64
2. 找不到 libjpeg.so.62
地址:https://pan.baidu.com/s/1XbqoMWyLswjQ4vpkizZdFw
放到: /usr/lib
执行:
cd /usr/lib
sudo ln -s libjpeg.so.62.0.0 libjpeg.so.62
sudo ln -s libjpeg.so.62.0.0 libjpeg.so
重新编译caffe,make runtest 时候提示driver版本和lib版本对不上。
重新安装cuda的时候会安装最新版显卡驱动375.66,但我发现当前显卡驱动还是375.39
查询显卡驱动的几个命令:
nvidia-settings -q NvidiaDriverVersion
cat /proc/driver/nvidia/version
nvidia-smi
所以要彻底卸载显卡驱动和cuda,并重新安装。
执行: 按ctrl + alt + F1
sudo apt-get --purge remove nvidia-375 cuda
sudo apt-get install nvidia-375
sudo reboot
重启电脑后重新安装一次cuda就都OK了
------------------------【2017.06.01 更新】安装好openblas后,make编译不通过------------------------------------
提示错误:
/usr/bin/ld: cannot find -lopenblas
解决办法是:
sudo ln -s /opt/OpenBLAS/lib/libopenblas.so /usr/lib/libopenblas.so
---------------------------------------【5.26 更新】安装openblas----------------------------------------------------------------
先吐槽一下之前那台新电脑,跑了一下午数据后,CPU挂了,i7 6950 。。。噗哈哈哈,借的电脑还回去了。IT估计哭了。
对于没有nvidia 显卡的朋友(你真穷!),总要想尽办法加快计算速度。caffe默认的Atlas,只能单线程运算。所以这里更新一下如何安装Openblas来多线程运算,能大大加快CPU运算速度。
cd /path/to/caffe
git clone https://github.com/xianyi/OpenBLAS.git
cd OpenBLAS
make -j4
sudo make install
BLAS := open
BLAS_INCLUDE := /opt/OpenBLAS/include
BLAS_LIB := /opt/OpenBLAS/lib
修改环境变量
export OPENBLAS_NUM_THREADS=4 #这里注意你CPU多少线程的写多少,不过!一般满线程计算速度反而慢呢!
export LD_LIBRARY_PATH=/opt/OpenBLAS/lib/:$LD_LIBRARY_PATH
更新环境变量
source /etc/profile
make clean
make all -j4
make test
make runtest
make pycaffe
---------------------------------【5.24 更新】 ------------------------------------------------------
公司电脑有毒!!新来台电脑给安装caffe,果然又出新问题!!!!!!!!
caffe目录下 make all -j8 提示
nvcc warning : The 'compute_20', 'sm_20', and 'sm_21' architectures are deprecated, and may be removed in a future release (Use -Wno-deprecated-gpu-targets to suppress warning).
并且在训练的时候提示cudnnsucess错误(11 VS. 0) ,我也记不清了,大概是这个错误提示。
在修改makefile.config无果后,找到了下面的方法:
cd caffe
make clean
mkdir build
sudo apt-get install cmake-qt-gui
cmake-gui
Where is he source code 选定caffe目录
where to build the binaries选定caffe下新建的build目录
Search填入NVCC
右边Advance打上勾
在CUDA_NVCC_FLAGS 后边 填上 --Wno-deprecated-gpu-targets
点击下边Configure
然后点击 Generate
cd build
make install -j8
等编译完成就搞定了。
参考自:http://blog.csdn.net/10km/article/details/61619573
>>>>>>>>>>>>>>>>>>>>>>>>> 下面开始是正文 >>>>>>>>>>>>>>>>>>>>>>>>>>>
最近在家把双系统(主系统WIN8,副系统Ubuntu14.04)搞定了,准备周末没事自己在家跑跑数据啥的。正好这次也把在Ubuntu14.04系统下caffe和对应GPU加速的安装指南写一下。
我电脑的配置如下:
Intel® Core™ i7-7700K CPU @ 4.20GHz × 8
GeForce GTX 1070
64-bit
驱动信息:
关于驱动大家可以去 系统设置-软件和更新-额外驱动(最后一栏)中查看,
一般是有两个,一个是NVIDIA的,一个是X.Org,选择NVIDIA的为当前驱动。
没安装nvidia驱动的话在这里也可以自动安装,自动安装版本都是最新的375.39。
如果你的是老版本,可以更新到最新版本。
或者通过下面安装CUDA也会直接安装最新版本的显卡驱动
>>>>>>>>>>>>>>>>>>>>>出问题看这里>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
这时候需要注意个问题,在运行第二步sample的时候如果不通过。可以尝试运行下面命令解决问题:
cd /usr/local/cuda/
find . -type f -execdir sed -i 's/UBUNTU_PKG_NAME = "nvidia-xxx"/UBUNTU_PKG_NAME = "nvidia-375"/g' '{}' \; #xxx是你老版本的型号。
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
如果你不需要gpu加速,或者之前已经安装好了。可以跳过1和2,直接看caffe安装指南。
先去官网下载安装包https://developer.nvidia.com/cuda-downloads
下载local .deb安装包,cd到目录运行
sudo dpkg -i xxxxxxxxx
sudo apt-get update
sudo apt-get install cuda
也是先去官网注册下载https://developer.nvidia.com/cudnn
不麻烦的,有点耐心弄。
下载这个要注意如果你是gtx1070以上的显卡要下载安装cuDNN5.0以上版本的库才行,
而且还要跟你的CUDA版本对应好。
下载好cd到目录运行:
tar -zxvf cudnn-8.0-linux-x64-v5.1.tgz
cd cuda/lib64/
sudo cp lib* /usr/local/cuda/lib64/
cd ../include
sudo cp cudnn.h /usr/local/cuda/include/
更新软连接
cd /usr/local/cuda/lib64/
这里最好去上面 cuda/lib64/ 目录下对照着来
sudo rm -rf libcudnn.so libcudnn.so.5
sudo ln -s libcudnn.so.5.1.10 libcudnn.so.5
sudo ln -s libcudnn.so.5 libcudnn.so
设置环境变量
sudo gedit /etc/profile
末尾加上
export PATH=/usr/local/cuda-8.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH
保存好退出
刷新,使之生效
source /etc/profile
安装Sample
cd /usr/local/cuda/samples
sudo make all -j8
-j后面的数字根据自己电脑配置来,CPU线程数。
这里要注意有可能会因为g++/gcc版本问题导致编译出错。
需要重新安装一个老版本的g++/gcc-4.7
我的是4.8版本的,编译一切顺利。如果没出问题就不要作死降版本了啊。
下面是我的版本截图:
--------------------------安装gcc-4.7--------------------------------------------------------------
先下载安装:
sudo apt-get install -y gcc-4.7
sudo apt-get install -y g++-4.7
然后更新软连接实现降版本
cd /usr/bin
sudo rm gcc
sudo ln -s gcc-4.7 gcc
sudo rm g++
sudo ln -s g++-4.7 g++
查看是否降版本成功
gcc --version
g++ --version
------------------------------------------------------------------------------------------------------------
最后查看驱动是否安装成功
cd bin/x86_64/linux/release
./deviceQuery
出现PASS即为安装成功。
./deviceQuery Starting...
CUDA Device Query (Runtime API) version (CUDART static linking)
Detected 1 CUDA Capable device(s)
Device 0: "GeForce GTX 1070"
CUDA Driver Version / Runtime Version 8.0 / 8.0
CUDA Capability Major/Minor version number: 6.1
Total amount of global memory: 8113 MBytes (8506769408 bytes)
(15) Multiprocessors, (128) CUDA Cores/MP: 1920 CUDA Cores
GPU Max Clock rate: 1823 MHz (1.82 GHz)
Memory Clock rate: 4004 Mhz
Memory Bus Width: 256-bit
L2 Cache Size: 2097152 bytes
Maximum Texture Dimension Size (x,y,z) 1D=(131072), 2D=(131072, 65536), 3D=(16384, 16384, 16384)
Maximum Layered 1D Texture Size, (num) layers 1D=(32768), 2048 layers
Maximum Layered 2D Texture Size, (num) layers 2D=(32768, 32768), 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: Yes
Integrated GPU sharing Host Memory: No
Support host page-locked memory mapping: Yes
Alignment requirement for Surfaces: Yes
Device has ECC support: Disabled
Device supports Unified Addressing (UVA): Yes
Device PCI Domain ID / Bus ID / location ID: 0 / 1 / 0
Compute Mode:
< Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >
deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 8.0, CUDA Runtime Version = 8.0, NumDevs = 1, Device0 = GeForce GTX 1070
Result = PASS
安装ATLAS,这个是做线性代数运算的
sudo apt-get install libatlas-base-dev
安装依赖及工具
sudo apt-get install build-essential vim cmake git gfortran libgflags-dev libgoogle-glog-dev liblmdb-dev
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install --no-install-recommends libboost-all-dev
>>>>>>>>>>>>>>>>>>>>>>>>出问题看这里>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
我安装好上面依赖后提示了一句话:
/sbin/ldconfig.real: /usr/lib/nvidia-375/libEGL.so.1 is not a symbolic link
/sbin/ldconfig.real: /usr/lib32/nvidia-375/libEGL.so.1 is not a symbolic link
cd /usr/lib/nvidia-375/
sudo rm -rf libEGL.so.1
sudo ln -s libEGL.so.375.66 libEGL.so.1
cd ../../lib32/nvidia-375/
sudo rm -rf libEGL.so.1
sudo ln -s libEGL.so.375.66 libEGL.so.1
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
安装Python的包管理工具pip
sudo apt-get install python-numpy python-pip
去下载Caffe,我是直接给放到home目录下面了。
cd
git clone https://github.com/BVLC/caffe.git
根据requirements,安装python的各种包。
cd caffe/python
sudo pip install --upgrade pip
for req in $(cat requirements.txt); do sudo pip install --upgrade $req -i https://pypi.tuna.tsinghua.edu.cn/simple/; done
关于上面安装各种python模块,我的建议是先运行一次带-i的,就是用国内源安装一边所有模块。然后再删掉-i,用默认的国外源再重新安装一遍所有模块。因为国内源有些模块安装不上去,或者更新不及时。但是国内源下载速度快很多。
>>>>>>>>>>>>>>>>>>>>>>>>出问题看这里>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
如果安装python requirements出问题,重新安装pip,运行
sudo python -m pip install -U pip
可以对照requirements内容自己逐个安装依赖。下面是两种安装方法,选一种安装就好。
sudo pip install xxxx
sudo apt-get install python-xxxx
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
然后就是修改配置文件了
cd ~/caffe
cp Makefile.config.example Makefile.config
gedit Makefile.config
启用CUDNN,取消注释
USE_CUDNN :=1
打开:
WITH_PYTHON_LAYER :=1
修改一下python包目录:
PYTHON_INCLUDE := /usr/include/python2.7 \
/usr/local/lib/python2.7/dist-packages/numpy/core/include
可以去看一下刚才安装的python包都在 /usr/local/lib/python2.7/dist-packages/目录下面
>>>>>>>>>>>>>>>>>>>>>>>>出问题看这里>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
有时候make不通过是因为CUDA_ARCH不匹配,一般是老旧显卡会出现这个问题。
对于这个问题
1.可以通过去nvidia官网查看你显卡的计算性能。
2.从大往小注释,多次尝试。
我家里GTX1070在这里是提示arch=compute_20,code=sm_21不可用,注不注释没啥影响。注释了就是编译时没warning了而已-_-||
我单位GT720,当时是报错了。我注释了arch=compute_60,code=sm_60和arch=compute_62,code=sm_62这两行,
并且修改最后一行为arch=compute_52,code=compute_52。
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
最后可以make了
cd ~/caffe
make all -j8
make test -j8
make runtest -j8
make pycaffe -j8
runtest一路绿看着人心情舒畅啊。
最后看看Python封装好了没
python
import caffe
不报错的话,就安装结束啦。。。