
ValueError: fp16 mixed precision requires a GPU
快速结论:此报错通常在使用 Intel Arc 等非 NVIDIA GPU 运行 Kohya SS 训练脚本时出现。优先检查硬件兼容性并确认是否启用了 --use-ipex 安装选项。
问题场景
该问题发生在用户使用 Intel Arc A770 等 Intel GPU 运行 Kohya SS(kohya_ss)训练 LoRA 模型时。典型命令如 train_network.py(基于 SD 1.5)或 sdxl_train_network.py(基于 SDXL),且训练参数中混合精度(Mixed Precision)设为 fp16 或 bf16。
报错原文
raise ValueError(err.format(mode="fp16", requirement="a GPU"))
ValueError: fp16 mixed precision requires a GPU
后续关联报错(当 Mixed Precision 设为 no、Save Precision 设为 float 后出现):
User provided device_type of 'cuda', but CUDA is not available. Disabling
Error CUDA driver version is insufficient for CUDA runtime version
...
ValueError: torch.cuda.is_available() should be True but is False. xformers' memory efficient attention is only available for GPU
原因分析
可能原因:Kohya SS 的默认构建和依赖链仅原生支持 CUDA(NVIDIA GPU)。当检测到非 NVIDIA 环境(如 Intel Arc)时,fp16/bf16 混合精度模式和 xformers 注意力优化均会因 CUDA 不可用而直接报错。即使关闭混合精度,后续 xformers 等依赖仍会触发 torch.cuda.is_available() 检查失败。
环境排查
- 显卡型号:Intel Arc A770 或其它 Intel GPU
- Kohya SS 安装方式:是否使用了
--use-ipex标记 - 训练参数:Mixed Precision 设置(fp16 / bf16 / no)、是否启用
--xformers
解决步骤
- 安装时使用 Intel GPU 支持:运行安装脚本时添加
--use-ipex参数,例如:./setup.sh --use-ipex .\setup.bat --use-ipex # Windows 环境注意:Issue 中确认此步骤可使 Intel Arc 初步工作。
- 关闭混合精度与 CUDA 专用优化:在训练配置中将
Mixed Precision设为no,Save Precision设为float(或no),并移除--xformers参数(可优先尝试) - 替换注意力优化方案:如已遵循
--use-ipex指南,应将--xformers替换为--sdpa(Scaled Dot Product Attention),这是 Intel GPU 的推荐兼容方案(可优先尝试) - 确认 IPEX 和 PyTorch 版本匹配:确保安装的 Intel Extension for PyTorch(IPEX)与 PyTorch 版本兼容;Issue 中建议严格按照社区指南配置环境
验证方法
重新启动训练任务,观察初始日志是否不再出现 ValueError: fp16 mixed precision requires a GPU。若使用 --sdpa 替换 --xformers,注意应无 torch.cuda.is_available() 相关报错。



