TL;DR: Some files are missing
To get them, run the command below in your terminal
Note: replace version number with the version number of Blender you are using.
$ wget https://download.blender.org/release/Blender2.83/blender-2.83.5-linux64.tar.xz && \
sudo tar -C /usr/share/blender/scripts/addons/cycles/ \
-xvf blender-2.83.5-linux64.tar.xz \
blender-2.83.5-linux64/2.83/scripts/addons/cycles/lib/ \
--strip-components=5 && \
rm -f blender-2.83.5-linux64.tar.xz
After that restart Blender.
Blender from Debian/Ubuntu repository is missing some files for Cycles CUDA/GPU rendering to work.
Blender from Debian/Ubuntu repository won't work with CUDA because it was not packaged with CUDA kernel for cycles, or more specifically, the Cycles render was not packaged with some *.cubin
files that should be stored /usr/share/blender/scripts/addons/cycles/lib
.
Cycles without CUDA kernel
Blender installed from Debian/Ubuntu repository.
$ ls /usr/share/blender/scripts/addons/cycles/lib
ls: cannot access '/usr/share/blender/scripts/addons/cycles/lib': No such file or directory
Cycles with CUDA kernel
$ ls /usr/share/blender/scripts/addons/cycles/lib
ilter_sm_30.cubin filter_sm_52.cubin filter_sm_75.cubin kernel_sm_37.cubin kernel_sm_61.cubin
filter_sm_35.cubin filter_sm_60.cubin kernel_optix.ptx kernel_sm_50.cubin kernel_sm_70.cubin
filter_sm_37.cubin filter_sm_61.cubin kernel_sm_30.cubin kernel_sm_52.cubin kernel_sm_75.cubin
filter_sm_50.cubin filter_sm_70.cubin kernel_sm_35.cubin kernel_sm_60.cubin
Summary
Those *.cubin
files are essential for Cycles's CUDA/GPU rendering to work. And they are missing from the repository.
Installing nvidia-cuda-toolkit
won't enable the CUDA/GPU rendering capabilities in Blender because it doesn't install Cycles CUDA kernel. You don't need to install full nvidia-cuda-toolkit
, libcuda1
is enough for Cycles CUDA/GPU rendering to work.
The NVIDIA proprietary driver is needed of course.
A simple workaround
I assume that the NVIDIA driver was already installed. If you have no idea what this means, checkout this excellent AskUbuntu answer.
Download Blender from official website and extract the CUDA Cycles kernel from the tarball you downloaded to /usr/share/blender/scripts/addons/cycles/lib
.
Note: Current Blender LTS version is 2.83 Change the Blender version below accordingly if you are using other version of Blender.
On Debian your should also run apt install libcuda1
if it was not automatically installed after installing nvidia-driver
$ sudo tar -C /usr/share/blender/scripts/addons/cycles/ \
-xvf blender-2.83.5-linux64.tar.xz \
blender-2.83.5-linux64/2.83/scripts/addons/cycles/lib/ \
--strip-components=5
Restart Blender and you should have a working Cycles with CUDA enabled.
A harder workaround
You can compile Cycles CUDA kernel yourself.
Visit Blender Wiki for details.