首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >为nvcc设置默认主机编译器

为nvcc设置默认主机编译器
EN

Stack Overflow用户
提问于 2017-06-28 01:26:21
回答 2查看 17.7K关注 0票数 11

我刚刚在一个新的GPU服务器上安装了Debian (9)和Cuda 8。Stretch不随gcc的旧版本而来,所以我需要使用clang作为主机编译器(nvcc不支持gcc-6)。我可以将nvcc调用为:

代码语言:javascript
代码运行次数:0
运行
复制
nvcc -ccbin clang-3.8

是否有任何方法可以使这个系统更广泛--例如,在cuda配置或环境变量中?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-09-05 22:31:45

您可以使用描述为NVCC_PREPEND_FLAGSNVCC_APPEND_FLAGS在官方文件里-ccbin注入到nvcc的所有调用中。

例如,我的~/.bash_profile中有以下内容

代码语言:javascript
代码运行次数:0
运行
复制
export NVCC_PREPEND_FLAGS='-ccbin /home/linuxbrew/.linuxbrew/bin/g++-11'
票数 1
EN

Stack Overflow用户

发布于 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中,如下所示:

代码语言:javascript
代码运行次数:0
运行
复制
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脚本,您只需复制并编辑:

代码语言:javascript
代码运行次数:0
运行
复制
cat `which nvcc`

更新:人们推荐链接正确的gcc版本。到cuda的内部dir /usr/local/cuda/bin/

代码语言:javascript
代码运行次数:0
运行
复制
  sudo ln -s /usr/bin/gcc-4.4 /usr/local/cuda/bin/gcc
票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44792279

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档