Đố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?
Đố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?
Câu trả lời:
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/...
và /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 nvcc
hoặ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*
-P
giữ 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
include/cudnn.h
và các thư viện trong lib64/
để /usr/local/cuda-8.0/include
và /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 đó.
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.deb
từ 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)
/usr/lib/x86_64-linux-gnu/
runtime
phần dev
phụ thuộc vào nó
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 .deb
pakage. Sau đó, bạn sẽ phải thêm một vài dòng vào .bashrc
hoặ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ì .bashrc
có thể sẽ không được thực thi trong trường hợp đó.
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 .deb
các gói.
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.
cuda/lib64/
và cuda/include/
). Tôi thường sudo nautilus
và làm điều đó từ đó một cách trực quan.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 /
cuDNN v7 can coexist with previous versions of cuDNN, such as v5 or v6.
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:
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!
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
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!
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.