跳过正文
  1. 博客/
  2. 后端/
  3. 软件/

Ubuntu16.04安装Tensorflow的CPU优化

·3 分钟· ·
后端 软件
目录

由于我的笔记本是农卡,没法安装CUDA加速,而且我的显卡只有2G显存,安装OpenCL费力不讨好,而且由于我有一个Google云的300美元的体验,所以可以在Google云上使用TPU来进行加速,所以我就干脆不安装显卡加速,但是Tensorflow提供了指令集优化,由于默认使用pip安装没有提供这个功能,所以只能手动编译安装

假如你是用pip安装的Tensorflow你可以会得到下面警告

	the tensorflow library wasn't compiled to use sse4.1 instructions
  

安装步骤
#

1. 首先你得先看看你CPU支持什么指令集

cat /proc/cpuinfo|grep flags

执行这个指令就能看到你所支持的指令集

最新的tensorflow1.12不需要这步,可以根据你的CPU进行推测

~~2. 然后安装bazel

由于直接从源代码安装比较简单,所以直接从github上面下载0.18.1相对应的版本就行(最好不要使用最新版,最新版没法编译)

3. 安装完之后下载tensorflow源码

mkdir github && cd github
  
git clone --recurse-submodules https://github.com/tensorflow/tensorflow
  
cd tensorflow
  
./configure  
  

接下来一路选择N就行

4. 生成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了

最新版不需要这么复杂了,直接

	bazel build --config=opt //tensorflow/tools/pip_package:build_pip_package
  

当然如果你想开启MKL也可以在opt加上改成--config mkl

最新版使用bazel编译由于依赖网络下载,而我大天朝的网络一直报check-sum错误,官方说是我们网络的问题,我在我香港服务器尝试了一下,相同的环境下使用bazel是能安装的,但是由于安装到后面bazel需要太多内存了,所以直接爆照,而我本地内存大然而尝试了N多方法(尝试使用proxychain由于安装时需要连接本地bazel服务器,而设置过滤本地网络又没有用,也尝试使用全局代理也绕不过去),最终没有办法只能安装一个别人已经编译好的CPU的加速的。现在放出地址

github tensorflow 编译好的版本下载

你找一个你操作系统对应以及和你Python版本对应的下载下来用pip安装一下就可以了。

  1. 验证

退出安装目录运行python

执行下面两句

	import tensorflow as tf;sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
  
	
  
	
  
bazel --host_jvm_args="-Dhttp.proxyHost=localhost -Dhttp.proxyPort=8123 -Dhttps.proxyHost=localhost -Dhttps.proxyPort=8123"	build --config=mkl //tensorflow/tools/pip_package:build_pip_package
  

总结
#

如果没有报上面的不支持指令集的warning,那么你的CPU指令集优化版就安装好了,当然这个加速效果因CPU而异,对于Xeon SP系列(100核心以上)已经能加速到50倍,同GPU差距也就2倍了(原来可是100倍),但是对于我的笔记本来说,加速效果可能就在30%左右(核心少),所以当前加速性价比最高的还是GPU加速,骚年还是买个好一点的GPU吧,没事还可以吃吃鸡。

经过我测试在I7 9700K下相同的mnist数据下运行,不使用CPU指令优化比使用CPU指令优化下速度还要更快,所以在高版本下的Tensorflow CPU版其实优不优化都无所谓,推荐还是使用GPU加速

相关文章

巧用Git钩子
·5 分钟
后端 软件 Git
以前听学长提过Git钩子,但是自己一直没有仔细了解过,记得我还写过一个github更新的Python包,现在想想其实用自带的钩子就能很好的完成
ansible管理nginx负载均衡
·4 分钟
后端 软件
前言 # 因为手头自己有三个服务器,所以想折腾一下负载均衡。
git 工作流程
·3 分钟
后端 软件
git是当今流行的版本控制工具,一般我们可能只要会push, pull就可以了, 但是当我们同别人共同工作的时候,我们必须要了解git协同开发的一些重要流程.
GitHub Education Pack
·3 分钟
后端 软件
GitHub推出一个对学生和教师的福利包,对于学生来说这是一个不小 的福利,只要通过一个edu邮箱就可以领取,但奈何国内有些无良人买卖 邮箱,所以GitHub对于.cn的邮箱一律拒绝,但是可以通过上传学生证的方法 得到验证,题主刚开始用学校邮箱试了试,失败了,抱着试一试的心态,上传了 学生证,没想到第二天就给我回复,并给我这个豪华大礼包,接下来我就介绍介绍 如何用这个包来.
在Linux下玩转Vim
·3 分钟
后端 软件
学了鸟哥的书前面基础后,突然想在Linux下用gcc玩C语言,然后了解到了Vim这个神一样的编译器,接下来经过超长时间虐心的安装无数插件无数依赖包,突然有种打自己一顿的感觉,还好终于把Vim装的和VS差不多了,接下来我介绍我安装Vim的经验吧。 # 我虚拟机下的Linux原来是红旗6的,但是我改了一下yum的包源成CentOS的并且全部update一下后就神奇的变成了CentOS6,虽然他们两个是同一家公司,但是总给我一种由盗版成了正版的感觉。。 # 闲话不多说,刚开始装第一个插件是Ctags # 刚开始装的时候我是在X-Windows里面的这里下载再转回shell敲
富文本编辑器CKEditor配置CKFinder
·3 分钟
后端 软件
由于网站要实现图片和文字的混排的上传 所以在网上找了富文本编辑器的插件,发现CKEditor这款还不错的插件