2

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

  1. Dev-C++ 支持 CUDA 吗?

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

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

4

2 回答 2

3

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

于 2013-02-16T16:53:27.357 回答
0

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

nvcc 编译器信息如下:

在以下情况下,nvcc 需要通用 C 编译器:

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

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

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

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

于 2013-02-16T16:28:36.993 回答