当我尝试将 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 后,它不再显示该错误。
也许它能帮助你。