我有一个没有GPU的桌面,我想开发代码;并且某个集群上的机器有一个GPU,并安装了CUDA,但我真的无法“触摸”任何东西,我不会在其上运行IDE等。我没有任何机器上的root,我是个祸患。
所以,基本上,我希望能够在我自己的无GPU台式机上编译和构建我的CUDA代码,然后只需将其复制并在另一台机器上进行测试。
尽管存在两个阻碍因素,我们是否可以做到这一点:我似乎记得需要存在GPU的CUDA安装程序;玩内核;并做其他根本的东西。
注意:
答案 0 :(得分:3)
假设您要开发使用 CUDA运行时API 的代码,您可以在没有GPU的系统上安装cuda工具包。使用runfile installer method时,只需在提示安装驱动程序时回答“否”。
如果要编译(成功)使用 CUDA驱动程序API 的代码,该进程将需要在您的计算机上使用libcuda.so。此文件由驱动程序安装程序安装。有许多方法可以“强制”驱动程序安装程序在没有GPU的计算机上运行。您可以通过解压缩驱动程序运行文件安装程序(或单独下载)并将--help
命令行开关传递给安装程序来了解一些选项。
这些方法不允许您在没有GPU的机器上运行这些代码。此外,在我看来,将已编译的二进制文件从一台机器移动到另一台机器并期望它正确运行的过程很麻烦。因此我的建议是在目标机器上重新编译代码。否则,将编译的二进制文件从一台机器运行到下一台机器是一个不是CUDA独有的问题,并且不在我的答案范围内。
如果您无意在非GPU机器上运行代码,并且愿意在目标机器上重新编译,那么即使没有libcuda.so,您也可以开发驱动程序API代码(或者有一个libcuda.so存根,您可以尝试链接,仅用于编译测试目的,由CUDA安装程序安装,如果您搜索它:/ usr / local / cuda / lib64 / stubs)。如果你没有将你的驱动程序API代码与-lcuda
相关联,那么你当然会收到一个链接错误,但考虑到前面提到的警告,它应该没关系。
Fedora 22是CUDA 7.5或之前的not officially supported。 YMMV。
如果您不运行驱动程序安装程序,则无需成为任何root用户。当然,传递给安装程序的安装位置必须是您的用户权限允许访问的位置。