我正在尝试将一些tensorflow 2.0模型推到Ubuntu 18.04服务器上。服务器的cpu不支持AVX,因此,根据github上的社区,我需要从源代码构建到无AVX的tf 2.0。我花了一个星期的时间尝试从源代码进行构建,并且构建完成已成功完成,但是在尝试将tensorflow导入python笔记本时,仍然出现相同的“非法指令”错误。
我正在Ubuntu 18.04上运行python 3.6
bazel配置与XLA和JIT一起使用,而其余选项为No。
我正在使用的copt标志是:
-march=native -Wno-sign-compare -mssse3 -mcx16 -msse4.1 -msse4.2 -mpopcnt -mno-avx
构建命令为:
bazel build --config=opt //tensorflow/tools/pip_package:build_pip_package --local_ram_resources=1024 --jobs=1 --define=tf_api_version=2
服务器的CPU是:
sudo lshw | grep -i cpu
*-cpu:0
description: CPU
product: QEMU Virtual CPU version 2.5+
bus info: cpu@0
slot: CPU 0
capabilities: fpu fpu_exception wp de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pse36 clflush mmx fxsr sse sse2 syscall nx x86-64 rep_good nopl xtopology cpuid pni cx16 x2apic hypervisor lahf_lm pti
*-cpu:1
description: CPU
product: QEMU Virtual CPU version 2.5+
bus info: cpu@1
slot: CPU 1
capabilities: fpu fpu_exception wp de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pse36 clflush mmx fxsr sse sse2 syscall nx x86-64 rep_good nopl xtopology cpuid pni cx16 x2apic hypervisor lahf_lm pti
*-cpu:2
description: CPU
product: QEMU Virtual CPU version 2.5+
bus info: cpu@2
slot: CPU 2
capabilities: fpu fpu_exception wp de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pse36 clflush mmx fxsr sse sse2 syscall nx x86-64 rep_good nopl xtopology cpuid pni cx16 x2apic hypervisor lahf_lm pti
*-cpu:3
description: CPU
product: QEMU Virtual CPU version 2.5+
bus info: cpu@3
slot: CPU 3
capabilities: fpu fpu_exception wp de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pse36 clflush mmx fxsr sse sse2 syscall nx x86-64 rep_good nopl xtopology cpuid pni cx16 x2apic hypervisor lahf_lm pti
这是我第一次不得不如此深入地研究硬件问题,我很茫然。
首先,是否可以构建tensorflow以在QEMU虚拟CPU 2.5+版本上运行?
第二,如果是这样,我在做什么错了?
谢谢