CUDA error no kernel image is available for execution on the device 报错,核对 GPU 架构

遇到 CUDA error: no kernel image is available for execution on the device 报错,核心原因是编译代码时指定的 CUDA 算力架构,和你当前 GPU 硬件的算力架构不匹配,GPU 里找不到可以运行的 kernel 二进制镜像,最直接的解决办法就是核对 GPU 算力架构,重新设置 TORCH_CUDA_ARCH_LIST 或者 nvcc 编译参数再编译。很多自定义 CUDA 算子、CUDA 扩展、第三方算子包在编译的时候,只会预先编译指定的算力版本,比如只编译 8.6、8.9,如果你拿算力 7.5、7.0 或者 9.0 的显卡去跑,就会直接报这个错误;也有可能是预编译包是在高算力卡上编译,没有包含低算力架构,或者本地 CUDA 版本、PyTorch 版本和算子编译环境不一致,就算架构号对上也会出现兼容问题;排查顺序优先先查本机 GPU 算力,再核对编译时的架构列表,缺失对应的架构就补上,重新编译 CUDA 扩展。

算力架构对照表

GPU 系列算力架构(arch)
RTX 20 系列(2060/2070/2080Ti)7.5
T47.5
RTX 30 系列(3060/3090)8.6
A1008.0
RTX 40 系列8.9
H1009.0

排查与重编译步骤清单

  1. 查看本机 GPU 算力,执行命令:

nvidia-smi

或者在 python 里查看:

import torch

print(torch.cuda.get_device_capability())

  1. 记录得到的算力号,例如 (8,6) 代表 8.6
  2. 查看算子编译脚本里的 TORCH_CUDA_ARCH_LIST,看是否包含该算力
  3. 如果缺失,设置环境变量再编译,示例:

export TORCH_CUDA_ARCH_LIST="8.6;8.9"

python setup.py install

  1. 编译完成后,重新 import、运行代码测试
  2. 仍报错:核对 CUDA 版本、PyTorch 版本是否和编译环境一致

其他次要诱因清单

  • 预编译 wheel 包没有包含该 GPU 架构
  • 算子编译时使用的 CUDA 版本和运行时驱动 CUDA 版本差距过大
  • 多卡环境,其中一张卡架构不在编译列表内,代码自动分配到该卡
  • 算子源码不支持新 / 老架构,需要修改 kernel 源码适配

【相关 FAQ】

问题 1:CUDA error: no kernel image is available for execution on the device,是不是 GPU 坏了?

回答 1:CUDA error: no kernel image is available for execution on the device 大多不是 GPU 硬件损坏,是编译架构和 GPU 架构不匹配,没有对应 kernel 镜像,需要核对 GPU 架构与编译架构。

问题 2:怎么快速确认 GPU 架构,用来解决 CUDA error: no kernel image is available for execution on the device?

回答 2:可以用 torch.cuda.get_device_capability () 或者 nvidia-smi 查询算力编号,拿到 GPU 架构后,核对 TORCH_CUDA_ARCH_LIST 里的编译架构是否包含它。

问题 3:已经设置 TORCH_CUDA_ARCH_LIST,重编译后还是报 CUDA error: no kernel image is available for execution on the device?

回答 3:设置 TORCH_CUDA_ARCH_LIST 后依旧报错,需要确认编译环境 CUDA、PyTorch 版本和运行环境一致,同时确认算子源码本身支持你核对到的 GPU 架构。

问题 4:能不能直接下载别人编译好的包,避免 CUDA error: no kernel image is available for execution on the device?

回答 4:直接下载别人预编译包容易踩坑,别人编译时选定的架构列表不一定包含你的 GPU 架构,最好自己核对 GPU 架构与编译架构,本地编译扩展。

【参考资料】

[2026-11-09](CUDA error: no kernel image is available for execution on the device GPU 架构不匹配排查)CSDN

[2026-11-09](TORCH_CUDA_ARCH_LIST 编译自定义 CUDA 扩展官方说明)PyTorch Docs

[2026-11-08](nvcc 算力架构编码、GPU 算力清单)NVIDIA Developer

【免责声明】

本内容针对 CUDA error: no kernel image is available for execution on the device 报错,提供核对 GPU 架构与编译架构的排查方案;不同算子源码、CUDA 版本、驱动版本、PyTorch 版本会带来额外兼容问题;部分老旧算子本身不支持新 GPU 架构,本文仅作为调试参考,不保证适配所有自定义 CUDA 算子。

本文来自作者[空域镜像]投稿,不代表乌兰科技网立场,如若转载,请注明出处:https://www.wlcbnews.com/rgzn/202611/577.html

赞 (2)

今日大家都在搜的词:

发表回复

本站作者后才能评论

评论列表(4条)

  • 空域镜像
    空域镜像 2026年11月09日

    我是乌兰科技网的签约作者“空域镜像”!

  • 空域镜像
    空域镜像 2026年11月09日

    希望本篇文章《CUDA error no kernel image is available for execution on the device 报错,核对 GPU 架构》能对你有所帮助!

  • 空域镜像
    空域镜像 2026年11月09日

    本站[乌兰科技网]内容主要涵盖:互联网行业的追踪与探索

  • 空域镜像
    空域镜像 2026年11月09日

    本文概览:遇到 CUDA error: no kernel image is available for execution on the device 报错,核心原因是编译代码时指定的 CUDA 算力架构,和你当前 GPU 硬件的算力架构不匹配,GPU 里找不到可以运行的 kernel 二进制镜像,最直接的解决办法就是核对 GPU 算力架构,重新设置 TORCH_CUDA_ARCH_LIST 或者 nvcc 编译参数再编译。很多自定义 CUDA 算子、CUDA 扩展、第三方算子包在编译的时候,只会预先编译指定的算力版本,比如只编译 8.6、8.9,如果你拿算力 7.5、7.0 或者 9.0 的显卡去跑,就会直接报这个错误;也有可能是预编译包是在高算力卡上编译,没有包含低算力架构,或者本地 CUDA 版本、PyTorch 版本和算子编译环境不一致,就算架构号对上也会出现兼容问题;排查顺序优先先查本机 GPU 算力,再核对编译时的架构列表,缺失对应的架构就补上,重新编译 CUDA 扩展。

联系我们

联系:143 0457 151

工作时间:周一至周五,9:30-18:30,节假日休息

关注我们