簡體   English   中英

tensorflow >1.6 上的“非法指令(核心轉儲)”

[英]"Illegal instruction (core dumped)" on tensorflow >1.6

我正在嘗試在各種 tensorflow 版本上運行import tensorflow 我真正想使用的是1.13.1

我的 CPU 是 INTEL Xeon Scalable GOLD 6126 - 12 核(24 線程)2.60GHz。

我已經在互聯網上搜索過這個錯誤*,大多數時候解決方法是將 tensorflow 降級到舊版本(通常我嘗試過1.5.1並且它有效)。 有時只是未解決**。

但有可能真正解決問題嗎?

這是我對各種版本的 tensorflow 的輸出。

1.13.1

2020-09-18 15:00:16.308205: F tensorflow/core/platform/cpu_feature_guard.cc:37] The TensorFlow library was compiled to use SSE4.1 instructions, but these aren't available on your machine.
Aborted (core dumped)

1.14.01.15.22.3.0

Illegal instruction (core dumped)

似乎從源代碼構建可能是一個解決方案,但是知道我想在 docker 中運行代碼並使用 GPU 的情況下如何正確地做到這一點?

編輯 - 更多信息

  • 在主服務器(主機)上,我在/proc/cpuinfo有以下標志:
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb cat_l3 cdp_l3 invpcid_single pti ssbd mba ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm cqm mpx rdt_a avx512f avx512dq rdseed adx smap clflushopt clwb intel_pt avx512cd avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local dtherm ida arat pln pts hwp hwp_act_window hwp_epp hwp_pkg_req pku ospke md_clear flush_l1d

  • 在虛擬機(我想在其上運行 tensorflow)上,我在/proc/cpuinfo有以下標志:
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx lm constant_tsc nopl xtopology cpuid pni cx16 x2apic hypervisor lahf_lm cpuid_fault pti

sse4_1似乎缺少sse4_1sse4_2

* https://github.com/tensorflow/tensorflow/issues/17411

https://github.com/tensorflow/tensorflow/issues/30114

https://tech.amikelive.com/node-887/how-to-resolve-error-illegal-instruction-core-dumped-when-running-import-tensorflow-in-a-python-program/

非法指令(核心轉儲)張量流

https://www.tutorialexample.com/fix-tensorflow-illegal-instruction-core-dumped-error-a-simple-guide-tensorflow-tutorial/

** https://github.com/tensorflow/tensorflow/issues/20139

我設法找到了解決方案。

就我而言,虛擬機由 PROXMOX 管理。 我必須在 VM 配置文件中添加以下行:

args: -cpu host,kvm=off

這樣,VM 的 CPU 具有與主機 CPU 相同的功能。

幾分鍾前我遇到了同樣的問題,經過多次反復試驗,我可以說“-cpu host”參數是解決錯誤的關鍵,我沒有使用參數“kvm=off”和它就像一個魅力。

這是我在多次“非法指令”后現在可以看到的輸出

import tensorflow as tf

2020-12-31 21:04:21.424247: W tensorflow/stream_executor/platform/default/dso_lo ader.cc:60] 無法加載動態庫“libcudart.so.11.0”; dlerror: libcuda rt.so.11.0: cannot open shared object file: No such file or directory 2020-12-31 21:04:21.424279: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] 如果你忽略上面的cudart dlerror您的機器上沒有設置 GPU。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM