我刚刚在一个新的GPU服务器上安装了Debian (9)和Cuda 8。Stretch不随gcc的旧版本而来,所以我需要使用clang作为主机编译器(nvcc不支持gcc-6)。我可以将nvcc调用为:
nvcc -ccbin clang-3.8
是否有任何方法可以使这个系统更广泛--例如,在cuda配置或环境变量中?
发布于 2022-09-05 22:31:45
您可以使用描述为NVCC_PREPEND_FLAGS
和NVCC_APPEND_FLAGS
的在官方文件里将-ccbin
注入到nvcc的所有调用中。
例如,我的~/.bash_profile
中有以下内容
export NVCC_PREPEND_FLAGS='-ccbin /home/linuxbrew/.linuxbrew/bin/g++-11'
发布于 2017-06-28 01:45:33
nvcc的文档没有列出任何要更改ccbin的env变量,只列出以下选项:
http://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/index.html
--compiler-bindir directory
,-ccbin
指定编译器可执行文件所在的目录。还可以指定主机编译器的可执行名称,以确保选择了正确的主机编译器。
Linux指南也没有这样的信息:http://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html。
您可以尝试创建一些nvcc包装脚本,并将其放在前面的路径env中,如下所示:
mkdir ~/supernvcc
echo '#!/bin/sh' > ~/supernvcc/nvcc
echo `which nvcc` -ccbin clang-3.8 '$@' >> ~/supernvcc/nvcc
chmod +x ~/supernvcc/nvcc
export PATH=/home/`id -un`/supernvcc:$PATH
(在使用export
或将其添加到.bashrc
或其他shell init脚本之前,在每个新shell中重复最后一行使用nvcc
)
PS: nvcc也是bash脚本,您只需复制并编辑:
cat `which nvcc`
更新:人们推荐链接正确的gcc版本。到cuda的内部dir /usr/local/cuda/bin/
:
sudo ln -s /usr/bin/gcc-4.4 /usr/local/cuda/bin/gcc
https://stackoverflow.com/questions/44792279
复制相似问题