这是之前自己编译安装这两个框架的记录总结,以备后续的需要。
ubuntu14安装caffe的GPU版本的过程记录,涉及CUDA,cuDNN。
一、安装好nvidia显卡驱动
1.去英伟达官网下载,显卡对应的驱动。此显卡驱动的版本必须要不低于CUDA需求的版本。(显卡驱动版本和cuda中显卡驱动版本相同竟然会出错,要更高才行)
2.安装CUDA之前,要停掉ubuntu的x server(图形界面程序):
sudo service lightdm stop
3.运行sudo sh NVIDIA-Linux-x86_64-384.98.run安装
4.安装完输入
nvidia-smi
如果出现了你的GPU列表,则说明驱动安装成功了。
sudo service lightdm restart重新启动图像界面
二、安装CUDA
1.去英伟达官网下载显卡、系统支持的CUDA,GTX1080显卡必须用CUDA 8.0版本。要下载run包。
https://developer.nvidia.com/cuda-toolkit-archive
2.开始安装
sudo sh cuda_8.0.61_375.26_linux-run
阅读完协议,询问是否安装NVIDIA driver时(实际上是安装cuda中带的375版本nvidia驱动),一定要选no。
其余的都选默认项。
3.配置环境变量
sudo vim /etc/profile
在尾部添加
export PATH=/usr/local/cuda-8.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/cuda-8.0/lib64
保存
source /etc/profile
4.动态库链接
sudo vim /etc/ld.so.conf.d/cuda.conf
写入
/usr/local/cuda/lib64 #(cuda文件夹实际上是cuda-8.0的链接)
保存。
sudo ldconfig
5.验证是否安装成功:
输入$ ls /dev/nvidia*,若生成 4 个左右 Nvidia 开头的文件(夹),说明此步安装成功。
查看nvcc编译器的版本,输入nvcc –V
测试cuda的Samples
命令行输入(注意cuda-8.0是要相对应自己的cuda版本)
cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery
sudo make
sudo ./deviceQuery
返回GPU的信息则表示配置成功
三、安装cuDNN
1.上官网下载对应的cudnn(需要注册账号)
https://developer.nvidia.com/cudnn
解压
tar xvzf cudnn-8.0-linux-x64-v7.tgz
解压出cuda文件夹
cd cuda
2.复制头文件和库文件
sudo cp include/*.h /usr/local/include/
sudo cp lib64/lib* /usr/local/cuda-8.0/lib64
建立软连接
cd /usr/local/cuda-8.0/lib64
sudo chmod +r libcudnn.so.7.0.5
sudo ln -sf libcudnn.so.7.0.5 libcudnn.so.7
sudo ln -sf libcudnn.so.7 libcudnn.so
sudo ldconfig
四、安装caffe
参照官网指导http://caffe.berkeleyvision.org/install_apt.html
1.安装git
sudo apt-get install git
2.下载caffe
git clone https://github.com/BVLC/caffe.git
3.安装caffe依赖
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
sudo apt-get install libatlas-base-dev
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
4.编译
cp Makefile.config.example Makefile.config
修改make的参数
vim Makefile.config
将# USE_CUDNN := 1一行开头的#删除,保存。
如果需要多显卡协作,去掉注释USE_NCCL := 1(需要安装NCCL)
启动8进程编译,会快一些
make all -j8
make test -j8
make runtest -j8
五、安装pycaffe
1.安装anaconda
去清华镜像下载anaconda
https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
sh Anaconda2-5.0.1-Linux-x86_64.sh
可以手动添加环境变量
sudo vim /etc/profile
尾部添加
export PATH=/home/mvg/anaconda2/bin:$PATH
保存
source /etc/profile
输入python,进入python交互界面,显示为anaconda,则安装成功。
pip list查看科学计算的包是否都已经安装了。
2.修改caffe目录下的Makefile.config中python相关配置
修改下面这些默认被注释的行:
ANACONDA_HOME := /home/mvg/anaconda2
PYTHON_INCLUDE := $(ANACONDA_HOME)/include \
$(ANACONDA_HOME)/include/python2.7 \
$(ANACONDA_HOME)/lib/python2.7/site-packages/numpy/core/include
PYTHON_LIB := $(ANACONDA_HOME)/lib
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib
3.编译pycaffe
make pycaffe -j8
make pytest -j8
编译完成后,可以添加~/caffe/python到$PYTHONPATH:
$ sudo vim /etc/profile
# 文件尾部添加: export PYTHONPATH=/path/to/caffe/python:$PYTHONPATH
$ source /etc/profile # 使之生效
就可以在python中import caffe了。
备注:过程中出现任何问题,去网上搜索报错,仔细检查,一般都能解决。
tensorflow-gpu 源码安装步骤记录
发现之前的caffe-gpu编译步骤记录很有用,为后续别的新机器上安装填了很多坑,所以也记录一下这次tensorflow-gpu源码安装的步骤。
由于pip安装的tensorflow-gpu中cuda和cudnn版本总是和自己机子(cuda8.0 + cudnn7.0)对不上,老是报错,官方的二进制版本都是(cuda8+cudnn6,或cuda9+cudnn7)所以决定从源码安装。
1. 按照官方指导,先安装依赖:
sudo apt-get install python-numpy python-dev python-pip python-wheel
如果已经安装了ananconda,略过这步。
2. 安装好cuda,cudnn。
可以参照之前的caffe-gpu中的记录。
3. 配置libcupti
官方的错误指导是:对于 Cuda Toolkit 8.0 版或更高版本,您可以通过以下命令进行安装:
$ sudo apt-get install cuda-command-line-tools
这个安装命令怎么都不成功,但事实上,cuda8.0安装完毕后已经具备了cupti工具。
ls /usr/local/cuda/extras/CUPTI/lib64
查看发现已经有libcupti库了。
只需将其路径添加到LD_LIBRARY_PATH 环境变量中:
sudo vim /etc/profile
在末尾加上export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/extras/CUPTI/lib64
source /etc/profile
4. 安装bazel
bazel是tensorflow的编译工具(类似make,cmake)。
从 https://github.com/bazelbuild/bazel/releases 中下载
bazel-0.14.0-installer-linux-x86_64.sh
传到tensorflow-prepare文件夹中
sudo bash bazel-0.14.0-installer-linux-x86_64.sh –user
export PATH=”$PATH:$HOME/bin”
在命令行中输入bazel version,能够看到正确输出,表示安装成功。
5. 克隆 TensorFlow 代码库
git clone https://github.com/tensorflow/tensorflow
cd tensorflow
git checkout r1.8
6.编译tensorflow之前,configure步骤
./configure
按照提示一步步输入选择。
7.构建 pip 软件包
bazel build –config=opt –config=cuda //tensorflow/tools/pip_package:build_pip_package
遇到的几处报错:
(1)开头no such package ‘@local_config_cuda//cuda’,下面是提示cannot find cudnn.h in /usr/local/cuda8.0/.
解决方法:之前只是将cudnn.h复制到了/usr/local/include中。
sudo cp /usr/local/include/cudnn.h /usr/local/cuda-8.0/include/
(2)提示Cannot find libdevice.10.bc under /usr/local/cuda-8.0
解决方法:
sudo cp /usr/local/cuda-8.0/nvvm/libdevice/libdevice.compute_50.10.bc /usr/local/cuda-8.0/nvvm/libdevice/libdevice.10.bc
大约1个小时能够编译完成。(i7-6800k 6核12线程)
8. 安装tensorflow pip包
bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg
sudo pip install /tmp/tensorflow_pkg/tensorflow-1.8.0-cp27-cp27mu-linux_x86_64.whl
测试是否安装成功
python -c “import tensorflow”
发现报错:ImportError: No module named platform
在网上查询得知,不应该在tensorflow源码目录import tensorflow,否则会优先导入本地的库。
cd ~
python -c “import tensorflow”
无报错,安装成功。
参考:
https://www.tensorflow.org/install/install_sources#ConfigureInstallation
https://docs.bazel.build/versions/master/install-ubuntu.html
https://github.com/tensorflow/tensorflow/issues/17801