Ubuntu14安装Tensorflow的CPU优化
由于我的笔记本是农卡,没法安装CUDA加速,而且我的显卡只有2G显存,安装OpenCL费力不讨好,而且由于我有一个Google云的300美元的体验,所以可以在Google云上使用TPU来进行加速,所以我就干脆不安装显卡加速,但是Tensorflow提供了指令集优化,由于默认使用pip安装没有提供这个功能,所以只能手动编译安装
假如你是用pip
安装的Tensorflow你可以会得到下面警告
the tensorflow library wasn't compiled to use sse4.1 instructions
安装步骤
首先你得先看看你CPU支持什么指令集
cat /proc/cpuinfo|grep flags
执行这个指令就能看到你所支持的指令集
然后安装
bazel
sudo add-apt-repository ppa:webupd8team/java sudo apt-get update && sudo apt-get install oracle-java8-installer echo "deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8" | sudo tee /etc/apt/sources.list.d/bazel.list curl https://bazel.build/bazel-release.pub.gpg | sudo apt-key add - sudo apt-get update && sudo apt-get install bazel sudo apt-get upgrade bazel
安装完之后下载
tensorflow
源码mkdir github && cd github
git clone –recurse-submodules https://github.com/tensorflow/tensorflow
cd tensorflow
./configure
接下来一路选择N
就行
生成
whl
文件bazel build -c opt --copt=-msse3 --copt=-msse4.1 --copt=-msse4.2 --copt=-mavx --copt=-mavx2 --copt=-mfma //tensorflow/tools/pip_package:build_pip_package
在源码处开始编译,注意copt
命令主要是添加指令集支持,这里你要看看上面的指令集(去掉m就是你的指令集,如-msse3指令集为sse3)你的CPU是否支持(一般都支持我的I5 4200U都支持),如果不支持删掉那个就行
这里你安装的时间比较长,要看你的CPU了
- 验证
退出安装目录运行python
执行下面两句
import tensorflow as tf;sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
总结
如果没有报上面的不支持指令集的warning,那么你的CPU指令集优化版就安装好了,当然这个加速效果因CPU而异,对于Xeon SP系列(100核心以上)已经能加速到50倍,同GPU差距也就2倍了(原来可是100倍),但是对于我的笔记本来说,加速效果可能就在30%左右(核心少),所以当前加速性价比最高的还是GPU加速,骚年还是买个好一点的GPU吧,没事还可以吃吃鸡。