Làm cách nào tôi có thể cài đặt CuDNN trên Ubuntu 16.04?


101

Đối với TensorFlow tôi muốn cài đặt cuda và CuDNN. Làm cách nào để làm điều đó trên Ubuntu 16.04?


4
Cảnh báo: nếu bạn đang cố chạy tenorflow và cần cudnn, hãy đảm bảo cài đặt 5.1 chứ không phải 6.0 ngay bây giờ.
lời giới thiệu

@wordsforthewise CuDNN 6.0 hiện được hỗ trợ (ít nhất là cho TF 1.4).
ComputerSellectist

Câu trả lời:


134

Bước 0: Cài đặt cuda từ kho lưu trữ tiêu chuẩn. (Xem Làm cách nào tôi có thể cài đặt CUDA trên Ubuntu 16.04? )

Bước 1: Đăng ký tài khoản nhà phát triển nvidia và tải xuống cudnn tại đây (khoảng 80 MB)

Bước 2: Kiểm tra nơi cài đặt cuda của bạn. Để cài đặt từ kho lưu trữ, nó là /usr/lib/.../usr/include. Nếu không, nó sẽ /usr/local/cuda/hoặc /usr/local/cuda-<version>. Bạn có thể kiểm tra nó với which nvcchoặcldconfig -p | grep cuda

Bước 3: Sao chép các tập tin:

Cài đặt kho lưu trữ:

$ 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*

Cài đặt Runfile:

$ 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
Việc thêm -Pgiữ lại các liên kết tượng trưng, ​​nghĩa là sudo cp -P lib64/libcudnn* /usr/lib/x86_64-linux-gnu/và tránh thông báo:/sbin/ldconfig.real: /usr/lib/x86_64-linux-gnu/libcudnn.so.5 is not a symbolic link
Max Gordon

1
Cập nhật từ đây : "Tải xuống cuDNN v4 (v5 hiện đang là ứng cử viên phát hành và chỉ được hỗ trợ khi cài đặt TensorFlow từ các nguồn)."
tộc

36
Đối với Tensorflow để tìm tất cả mọi thứ, tôi đã phải sao chép include/cudnn.hvà các thư viện trong lib64/để /usr/local/cuda-8.0/include/usr/local/cuda-8.0/lib64(sử dụng CUDA 8.0, Ubuntu 14.04, Tensorflow 0.12.0rc0) - có lẽ đây là hữu ích cho ai đó.
David Stutz

@MaxGordon Xin chào, có vấn đề gì không nếu tôi sử dụng thư viện thời gian chạy cho ubfox16.04 power8 hoặc thư viện cho linux?
gắng học hỏi

1
Một mẹo khác - đảm bảo bạn cài đặt cuda trước khi cài đặt cudnn. Nếu không, trình cài đặt cuda sẽ không ghi đè bất kỳ thư mục / usr / local / cuda nào bạn có thể đã tạo.
kevins

38

Từ 5.1 trở đi, bạn không thể cài đặt theo những gì @Martin đã đề cập. Tải xuống 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.debtừ trang web của nvidia và cài đặt từng bước một.

 sudo dpkg -i <library_name>.deb

Chỉnh sửa : Trước tiên, bạn phải cài đặt thời gian chạy (libcudnn6_6.0.21-1 + cuda8.0_amd64.deb) vì dev phụ thuộc vào thời gian chạy (Cảm ơn @tinmarino)


1
Cảm ơn. Tôi đã rơi vào vấn đề này nhiều lần. Hãy thiết lập một quy tắc ngón tay cái. Khi mọi thứ không hoạt động, hãy cài đặt bằng các gói .deb.
Anuraag Vaidya

8
Khi biên dịch Tensorflow từ nguồn, thật tốt khi biết rằng đường dẫn cài đặt thư viện cuDNN là/usr/lib/x86_64-linux-gnu/
Visionscaper

1
Trước tiên, bạn phải cài đặt runtimephần devphụ thuộc vào nó
tinmarino

12
  1. Đăng ký trên trang web của NVidia. Có thể mất một hoặc hai ngày trước khi tài khoản của bạn được chấp thuận. Ít nhất đó là trường hợp trở lại khi tôi đăng ký.
  2. Tải xuống và Cài đặt CUDA mới nhất từ ​​NVidia hoặc phiên bản mới nhất phù hợp với phần mềm bạn sẽ làm việc với, nếu có, trong trường hợp này là phiên bản T-Flow của bạn.

    Lưu ý rằng việc cài đặt qua trình quản lý gói tiêu chuẩn của Ubuntu thông qua nhấp chuột có thể sẽ không hoạt động phù hợp.

    Thay vào đó, có lẽ bạn sẽ phải làm theo các hướng dẫn này trong thiết bị đầu cuối để cài đặt .debpakage. Sau đó, bạn sẽ phải thêm một vài dòng vào .bashrchoặc bất cứ nơi nào thích hợp trong trường hợp của bạn. Ví dụ: nếu bạn đang định cấu hình máy chủ, có thể đó sẽ là một địa điểm khác, có thể là một nơi nào đó trước khi tự động chạy ứng dụng của bạn, vì .bashrccó thể sẽ không được thực thi trong trường hợp đó.

  3. Tải xuống CuDNN từ NVidia

    Tôi đã sử dụng phiên bản "Thư viện cho Linux", không gặp nhiều may mắn với .debcác gói.

  4. Bạn có thể tìm thấy nơi CUDA được đặt qua which nvcc. Thông thường /usr/local/cuda/sẽ là một liên kết tượng trưng cho phiên bản hiện đang cài đặt của bạn.

  5. Mở kho lưu trữ CuDNN và sao chép nội dung phù hợp vào những nơi thích hợp trong thư mục cài đặt CUDA ( cuda/lib64/cuda/include/). Tôi thường sudo nautilusvà làm điều đó từ đó một cách trực quan.

8

Chuyển tiếp nhanh 2018 và NVIDIA hiện cung cấp cuDNN 7.x để tải xuống. Các bước cài đặt vẫn tương tự như các bước được mô tả bởi @GPrathap. Nhưng nếu bạn muốn thay thế phiên bản cuDNN cũ bằng phiên bản mới hơn, trước tiên bạn cần gỡ bỏ nó trước khi cài đặt.

Tóm lại:

Bước 0. Xác minh rằng bạn đã cài đặt bộ công cụ CUDA. Tiến hành cài đặt bộ công cụ CUDA nếu bạn chưa có.

Bước 1. Truy cập cổng thông tin dành cho nhà phát triển NVIDIA https://developer.nvidia.com/cudnn và tải cuDNN.

Bước 2. Nếu bạn đã cài đặt cuDNN trước đó, hãy xóa nó

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

Bước 3. Cài đặt thư viện cuDNN (runtime, dev, doc) bằng dpkg

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

Bước 4. Nếu bạn muốn tìm nơi thư viện đã được cài đặt, bạn có thể cập nhật chỉ mục định vị và sau đó tìm vị trí thư viện.

sudo updatedb
locate libcudnn

Nếu bạn đang cài đặt cụ thể cuDNN 7.x với bộ công cụ CUDA 9.1, bài viết này cung cấp nhiều chi tiết hơn có thể giúp ích: http://tech.amikelive.com/node-679/quick-tip-installing-cuda-deep- nơ ron-mạng-7-cudnn-7-x-library-for-cuda-toolkit-9-1-on-ub Ubuntu-16-04 /


Cảm ơn @Mike, bạn có biết sự khác biệt giữa việc sử dụng các tệp deb và tệp .tar thông thường không? cái nào được khuyến nghị và tại sao? (Bằng cách này, bản thân tôi đã từng cài đặt CUDA bằng runfile và cũng sử dụng gói .tar cho cuDNN trong ubfox)
Rika

Theo các tài liệu cài đặt có liên quan từ Nvidia , những gì bạn nói về việc phải xóa các phiên bản cũ là không chính xác:cuDNN v7 can coexist with previous versions of cuDNN, such as v5 or v6.
n1k31t4

3

Ngoài ra, bạn có thể tải xuống các gói gỡ lỗi cho các bản phân phối dựa trên Debian.

Từ trang web NVIDIA, đối với hồ sơ nhà phát triển có sẵn các tệp tiếp theo:

  • cuDNN v5.1 Thư viện thời gian chạy cho Linux (Deb)
  • Thư viện nhà phát triển cuDNN v5.1 cho Linux (Deb)
  • Các mẫu mã và hướng dẫn sử dụng cuDNN v5.1 Linux (Deb)

Tôi đã thử nghiệm điều này, qua máy của tôi với Debian (Stretch) và TensorFlow đang hoạt động!


6
Xin lưu ý rằng kể từ bây giờ (tháng 7 năm 2016) cuDNN v5.1 sẽ không hoạt động với TensorFlow trừ khi bạn biên dịch nó từ nguồn, hãy xem tenorflow.org/versions/r0.9/get_started/os_setup.html
mastazi

2

Thêm một chi tiết quan trọng vào các câu trả lời hợp lệ của @Martin Thoma và @ Íhor Mé: Sau khi sao chép các tập tin libcudnn vào các thư mục cuda, bạn phải cập nhật tệp .bashrc của mình:

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

Sau đó, bạn phải thêm thư mục bao gồm vào bất kỳ tệp cấu hình nào sử dụng nó. Caffe eg có một tệp cấu hình mà bạn phải chỉnh sửa trước khi biên dịch với make. Đối với điều này, chỉnh sửa caffe / Makefile.config để thêm các đường dẫn vào các biến cấu hình này (thêm khoảng trắng giữa các đường dẫn):

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

Đối với mọi cửa sổ thiết bị đầu cuối hiện tại bạn muốn những thay đổi này có hiệu lực, đừng quên thực hiện tệp một lần!

. ~/.bashrc

0

câu trả lời là đúng nhưng đối với cuDNN 5.1, một số tên đã được thay đổi. Vì vậy, nếu bạn sử dụng phiên bản này sau khi giải nén tệp cuDNN, bạn sẽ tìm thấy hai thư mục: lib và bao gồm. thay đổi tên của tệp * .h trong thư mục bao gồm thành cudnn.h và sau đó theo dõi https://askubfox.com/a/767270/641589 . thay đổi này là cần thiết nếu bạn muốn sử dụng cuDNN cho Caffe!


Vui lòng chỉnh sửa câu trả lời của bạn và thêm tài liệu tham khảo, 'hướng dẫn ở trên'.
sudodus

0

Trong 16.04 nếu bạn đang cài đặt CUDA trực tiếp từ trang web của Nvidia và bạn cũng đang xây dựng Tensorflow từ nguồn thì bạn có thể chỉ định thư mục bạn muốn chỉ ra là Cudnn. Theo mặc định, đó là:

/usr/include/x86_64-linux-gnu

Khi bạn đang xây dựng Tensorflow, nó sẽ hỏi bạn phiên bản nào bạn muốn cho biết bạn đang sử dụng cho Cudnn. Sau đó, nó sẽ hỏi nó nằm ở đâu. Chỉ cần chỉ ra thư mục trên và nó sẽ hoạt động tốt. Nó sẽ tạo ra một tập tin bánh xe tại thời điểm đó và bạn có thể cài đặt nó với pip.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.