qiskit-aer-gpu报cudaErrorNoKernelImageForDevice错误原因排查
问题解答
错误核心原因
cudaErrorNoKernelImageForDevice错误的本质是:你运行的qiskit-aer-gpu提供的CUDA内核,没有为你的GeForce GT 740(计算能力CC 3.0)编译对应的可执行镜像文件,导致GPU无法找到匹配的内核代码执行。
版本兼容性问题确认
确实存在架构/编译适配的兼容性问题,具体两点:
- GPU架构支持被淘汰:GeForce GT 740属于Kepler架构(CC 3.0),是比较老旧的GPU架构。qiskit-aer-gpu的官方预编译包已逐步停止对CC 3.0及以下版本的支持,预编译的内核只包含了更高计算能力(比如CC 3.5+、5.0+)的镜像,你的GPU无法适配。
- CUDA版本与库编译的偏差:虽然CUDA 10.1本身支持CC 3.0,但qiskit-aer-gpu在官方打包时,并没有针对CC 3.0进行编译。只有当库专门针对你的GPU计算能力版本编译时,才会生成对应的内核镜像。
解决建议
- 源码编译qiskit-aer-gpu:从qiskit-aer的源码仓库拉取代码,编译时通过
CMAKE_CUDA_ARCHITECTURES=30参数强制为CC 3.0生成适配的内核镜像。 - 更换GPU:换成计算能力CC 3.5及以上的GPU型号,这类GPU可以直接兼容qiskit-aer-gpu的预编译包。
内容的提问来源于stack exchange,提问作者aneela
相关产品推荐
相关产品推荐

