CUDA在Linux和Windows上的优缺点?

4

我同时使用 Fedora 13 和 Windows 7 两个操作系统,但我要用 CUDA C/C++ 进行 GPU 计算。我了解到 Visual Studio 的 Parallel Nsight 插件,它似乎是一个非常好的开发环境。然而,Linux 一直拥有更多的工具,并且 GPU 超级计算机通常使用 Linux。无论如何,我想知道有没有任何人使用过这两个平台,以及它们各自的优缺点。如果有人想知道,这是一个双启动系统,我将在额外的 PCI Express 插槽中安装 GTX 470 以进行 GPU 调试。请不要引发争吵...

3个回答

6
在 Windows 上的 NVidia 工具很好用。而超级计算机使用 Linux 的原因是在 10,000 个节点上使用 Windows 客户端许可证价格昂贵!此外,还有传统的更好的工具来管理 Linux 集群。
在 Windows 上存在一般性能损失,因为有很多 GUI 界面你无法关闭。我们测量出 CPU 密集任务的性能比在 Linux 命令行下低了 10-15%。
GPU 内部的 Cuda 任务实际性能应该相同。

10-15%!!! 这是相当大的性能损失,然而这只是一个GPU,在其上我将运行一个CUDA程序。在您测量两个操作系统之间的性能差异时,您的团队使用了多少个GPU? - sj755
那是在GPGPUs出现之前,针对纯CPU(MPI集群)应用程序的。 - Martin Beckett
哦,我明白了,误读了答案,那我还是可以使用Windows,因为我已经安装了VS10和VS08? - sj755
这还是真的吗?我在Ubuntu上使用CUDA 10-2,得到了惊人的快速结果,但还没有在Windows10上尝试过。 - Andor Kiss
这个答案可以通过参考CUDA在Windows和Linux上的特点/限制来改进。目前它并不具体针对CUDA。 - John Curry

2
如果您将使用CUDA代码进行生产软件,最好在您最熟悉的环境中完成。但是,如果您从性能角度考虑构建所需的时间,则最好使用Linux(如果您熟悉Make)。

1

使用体验肯定取决于您的经验。但是假设您在Windows和Linux上拥有相同的经验,请查找以下优缺点。

总的来说,Linux可能会少些阻力和限制。但是,如果您在Windows操作系统上,并且不想进行Linux双启动,那么使用Windows或者妥协WSL2可能是值得的。我曾多次在Linux上安装并运行CUDA开发(有时带有一些困难),但由于以下问题而放弃了Windows设置。我将选择Linux双启动。

Linux

  • 大多数开发人员似乎都在使用它,因此NVIDIA论坛的支持更好,在VSCode等设置示例方面也有更多的示例。
  • 构建程序,例如CUDA样本,具有非常明确的make文件,该文件得到了大量使用,并有许多视频和其他参考资料可供使用。
  • 支持所有CUDA功能
  • 在大多数情况下,匹配目标生产系统,大部分生产工作负载将在Linux上执行。

Windows

WSL2

  • 或许这是一个不错的折中方案,因为你可以使用大部分 Linux 的功能和内容
  • 但是,安装过程有点棘手。根据https://docs.nvidia.com/cuda/wsl-user-guide/index.html,你需要在 WSL2 中安装 CUDA 工具包,但要小心不要安装带有驱动程序的工具包。
  • 根据上述链接,存在一些限制,例如不支持性能分析。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接