一尘不染

Cuda编译器无法与GCC 4.5 +配合使用

linux

我是Cuda的新手,我正在尝试编译以下简单test_1.cu文件:

#include <stdio.h>

__global__ void kernel(void)
{
}

int main (void)
{
    kernel<<<1,1>>>();
    printf( "Hello, World!\n");
    return 0;

}

使用这个: nvcc test_1.cu

我得到的输出是:

In file included from /usr/local/cuda/bin/../include/cuda_runtime.h:59:0,
                 from <command-line>:0:
/usr/local/cuda/bin/../include/host_config.h:82:2: error: #error -- unsupported GNU version! gcc 4.5 and up are not supported!

我的gcc –version:

gcc (Ubuntu/Linaro 4.6.1-9ubuntu3) 4.6.1
Copyright (C) 2011 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

如何在不弄乱所有内容的情况下安装4.6和gcc的第二个版本?

答案是:

CUDA不支持gcc 4.5和4.6-无法编译代码,并且其他工具链(包括cuda-gdb)将无法正常工作。您不能使用它们,并且该限制是不可协商的。

您唯一的解决方案是安装gcc 4.4版本作为第二个编译器(大多数发行版都允许这样做)。nvcc –compiler-
bindir有一个选项,可用于指向备用编译器。创建一个本地目录,并建立指向支持的gcc版本可执行文件的符号链接。通过–compiler-
bindir选项将该本地目录传递给nvcc,您应该能够编译CUDA代码而不会影响系统的其余部分。

但是我不知道该怎么做


阅读 200

收藏
2020-06-07

共1个答案

一尘不染

在线进行一些研究显示了完成此任务的几种方法。我只是测试了这里找到的方法:http
:
//www.vectorfabrics.com/blog/item/cuda_4.0_on_ubuntu_11.04,它对我来说就像一个魅力。它逐步指导您安装gcc
4.4和创建脚本以使用nvcc运行该版本。如果您喜欢尝试帖子中提到的方法,我建议您遵循该第一个链接来安装gcc4.4,然后按照您的帖子中所述创建符号链接。在Linux中创建符号链接是通过使用“
ln”命令完成的。

例如:

 ln -s [source file/folder path] [linkpath]

该链接提供了一些在Ubuntu和Windows上创建符号链接的示例:http :
//www.howtogeek.com/howto/16226/complete-guide-to-symbolic-links-symlinks-on-
windows-or-linux/。希望这能为您指明正确的方向。

2020-06-07