本文介绍Tensorlfow 针对 CPU SSE4.1 SSE4.2 AVX AVX2 FMA 的编译优化,以提升Tensorflow在CPU上的计算速度,实测可以提升两倍以上的速度。

1、问题

在用 pip 安装tensorflow的CPU版本后,在运行的时候通常会出现如下提示:Your CPU supports instructions that this TensorFlow binary was not compiled to use: SSE4.1 SSE4.2 AVX AVX2 FMA

该提示说明你的CPU支持AVX扩展,但是你安装的TensorFlow版本无法编译使用。而AVX的利用可以大大提升线性代数运算。

由于AVX不是所有CPU都支持(实际上08年以后的intel  CPU都支持...),所以通过 pip install 安装的 tensorflow CPU 版本是不支持AVX的。

---------------

所谓AVX,全称为高级矢量扩展(Advanced Vector eXtensions,AVX)是英特尔在2008年3月提出的英特尔和AMD微处理器的x86指令集体系结构的扩展,英特尔首先通过Sandy Bridge处理器在2011年第一季度推出,随后由AMD推出Bulldozer处理器在2011年第三季度.AVX提供了新功能,新指令和新编码方案。

特别是,AVX引入了融合乘法累加(FMA)操作,加速了线性代数计算,即点积,矩阵乘法,卷积等。几乎所有机器学习训练都涉及大量这些操作,因此将会支持AVX和FMA的CPU(最高达300%)更快。该警告指出您的CPU确实支持AVX。

---------------

2、AVX编译优化

Tensorflow使用谷歌开源的 Bazel 自动化构建工具编译项目,有一定的学习成本。

但是可以借助github上编译好的版本进行安装。

(1)linux/Mac OS 编译

github地址: https://github.com/lakshayg/tensorflow-build

下表为开源项目中的一部分,根据Tensorflow、Ubuntu、GCC、和python版本选择对应的下载链接。

实际上版本并没有表中那么严格的限制,比如tensorflow版本,版本 1.4.0~1.13.0的主要API变动不大,假如表格中没有对应版本的话,可以选最近的版本,实测是可以通过的。

同样的,GCC版本假如高于表中的版本,也选最近的低版本即可

操作系统也不一定是Ubuntu,应该Debian系的都可以。

TF HW OS GCC Python Supports  
1.9.0 CPU Ubuntu 16.04 5.4 3.6.6 FMA, AVX, AVX2, SSE4.1, SSE4.2 Download
1.9.0 CPU Ubuntu 16.04 5.4 3.5.2 FMA, AVX, AVX2, SSE4.1, SSE4.2 Download
1.9.0 CPU Ubuntu 16.04 5.4 2.7.12 FMA, AVX, AVX2, SSE4.1, SSE4.2 Download
1.9.0 CPU Ubuntu 18.04 7.3 3.6.5 FMA, AVX, AVX2, SSE4.1, SSE4.2 Download
1.10.0 CPU Ubuntu 18.04 7.3 3.6.5 FMA, AVX, AVX2, SSE4.1, SSE4.2 Download
1.10.0 CPU Ubuntu 18.04 7.3 2.7.15rc1 FMA, AVX, AVX2, SSE4.1, SSE4.2 Download

下载后得到 tensorflow-1.9.0-cp36-cp36m-linux_x86_64.whl 类似的文件,然后直接在对应的环境中:

pip install tensorflow-1.9.0-cp36-cp36m-linux_x86_64.whl

或者:

conda install tensorflow-1.9.0-cp36-cp36m-linux_x86_64.whl

然后再运行项目,AVX 相关的警告就消失了,而且模型训练和测试速度应该有大幅提升。

(2)windows 编译

github 地址:https://github.com/fo40225/tensorflow-windows-wheel

方法同上,找到对应的版本 pip install 或者conda install 即可

Tensorflow针对CPU的编译优化加速-解决Not compiled to use: SSE4.1 SSE4.2 AVX AVX2 FMA相关推荐

  1. 在线教程!C++如何在云应用中快速实现编译优化?

    导语 | 本文尝试在系统级的编译软件层面,挖掘云应用的性能提升空间.以C/C++应用的反馈优化技术为例,介绍业务和编译技术深度整合后产生的收益和价值,希望给相关业务的探索提供参考. 一.现代云应用特征 ...

  2. 成功解决:Win系统下的Tensorflow使用CPU而不使用GPU运行加速

    成功解决:Win系统下的Tensorflow使用CPU而不使用GPU运行加速 目录 解决问题 解决思路 解决方法 解决问题 Win系统下的Tensorflow使用CPU而不使用GPU运行加速 解决思路 ...

  3. TensorFlow如何充分使用所有CPU核数,提高TensorFlow的CPU使用率,以及Intel的MKL加速

    TensorFlow如何充分使用所有CPU核数,提高TensorFlow的CPU使用率,以及Intel的MKL加速 转载链接:http://nooverfit.com/wp/tensorflow%E5 ...

  4. 成功解决Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX AVX2

    成功解决Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX AVX2 目录 ...

  5. php编译优化,浅析使用Turck-mmcache编译来加速、优化PHP代码

    php_screw确实很不错,但是只能起到加密的作用,并没有加速和优化的作用. 下面我们来看看:Turck MMCache它的作用是通过对php代码的编译来加速.优化php代码,我们如果发布的php代 ...

  6. linux多核cpu 优化,Ubuntu是否针对多核CPU进行了优化?

    问题描述 Ubuntu是否使用多核CPU(据说Windows 7会这样做)? 换句话说,它是否进行了多任务优化,以便用户可以从4+核心处理器中受益? 最佳解决思路 是的,Ubuntu针对多核CPU进行 ...

  7. 彻底解决“Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA”警告

    问题描述 在使用TensorFlow时,总是提醒"Your CPU supports instructions that this TensorFlow binary was not com ...

  8. 成功解决Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX AVX2(二)

    成功解决Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX AVX2(二) ...

  9. 针对CPU优化加快 UC阅读器米2专版实测

    针对CPU优化加快 UC阅读器米2专版实测  而小米2手机也并为正式上市,当前UC阅读器小米2代专版仅可以在论坛上获取.以是这个版本的UC能够了解为测试版本,但小米2正式上市之后定制版UC终究手機竊聽 ...

最新文章

  1. struts2_11_实现自己的拦截器的定义
  2. 【C++ Primer】类的多态
  3. 苹果4怎么越狱_苹果手机如何截屏
  4. 前端学习(1810):前端调试之css装饰cursor
  5. !DOCTYPE 标签是什么
  6. javascript中BOM介绍、屏幕尺寸、历史记录、URL解析、计算机信息获取、定时器、三大系列及兼容代码、封装动画函数、同步和异步
  7. 诗与远方:无题(十)- 小熊夜游走廊记
  8. 排序 -> 选择排序
  9. svn server 搭建
  10. JavaNIO读取文件
  11. keras之分类问题和回归问题
  12. 企业如何选择短信平台
  13. 【JavaSE8 高级编程 多线程】多线程入门级解析 2019_7_27
  14. topic是短语还是句子_词组、短语、句子--Unit 3 Topic 3
  15. linux自动wifi断开重连,49.Linux-wpa_cli使用之WIFI开启,扫描热点,连接热点,断开热点,WIFI关闭(49)...
  16. Dubbo-06 20190320
  17. mendelay为什么安装不了_方舟生存进化手游国际版出现解析包错误和解析包错误以及下载完无法安装这样应对...
  18. Ubuntu Kylin 20.10 优麒麟操作系统安装与体验
  19. copilot 让AI帮你编程(人工智能自动完成)
  20. 安装RVM时报错 curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused

热门文章

  1. FPGA驱动旋转编码器(Verilog)
  2. 2021年压力容器作业R2移动式压力容器充装证考试题库
  3. 电阻 电容表 电感表 频率表 测量套件 51单片机 STC89C52 程序 万用表
  4. 虚拟仿真 人人开发(二)
  5. SpringMVC与Shiro快速整合
  6. 心态很容易受别人影响_孩子在学校受了委屈,家长该如何做?
  7. 使用 Arduino 测量血氧饱和度
  8. mysql函数LOCATE、POSITION和INSTR
  9. 我的2017年文章汇总——机器学习篇
  10. python小象学院: BMR------ 基础代谢率1.0