我有一个没有 GPU 的桌面,我想在其上开发代码;以及某个集群上的一台机器,它安装了 GPU 和 CUDA,但我真的无法“触摸”任何东西,并且我不会在上面运行 IDE 等。我在任何机器上都没有 root,不幸的是我。
因此,本质上,我希望能够在自己的无 GPU 桌面计算机上编译和构建 CUDA 代码,然后复制它并在另一台计算机上测试它。
尽管有两个阻碍因素,这仍然可以完成吗:我似乎记得 CUDA 安装程序需要 GPU 的存在;玩转内核;并做其他 root y 的事情。
注释:
- 我将使用独立安装程序,而不是软件包。
- 我使用的是带有 x86_64 CPU 的 Fedora 22。
最佳答案
假设您要开发使用CUDA运行时API的代码,您可以在没有GPU的系统上安装cuda工具包。使用runfile installer method ,在提示安装驱动程序时回答“否”即可。
如果您想(成功)编译使用CUDA 驱动程序 API 的代码,该过程将需要您的计算机上有 libcuda.so。该文件由驱动程序安装程序安装。有多种方法可以“强制”驱动程序安装程序在没有 GPU 的计算机上运行。您可以通过提取驱动程序运行文件安装程序(或单独下载)并将
--help
命令行开关传递给安装程序来了解一些选项来开始。当然,这些方法不允许您在没有 GPU 的机器上运行这些代码。此外,在我看来,将已编译的二进制文件从一台机器移动到另一台机器并期望其正确运行的过程很麻烦。因此我的建议是在目标机器上重新编译代码。否则,让编译后的二进制文件从一台机器运行到另一台机器并不是 CUDA 独有的问题,并且超出了我的回答范围。
如果你无意在非GPU机器上运行代码,并且愿意在目标机器上重新编译,那么即使没有libcuda.so(或者有一个libcuda.so stub ,您可以尝试链接该 stub 以进行编译测试,该 stub 由 CUDA 安装程序安装,如果您搜索它:/usr/local/cuda/lib64/stubs)。如果您不将驱动程序 API 代码链接到
<-lcuda
,那么您当然会收到链接错误,但考虑到前面所述的注意事项,这应该不重要。Fedora 22 是 not officially supported通过 CUDA 7.5 或更低版本。 YMMV。
如果您不运行驱动程序安装程序,则无需成为 root 用户即可执行此操作。当然,您传递给安装程序的安装位置必须是您的用户权限允许访问的位置。
关于cuda - 以没有 GPU 的非 root 用户身份安装 CUDA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33842543/