You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行Trans-SVNet代码时遇CUDA内核镜像不可用错误求助

问题:执行Trans-SVNet代码时触发CUDA kernel不可用错误

我是集群和CUDA新手,在复现Trans-SVNet论文结果时,执行命令:

python generate_LFB.py --skip_train

出现以下错误:

RuntimeError: CUDA error: no kernel image is available for execution on the device

错误回溯信息

Traceback (most recent call last):
  File "generate_LFB.py", line 617, in <module>
    main()
  File "generate_LFB.py", line 613, in main
    (val_num_each, test_num_each))
  File "generate_LFB.py", line 571, in train_model
    outputs_feature = model_LFB.forward(inputs).data.cpu().numpy()
  File "/path/miniconda3/envs/torch151/lib/python3.7/site-packages/torch/nn/parallel/data_parallel.py", line 153, in forward
    return self.module(*inputs[0], **kwargs[0])
  File "/path/miniconda3/envs/torch151/lib/python3.7/site-packages/torch/nn/modules/module.py", line 550, in __call__
    result = self.forward(*input, **kwargs)
  File "generate_LFB.py", line 241, in forward
    x = self.share.forward(x)
  File "/path/miniconda3/envs/torch151/lib/python3.7/site-packages/torch/nn/modules/container.py", line 100, in forward
    input = module(input)
  File "/path/miniconda3/envs/torch151/lib/python3.7/site-packages/torch/nn/modules/module.py", line 550, in __call__
    result = self.forward(*input, **kwargs)
  File "/path/miniconda3/envs/torch151/lib/python3.7/site-packages/torch/nn/modules/activation.py", line 94, in forward
    return F.relu(input, inplace=self.inplace)
  File "/path/miniconda3/envs/torch151/lib/python3.7/site-packages/torch/nn/functional.py", line 1061, in relu
    result = torch.relu_(input)
RuntimeError: CUDA error: no kernel image is available for execution on the device

环境信息

  • 集群无CUDA Toolkit,执行nvcc --version无输出
  • nvidia-smi输出:
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 530.30.02              Driver Version: 530.30.02    CUDA Version: 12.1     |
|-----------------------------------------+----------------------+----------------------+---|
| GPU  Name                  Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf            Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                                         |                      |               MIG M. |
|=========================================+======================+======================|
|   0  NVIDIA GeForce RTX 3060         On | 00000000:18:00.0 Off |                  N/A |
| 31%   27C    P8               18W / 170W|      1MiB / 12288MiB |      0%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+
                                                                                          
+---------------------------------------------------------------------------------------+
| Processes:                                                                            |
|  GPU   GI   CI        PID   Type   Process name                            GPU Memory |
|        ID   ID                                                             Usage      |
|=======================================================================================|
|  No running processes found                                                           |
+---------------------------------------------------------------------------------------+
  • PyTorch兼容性测试结果:
import torch
print(torch.__version__)
print(torch.cuda.is_available())
print(torch.backends.cudnn.enabled)
device = torch.device('cuda')
print(torch.cuda.get_device_properties(device))
print(torch.tensor([1.0, 2.0]).cuda())

输出:

1.5.1
True
True
_CudaDeviceProperties(name='NVIDIA GeForce RTX 3060', major=8, minor=6, total_memory=12044MB, multi_processor_count=28)
tensor([1., 2.], device='cuda:0')

解决方案

这个错误的核心原因是你的PyTorch版本(1.5.1)不支持RTX 3060的CUDA架构(sm_86)。RTX 30系列属于安培架构,计算能力8.6,而PyTorch 1.5.1发布时还未适配该架构,导致预编译的CUDA kernel无法在你的GPU上运行。

解决步骤:

  • 升级PyTorch到支持sm_86的版本:至少升级到PyTorch 1.7.0及以上版本,建议直接安装适配CUDA 11.x的新版本(如1.12.x或更高)。示例安装命令:
    • Conda方式:
      conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia
      
    • Pip方式:
      pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
      
  • 验证新版本兼容性:安装完成后重新运行之前的测试代码,确认torch.cuda.is_available()返回True,且能正常执行CUDA张量操作。
  • 重新运行目标代码:激活新的Python环境后,再次执行python generate_LFB.py --skip_train。

额外说明:

  • 集群没有CUDA Toolkit不影响PyTorch运行,因为PyTorch自带预编译的CUDA runtime,只要版本匹配GPU架构即可。
  • 其他人能正常运行,大概率是他们使用的PyTorch版本支持安培架构,或者使用的是旧架构GPU(如20系列及以下)。

内容的提问来源于stack exchange,提问作者WillWu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 03:58:14