nvcc 致命错误:选项“gpu-architecture”未定义值“sm_86”

nvcc 致命错误:选项“gpu-architecture”未定义值“sm_86”

当我尝试将 CUDA 与 Blender 2.82.a+dfsg-1 结合使用时出现以下错误:

Compiling CUDA kernel ...
"nvcc" -arch=sm_86 --cubin "/usr/share/blender/scripts/addons/cycles/source/kernel/kernels/cuda/kernel.cu" -o "/home/bram/.cache/cycles/kernels/cycles_kernel_sm86_673C3180FADE8EDF0E80E61994C4DC92.cubin" -m64 --ptxas-options="-v" --use_fast_math -DNVCC -I"/usr/share/blender/scripts/addons/cycles/source" 
nvcc fatal   : Value 'sm_86' is not defined for option 'gpu-architecture'
CUDA kernel compilation failed, see console for details.

根据 nvidia-smi 的报告,我的系统上安装了 CUDA 11.1

$ nvidia-smi 
Sun Dec 20 19:34:48 2020       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 455.38       Driver Version: 455.38       CUDA Version: 11.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  GeForce RTX 3070    Off  | 00000000:17:00.0  On |                  N/A |
|  0%   55C    P8    19W / 240W |    610MiB /  7979MiB |     12%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A       968      G   /usr/lib/xorg/Xorg                 59MiB |
|    0   N/A  N/A      1598      G   /usr/lib/xorg/Xorg                247MiB |
|    0   N/A  N/A      1749      G   /usr/bin/gnome-shell               74MiB |
|    0   N/A  N/A      3855      G   ...e/Steam/ubuntu12_32/steam       17MiB |
|    0   N/A  N/A      3866      G   ./steamwebhelper                    3MiB |
|    0   N/A  N/A      3878      G   ...43331726878339,131072 --d       49MiB |
|    0   N/A  N/A      5384      G   /usr/lib/firefox/firefox            3MiB |
|    0   N/A  N/A      5463      G   /usr/lib/firefox/firefox            3MiB |
|    0   N/A  N/A      5686      G   nvidia-settings                     3MiB |
|    0   N/A  N/A      9586      G   /usr/lib/firefox/firefox            3MiB |
|    0   N/A  N/A      9642      G   blender                           120MiB |
|    0   N/A  N/A      9988      G   /usr/lib/firefox/firefox            3MiB |
+-----------------------------------------------------------------------------+

我如何强制 Blender 使用不同的着色器模型?因为显然它不喜欢sm_86

答案1

使用以下命令检查 gpu-architecture 的允许值

nvcc --help

对于我的 CUDA 10.1 安装,我得到:

Allowed values for this option:  'compute_30','compute_32','compute_35',
        'compute_37','compute_50','compute_52','compute_53','compute_60','compute_61',
        'compute_62','compute_70','compute_72','compute_75','sm_30','sm_32','sm_35',
        'sm_37','sm_50','sm_52','sm_53','sm_60','sm_61','sm_62','sm_70','sm_72',
        'sm_75'.   

所以 sm_86 不是一个允许的值。

答案2

该命令显示的 CUDA 版本nvidia-smi不是您当前的实际 CUDA 版本,而是您的最大限度CUDA 版本。

nvcc -V实际的 CUDA 版本可以通过命令或显示nvcc --version,可能你的实际 CUDA 版本低于 11.1,所以你需要更新至 11.1 或更高版本。您可以搜索特殊更新过程教程,这里是CUDA 工具包档案

对我来说,命令nvidia-smi显示12.2,而命令nvcc -V显示11.5,我遇到的错误是选项“gpu-architecture”未定义值“sm_89”,当我将我的 CUDA 版本更新到 12.2 后,它不再显示该错误。

也许它能帮助你。

相关内容