如何在Ubuntu 16.04上安装CuDNN?


101

对于TensorFlow,我想安装cuda和CuDNN。如何在Ubuntu 16.04上执行此操作?


4
警告:如果您尝试运行tensorflow并需要cudnn,请确保暂时安装5.1,而不是6.0。
wordforthewise

现在支持@wordsforthewise CuDNN 6.0(至少适用于TF 1.4)。
ComputerScientist

Answers:


134

步骤0:从标准存储库安装cuda。(请参阅如何在Ubuntu 16.04上安装CUDA?

第1步:注册nvidia开发人员帐户并在此处下载cudnn(约80 MB)

步骤2:检查您的cuda安装位置。对于从存储库进行安装,它是/usr/lib/.../usr/include。否则,它将为/usr/local/cuda//usr/local/cuda-<version>。您可以使用which nvcc或进行检查ldconfig -p | grep cuda

步骤3:复制档案:

仓库安装:

$ cd folder/extracted/contents
$ sudo cp -P include/cudnn.h /usr/include
$ sudo cp -P lib64/libcudnn* /usr/lib/x86_64-linux-gnu/
$ sudo chmod a+r /usr/lib/x86_64-linux-gnu/libcudnn*

运行文件安装:

$ cd folder/extracted/contents
$ sudo cp include/cudnn.h /usr/local/cuda/include
$ sudo cp lib64/libcudnn* /usr/local/cuda/lib64
$ sudo chmod a+r /usr/local/cuda/lib64/libcudnn*

14
添加将-P保留符号链接,即sudo cp -P lib64/libcudnn* /usr/lib/x86_64-linux-gnu/,并避免显示以下消息:/sbin/ldconfig.real: /usr/lib/x86_64-linux-gnu/libcudnn.so.5 is not a symbolic link
Max Gordon

1
此处更新:“下载cuDNN v4(v5当前是候选版本,仅在从源代码安装TensorFlow时受支持)。”
nobar

36
为了使Tensorflow能够找到所有内容,我必须将include/cudnn.h库复制并复制lib64//usr/local/cuda-8.0/include和中/usr/local/cuda-8.0/lib64(使用CUDA 8.0,Ubuntu 14.04,Tensorflow 0.12.0rc0)-也许这对某些人有用。
大卫·斯图兹

@MaxGordon嗨,我是否将运行时库用于ubuntu16.04 power8或用于Linux的库,这有关系吗?
trytolearn17年

1
另一个技巧-确保在安装cudnn之前先安装cuda。否则,cuda安装程序将不会覆盖您可能创建的任何/ usr / local / cuda目录。
凯文斯(Kevins)

38

从5.1开始,您将无法按照@Martin的说明进行安装。libcudnn6_6.0.21-1+cuda8.0_amd64.deb, libcudnn6-dev_6.0.21-1+cuda8.0_amd64.deb, libcudnn6-doc_6.0.21-1+cuda8.0_amd64.debnvidia网站下载 并按以下一种方式安装。

 sudo dpkg -i <library_name>.deb

编辑:您必须首先安装运行时(libcudnn6_6.0.21-1 + cuda8.0_amd64.deb),因为dev取决于运行时(感谢@tinmarino)


1
谢谢。我已经多次陷入这个问题。让我们建立一个经验法则。如果无法解决问题,请坚持使用.deb软件包进行安装。
阿努拉格·瓦迪亚

8
从源代码编译Tensorflow时,很高兴知道cuDNN库的安装路径是/usr/lib/x86_64-linux-gnu/
Visionscaper

1
您必须先安装,runtime因为dev取决于它
tinmarino

12
  1. 在NVidia的网站上注册。他们可能需要一两天的时间才能批准您的帐户。至少在我注册时曾经如此。
  2. 从NVidia下载并安装最新的CUDA或适合您要使用的软件的最新版本(如果有),在这种情况下为T-Flow版本。

    请注意,通过ubuntu的标准软件包管理器通过单击进行安装可能无法正常工作。

    相反,您可能必须在终端中遵循这些说明来安装.deb包装。之后,你就必须添加几行,以.bashrc你的情况适合,或其它地方。例如,如果您要配置服务器,则它可能会在另一个位置,可能在应用程序自动启动之前的某个位置,因为.bashrc在这种情况下可能不会执行。

  3. 从NVidia下载CuDNN

    我使用的是“ Linux库”版本,.deb软件包的运气并不好。

  4. 您可以通过找到CUDA的位置 which nvcc。通常/usr/local/cuda/将是您当前安装版本的符号链接。

  5. 打开CuDNN存档,并将适当的内容复制到CUDA安装文件夹(cuda/lib64/cuda/include/)中的适当位置。我通常sudo nautilus会从那里视觉上做。

8

快进2018年,NVIDIA现在提供cuDNN 7.x供下载。安装步骤仍然与@GPrathap描述的步骤相似。但是,如果要将旧的cuDNN版本替换为较新的版本,则需要在安装之前先将其删除。

回顾一下:

步骤0。确认您已经安装了CUDA工具包。如果尚未安装,请继续安装CUDA工具包。

步骤1.转到NVIDIA开发人员门户https://developer.nvidia.com/cudnn并下载cuDNN。

步骤2.如果您先前已安装cuDNN,请将其删除

sudo dpkg -r <old-cudnn-runtime>.deb
sudo dpkg -r <old-cudnn-dev>.deb

步骤3.使用dpkg安装cuDNN库(运行时,开发,文档)

sudo dpkg -i <new-cudnn-runtime>.deb
sudo dpkg -i <new-cudnn-dev>.deb
sudo ldconfig

步骤4.如果要查找库的安装位置,则可以更新定位索引,然后找到库的位置。

sudo updatedb
locate libcudnn

如果您专门针对CUDA工具包9.1安装cuDNN 7.x,则本文将提供更多详细说明,可能会对您有所帮助:http : //tech.amikelive.com/node-679/quick-tip-installing-cuda-deep- Neuro-Network-7-cudnn-7-x-库用于cuda-toolkit-9-1-on-ubuntu-16-04 /


感谢@Mike,您知道使用deb文件和普通.tar文件有什么区别吗?推荐哪一个,为什么?(通过我自己使用运行文件安装CUDA的方式,也使用ubuntu中cuDNN的.tar包)
Rika

根据相关的安装文件Nvidia的,你说不必删除旧版本有什么是不正确的:cuDNN v7 can coexist with previous versions of cuDNN, such as v5 or v6.
n1k31t4

3

另外,您可以为基于Debian的发行版下载deb软件包。

在NVIDIA网页上,对于开发者资料,可以使用以下文件:

  • 适用于Linux的cuDNN v5.1运行时库(Deb)
  • cuDNN v5.1 Linux开发人员库(Deb)
  • cuDNN v5.1代码示例和用户指南Linux(Deb)

我在Debian(Stretch)的机器上进行了测试,并且TensorFlow正常工作!


6
请注意,截至目前(2016年7月),除非您从源代码编译cuDNN v5.1,否则它将无法与TensorFlow一起使用,请参阅tensorflow.org/versions/r0.9/get_started/os_setup.html
mastazi

2

为@Martin Thoma和@ÍhorMé仍然有效的答案添加一个重要的细节:将libcudnn文件复制到cuda目录后,必须更新.bashrc文件:

export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64"
export CUDA_HOME=/usr/local/cuda

然后,您必须将include目录添加到使用该目录的任何配置文件中。Caffe例如具有一个配置文件,在使用make编译之前,必须对其进行编辑。为此,编辑caffe / Makefile.config以将路径添加到这些配置变量(在路径之间添加空格):

INCLUDE_DIRS: /usr/local/caffe/cuda/include/ 
LIBRARY_DIRS: /usr/local/cuda/lib64/

对于您希望这些更改生效的每个当前终端窗口,请不要忘记一次执行该文件!

. ~/.bashrc

0

答案是正确的,但对于cuDNN 5.1,某些名称已更改。因此,如果您在提取cuDNN文件后使用此版本,则会找到两个文件夹:lib和include。将包含文件夹中的* .h文件名更改为cudnn.h,然后按照https://askubuntu.com/a/767270/641589进行操作。如果您想将cuDNN用于Caffe,则需要进行此更改!


请编辑您的答案,并添加参考“上面的说明”。
sudodus

0

在16.04中,如果您直接从Nvidia的网站安装CUDA,并且还从源代码构建Tensorflow,则可以指定要表示为Cudnn的目录。默认情况下是:

/usr/include/x86_64-linux-gnu

在构建Tensorflow时,它将询问您要指示用于Cudnn的哪个版本。然后,它将询问位于何处。只要指出上面的目录,它将正常工作。此时应该会创建一个wheel文件,您可以使用pip安装它。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.