在我工作的地方,我们进行了大量的数值计算,我们正在考虑购买使用NVIDIA显卡的工作站,因为CUDA(与TensorFlow和Theano合作)。
我的问题是:这些计算机是否应该配备另一块视频卡来处理显示器并为GPGPU释放NVIDIA?
如果有人知道同时使用显卡和GPGPU的硬数据,我将不胜感激。
答案 0 :(得分:13)
经历了这一切,我将加上我的两分钱。
有一张专用的计算卡很有帮助,但绝对没有必要。
我使用了一个带有单个高端GPU的开发工作站,用于显示和计算。我还使用了具有多个GPU的工作站,以及无头计算服务器。
我的经验是,只要显示器上的需求是软件工程的典型特征,在显示器GPU上进行计算就可以了。在具有几个监视器,Web浏览器,文本编辑器等的Linux设置中,我使用大约200MB来显示6GB的卡 - 因此只有大约3%的开销。在网页刷新或类似情况下,您可能会看到显示器有点干扰,但显示器的吞吐量要求非常小。
值得注意的完整性的一个技术问题是NVIDIA驱动程序,GPU固件或操作系统可能会在显示GPU上暂停内核完成(运行NVIDIA' deviceQueryDrv'以查看驱动程序"运行时间限制内核"设置)。根据我的经验(在Linux上),通过机器学习,这从来就不是一个问题,因为超时是几秒钟,即使使用自定义内核,跨多处理器的同步也限制了你可以在单个内核启动中填充多少内容。我预计TensorFlow中预烘焙操作的典型运行速度将低于此限制两个或更多个数量级。
也就是说,在工作站中使用多个具有计算功能的卡有一些很大的优点(无论是否用于显示)。当然,有可能提高吞吐量(如果您的软件可以使用它)。然而,我的经验的主要优点是能够在同时开发新实验的同时进行长时间的实验。
当然可以从一张卡开始然后再添加一张卡,但要确保您的主板有足够的空间并且您的电源可以处理负载。如果您决定使用两张卡,其中一张是专用于显示的低端卡,我会特别建议不要让低端卡成为具有CUDA功能的卡,以免被选为默认值。
希望有所帮助。
答案 1 :(得分:5)
根据我的经验,在数值计算任务和驱动视频监视器之间共享GPU卡是很尴尬的。例如,任何GPU上都有可用的内存,这通常是您可以训练的模型大小的限制因素。除非您正在进行游戏,否则相当适中的GPU可能足以驱动视频。但对于严肃的ML工作,你可能需要一张高性能卡。在我工作的地方(Google),我们通常会在桌面计算机上放置两个GPU,其中一个用于数值计算。