以无GPU的非root用户身份安装CUDA

以无GPU的非root用户身份安装CUDA,cuda,installation,development-environment,gpgpu,Cuda,Installation,Development Environment,Gpgpu,我有一个没有GPU的桌面,我想在上面开发代码;在某个集群上有一台安装了GPU和CUDA的机器,但我真的不能“接触”任何东西,也不会在上面运行IDE等。我在任何机器上都没有根,我有麻烦了 因此,本质上,我希望能够在我自己的无GPU桌面机器上编译和构建我的CUDA代码,然后复制它并在另一台机器上测试它 尽管有两个阻碍因素,但这能否做到:我似乎记得CUDA安装程序需要GPU;玩内核;和做其他的根y的东西 注意事项: 我将使用独立安装程序,而不是软件包 我在Fedora22上,有x86_64 CPU

我有一个没有GPU的桌面,我想在上面开发代码;在某个集群上有一台安装了GPU和CUDA的机器,但我真的不能“接触”任何东西,也不会在上面运行IDE等。我在任何机器上都没有根,我有麻烦了

因此,本质上,我希望能够在我自己的无GPU桌面机器上编译和构建我的CUDA代码,然后复制它并在另一台机器上测试它

尽管有两个阻碍因素,但这能否做到:我似乎记得CUDA安装程序需要GPU;玩内核;和做其他的根y的东西

注意事项:

  • 我将使用独立安装程序,而不是软件包
  • 我在Fedora22上,有x86_64 CPU
  • 假设您想要开发使用CUDA运行时API的代码,您可以在没有GPU的系统上安装CUDA工具包。使用,当提示安装驱动程序时,只需回答“否”

  • 如果要(成功)编译使用CUDA驱动程序API的代码,则该过程需要在您的计算机上安装libcuda.so。此文件由驱动程序安装程序安装。有多种方法“强制”驱动程序安装程序在没有GPU的机器上运行。您可以先解压缩驱动程序runfile安装程序(或单独下载),然后将
    --help
    命令行开关传递给安装程序,以了解一些选项

  • 当然,这些方法不允许您在没有GPU的机器上运行这些代码。此外,在我看来,将已编译的二进制文件从一台机器移动到另一台机器并期望其正确运行的过程是很麻烦的。因此,我的建议是在目标机器上重新编译代码。否则,让编译后的二进制文件从一台机器运行到下一台机器,这不是CUDA独有的问题,超出了我的回答范围

  • 如果您无意在非GPU机器上运行代码,并且愿意在目标机器上重新编译,那么即使没有libcuda.so,您也可以开发驱动程序API代码(或者有一个libcuda.so存根,您可以仅为了编译测试目的而尝试对其进行链接,该存根由CUDA安装程序安装,如果您搜索它的话:/usr/local/CUDA/lib64/stubs)。如果您没有将驱动程序API代码链接到
    -lcuda
    ,那么您当然会得到链接错误,但鉴于前面所述的注意事项,这不重要

  • Fedora 22是CUDA 7.5或之前的版本。YMMV

  • 如果不运行驱动程序安装程序,则不需要成为任何此类操作的root用户。当然,传递给安装程序的安装位置必须是您的用户权限允许访问的位置


  • 你不需要安装驱动程序来安装Linux工具包。FEDORA 22是否被支持,我不知道。FEDORA 22或23没有正式支持,GCC 5也不是默认编译器。有一个,但是它仍然失败,因为C++标准库,混合了CUDA/C++代码。实际上我不介意必须在另一个上建立。机器-但是当我写新东西时,我只会构建一次,而不会遇到编译错误。