Windows CPU环境运行YOLOv8推理报RuntimeError: could not create a primitive
在Windows CPU环境运行YOLOv8推理遇到RuntimeError的解决方案
问题场景
在Windows 11虚拟环境中,使用Ultralytics和PyTorch在CPU上运行YOLOv8推理时,出现RuntimeError: could not create a primitive错误,相关信息如下:
使用的代码
from ultralytics import YOLO model = YOLO('yolov8n') results = model.predict('input_videos/08fd33_4.mp4', save=True, device='cpu', stream=True) for r in results: print(r) print('======================================') for box in r.boxes: print(box)
错误信息
RuntimeError: could not create a primitive File ".../torch/nn/modules/conv.py", line 549, in _conv_forward return F.conv2d(...)
环境配置
- OS: Windows 11
- Python: 3.12.9
- Torch: 2.7.0
- Ultralytics: 8.3.133
- Device: CPU(无GPU)
问题解答
1. 如何修复在CPU上运行YOLOv8时出现的这个错误?
这个错误多由PyTorch版本与CPU指令集不兼容、或依赖版本不匹配导致,可尝试以下方案:
- 降级PyTorch到稳定版本:PyTorch 2.7.0属于较新版本,可能存在CPU兼容问题,建议降级到2.4.1或2.3.1:
pip install torch==2.4.1 torchvision==0.19.1 torchaudio==2.4.1 --index-url https://download.pytorch.org/whl/cpu - 禁用高级CPU优化:在代码开头添加以下语句,强制PyTorch使用基础CPU指令集,避免指令集不兼容:
import torch torch.backends.mkldnn.enabled = False - 重新匹配Ultralytics版本:卸载现有版本后,安装与PyTorch兼容的稳定版:
pip uninstall ultralytics -y pip install ultralytics==8.2.0
2. 是否基础推理也必须使用GPU?
不需要,YOLOv8完全支持CPU推理,只是速度远慢于GPU。基础的图片、视频检测任务都可以在CPU上完成,仅在使用大模型(如yolov8x)或高分辨率输入时,CPU推理会明显耗时。
3. Windows系统下是否有可安全运行CPU推理的配置项?
有,以下配置可保障Windows CPU环境稳定运行:
- 明确指定CPU设备:在
model.predict()中保持device='cpu'参数,避免程序尝试调用GPU资源。 - 禁用多线程工作进程:若CPU核心较少或出现线程冲突,添加
workers=0参数:results = model.predict('input_videos/08fd33_4.mp4', save=True, device='cpu', stream=True, workers=0) - 使用兼容版本组合:推荐以下稳定版本搭配:
- Python: 3.10.x ~ 3.11.x(3.12.x部分库兼容性尚不完善)
- PyTorch: 2.3.x ~ 2.4.x CPU版本
- Ultralytics: 8.1.x ~ 8.2.x
内容的提问来源于stack exchange,提问作者Rahma Bousrih
相关产品推荐
相关产品推荐

