当前位置: 首页>>技术教程>>正文


如何在Ubuntu 16.04上安装CUDA?

, ,

问题描述

对于TensorFlow,我想安装CUDA。我如何在Ubuntu 16.04上做到这一点?

最佳解决办法

为Ubuntu安装CUDA

有一个Linux installation guide。但是,它基本上只是那些步骤:

  1. Download CUDA:我使用了15.04版本和“runfile(local)”。那是1.1 GB。

  2. 检查md5总和:md5sum cuda_7.5.18_linux.run。只有在正确的情况下才能继续。

  3. 删除任何其他安装(sudo apt-get purge nvidia-cuda* – 如果您也要安装驱动程序,则sudo apt-get purge nvidia-*。)

    1. 如果要安装显示驱动程序(*),请从GUI注销。转到终端会话(ctrl + alt + F2)

    2. 停止lightdm:sudo service lightdm stop

    3. 使用以下内容在/etc/modprobe.d/blacklist-nouveau.conf上创建文件:blacklist nouveau
      options nouveau modeset=0

    4. 然后执行:sudo update-initramfs -u

  4. sudo sh cuda_7.5.18_linux.run --override。确保您为符号链接说y

    1. 再次启动lightdm:sudo service lightdm start

  5. 按照命令行提示进行操作

另请参见:NVIDIA CUDA with Ubuntu 16.04 beta on a laptop (if you just cannot wait)

注意:是的,可以通过apt-get install cuda安装它。我强烈建议不要使用它,因为它会改变路径并使其他工具的安装更加困难。

您可能也对How can I install CuDNN on Ubuntu 16.04?感兴趣。

*:不要使用此脚本安装显示驱动程序。他们老了。从http://www.nvidia.com/Download/index.aspx下载最新的

验证CUDA安装

以下命令显示当前的CUDA版本(最后一行):

$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2016 NVIDIA Corporation
Built on Sun_Sep__4_22:14:01_CDT_2016
Cuda compilation tools, release 8.0, V8.0.44

以下命令显示您的驱动程序版本以及您拥有的GPU内存量:

$ nvidia-smi
Fri Jan 20 12:19:04 2017       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 367.57                 Driver Version: 367.57                    |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce 940MX       Off  | 0000:02:00.0     Off |                  N/A |
| N/A   75C    P0    N/A /  N/A |   1981MiB /  2002MiB |     98%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID  Type  Process name                               Usage      |
|=============================================================================|
|    0      1156    G   /usr/lib/xorg/Xorg                             246MiB |
|    0      3198    G   ...m,SecurityWarningIconUpdate<SecurityWarni   222MiB |
|    0      6645    C   python                                        1510MiB |
+-----------------------------------------------------------------------------+

另请参见:Verify CuDNN installation

救命!新的驱动程序不起作用!

不要惊慌。即使您在计算机上看不到任何内容,以下步骤也会让您回到之前的状态:

  1. 启动时按shift

  2. 进入root shell

  3. 使其可由mount -o remount,rw /写入(-?/为美国版面中的-)

  4. sh cuda_7.5.18_linux.run --uninstall

  5. sudo apt-get install nvidia-361 nvidia-common nvidia-prime nvidia-settings

图形驱动程序

安装图形驱动程序有点棘手。这必须在没有图形支持的情况下完成。

  1. 从当前的X会话中注销。

  2. Ctrl + Alt + F4(可以用Ctrl + Alt + F7切换回来)

  3. 你应该删除所有其他驱动程序。

    1. 通过dpkg -l | grep -i nvidia搜索它们

    2. 通过sudo apt-get remove --purge nvidia-WHATEVER删除它们

  4. 通过sudo service lightdm stop停止lightdm

  5. 你可能需要reboot你的pc /blacklist nouveau驱动程序(German tutorial)

次佳解决办法

我尝试通过.run文件多次安装,但是一些错误总是悄悄进入,我遇到了登录循环或完全丢失了显示。因此,我建议使用.deb文件,而不是摆弄显示管理器。

NVIDIA CUDA Installation Guide for Linux是一个很好的链接,列出了完整的细节。请确保按照给出的每个步骤进行操作。

要安装Nvidia驱动程序,您可以执行以下操作:

  1. 在Ubuntu左上角的“搜索您的计算机”菜单中搜索”Additional Drivers”(您也可以进行系统设置 – >软件和更新 – >其他驱动程序)

  2. 在出现的菜单中选择一个Nvidia驱动程序并单击”Apply Changes”。(此步骤使用Internet。如果它仍然失败,那么您的代理服务器可能阻止下载)

  3. 重新启动系统。

  4. 打开终端窗口并键入nvidia-smi。如果您的驱动程序已正确安装,您应该看到类似的内容:

+------------------------------------------------------+                       
| NVIDIA-SMI 3.295.41   Driver Version: 295.41         |                       
|-------------------------------+----------------------+----------------------+
| Nb.  Name                     | Bus Id        Disp.  | Volatile ECC SB / DB |
| Fan   Temp   Power Usage /Cap | Memory Usage         | GPU Util. Compute M. |
|===============================+======================+======================|
| 0.  Tesla C2050               | 0000:05:00.0  On     |         0          0 |
|  30%   62 C  P0    N/A /  N/A |   3%   70MB / 2687MB |   44%     Default    |
|-------------------------------+----------------------+----------------------|
| Compute processes:                                               GPU Memory |
|  GPU  PID     Process name                                       Usage      |
|=============================================================================|
|  0.  7336     ./align                                                 61MB  |
+-----------------------------------------------------------------------------+

您现在可以根据之前的链接轻松安装CUDA。简单来说:

sudo apt-get install linux-headers-$(uname -r)

下载工具包from here,然后安装.deb文件(相应地替换名称)

sudo dpkg -i cuda-repo-<distro>_<version>_<architecture>.deb

然后运行:

sudo apt-get update
sudo apt-get install cuda

第三种解决办法

我也尝试了差异方法,以便在Ubuntu 16.04中安装Cuda 8.0。最后,这些是诀窍的步骤。我遵循了this tutorial并更新了更正后的步骤,如下所示。

  1. 更新系统

    apt-get update && apt-get upgrade 
    
  2. 下载VirtualGL并安装它。安装

    dpkg -i virtualgl*.deb
    
  3. 下载并安装CUDA 8.0并进行安装。我建议通过互联网做到这一点。像这样,

    16.04,cuda,ubuntu

  4. 安装所需的依赖项。

    apt-get install linux-headers-$(uname -r)
    apt-get install freeglut3-dev libxmu-dev libpcap-dev
    
  5. 更新.bashrc中的系统PATH,可以在主目录中找到。请注意,如果您将这些东西安装到差异位置,请根据该更新路径。

    export PATH=$PATH:/opt/VirtualGL/bin
    export PATH=$PATH:/usr/local/cuda/bin
    
  6. 安装bumblebee-nvidia和primus。

    apt-get install bumblebee-nvidia primus
    
  7. 编辑bumblebee配置文件,以便大黄蜂知道我们正在使用NVIDIA驱动程序。请根据您的系统更新路径。这是参考视图,将有所帮助。

    sudo nano +22 /etc/bumblebee/bumblebee.conf 
    

    加:

    [bumblebeed]
    ServerGroup=bumblebee
    TurnCardOffAtExit=false
    NoEcoModeOverride=false
    Driver=nvidia
    XorgConfDir=/etc/bumblebee/xorg.conf.d
    Bridge=auto
    PrimusLibraryPath=/usr/lib/x86_64-linux-gnu/primus:/usr/lib/i386-linux-gnu/primus
    AllowFallbackToIGC=false
    Driver=nvidia
    [driver-nvidia]
    KernelDriver=nvidia
    PMMethod=auto
    LibraryPath=/usr/lib/nvidia-367:/usr/lib32/nvidia-367
    XorgModulePath=/usr/lib/xorg,/usr/lib/xorg/modules
    XorgConfFile=/etc/bumblebee/xorg.conf.nvidia
    Driver=nouveau
    [driver-nouveau]
    KernelDriver=nouveau
    PMMethod=auto
    XorgConfFile=/etc/bumblebee/xorg.conf.nouveau
    
  8. 运行以下命令并记录视频卡的PCI地址。

    $ lspci | egrep 'VGA|3D'
    00:02.0 VGA compatible controller: Intel Corporation Device 5916 (rev 02)
    01:00.0 3D controller: NVIDIA Corporation Device 179c (rev a2)
    
  9. 编辑xorg.conf.nvidia文件,以便它知道您的视频卡的PCI地址(对我来说是01:00.0)。更新PIC地址,如下面的”ServerLayout”部分所示

    sudo nano /etc/bumblebee/xorg.conf.nvidia
    

    加:

    Section "ServerLayout"
        Identifier  "Layout0"
        Option      "AutoAddDevices" "false"
        Option      "AutoAddGPU" "false"
        BusID "PCI:01:00.0"
    
  10. 重新启动系统,享受运行一些示例代码的乐趣。

    sudo shutdown -r now
    

第四种办法

这是一个很好的答案,因为我在写笔记本时多次拧我的笔记本电脑。但是,我宁愿保持它很长时间,因为它也可能对其他人有用;)我的答案最好的部分从Edited-Updated开始

Sooooo,我在这里和其他地方阅读了所有的答案,我不知道为什么,但他们每个人都会引起我的问​​题:(

4天后,在这里重新安装Linux是对我有用的方式。

在进入主要程序之前,我想提一个替代方法。

如果您使用笔记本电脑的替代方法:

因此,您可以使用笔记本电脑在笔记本电脑上切换nvidia和intel gpu

sudo prime-select intel
sudo prime-select nvidia

换句话说,您可以切换到英特尔并安装nvidia并切换回英特尔以进行正常使用,并且只要您想使用深度学习切换到nvidia one。

无论如何,

让我谈谈最终适用于我的主要方法(这里的信息主要来自Link):

删除和清除所有现有的nvidia /cuda东西:

sudo apt-get remove --purge nvidia-*
sudo apt-get purge nvidia-cuda*
sudo apt-get purge nvidia-*
sudo /usr/bin/nvidia-uninstall
sudo /usr/local/cuda-8.0/bin/uninstall_cuda_8.0.pl
sudo rm -rf  /etc/modprobe.d/blacklist-nouveau.conf

然后,我们只是更新一切:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo reboot

现在,你可能无法登录而且陷入困境……

不用担心,我遇到了50多次……

ctr+alt+F2键入您的用户名和密码

现在键入这些:

sudo service lightdm stop

可选,有些人还需要输入这个,老实说idk它的用途是什么:sudo init 3

sudo nano  /etc/modprobe.d/blacklist-nouveau.conf

blacklist nouveau
options nouveau modeset=0

它并保存并退出。

然后输入:

sudo update-initramfs -u

转到你有cuda .run文件的文件并输入:

sudo sh cuda_8.0_linux.run --override
sudo service lightdm start
sudo reboot

Sooo,如果你很幸运,你应该能够立即登录。你可能猜到,我不是一个幸运的人,我仍然无法登录。所以我不得不再次按下ctr+Alt+F2并执行以下操作:

sudo ubuntu-drivers autoinstall
sudo reboot

现在我终于可以登录了。

现在是时候设置路径并检查安装了。

类型:

export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64                         ${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

nvidia-smi
nvcc -V

它应该告诉你,你有cuda 8。

另外,万一你也可以这样做:

export PATH=$PATH:/usr/local/cuda-8.0/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-8.0/lib64


gedit ~/.bashrc

最后添加这些:

export PATH=$PATH:/usr/local/cuda-8.0/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-8.0/lib64

# Added by me on 2013/06/24
PATH=~/bin:$PATH
export PATH

保存并退出gedit。类型:

sudo ldconfig /usr/local/cuda-8.0/lib64

对于比我更了解的人的问题:

所以一切听起来都像是在工作,但是当我关闭/重新启动我的系统几秒钟时就会显示出来

所以一切听起来都有效,但是当我关闭/重新启动我的系统几秒钟时,它显示“无法启动加载内核模块”我尝试了这个无法启动加载内核模块后该怎么办但它没有帮助,如果你知道如何解决它,请告诉我。

—————-

Edited-Updated

猜猜看,我再次搞砸了。

但是这次我带来了更容易的解决方案。这是重点:有时我们需要说不

这对我来说真的很有用。清除并删除所有内容后,sudo reboot执行此操作:

sudo ubuntu-drivers autoinstall
sudo reboot

ctr+alt+F2键入您的用户名和密码

现在键入这些:

sudo service lightdm stop

sudo sh cuda_8.0_linux.run  

重要提示:在安装过程中,第一个问题要求再次重新安装驱动程序,对此母亲说不要问****问题对其他人说“是”:D完成后。

sudo service lightdm start
press `alt+ctr+F7` 

登录亲爱的PC

它有用吗?别客气 :)

第五种办法

我刚刚写了一篇博客文章 – Nvidia CUDA toolkit installation – ubuntu 16.04 LTS – notes/

我的环境:双启动Windows 10和Unbuntu 16.04 LTS。


复制并粘贴一些重要的学习内容。有关详细说明,请参阅博客文章(仅为避免重复)

主要学习:

  • 在UEFI固件设置下禁用安全启动(在BIOS模式下执行此操作/从Windows高级启动重新启动)。 (我确实尝试了多年,希望我可以使用安全启动。没有运气安全启动阻止Nvidia驱动程序在Ubuntu上正确安装。禁用安全启动原来是我唯一可行的解​​决方案 – 如果你能够安装Nvidia驱动程序而不必禁用安全启动,请告诉我)

  • 关注Linux CUDA Installation Guide

  • (自以为是……)使用Linux .deb(包管理器)安装(为简单起见)。在浏览器中下载.deb文件。从终端命令行安装。

  • (自以为是……)不要使用runfile安装(太复杂)。

详细说明:

请参阅Nvidia CUDA toolkit installation – ubuntu 16.04 LTS – notes/

第六种办法

对我有用的步骤:

  1. sudo apt-get安装nvidia-cuda-toolkit或1’。安装说明书here

  2. 您需要从软件和更新/附加驱动程序中选择nvidia驱动程序(375,在我的上下文中)

  3. 重新启动时按照蓝屏进行操作,仅在此处通过输入在nvidia驱动程序安装期间设置的密码来禁用安全启动。 (任何通过BIOS禁用的安全启动对我都不起作用)。

现在安装测试输出成功。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/1418.html,未经允许,请勿转载。