我正在使用远程桌面连接连接到装有Nvidia显卡(CUDA兼容)的台式机。
我这样做是因为我目前没有显示器!因此我暂时使用我的笔记本电脑连接到我的台式机并运行我的CUDA代码。
似乎远程桌面不识别Nvidia显卡。 cudaGetDeviceCount()
返回一个非常大的数字。但是我在我的电脑上只有1个 Nvidia 460 显卡。
我该如何解决这个问题?我应该使用其他远程软件吗?
正如所说,您不能使用远程桌面。
相反,您可以使用 VNC 客户端,例如 Splashtop 远程桌面,它是免费的。
您可以使用rCUDA。
rCUDA框架使得远程同时使用兼容CUDA设备成为可能。
rCUDA使用socket API进行客户端和服务器之间的通信。因此,在以下三种不同的环境中都可以发挥作用: 1. 集群:减少高性能集群中安装的GPU数量。这会增加GPU的使用率并节省能源,以及其他相关的节省,如采购成本、维护、空间、冷却等。 2. 学术界:在商品网络中,向许多学生同时提供对少量高性能GPU的访问权限。 3. 虚拟机:使物理机上的CUDA设施可访问。
我使用Windows远程桌面连接到亚马逊的HPC实例。我可以在那里运行基于CUDA的代码,没有问题。因此,在Windows远程桌面连接中访问GPU在技术上是可行的。我不知道亚马逊在做什么不同。
您可以安装Nvidia驱动程序v353.06,并在远程桌面连接上使用CUDA。这对我和我的GTX 680在Windows 7 x64上有效。
除非您使用的是Windows,否则SSH将是一个不错的选择。如果您使用IDE或想在文本编辑器中使用鼠标,则在运行CUDA时仍支持X11转发。
实际上,远程桌面应用程序根本不允许您访问图形卡,这是出于速度考虑而做的:您连接到的设备不进行渲染,您连接的设备(在您的情况下是笔记本电脑)执行此操作。因此,CUDA程序突然看不到任何CUDA启用的设备,并返回各种奇怪的东西。(我发现我的测试程序并不总是只返回设备计数为0,而是返回各种随机数据,cudaGetDeviceProperties
也是如此。
我发现一个完美、免费、跨平台的、我认为更好的替代品是LogMeIn。使用此应用程序,所有渲染都在您连接到的设备上完成,基本上每帧都会发送一个屏幕截图到网络上。简而言之:它的工作方式就像您期望的远程桌面一样。
当使用远程桌面时,由于显示器未连接到视频卡,因此您无法执行该操作。