近期tensorflow发布了正式版,我们也赶快更新起来。
安装环境
操作系统centOS 7.0, k80四卡。注意tensorflow1.0.0只支持CUDA8,所以需要将CUDA升级到8.0,cudnn升级到v5.1。
安装OpenCV
注意之前选择的OpenCV2.4.11版本对CUDA8.0是不兼容的,要升级到OpenCV2.4.13。
cd ~/opencv
mkdir release
cd release
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D CUDA_GENERATION=Kepler ..
make -j8
sudo make install
因为OpenCV在cmake的时候找不到anaconda的python路径,所以需要手动将cv2.so和cv.py复制到anaconda对应的lib下。注意安装完之后再编译与OpenCV相关程序会出现报错cannot find -lopencv_dep_cudart
。解决办法是要控制CMake的一个开关,在cmake的时候注意
cmake -D CUDA_USE_STATIC_CUDA_RUNTIME=OFF ..
或者在CMakeLists.txt中在find_package(OpenCV REQUIRED)
前添加
set(CUDA_USE_STATIC_CUDA_RUNTIME OFF)
但这样还是需要更改每个工程的配置,还是有些麻烦,我采用了大杀器,更改了cmake安装包里的默认配置。使用的是cmake3.7.0这个安装包。
vim ./Modules/FindCUDA.cmake
# line 793, ON --> OFF
option(CUDA_USE_STATIC_CUDA_RUNTIME "Use the static version of the CUDA runtime library if available" OFF)
注意官网日志说明OpenCV3.2版本支持CUDA8,如果硬着头皮上OpenCV3.2,安装也没啥多说的。注意k80的GPU是kepler架构,如果是pascal架构的也要相应选择。在安装的时候还会遇到Downloading ippicv_linux_20151201.tgz...
的问题,要确保服务器能访问raw.githubusercontent.com
。还有一个bug是mkl也要更新到1.13新版本,不然会报错缺少mkl_version.h
文件。
安装tensorflow
新版本tensorflow安装已经非常简单了,只需要直接pip安装即可。相应的依赖包都会自动更新到匹配版本,非常方便
pip install tensorflow-gpu # gpu version
pip install tensorflow # cpu version
tips
安装好之后可能会遇到can’t find libmkl_avx.so的问题,应该是anaconda和tensorflow的安装顺序导致的,可以通过下面的办法暂时解决
export LD_PRELOAD=libmkl_rt.so
安装bazel
安装jdk8
bazel需要java8的支持,由于系统本身有一套jdk7的环境,我这套jdk8的环境只想对我生效,配置如下:
download jdk-8u131-linux-x64.tar.gz
tar xzvf jdk-8u131-linux-x64.tar.gz
vim ~/.bashrc
export JAVA_HOME=$HOME/software_bak/jdk1.8.0_131
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
source ~/.bashrc
java -version
安装bazel
wget https://github.com/bazelbuild/bazel/releases/download/0.5.1/bazel-0.5.1-installer-linux-x86_64.sh
chmod +x bazel-0.5.1-installer-linux-x86_64.sh
./bazel-0.5.1-installer-linux-x86_64.sh --user
vim ~/.bashrc
export PATH=$PATH:$HOME/bin
source ~/.bashrc
bazel version
源码安装tensorflow
git clone --recurse-submodules https://github.com/tensorflow/tensorflow
cd tensorflow
./configure // 大部分都使用默认选项,注意GPU选项要打开
bazel build -c opt --config=cuda //tensorflow/tools/pip_package:build_pip_package
bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg
pip install /tmp/tensorflow_pkg/tensorflow-0.10.0-py2-none-any.whl