目录
  • 下载和安装nvidia驱动
  • 安装cuda
  • 安装cudnn

本篇概览

自己有一台2015年的联想笔记本,显卡是gtx950m,已安装ubuntu 16.04 lts桌面版,为了使用其gpu完成deeplearning4j的训练工作,自己动手安装了cuda和cudnn,在此将整个过程记录下来,以备将来参考,整个安装过程分为以下几步:

  • 准备工作
  • 安装nvidia驱动
  • 安装cuda
  • 安装cudnn

特别问题说明

  • 按照一般步骤,在安装完nvidia显卡驱动后,会提示对应的cuda版本,接下来按照提示的版本安装cuda,例如我这里提示的是11.2,正常情况下,我应该安装11.2版本的cuda
  • 但是我选择9.1版本就行安装,因为之前的开发中发现deeplearning4j使用了11.2的sdk后,启动应用会有classnotfound的错误,此问题至今未修复(惭愧,欣宸水平如此之低…),因此,我在nvidia驱动提示11.2版本的情况下,依然安装了9.1版本,后来在此环境运行deeplearning4j应用一切正常
  • 如果您没有我这类问题,完全可以按照驱动指定的版本来安装cuda,具体的操作步骤稍后会详细说到;

准备工作

  • 接下来的操作,除了在网页下载,其余都是ssh远程连接到ubuntu机器操作的,ssh登录的帐号为普通帐号,并非root
  • 如果已有驱动,请先删除
sudo apt-get remove --purge nvidia*

禁用nouveau驱动(很重要),用vi打开文件/etc/modprobe.d/blacklist.conf,在尾部增加以下内容,然后保存退出:

blacklist nouveau
blacklist lbm-nouveau
options nouveau modeset=0
alias nouveau off
alias lbm-nouveau off

关闭nouveau:

echo options nouveau modeset=0 | sudo tee -a /etc/modprobe.d/nouveau-kms.conf

更新initramfs:

update-initramfs -u

执行reboot重启电脑

重启后,执行以下命令,应该不会有任何输出,证明nouveau已经禁用:

lsmod|grep nouveau

获取kernel source:

sudo apt-get install linux-source

安装过程中显示信息如下图:

根据上图红框中的信息,可知内核版本号为,于是执行以下命令:

sudo apt-get install linux-headers-4.4.0-210-generic

下载和安装nvidia驱动

访问nvidia网站,地址https://www.nvidia.cn/download/index.aspx?lang=cn,然后选择对应的显卡和操作系统,我的选择如下图所示:

点击上图搜索按钮后,进入下图页面,点击下载:

下载得到的文件名为nvidia-linux-x86_64-460.84.run

关闭图形页面:

sudo service lightdm stop

给驱动文件增加可执行权限:

sudo chmod a+x nvidia-linux-x86_64-460.84.run

开始安装:

sudo ./nvidia-linux-x86_64-460.84.run -no-x-check -no-nouveau-check -no-opengl-files

遇到下图,选择红框:

遇到下图,直接回车:

恢复图形页面:

sudo service lightdm start

执行命令nvidia-smi,如果驱动安装成功,会显示以下内容:

will@lenovo:~/temp/202106/20$ nvidia-smi
sun jun 20 09:02:11 2021       
+-----------------------------------------------------------------------------+
| nvidia-smi 460.84       driver version: 460.84       cuda version: 11.2     |
|-------------------------------+----------------------+----------------------+
| gpu  name        persistence-m| bus-id        disp.a | volatile uncorr. ecc |
| fan  temp  perf  pwr:usage/cap|         memory-usage | gpu-util  compute m. |
|                               |                      |               mig m. |
|===============================+======================+======================|
|   0  geforce gtx 950m    off  | 00000000:01:00.0 off |                  n/a |
| n/a   41c    p0    n/a /  n/a |      0mib /  4046mib |      1%      default |
|                               |                      |                  n/a |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| processes:                                                                  |
|  gpu   gi   ci        pid   type   process name                  gpu memory |
|        id   id                                                   usage      |
|=============================================================================|
|  no running processes found                                                 |
+-----------------------------------------------------------------------------+

从上述内容可见cuda version: 11.2表示该驱动对应的cuda版本应该是11.2,正如前面所说,我这边遇到了问题,因此接下来会安装9.1版本,但是您可以选择安装11.2

安装cuda

浏览器访问,点击红框中的链接:

如下图,下载linux版本:

继续选择x86_64:

选择具体的linux版本及其版本号:

要下载的东西不少,一个安装程序和三个补丁:

上述四个文件的下载地址整理如下:

https://developer.download.nvidia.cn/compute/cuda/9.1/secure/prod/local_installers/cuda_9.1.85_387.26_linux.run?p0ntu_6nltuuemm6fjrk1w5vl4km7oat1ofw870zkj-zdw2ckkntfloe6klrjfw2cmta8z3q390_6urlgc6lqjoqlifw9gvfvdcusninypllaw1u8lry8r4ovntpnzaxu4bqchjvdb6c6rjq20dktccrd4640woxt1yhmd95v1du7wdbbxq2eoy

https://developer.download.nvidia.cn/compute/cuda/9.1/secure/prod/patches/1/cuda_9.1.85.1_linux.run?yexf_7wiglhauw–e_yvlqzrgxv0x2i043wojvy-ydxu5kyhc-eyqf5jml-4mvymlvpycec5rht2sdwscx20cjbdowpkt30kwb9vx8e4oilajdq3mvpvxdikksiobux-h0q0n0jsknn80vmhw-nk8jwvry_e6mufzqwbapk

https://developer.download.nvidia.cn/compute/cuda/9.1/secure/prod/patches/2/cuda_9.1.85.2_linux.run?5jgzxnigaojkaapbmagjhsw7ebqvygyyoqe2vbxz1ev8qp2bzxjlxipgao11ugwhorirqkdjgq5b8efh4ashbvutmupaasvrimckdzw5yjjiobgqrceyu-lfo59abrrer57mxa0t1sc97fc80iozq8ox2repjn7a3oyvgd8

https://developer.download.nvidia.cn/compute/cuda/9.1/secure/prod/patches/3/cuda_9.1.85.3_linux.run?cxwimjtc-xroyihig-uzmh62odbjinf1fmxtz_bsw1nq0zz5cl5r8qlmlmr_1j2rvhk3j8z5ls6dpart8frjghh2mevn5tefmoclam8udm-rsmmmqhxye66hhn2d0drvedtcwe8zreiyb2rpucaz9svcfe8z319mge4ju94

下载完毕后,执行命令chmod a+x *.run为上述四个文件增加可执行权限

安装cuda:

sudo sh cuda_9.1.85_387.26_linux.run

遇到license时,像是用vi工具那样,输入”:”,再输入”q”回车,就能跳过license阅读,执行真正的安装操作了:

接下来是一系列提问,每一个提问的回答如下图,千万注意红框中的问题一定要选择n

安装完成后输出以下内容:

installing the cuda toolkit in /usr/local/cuda-9.1 ...
missing recommended library: libglu.so
missing recommended library: libx11.so
missing recommended library: libxi.so
missing recommended library: libxmu.so
missing recommended library: libgl.so

installing the cuda samples in /home/will ...
copying samples to /home/will/nvidia_cuda-9.1_samples now...
finished copying samples.

===========
= summary =
===========

driver:   not selected
toolkit:  installed in /usr/local/cuda-9.1
samples:  installed in /home/will, but missing recommended libraries

please make sure that
 -   path includes /usr/local/cuda-9.1/bin
 -   ld_library_path includes /usr/local/cuda-9.1/lib64, or, add /usr/local/cuda-9.1/lib64 to /etc/ld.so.conf and run ldconfig as root

to uninstall the cuda toolkit, run the uninstall script in /usr/local/cuda-9.1/bin

please see cuda_installation_guide_linux.pdf in /usr/local/cuda-9.1/doc/pdf for detailed information on setting up cuda.

***warning: incomplete installation! this installation did not install the cuda driver. a driver of version at least 384.00 is required for cuda 9.1 functionality to work.
to install the driver using this installer, run the following command, replacing <cudainstaller> with the name of this run file:
    sudo <cudainstaller>.run -silent -driver

logfile is /tmp/cuda_install_13425.log

打开文件~/.bashrc,在尾部增加以下两行(ld_library_path如果已经存在,请参考path的写法改成追加):

export path=/usr/local/cuda-9.1/bin:$path
export ld_library_path=/usr/local/cuda-9.1/lib64

执行命令source ~/.bashrc使配置生效

执行命令su -切换到root帐号,执行以下命令(不要用sudo,而是切到root帐号):

sudo echo "/usr/local/cuda-9.1/lib64" >> /etc/ld.so.conf

再以root身份执行以下命令:

ldconfig

执行命令exit退出root身份,现在又是普通帐号的身份了

执行命令nvcc -v检查cuda版本,注意参数v是大写:

will@lenovo:~$ nvcc -v
nvcc: nvidia (r) cuda compiler driver
copyright (c) 2005-2017 nvidia corporation
built on fri_nov__3_21:07:56_cdt_2017
cuda compilation tools, release 9.1, v9.1.85

安装第一个补丁:

sudo sh cuda_9.1.85.1_linux.run

安装第二个补丁:

sudo sh cuda_9.1.85_387.26_linux.run

安装第三个补丁:

sudo sh cuda_9.1.85_387.26_linux.run

安装cudnn

浏览器访问:

按提示登录,如果没有帐号请注册一个,登录后进入下载页面,需要点击下图红框位置才有能见到老版本:

选择与cuda匹配的版本:

下载后解压,得到文件夹cuda,然后执行以下命令:

sudo cp cuda/include/cudnn.h /usr/local/cuda/include/
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/
sudo chmod a+r /usr/local/cuda/include/cudnn.h
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*

执行检查确认的命令cat /usr/local/cuda/include/cudnn.h | grep cudnn_major -a 2,如果安装顺利会有以下输出:

#define cudnn_major 7
#define cudnn_minor 1
#define cudnn_patchlevel 3
--
#define cudnn_version    (cudnn_major * 1000 + cudnn_minor * 100 + cudnn_patchlevel)

#include "driver_types.h"

至此,ubuntu16安装cuda(9.1)和cudnn已经完成了,希望能给您一些参考。

到此这篇关于ubuntu16安装cuda(9.1)和cudnn的实现步骤(图文)的文章就介绍到这了,更多相关ubuntu16安装cuda(9.1)和cudnn内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!