PyTorch在无AVX支持的CPU上崩溃,如何确认原因并安装兼容版本?
问题解答
一、排查方向是否正确?
错误代码0xc000001d是Windows系统的非法指令错误,本质是程序执行了当前CPU不支持的机器指令。fbgemm.dll是PyTorch依赖的高性能矩阵运算库,官方预编译的PyTorch版本默认会启用AVX/AVX2等扩展指令集优化,所以你的排查方向是对的。
补充一个关键细节:Intel Xeon Gold 6240R属于Ice Lake-SP架构,硬件本身原生支持AVX、AVX2甚至AVX-512指令集,建议先检查服务器BIOS是否禁用了AVX相关指令集开关——这是企业服务器场景下容易被忽略的点。
二、能否通过pip安装无AVX支持的对应包版本?
可以,但官方PyPI仓库提供的预编译包均带有AVX/AVX2优化,需要手动下载专门的无指令集优化版本:
- Windows平台下,PyTorch官方提供了标注为
cpu_noavx的预编译wheel包,完全不依赖AVX系列指令集 - 安装示例(以Python 3.10、PyTorch 2.0.0版本为例):
# 安装无AVX的PyTorch核心包 pip install https://download.pytorch.org/whl/cpu/torch-2.0.0%2Bcpu_noavx-cp310-cp310-win_amd64.whl # 必须安装同版本、同后缀的torchvision和torchaudio pip install https://download.pytorch.org/whl/cpu/torchvision-0.15.1%2Bcpu_noavx-cp310-cp310-win_amd64.whl pip install https://download.pytorch.org/whl/cpu/torchaudio-2.0.1%2Bcpu_noavx-cp310-cp310-win_amd64.whl
注意要匹配自身Python版本(比如cp310对应Python 3.10)和PyTorch版本号,三个包的后缀必须统一为cpu_noavx。
如果找不到匹配的预编译版本,也可以选择从源码编译PyTorch,编译时手动关闭AVX/AVX2优化,但操作复杂度较高,优先推荐使用预编译的无AVX版本。
内容的提问来源于stack exchange,提问作者mamume
相关产品推荐
相关产品推荐

