如何使用远程桌面运行cuda代码?

14

我正在使用远程桌面连接连接到装有Nvidia显卡(CUDA兼容)的台式机。

我这样做是因为我目前没有显示器!因此我暂时使用我的笔记本电脑连接到我的台式机并运行我的CUDA代码。

似乎远程桌面不识别Nvidia显卡。 cudaGetDeviceCount() 返回一个非常大的数字。但是我在我的电脑上只有1个 Nvidia 460 显卡。

我该如何解决这个问题?我应该使用其他远程软件吗?

8个回答

12

正如所说,您不能使用远程桌面。

相反,您可以使用 VNC 客户端,例如 Splashtop 远程桌面,它是免费的。


4
Splashtop只是一个带有一些额外功能的VNC客户端。您也可以使用其他任何VNC客户端——TurboVNC是免费的且相当快速。RealVNC和TightVNC也能正常工作。 - harrism
您无法访问另一个网络中的内容。在这种情况下,您需要购买。 - PeakGen

4
据我所知,使用远程桌面是无法使用CUDA的。远程桌面不允许访问您的显卡。它更像是一种视觉远程shell。远程桌面仅告诉您哪些gui元素可见。渲染发生在您的笔记本电脑上。类似VNC或TeamViewer的东西可能有效,因为VNC实际上发送屏幕上的内容。

3

您可以使用rCUDA。

http://www.gap.upv.es/rCUDA

rCUDA框架使得远程同时使用兼容CUDA设备成为可能。

rCUDA使用socket API进行客户端和服务器之间的通信。因此,在以下三种不同的环境中都可以发挥作用: 1. 集群:减少高性能集群中安装的GPU数量。这会增加GPU的使用率并节省能源,以及其他相关的节省,如采购成本、维护、空间、冷却等。 2. 学术界:在商品网络中,向许多学生同时提供对少量高性能GPU的访问权限。 3. 虚拟机:使物理机上的CUDA设施可访问。


3

我使用Windows远程桌面连接到亚马逊的HPC实例。我可以在那里运行基于CUDA的代码,没有问题。因此,在Windows远程桌面连接中访问GPU在技术上是可行的。我不知道亚马逊在做什么不同。


2
我发现特斯拉计算集群驱动程序模型允许在Windows远程桌面上使用CUDA。这很可能是亚马逊的HPC实例的工作原理。 - Wallace Kelly
2
正确,这是他们的特殊TCC驱动程序。请记住,Tesla实例类型(cg1)正在逐渐被Grid K520s(g2实例类型)所取代,后者不支持此驱动程序。 - Hans

2

您可以安装Nvidia驱动程序v353.06,并在远程桌面连接上使用CUDA。这对我和我的GTX 680在Windows 7 x64上有效。


0

除非您使用的是Windows,否则SSH将是一个不错的选择。如果您使用IDE或想在文本编辑器中使用鼠标,则在运行CUDA时仍支持X11转发。


0

实际上,远程桌面应用程序根本不允许您访问图形卡,这是出于速度考虑而做的:您连接到的设备不进行渲染,您连接的设备(在您的情况下是笔记本电脑)执行此操作。因此,CUDA程序突然看不到任何CUDA启用的设备,并返回各种奇怪的东西。(我发现我的测试程序并不总是只返回设备计数为0,而是返回各种随机数据,cudaGetDeviceProperties也是如此。

我发现一个完美、免费、跨平台的、我认为更好的替代品是LogMeIn。使用此应用程序,所有渲染都在您连接到的设备上完成,基本上每帧都会发送一个屏幕截图到网络上。简而言之:它的工作方式就像您期望的远程桌面一样。


-1

当使用远程桌面时,由于显示器未连接到视频卡,因此您无法执行该操作。


这个奇怪的地方在于,当我使用进程资源管理器记录我的GPU使用情况时,当我登录时我使用了约23%的Nvidia显卡,而当我注销时则是稳定的0%。我正在运行Windows 8,并使用RDP 7进行连接。 - Gabriel Fair

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