我尝试了另一个问题中提出的解决方案,但没有成功:CUDA内核编译失败
即:我尝试使用 sudo blender 从终端运行 blender、安装 g++5、更改 kernel.cu。但到目前为止,没有任何效果
我正在使用 Ubuntu 16.04.5 LTS 64 位
我的显卡是 GeForce GT 740M/PCIe/SSE2,运行的是 Blender 2.76
$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2015 NVIDIA Corporation
Built on Tue_Aug_11_14:27:32_CDT_2015
Cuda compilation tools, release 7.5, V7.5.17
这是尝试编译时终端显示的内容:
bernardo@Bernardo-asus:~$ sudo blender
connect failed: No such file or directory
Read new prefs: /home/bernardo/.config/blender/2.76/config/userpref.blend
read blend: /home/bernardo/Blender/donut10.blend
CUDA version 10.0 detected, build may succeed but only CUDA 6.5 is officially supported.
Compiling CUDA kernel ...
"/usr/local/cuda/bin/nvcc" -arch=sm_30 -m64 --cubin "/usr/share/blender/scripts/addons/cycles/kernel/kernels/cuda/kernel.cu" -o "/home/bernardo/.config/blender/2.76/cache/cycles_kernel_sm30_01D31872AEE3D1F297035A84954E3182.cubin" --ptxas-options="-v" --use_fast_math -I"/usr/share/blender/scripts/addons/cycles/kernel" -DNVCC -D__KERNEL_CUDA_VERSION__=100
/usr/share/blender/scripts/addons/cycles/kernel/kernels/cuda/../../util_half.h(43): error: identifier "__float2half_rn" is undefined
1 error detected in the compilation of "/tmp/tmpxft_00001291_00000000-6_kernel.cpp1.ii".
CUDA kernel compilation failed, see console for details.
答案1
在我的计算机上,使用 Ubuntu 16.04 和 Cuda 9.2,看起来调整文件util_half.h
可以解决这个特定问题,尽管其余过程似乎需要很长时间。
您要添加以下内容:
#include "cuda_fp16.h"
并注释掉以下行:
typedef unsigned short half;
该文件位于:
/usr/share/blender/scripts/addons/cycles/kernel/util_half.h
正确的方法是直接下载较新版本的 blender,它可以与 Cuda 9 配合使用。