この記事を作った動機
以下の Blender と Nvidia ドライバや CUDA の構成だと、CUDA のコンパイルに失敗して Cycles レンダリングにおける GPU 演算が正しく行われない結果になることがわかった。
yay -Qs nvidia
# local/cuda 13.1.1-1 (2.2 GiB 4.7 GiB)
# NVIDIA's GPU programming toolkit
# local/egl-gbm 1.1.3-1
# The GBM EGL external platform library
# local/egl-wayland 4:1.1.21-1
# EGLStream-based Wayland external platform
# local/egl-wayland2 1.0.1-1
# EGLStream-based Wayland external platform (2)
# local/egl-x11 1.0.5-1
# NVIDIA XLib and XCB EGL Platform Library
# local/ffnvcodec-headers 13.0.19.0-1
# FFmpeg version of headers required to interface with Nvidias codec APIs
# local/lib32-opencl-nvidia 590.48.01-1
# OpenCL implemention for NVIDIA (32-bit)
# local/libnvidia-container 1.19.0-1
# NVIDIA container runtime library
# local/libva-nvidia-driver 0.0.16-1
# VA-API implementation that uses NVDEC as a backend
# local/libvdpau 1.5-4
# Nvidia VDPAU library
# local/libxnvctrl 590.48.01-1
# NVIDIA NV-CONTROL X extension
# local/linux-firmware-nvidia 20260309-1
# Firmware files for Linux - Firmware for NVIDIA GPUs and SoCs
# local/nvidia-580xx-dkms 580.142-1
# NVIDIA kernel modules - module sources (580xx)
# local/nvidia-580xx-utils 580.142-1
# NVIDIA drivers utilities (580xx)
# local/nvidia-container-toolkit 1.19.0-1
# NVIDIA container toolkit
# local/nvidia-prime 1.0-5
# NVIDIA Prime Render Offload configuration and utilities
# local/nvidia-settings 590.48.01-1
# Tool for configuring the NVIDIA graphics driver
# local/opencl-nvidia 590.48.01-4
# OpenCL implemention for NVIDIA
yay -Qs blender
# local/blender 17:5.0.1-9
# A fully integrated 3D graphics creation suite
# local/blender-4.2-bin 4.2.260319.12a2dfa84963-1
# A fully integrated 3D graphics creation suite
# local/blender-4.2-bin-debug 4.2.260319.12a2dfa84963-1
# Detached debugging symbols for blender-4.2-bin
また、AUR にある CUDAの以下のバージョンを試したが、どれも正しく動かなかったし、現時点(2023/3/22)ではまだ動かす方法は見つかっていない。
- 12.0
- 12.2
- 12.5
- 12.8
環境
GNOME Settings のレポート
System Details Report
Report details
Hardware Information:
Software Information:
具体的な対応内容
今回、Arch Linux - blender 17:5.0.1-9 (x86_64) の Extra にある公式パッケージの利用は諦めて、手動で直接 Blender - The Free and Open Source 3D Creation Software — blender.org からダウンロードして使うことにした。
ただ、いちいち展開したり自分でファイルを管理するのは、あとからぐちゃぐちゃになって収集がつかなくなると思われたため、以下のリソースを主に参考にしてPKGBUILD を自分で書き、パッケージマネージャに仕事させることにした。
- AUR (en) - blender-bin の PKGBUILD
- AUR (en) - blender-4.2-bin の PKGBUILD
- makepkg - ArchWiki
- makepkg(8) — Arch manual pages
- PKGBUILD - ArchWiki
- PKGBUILD(5) — Arch manual pages
- Google Gemini
Blender 公式からファイルを取得する
Download — Blender にアクセスして、Linux 版のパッケージをダウンロードし展開せずにしておく。今回はダウンロードしたファイルは以下のように配置されている事を想定する。
pwd
# /home/userName/Downloads
ls -l blender*
# -rw-r--r--⠀userName⠀userName⠀44105692⠀Mar 22 09:12:37⠀⠀blender-5.1.0-linux-x64.tar.xz
ファイルを配置する
作業ディレクトリを作成する
mkdir /tmp/blenderInstall
cd /tmp/blenderInstall
ダウンロードしたファイルを配置する
cp /home/userName/Downloads/blender-5.1.0-linux-x64.tar.xz /tmp/blenderInstall/
PKGBUILD を配置する
# This is workaround for GTX1080Ti to avoid compile error due to cuda version mismatch.
pkgname=Blender-5.1.0-manual-install
pkgver=5.1.0
pkgrel=1
pkgdesc="This is workaround for Blender with GTX1080Ti to avoid compile error due to cuda version mismatch."
arch=('x86_64')
url="https://blender.org"
license=('GPL')
options=('!strip' '!debug')
depends=('blender')
optdepends=('cuda: Cycles renderer CUDA support'
'intel-compute-runtime: Cycles renderer Intel OneAPI support'
'level-zero-loader: Cycles renderer Intel OneAPI support'
'intel-level-zero-raytracing-support: Intel OneAPI Raytracing Support'
'libdecor: wayland support'
'hip-runtime-amd: HIP renderer AMD support')
provides=('blender-manual-install')
conflicts=('blender-manual-install')
source=("./blender-5.1.0-linux-x64.tar.xz")
sha256sums=('SKIP')
package() {
cd "$srcdir/blender-$pkgver-linux-x64"
mkdir -p "${pkgdir}/opt/${pkgname}/"
install -Dm755 {blender,blender-thumbnailer} "${pkgdir}/opt/${pkgname}/"
install -Dm644 blender.desktop "${pkgdir}/usr/share/applications/${pkgname}.desktop"
sed -i "s|Name=Blender|Name=Blender 5.1.0 (Manual Install)|g" "${pkgdir}/usr/share/applications/${pkgname}.desktop"
sed -i "s|Exec=blender %f|Exec=/opt/${pkgname}/blender-launcher %f|g" "${pkgdir}/usr/share/applications/${pkgname}.desktop"
cp -a -r "${pkgver:0:3}" lib "${pkgdir}/opt/${pkgname}/"
pushd "${pkgdir}/opt/${pkgname}/lib"
for file in *.so*;
do
chmod 755 "$file"
done
popd
pushd "${pkgdir}/opt/${pkgname}/lib/mesa"
for file in *.so*;
do
chmod 755 "$file"
done
popd
install -Dm755 blender-launcher "${pkgdir}/opt/${pkgname}/blender-launcher"
install -Dm755 blender-softwaregl "${pkgdir}/opt/${pkgname}/blender-softwaregl"
install -Dm755 blender-system-info.sh "${pkgdir}/opt/${pkgname}/blender-system-info"
}
インストール
makepkg -si
動作の様子の例
発生したエラーの詳細
ここでは、CUDA 13.1 と CUDA 12.8 の動作の様子について示す。CUDA 13.1 については、GTX 1080Ti をサポートしない旨が表示され、CUDA 12.8 ではコンパイルエラーが起こっている。
CUDA 13.1
動画
ログ
エラーの詳細
blender
# Traceback (most recent call last):
# File "/usr/share/blender/5.0/scripts/modules/addon_utils.py", line 362, in enable
# raise RuntimeError("Extension {:s} is incompatible ({:s})".format(module_name, error))
# RuntimeError: Extension bl_ext.blender_org.mmd_tools is incompatible (This Blender version (5.0.1) must be less than the maximum version (5.0.0))
# 05:40.336 cycles | ERROR CUDA version 13.1CUDA 10.1 to 12 are officially supported.
# nvcc fatal : Unsupported gpu architecture 'sm_61'
# 05:40.342 cycles | ERROR Failed to execute compilation command, see console for details.
# 05:40.342 cycles | ERROR Refer to the Cycles GPU rendering documentation for possible solutions:
# | https://docs.blender.org/manual/en/latest/render/cycles/gpu_rendering.html
# |
# 05:40.342 cycles | ERROR Invalid handle in cuModuleGetGlobal_v2(&mem, &bytes, cuModule, "kernel_params") (/usr/src/debug/blender/blender/intern/cycles/device/cuda/device_impl.cpp:678)
# 05:40.342 cycles | ERROR Invalid value in cuMemcpyHtoD_v2(mem + __builtin_offsetof (KernelParamsCUDA, data), host, size) (/usr/src/debug/blender/blender/intern/cycles/device/cuda/device_impl.cpp:687)
CUDA 12.8
動画
ログ
エラーの詳細
blender
# Traceback (most recent call last):
# File "/usr/share/blender/5.0/scripts/modules/addon_utils.py", line 362, in enable
# raise RuntimeError("Extension {:s} is incompatible ({:s})".format(module_name, error))
# RuntimeError: Extension bl_ext.blender_org.mmd_tools is incompatible (This Blender version (5.0.1) must be less than the maximum version (5.0.0))
# nvcc warning : Support for offline compilation for architectures prior to '<compute/sm/lto>_75' will be removed in a future release (Use -Wno-deprecated-gpu-targets to suppress warning).
# /usr/include/c++/15.2.1/type_traits(555): error: type name is not allowed
# : public __bool_constant<__is_pointer(_Tp)>
# ^
#
# /usr/include/c++/15.2.1/type_traits(555): error: identifier "__is_pointer" is undefined
# : public __bool_constant<__is_pointer(_Tp)>
# ^
#
# /usr/include/c++/15.2.1/type_traits(877): error: type name is not allowed
# : public __bool_constant<__is_volatile(_Tp)>
# ^
#
# /usr/include/c++/15.2.1/type_traits(877): error: identifier "__is_volatile" is undefined
# : public __bool_constant<__is_volatile(_Tp)>
# ^
#
# /usr/include/c++/15.2.1/type_traits(1492): error: type name is not allowed
# : public integral_constant<std::size_t, __array_rank(_Tp)> { };
# ^
#
# /usr/include/c++/15.2.1/type_traits(1492): error: identifier "__array_rank" is undefined
# : public integral_constant<std::size_t, __array_rank(_Tp)> { };
# ^
#
# /usr/include/c++/15.2.1/type_traits(1844): error: incomplete type "std::__cv_selector<std::__make_unsigned_selector<int, false, true>::__unsigned_type, false, <error-constant>>" (aka "std::__cv_selector<unsigned int, false, <error-constant>>") is not allowed
# using __type = typename __match::__type;
# ^
# detected during:
# instantiation of class "std::__match_cv_qualifiers<_Qualified, _Unqualified, _IsConst, _IsVol> [with _Qualified=int, _Unqualified=unsigned int, _IsConst=false, _IsVol=<error-constant>]" at line 1953
# instantiation of class "std::__make_unsigned_selector<_Tp, false, true> [with _Tp=int]" at line 1964
#
# /usr/include/c++/15.2.1/type_traits(1844): error: incomplete type "std::__cv_selector<std::__make_unsigned_selector<char16_t, false, true>::__unsigned_type, false, <error-constant>>" (aka "std::__cv_selector<unsigned short, false, <error-constant>>") is not allowed
# using __type = typename __match::__type;
# ^
# detected during:
# instantiation of class "std::__match_cv_qualifiers<_Qualified, _Unqualified, _IsConst, _IsVol> [with _Qualified=char16_t, _Unqualified=unsigned short, _IsConst=false, _IsVol=<error-constant>]" at line 1953
# instantiation of class "std::__make_unsigned_selector<_Tp, false, true> [with _Tp=char16_t]" at line 1980
#
# /usr/include/c++/15.2.1/type_traits(1844): error: incomplete type "std::__cv_selector<std::__make_unsigned_selector<int, false, true>::__unsigned_type, false, <error-constant>>" (aka "std::__cv_selector<unsigned int, false, <error-constant>>") is not allowed
# using __type = typename __match::__type;
# ^
# detected during:
# instantiation of class "std::__match_cv_qualifiers<_Qualified, _Unqualified, _IsConst, _IsVol> [with _Qualified=char32_t, _Unqualified=unsigned int, _IsConst=false, _IsVol=<error-constant>]" at line 1953
# instantiation of class "std::__make_unsigned_selector<_Tp, false, true> [with _Tp=char32_t]" at line 1987
#
# /usr/include/c++/15.2.1/type_traits(1844): error: incomplete type "std::__cv_selector<std::__make_unsigned_selector<int, true, false>::__unsigned_type, false, <error-constant>>" is not allowed
# using __type = typename __match::__type;
# ^
# detected during:
# instantiation of class "std::__match_cv_qualifiers<_Qualified, _Unqualified, _IsConst, _IsVol> [with _Qualified=int, _Unqualified=<error-type>, _IsConst=false, _IsVol=<error-constant>]" at line 1915
# instantiation of class "std::__make_unsigned_selector<_Tp, true, false> [with _Tp=int]" at line 2082
# instantiation of class "std::__make_signed_selector<_Tp, false, true> [with _Tp=int]" at line 2096
#
# /usr/include/c++/15.2.1/type_traits(2085): error: incomplete type "std::__make_signed_selector<std::__make_signed_selector<int, false, true>::__unsigned_type, false, <error-constant>>" is not allowed
# using __type = typename __make_signed_selector<__unsigned_type>::__type;
# ^
# detected during instantiation of class "std::__make_signed_selector<_Tp, false, true> [with _Tp=int]" at line 2096
#
# /usr/include/c++/15.2.1/type_traits(1844): error: incomplete type "std::__cv_selector<std::__make_unsigned_selector<int, true, false>::__unsigned_type, false, <error-constant>>" is not allowed
# using __type = typename __match::__type;
# ^
# detected during:
# instantiation of class "std::__match_cv_qualifiers<_Qualified, _Unqualified, _IsConst, _IsVol> [with _Qualified=char16_t, _Unqualified=<error-type>, _IsConst=false, _IsVol=<error-constant>]" at line 1915
# instantiation of class "std::__make_unsigned_selector<_Tp, true, false> [with _Tp=char16_t]" at line 2082
# instantiation of class "std::__make_signed_selector<_Tp, false, true> [with _Tp=char16_t]" at line 2112
#
# /usr/include/c++/15.2.1/type_traits(2085): error: incomplete type "std::__make_signed_selector<std::__make_signed_selector<int, false, true>::__unsigned_type, false, <error-constant>>" is not allowed
# using __type = typename __make_signed_selector<__unsigned_type>::__type;
# ^
# detected during instantiation of class "std::__make_signed_selector<_Tp, false, true> [with _Tp=char16_t]" at line 2112
#
# /usr/include/c++/15.2.1/type_traits(1844): error: incomplete type "std::__cv_selector<std::__make_unsigned_selector<int, true, false>::__unsigned_type, false, <error-constant>>" is not allowed
# using __type = typename __match::__type;
# ^
# detected during:
# instantiation of class "std::__match_cv_qualifiers<_Qualified, _Unqualified, _IsConst, _IsVol> [with _Qualified=char32_t, _Unqualified=<error-type>, _IsConst=false, _IsVol=<error-constant>]" at line 1915
# instantiation of class "std::__make_unsigned_selector<_Tp, true, false> [with _Tp=char32_t]" at line 2082
# instantiation of class "std::__make_signed_selector<_Tp, false, true> [with _Tp=char32_t]" at line 2119
#
# /usr/include/c++/15.2.1/type_traits(2085): error: incomplete type "std::__make_signed_selector<std::__make_signed_selector<int, false, true>::__unsigned_type, false, <error-constant>>" is not allowed
# using __type = typename __make_signed_selector<__unsigned_type>::__type;
# ^
# detected during instantiation of class "std::__make_signed_selector<_Tp, false, true> [with _Tp=char32_t]" at line 2119
#
# /usr/include/c++/15.2.1/type_traits(3303): error: type name is not allowed
# : public __bool_constant<__is_invocable(_Fn, _ArgTypes...)>
# ^
#
# /usr/include/c++/15.2.1/type_traits(3303): error: type name is not allowed
# : public __bool_constant<__is_invocable(_Fn, _ArgTypes...)>
# ^
#
# /usr/include/c++/15.2.1/type_traits(3333): error: type name is not allowed
# : public __bool_constant<__is_nothrow_invocable(_Fn, _ArgTypes...)>
# ^
#
# /usr/include/c++/15.2.1/type_traits(3333): error: type name is not allowed
# : public __bool_constant<__is_nothrow_invocable(_Fn, _ArgTypes...)>
# ^
#
# /usr/include/c++/15.2.1/type_traits(3409): error: type name is not allowed
# inline constexpr bool is_pointer_v = __is_pointer(_Tp);
# ^
#
# /usr/include/c++/15.2.1/type_traits(3522): error: type name is not allowed
# inline constexpr bool is_volatile_v = __is_volatile(_Tp);
# ^
#
# /usr/include/c++/15.2.1/type_traits(3664): error: type name is not allowed
# inline constexpr size_t rank_v = __array_rank(_Tp);
# ^
#
# /usr/include/bits/mathcalls.h(83): error: exception specification is incompatible with that of previous function "cospi" (declared at line 2601 of /opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h)
# extern double cospi (double __x) noexcept (true); extern double __cospi (double __x) noexcept (true);
# ^
#
# /usr/include/bits/mathcalls.h(85): error: exception specification is incompatible with that of previous function "sinpi" (declared at line 2556 of /opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h)
# extern double sinpi (double __x) noexcept (true); extern double __sinpi (double __x) noexcept (true);
# ^
#
# /usr/include/bits/mathcalls.h(206): error: exception specification is incompatible with that of previous function "rsqrt" (declared at line 597 of /opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h)
# extern double rsqrt (double __x) noexcept (true); extern double __rsqrt (double __x) noexcept (true);
# ^
#
# /usr/include/bits/mathcalls.h(83): error: exception specification is incompatible with that of previous function "cospif" (declared at line 2623 of /opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h)
# extern float cospif (float __x) noexcept (true); extern float __cospif (float __x) noexcept (true);
# ^
#
# /usr/include/bits/mathcalls.h(85): error: exception specification is incompatible with that of previous function "sinpif" (declared at line 2579 of /opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h)
# extern float sinpif (float __x) noexcept (true); extern float __sinpif (float __x) noexcept (true);
# ^
#
# /usr/include/bits/mathcalls.h(206): error: exception specification is incompatible with that of previous function "rsqrtf" (declared at line 621 of /opt/cuda/bin/../targets/x86_64-linux/include/crt/math_functions.h)
# extern float rsqrtf (float __x) noexcept (true); extern float __rsqrtf (float __x) noexcept (true);
# ^
#
# 28 errors detected in the compilation of "/usr/share/blender/5.0/scripts/addons_core/cycles/source/kernel/device/cuda/kernel.cu".
# 01:18.904 cycles | ERROR Failed to execute compilation command, see console for details.
# 01:18.904 cycles | ERROR Refer to the Cycles GPU rendering documentation for possible solutions:
# | https://docs.blender.org/manual/en/latest/render/cycles/gpu_rendering.html
# |
# 01:18.904 cycles | ERROR Invalid handle in cuModuleGetGlobal_v2(&mem, &bytes, cuModule, "kernel_params") (/usr/src/debug/blender/blender/intern/cycles/device/cuda/device_impl.cpp:678)
# 01:18.904 cycles | ERROR Invalid value in cuMemcpyHtoD_v2(mem + __builtin_offsetof (KernelParamsCUDA, data), host, size) (/usr/src/debug/blender/blender/intern/cycles/device/cuda/device_impl.cpp:687)
関係ありそうな記事
参考にしたサイトとか
-
NVIDIA GeForce GTX 1080 Ti Specs | TechPowerUp GPU Database
https://www.techpowerup.com/gpu-specs/geforce-gtx-1080-ti.c2877 (2026年3月22日) -
Google Gemini
https://gemini.google.com/app (2026年3月22日) -
Blender - The Free and Open Source 3D Creation Software — blender.org
https://www.blender.org/ (2026年3月22日) -
AUR (en) - cuda12.0
https://aur.archlinux.org/packages/cuda12.0 (2026年3月22日) -
AUR (en) - cuda-12.2
https://aur.archlinux.org/packages/cuda-12.2 (2026年3月22日) -
AUR (en) - cuda-12.5
https://aur.archlinux.org/packages/cuda-12.5 (2026年3月22日) -
AUR (en) - cuda-12.8
https://aur.archlinux.org/packages/cuda-12.8 (2026年3月22日) -
Arch Linux - blender 17:5.0.1-9 (x86_64)
https://archlinux.org/packages/extra/x86_64/blender/ (2026年3月22日) -
AUR (en) - blender-bin
https://aur.archlinux.org/packages/blender-bin (2026年3月22日) -
AUR (en) - blender-4.2-bin
https://aur.archlinux.org/packages/blender-4.2-bin (2026年3月22日) -
makepkg - ArchWiki
https://wiki.archlinux.org/title/Makepkg (2026年3月22日) -
makepkg(8) — Arch manual pages
https://man.archlinux.org/man/makepkg.8.en (2026年3月22日) -
PKGBUILD - ArchWiki
https://wiki.archlinux.org/title/PKGBUILD (2026年3月22日) -
PKGBUILD(5) — Arch manual pages
https://man.archlinux.org/man/PKGBUILD.5 (2026年3月22日)