编译TensorFlow CPU指令集优化版
如题,CPU指令集优化版,说的是针对某种特定的CPU型号进行过优化的版本。通常官方给的版本是没有针对特定CPU进行过优化的,有网友称,优化过的版本相比优化前的版本性能提升大概30%。
下面简单介绍下在Ubuntu上进行Tensor Flow编译
必要的环境:
- bazel, 这玩意的安装方法参考别的资料,比较麻烦
- sudo apt-get install python-numpy python-dev python-pip python-wheel
- 因为tf的版本与python版本是有关的,所以如果你有建立虚拟python环境,比如你用conda创建了一个虚拟的tf环境‘tensorflow’,那么通过
source activate tensorflow
先进入该环境,此时显示(tensorflow) lev@lev-Precision-Tower-5810:~/
类似的 - gcc 4.7+
下面介绍具体的编译工作:
- 在你的工作目录下,执行
git clone https://github.com/tensorflow/tensorflow.git
- 进入tensorflow目录,
cd tensorflow
- 开始配置编译参数,
./configure
,根据需要去配置好对应的东东 - 接下来进入编译,
bazel build --config=opt //tensorflow/tools/pip_package:build_pip_package
, 采用默认优化,该设定会自动编译成你的cpu所支持的指令集版本 - 编译whl,也就是python的package,
bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg
,此操作会在将whl生成在/tmp/tensorflow_pkg
目录下 - 安装whl, 去
/tmp/tensorflow_pkg
下找到你的造的轮子,比如我的pip install /tmp/tensorflow_pkg/tensorflow-1.4.0-cp36-cp36m-linux_x86_64.whl
, 这个时候,记得退出tensorflow
的源码目录,再用命令行运行python,导入tf,如果不退出,直接运行python环境import tensorflow会报错,因为此时import的是源码目录里的tensorflow, 不是你刚刚安装好的。
好了,现在你可以进行愉快的玩耍了,have fun!