安装 CUDA

安装 CUDA

背景:我是一名 3D 艺术家(业余爱好),最近开始使用 Ubuntu 12.04 LTS 与 Windows 7 双启动。它运行在我一台相当新的 64 位东芝笔记本电脑上,配有 nVidia GeForce GT 540M GPU(显卡)。但它也配有英特尔集成显卡(我怀疑 Ubuntu 一直在使用它)。

因此,当我在 Windows 上将 3D 场景渲染为图像时,我可以选择使用 CPU 或 nVidia GPU(速度更快)。从 3D 应用程序中,我可以将 GPU 设置为使用 CUDA 或 OpenCL。在 Ubuntu 中,没有 GPU 选项。

在对 Linux 和 nVidia Optimus 技术的问题进行了(太多?)研究之后,我稍微开悟了一点,但也更加困惑了。

我根本不关心 Optimus 技术,因为电池寿命对我来说根本不是问题。

我的问题是:我该怎么做才能在 Ubuntu 中的 nVidia GPU 上使用利用 CUDA 的程序(例如 Blender)?我需要 nVidia 驱动程序吗?(我听说它们与 Linux 上的 Optimus 设置配合得不好。)有没有办法在 Ubuntu 中的 GPU 上使用 OpenCL?

答案1

我刚刚做了一些实验,可以证实 Eric Appleman 的说法,即 Bumblebee 对于 CUDA 来说不是必需的。(有关熊蜂Ubuntu 是否支持具有 Optimus 技术的 NVIDIA GeForce?

然而,当你需要使用 OpenGL 显示图形示例时,你需要像 Bumblebee 这样的适用于 Optimus 系统的东西,否则您将无法在显示屏上看到任何内容,或者会收到错误:

ERROR: Support for necessary OpenGL extensions missing.

运行 CUDA 程序时,需要安装 CUDA 工具包和 nvidia 驱动程序。如果您打算编译程序,还需要 SDK。安装程序可在以下位置找到http://developer.nvidia.com/cuda-downloads,在损坏您的 Optimus 笔记本电脑之前,请阅读以下说明。

安装 CUDA

司机

我建议从 Ubuntu 的包管理器安装 nvidia 驱动程序。如果你安装了 Bumblebee,则无需担心驱动程序。否则,安装后,禁用NVIDIA 库如下所述https://askubuntu.com/a/107746/6969如果不这样做,您将失去 3D 加速,并且可能陷入低分辨率。

工具包

基本上,您必须下载安装程序,使其可执行并运行它。 - 下载安装程序。截至撰写本文时,4.2.9 是最新的驱动程序。由于我使用的是 64 位操作系统,因此我使用 64 位 11.04 Ubuntu 软件包(尽管我运行的是 12.04) - 使其可执行并允许安装/usr/local/cuda

chmod +x cudatoolkit_4.2.9_linux_64_ubuntu11.04.run
sudo ./cudatoolkit_4.2.9_linux_64_ubuntu11.04.run

当出现安装消息询问您在哪里安装 CUDA 时,只需按 Enter 接受默认值/usr/local/cuda

......................................
Enter install path (default /usr/local/cuda, '/cuda' will be appended):

安装后,它会打印一些消息,建议将 cuda 库目录放入你的库搜索路径:

========================================

* Please make sure your PATH includes /tmp/cuda/cuda/bin
* Please make sure your LD_LIBRARY_PATH
*   for 32-bit Linux distributions includes /tmp/cuda/cuda/lib
*   for 64-bit Linux distributions includes /tmp/cuda/cuda/lib64:/tmp/cuda/cuda/lib
* OR
*   for 32-bit Linux distributions add /tmp/cuda/cuda/lib
*   for 64-bit Linux distributions add /tmp/cuda/cuda/lib64 and /tmp/cuda/cuda/lib
* to /etc/ld.so.conf and run ldconfig as root

* Please read the release notes in /tmp/cuda/cuda/doc/

* To uninstall CUDA, remove the CUDA files in /tmp/cuda/cuda
* Installation Complete

LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda/lib:$LD_LIBRARY_PATH如果您愿意,可以跳过此步骤,但稍后运行程序时必须进行设置。

软件开发工具包

如果您希望能够编译 CUDA 应用程序,您可以按照与上述类似的方式安装 SDK。下载、使其可执行并运行它(不是以 root 身份运行,例如没有sudo!)。在编译它的部分内容时,我必须进行一些更改NVIDIA_GPU_Computing_SDK/C/common/common.mk

  • 在第 189 行之后OPENGLLIB := -lGL -lGLU -lX11 -lXi -lXmu添加:

    OPENGLLIB += -L/usr/lib/nvidia-current -L/usr/lib32/nvidia-current
    
  • 大约在第 271 行之后,将其交换${RENDERCHECKGLLIB}${OPENGLLIB}如下形式:

    LIB += $(RENDERCHECKGLLIB) ${OPENGLLIB} $(PARAMGLLIB) ${LIB} -ldl -rdynamic
    
  • 再往前几 (5) 行,执行相同操作,但-lcuda也删除。
  • 再往前几 (7) 行,执行与第 271 行相同的操作。

使用 CUDA

CUDA 不需要 nvidia 驱动的 X 服务器即可工作。在这种情况下,您可以像这样运行随机测试程序:

LD_LIBRARY_PATH=/usr/lib/nvidia-current:/usr/lib32/nvidia-current:$LD_LIBRARY_PATH 一些ComputallyIntensiveProgram

如果您尚未将 CUDA 添加到库路径,则您将需要:

LD_LIBRARY_PATH = / usr / lib / nvidia-current:在/ usr / lib32 / nvidia-current:在/ usr / local / cuda / lib64:在/ usr / local / cuda / lib:$ LD_LIBRARY_PATH someComputallyIntensiveProgram

(如果您的程序是 64 位,则可以从中删除 32 位路径)。

如果 CUDA 程序确实需要使用 OpenGL 显示某些内容,则必须使用 optirun:

 optirun blender

或者,如果您没有将 CUDA 添加到默认路径:

LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda/lib:$LD_LIBRARY_PATH optirun blender

答案2

以下是完整的答案(基于亚历克斯·法拉帕Lekensteyn 的答案):

确实可以让 nVidia Optimus GPU 在 Ubuntu 上运行 CUDA。

Bumblebee 对于 CUDA 来说不是必需的。(有关熊蜂Ubuntu 是否支持具有 Optimus 技术的 NVIDIA GeForce?

然而,当你需要使用 OpenGL 显示图形示例时,你需要像 Bumblebee 这样的适用于 Optimus 系统的东西,否则您将无法在显示屏上看到任何内容,或者会收到错误:

ERROR: Support for necessary OpenGL extensions missing. 

如果您需要使用 Blender 等图形密集型程序,Bumblebee 目前是一个不错的选择。

跳至安装 CUDA如果您不想安装 Bumblebee(即如果您不需要 OpenGL)。
否则,请继续阅读。

安装 Bumblebee

按照以下说明操作配备 Nvidia Optimus 的笔记本电脑运行效果如何?

这些目前由 Bumblebee 开发人员进行更新。

安装 Bumblebee 并重新启动后,您将能够使用该程序选择启动程序时要使用的显卡optirun
例如:

optirun blender

要快速测试一切是否正常,请使用:

optirun glxspheres

如果一切正常,您将看到一个带有彩色旋转球体的程序。

验证终端中的 GL 供应商字符串是否包含单词英伟达
如果您只运行glxspheres,您会看到供应商字符串包含英特尔卡。

运行 CUDA 程序时,需要安装 CUDA 工具包和 nvidia 驱动程序。如果您打算编译程序,还需要 SDK。安装程序可在以下位置找到http://developer.nvidia.com/cuda-downloads,在损坏您的 Optimus 笔记本电脑之前,请阅读以下说明。

安装 CUDA

司机

我建议从 Ubuntu 的包管理器安装 nvidia 驱动程序。如果你安装了 Bumblebee,则无需担心驱动程序。否则,安装后,禁用NVIDIA 库如下所述https://askubuntu.com/a/107746/6969如果不这样做,您将失去 3D 加速,并且可能陷入低分辨率。

工具包

基本上,您必须下载安装程序,使其可执行并运行它。 - 下载安装程序。截至 2013 年 1 月 9 日,5.0.35 是最新的驱动程序。由于我使用的是 64 位操作系统,因此我使用 64 位 11.10 Ubuntu 软件包(尽管我运行的是 12.10) - 使其可执行并允许安装/usr/local/cuda

chmod +x cudatoolkit_5.0.35_linux_64_ubuntu11.10-1.run
sudo ./cudatoolkit_5.0.35_linux_64_ubuntu11.10-1.run

当出现安装消息询问您在哪里安装 CUDA 时,只需按 Enter 接受默认值/usr/local/cuda

......................................
Enter install path (default /usr/local/cuda, '/cuda' will be appended):

安装后,它会打印一些消息,建议将 cuda 库目录放入你的库搜索路径:

========================================

* Please make sure your PATH includes /tmp/cuda/cuda/bin
* Please make sure your LD_LIBRARY_PATH
*   for 32-bit Linux distributions includes /tmp/cuda/cuda/lib
*   for 64-bit Linux distributions includes /tmp/cuda/cuda/lib64:/tmp/cuda/cuda/lib
* OR
*   for 32-bit Linux distributions add /tmp/cuda/cuda/lib
*   for 64-bit Linux distributions add /tmp/cuda/cuda/lib64 and /tmp/cuda/cuda/lib
* to /etc/ld.so.conf and run ldconfig as root

* Please read the release notes in /tmp/cuda/cuda/doc/

* To uninstall CUDA, remove the CUDA files in /tmp/cuda/cuda
* Installation Complete

LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda/lib:$LD_LIBRARY_PATH如果您愿意,可以跳过此步骤,但稍后运行程序时必须进行设置。

软件开发工具包

如果您希望能够编译 CUDA 应用程序,您可以按照与上述类似的方式安装 SDK。下载、使其可执行并运行它(不是以 root 身份运行,例如没有sudo!)。

使用 CUDA

CUDA 不需要 nvidia 驱动的 X 服务器即可工作。在这种情况下,您可以像这样运行随机测试程序:

LD_LIBRARY_PATH=/usr/lib/nvidia-current:/usr/lib32/nvidia-current:$LD_LIBRARY_PATH 一些ComputallyIntensiveProgram

如果您尚未将 CUDA 添加到库路径,则您将需要:

LD_LIBRARY_PATH = / usr / lib / nvidia-current:在/ usr / lib32 / nvidia-current:在/ usr / local / cuda / lib64:在/ usr / local / cuda / lib:$ LD_LIBRARY_PATH someComputallyIntensiveProgram

(如果您的程序是 64 位,则可以从中删除 32 位路径)。

如果 CUDA 程序确实需要使用 OpenGL 显示某些内容,则必须使用 optirun:

 optirun blender

或者,如果您没有将 CUDA 添加到默认路径:

LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda/lib:$LD_LIBRARY_PATH optirun blender

安装 Blender Build

(使用预编译的 CUDA 内核)

当你运行时optirun blender,你可能会收到来自 Blender 的消息,提示 CUDA 内核编译失败,并且在终端中出现类似以下内容的消息:

Compiling CUDA kernel ...
nvcc warning : Option '--opencc-options (-Xopencc)' is obsolete and ignored, when
targeting compute_20, sm_20, or higher
gcc: error trying to exec 'cc1plus': execvp: No such file or directory
CUDA kernel compilation failed, see console for details.

如果您想使用 Blender 的 GPU 渲染功能,您可能需要使用预编译 CUDA 内核的 Blender 版本。Blender.org都具有预编译的 CUDA 内核;ppa:cheleb/blender-svn 构建(更多信息请访问此问题) 不要。

要安装官方的 Blender 版本,只需按照这个答案

如果你已经安装了 Blender /usr/lib/blender,那么你应该能够从终端运行 Blender 并使用 GPU 渲染:

 optirun '/usr/lib/blender/blender'

答案3

Linux 下对混合显卡(通常是 Intel 集成显卡和 Nvidia 独立显卡)的支持目前有点麻烦。X 服务器领域正在慢慢取得进展,但不要太担心。

正如您所猜测的,大黄蜂目前是一个不错的选择。

我最近购买了一台配备英特尔/Nvidia 显卡的华硕 N55 笔记本电脑,我能够让 Blender Cycles 渲染器使用 CUDA。

当我安装 Ubuntu 12.04 时,它默认通过英特尔显卡驱动程序使用集成显卡。不应安装 noveau 显卡驱动程序。

然后我打开终端并执行:

sudo add-apt-repository ppa:bumblebee/stable
sudo apt-get update
sudo apt-get install bumblebee bumblebee-nvidia

之后我按照安装说明进行了操作():

sudo usermod -a -G bumblebee $USER

然后我重新启动了。

要选择启动程序时使用的驱动程序,请使用 optirun 程序,例如:

optirun blender

要测试所有工作是否正常,请使用:

optirun glxspheres

并验证 GL 供应商字符串是否包含单词 Nvidia。如果您运行:

glxspheres

供应商字符串应包含英特尔字词

答案4

我发现要使用 Bumblebee 运行 CUDA 的所有示例,您必须安装驱动程序 295.40这里并在安装过程中选择不覆盖config x11

然后您必须使用相同的驱动程序来编译示例并运行程序。

相关内容