import paddle 时直接触发 Illegal instruction,CPU 不支持 AVX 的环境是否有兼容方案?
Author: SongZhuoRu-codeCreated Jun 6, 2026Updated Jul 14, 2026
问题确认 Search before asking
- 我已经搜索过问题,但是没有找到解答。I have searched the question and found no related answer.
请提出你的问题 Please ask your question
问题描述
我在 Ubuntu 服务器的 Docker 容器中运行项目时,程序在执行 import paddle 时直接退出,没有 Python traceback,最终定位为 Illegal instruction (core dumped)。
目前已经确认:
- 不是项目代码路径问题
- 不是容器自动重启导致的日志干扰
- 不是内存不足(OOM)
- 不是
action_infer、pipe_utils这类业务模块导入失败 - 问题可以稳定复现到
import paddle这一步
怀疑是当前服务器 CPU 指令集较弱,和 paddlepaddle 的预编译二进制不兼容。
运行环境
- 操作系统:Ubuntu
- 部署方式:Docker 容器
- Python 版本:3.12
- 基础镜像:
python:3.12-slim(实际构建时通过镜像代理拉取) - CPU 信息:
Model name: QEMU Virtual CPU
- CPU flags:
fpu de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pse36 clflush mmx fxsr sse sse2 syscall nx lm rep_good nopl xtopology cpuid tsc_known_freq pni cx16 x2apic hypervisor lahf_lm cpuid_fault可以看到当前环境没有这些指令集:
avxavx2sse4_2fma
复现方式
在容器中执行下面的最小复现脚本:
python - <<'PY'
print('STEP 1: start')
print('STEP 2: import ultralytics')
from ultralytics import YOLO
print('STEP 2 OK')
print('STEP 3: import paddle')
import paddle
print('STEP 3 OK')
PY实际结果
输出如下:
STEP 1: start
STEP 2: import ultralytics
STEP 2 OK
STEP 3: import paddle
Illegal instruction (core dumped)容器退出码为:
132预期结果
希望至少能够:
- 正常导入
paddle - 或在不兼容 CPU 上给出更明确的报错提示
- 或确认当前版本是否必须要求 AVX / AVX2 指令集
已做排查
我已经确认过以下内容:
ultralytics可以正常导入- 问题稳定出现在
import paddle - 容器不是 OOM 退出,
oom=false - 业务代码中依赖的本地模块和路径都已确认无误
- 前台运行容器时,问题仍然可以复现,因此不是
--restart always干扰
想请教的问题
- 当前版本的
paddlepaddle是否默认要求 CPU 支持 AVX / AVX2? - 对于没有 AVX 的服务器环境,是否有官方支持的兼容版本?
- 如果官方 wheel 不支持,是否只能自行编译?
- 是否有推荐的低指令集 CPU 部署方案?
感谢帮助。
Source: PaddlePaddle/PaddleDetection