编译TensorFlow CPU指令集优化版

如题,CPU指令集优化版,说的是针对某种特定的CPU型号进行过优化的版本。通常官方给的版本是没有针对特定CPU进行过优化的,有网友称,优化过的版本相比优化前的版本性能提升大概30%。

下面简单介绍下在Ubuntu上进行Tensor Flow编译

必要的环境:

  1. bazel, 这玩意的安装方法参考别的资料,比较麻烦
  2. sudo apt-get install python-numpy python-dev python-pip python-wheel
  3. 因为tf的版本与python版本是有关的,所以如果你有建立虚拟python环境,比如你用conda创建了一个虚拟的tf环境‘tensorflow’,那么通过source activate tensorflow先进入该环境,此时显示(tensorflow) lev@lev-Precision-Tower-5810:~/类似的
  4. gcc 4.7+

下面介绍具体的编译工作:

  1. 在你的工作目录下,执行git clone https://github.com/tensorflow/tensorflow.git
  2. 进入tensorflow目录,cd tensorflow
  3. 开始配置编译参数,./configure,根据需要去配置好对应的东东
  4. 接下来进入编译,bazel build --config=opt //tensorflow/tools/pip_package:build_pip_package, 采用默认优化,该设定会自动编译成你的cpu所支持的指令集版本
  5. 编译whl,也就是python的package,bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg,此操作会在将whl生成在/tmp/tensorflow_pkg目录下
  6. 安装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!