import tensorflow报错Illegal instruction

我是用PVE创建的虚拟机,在虚拟机里安装了tensorflow,结果import tensorflow报错Illegal instruction。

谷歌后发现,tensorflow在1.6版本之后提供的pip包均假设CPU支持AVX指令(一种加速向量运算的CPU指令),而Illegal instruction就说明CPU没有支持AVX指令。

AVX指令只有在很老的CPU才不支持,并且也没有BIOS开关,默认就是生效的,那么为什么我的电脑会报错呢?

因为我使用了PVE虚拟机,因为KVM虚拟化的CPU类型是kvm64自定义模式,kvm64模式并没有把比较新的CPU指令集开放给虚拟机,所以虚拟机内安装tensorflow会找不到对应的CPU指令集。

解决方法是改变KVM虚拟机的CPU模式为host模式,这样大部分宿主机CPU支持的指令集都会开放到虚拟机,这样虚拟机可以享受CPU的高级特性,性能会更好。

如果文章帮助了你,请帮我点击1次谷歌广告,或者微信赞助1元钱,感谢!

知识星球有更多干货内容,对我认可欢迎加入:

发表评论

电子邮件地址不会被公开。