Tensorflow: illegal instruction (core dumped) 的解决方法记录

第二次碰到这个问题了,之前解决之后忘记记录了。凭借零星的记忆加上强大的Google终于“又”搞定了。避免下次又忘了,果断记下来。

环境

Items Version
Operation system Ubuntu 16.04
Python 3.6.1
Tensorflow 1.12.0
Hardware virtualization KVM

问题描述

import tensorflow时抛出如下错误:

Illegal instruction (core dumped)

解决方法讨论

关于问题的讨论在Github上有开issue #17441stackoverflow也有相关问题回答。

总结相关回答:新版本(version >= 1.6.0)的Tensorflow binary release是在avx指令环境下编译的。如果你的CPU不支持该类型指令,就不能使用新版本。

这样核心问题就是avx了。如果硬件不支持,解决办法很显然有以下几种:

  1. 降级Tensorflow版本,降到1.5或更低。不过会丢掉一些新版本的功能。
  2. 源码编译。老老实实从头开始。
  3. 换个CPU😂。

而我的问题稍不同,我是KVM虚拟机不支持avx,但是宿主机是支持的,那么事情就有转机了😀,无非是想办法改虚拟机配置啦。

支持avx

  1. 首先确定宿主机是否支持avx的,查看宿主机CPU架构
$ virsh capabilities 

可以看到宿主机的CPU架构为SandyBridge,并且该架构的<feature>是支持<feature name='avx2'/>

<capabilities>
  ...
    <cpu>
      <arch>x86_64</arch>
      <model>SandyBridge</model>
      <vendor>Intel</vendor>
      <topology sockets='1' cores='8' threads='2'/>
      <feature name='invpcid'/>
      <feature name='erms'/>
      <feature name='bmi2'/>
      <feature name='smep'/>
      <feature name='avx2'/>
      ...
    </cpu>
  ...
</capabilities>
  1. 指定虚拟机CPU架构
$ virsh edit $YOUR_VM_NAME

<domain>内增加<cpu>配置如下:

<domain type='kvm'>
  ...
  <cpu mode='custom' match='exact'>
    <model fallback='allow'>SandyBridge</model>
  </cpu>
  ...
</domain>

其中,<model>填写步骤1中查到的CPU架构名称,如这里是SandyBridge

  1. 重启虚拟机&检查是否生效。

进入虚拟机,查看虚拟机CPU支持的指令。

$ cat /proc/cpuinfo | grep avx

出现如下结果,说明CPU已经支持avx指令。

cpuinfo.jpg

现在可以开始愉快的使用Tensorflow了。🤗


2021-6-5 日补充:
升级2.4.0之后,又双叒core dumped了,检查CPU的avx指令集是支持的。再次扒拉了一下issues #45744,2.4.0需要avx2指令集的支持,TF真是好棒棒嗷,这次环境的CPU不支持了,剩我留下了贫穷的泪水。

降级!降级!降级!tensorflow 2.3.1是OK的。

2021-7-13 补充
2.4.0的问题,可以升级2.4.1,因为官方发布是这么说的
Release 2.4.1 This release removes the AVX2 requirement from TF 2.4.0.
版本差别不大,赶紧升他鸭🦆。

参考文献

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,732评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,496评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,264评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,807评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,806评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,675评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,029评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,683评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,704评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,666评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,773评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,413评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,016评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,204评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,083评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,503评论 2 343

推荐阅读更多精彩内容

  • 在 Ubuntu 上安装 TensorFlow 本指南将介绍如何在 Ubuntu 上安装 TensorFlow。虽...
    高山居士阅读 4,573评论 0 6
  • 与 TensorFlow 的初次相遇 https://jorditorres.org/wp-content/upl...
    布客飞龙阅读 3,934评论 2 89
  • 1. 介绍 首先让我们来看看TensorFlow! 但是在我们开始之前,我们先来看看Python API中的Ten...
    JasonJe阅读 11,719评论 1 32
  • 做了18年老师(啊!大家不会把我想像成两鬓斑白的大妈吧?),有时会思考教师这个职业。如果没有一些形而上的精神追求,...
    原卫华阅读 623评论 0 2
  • 她裹着大大的披肩窝在沙发里,喝着玫瑰花茶,看着书。书桌旁是一个架子,架子上是一排一排的藤筐。筐里装着干了的红衣主教...
    花闻铃阅读 334评论 6 5