【问题标题】:What compilers support CUDA哪些编译器支持 CUDA
【发布时间】:2013-02-01 11:17:49
【问题描述】:

我发现 Visual Studio 有一些问题。我使用openMP 多线程的项目在 Visual Studio 2010 上比在 Dev-C++ 上慢两倍,现在我编写了另一个使用 CUDA 技术的项目,我认为我的项目由于 Visual Studio 而运行缓慢,所以我需要一些其他的支持 CUDA 的编译器,我的问题是:

  1. Dev-C++ 是否支持 CUDA?

  2. 除了 Visual Studio 之外,哪些编译器支持 CUDA?

  3. 如果有很多支持 CUDA 的编译器,什么会为应用程序提供最佳速度?

【问题讨论】:

    标签: visual-studio-2010 compiler-construction cuda dev-c++


    【解决方案1】:

    嗯,我认为情况正好相反。问题是,有一个名为nvcc 的驱动程序。它生成设备代码和主机代码并将主机代码发送到编译器。它应该是 C 编译器,并且应该在可执行路径中。 (编辑:它应该是 Linux 上的 gcc 和 Windows 上的 cl,我认为我应该像发行说明那样忽略 mac(?))

    nvcc 编译器信息如下:

    nvcc 在下面需要一个通用的 C 编译器 情况:

    1. 在非CUDA阶段(运行阶段除外),因为这些阶段会被nvcc转发到这个编译器

    2. 在 CUDA 阶段,用于几个预处理阶段(另见 0)。在 Linux 平台上,编译器假定为“gcc”或“g++”用于链接。在 Windows 平台上,编译器假定为“cl”。这 编译器可执行文件应在当前可执行文件中 搜索路径,除非指定了选项 -compiler-bin-dir,其中 case 这个选项的值必须是目录的名字 这些编译器可执行文件所在的位置。

    请不要那样谈论编译器。您的代码与 Dev-C++ 配合得更好。生成的是汇编代码。我并不是说它们没有任何区别,但可能是 4% 到 5%,而不是 100%。

    绝对不要因为你的程序慢而责备编译器。肯定是因为内存访问效率低,不同类型内存使用不正确。

    【讨论】:

      【解决方案2】:

      CUDA 工具包Release Notes 列出了支持的平台和编译器。

      【讨论】:

      • 非常感谢,因为我在 windows 上只看到了 Visual Studio 2008 和 2010 上支持的 Windows 编译器。但是 Linux 上有很多编译器,我的问题是 Windows 和Linux 编译器?
      • 是的,所有的编译器都不同,生成的代码也会略有不同。因此会有程序速度差异。在设备代码的情况下,nvcc 使用的底层设备代码编译器应该是相同的,但即便如此,linux 和 windows 之间的系统级差异也会影响整体程序速度。我相信 Greg 已经回答了您的 3 个问题: 1. 不支持 Dev-C++。 2. 对于windows,唯一支持的编译器是cl.exe,它包含在VS中。 3. 这是一个无法回答的问题。
      猜你喜欢
      • 2016-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-04
      • 2016-04-12
      相关资源
      最近更新 更多