Làm cách nào để cài đặt CUDA trên Ubuntu 18.04?


61

Có hướng dẫn nào để cài đặt CUDA trên Ubuntu 18.04 không?

Các hướng dẫn trên trang web Nvidia cho 17.04 và 16.04 không hoạt động cho 18.04.

Tôi nhận được một thông báo bảo tôi khởi động lại sau đó chạy lại trình cài đặt. Tuy nhiên khi tôi làm điều này, tôi nhận được tin nhắn tương tự một lần nữa.


Nó làm việc cho tôi. Phần nào của nó không làm việc cho bạn?
user3667089

Nó nói rằng cần phải khởi động lại và sau đó chạy lại trình cài đặt, nhưng tôi khởi động lại máy tính và cố gắng cài đặt lại và tất cả những gì tôi nhận được là cùng một thông báo ...
Gabs

Hãy thử làm theo hướng dẫn ở đây sử dụng runfile để cài đặt trình điều khiển và bộ công cụ cuda.
giảm dần

Câu trả lời:


19

Tôi đã cài đặt CUDA 9.1 trên Ubuntu 18.04 và chạy rất tốt.

Tuy nhiên, tôi nên sửa đổi các tệp gcc, g ++ mặc định và sử dụng các tệp .run thay vì các tệp .deb.

  1. cài đặt gcc-6, g ++ - 6 (CUDA yêu cầu gcc-6!)
  2. Trong / usr / bin là root, rm gcc, gcc-ar, gcc-nm, gcc-ranlib g ++, sau đó ln -s gcc-6 gcc; ln -s gcc-ar-6 gcc-ar; ln -s gcc-nm-6 gcc-nm; ln -s gcc-ranlib-6 gcc-ranlib; và ln -s g ++ - 6 g ++
  3. cài đặt CUDA bằng cách sử dụng tập tin .run. Bạn có thể không trình điều khiển. Thay vào đó, cài đặt trình điều khiển mới nhất (nếu cần, tải xuống NVIDIA-Linux-xxxxxxx.run từ Nvidia) sẽ tốt hơn.

Đó là tất cả.

Tôi đã cố gắng cài đặt bằng các tệp .deb, nhưng nó gây ra xung đột gói để tôi thay đổi cách.

Tận hưởng đi !!


10
Tôi khuyên bạn nên sử dụng các giải pháp thay thế cập nhật thay vì thay thế gcc, hãy xem Askubfox.com/questions/26498/choose-gcc-and-g-version để biết thêm chi tiết
Mr.WISTMe

100

Trong một thiết bị đầu cuối, gõ:


sudo add-apt-repository ppa:graphics-drivers/ppa

sudo apt update

sudo ubuntu-drivers autoinstall

khởi động lại


sudo apt install nvidia-cuda-toolkit gcc-6

nvcc --version

Tôi có card đồ họa gtx970 và bản cài đặt Ubuntu 18.04 mới

Điều này làm việc cho tôi


10
Điều này nên được chấp nhận câu trả lời
Luboskrnac

6
Điều này chủ yếu làm việc cho tôi. Chỉ có vấn đề là ubuntu-trình điều khiển không được tìm thấy và đã phải sửa chữa nó bằng cách chạy: sudo apt-get install ubuntu-drivers-chung (tìm thấy nó ở đây: askubuntu.com/a/361868/766963 )
Volkan Paksoy

Điều này làm việc với tôi, mặc dù tôi phải chuyển về nouveau từ UI trước khi chạy autoinstall (nó báo cáo xung đột khi cài đặt v394 trong khi v390 được cài đặt)
Alex Reinking

1
Điều này làm việc hoàn hảo. Tuy nhiên sudo apt upgradeđã phá vỡ mọi thứ một lần nữa, hãy cẩn thận với nâng cấp!
Luis

1
Đối với tôi, autoinstalllệnh kết quả làThe following packages have unmet dependencies: nvidia-driver-415
MrMartin

12

Cho phép kho lưu trữ đa vũ trụ, cài đặt trình điều khiển nvidia và nvidia-cuda-toolkit và gcc6 (tốt nhất là sử dụng các lựa chọn thay thế cập nhật để dễ dàng chuyển đổi phiên bản):

  1. Trong phần mềm và cập nhật, chọn kho lưu trữ bị hạn chế và đa vũ trụ
  2. Trong tab Trình điều khiển bổ sung trong phần mềm & cập nhật, chọn trình điều khiển độc quyền của NVIDIA (390 cho CUDA 9)
  3. sudo apt update && sudo apt cài đặt nvidia-cuda-toolkit hoặc cài đặt nó từ trung tâm phần mềm ubfox.
  4. CUDA yêu cầu gcc6, sử dụng các lựa chọn thay thế cập nhật để duy trì cả gcc7 và gcc6 như được giải thích ở đây .

Ngoài ra, bạn có thể làm theo hướng dẫn của Taylor :

  1. Sau khi cài đặt trình điều khiển NVIDIA độc quyền, hãy tải xuống bản cài đặt CUDA 9 từ trang web của họ (tải Ubuntu phiên bản runfile 17.04)
  2. làm cho tập tin tải xuống có thể thực thi được với sudo chmod +x
  3. chạy nó với cờ - override
  4. Chấp nhận các điều khoản và điều kiện, nói có với cài đặt với cấu hình không được hỗ trợ và không với Cài đặt Trình điều khiển đồ họa tăng tốc NVIDIA cho Linux-x86_64 384.81? Hãy chắc chắn rằng bạn không đồng ý cài đặt trình điều khiển mới.
  5. Xem ở trên về việc sử dụng gcc6

Phương pháp thứ hai có nhược điểm là không dễ dàng nâng cấp hoặc gỡ bỏ.


2
Mặc dù liên kết đến trang gói là hữu ích và có đủ thông tin ở đây rằng đây không phải là "câu trả lời chỉ liên kết" hoặc bất cứ điều gì, tôi khuyên bạn nên chỉnh sửa điều này để giải thích cách thực hiện những gì bạn đang đề xuất.
Eliah Kagan

6

Tôi nghi ngờ các câu trả lời ở trên đủ điều kiện, bởi vì chúng dường như rời khỏi hệ thống mà không có toàn bộ hệ thống con trình điều khiển NVidia. Tôi có thể đoán tại sao Cuda không kéo các trình điều khiển, mặc dù tôi có lẽ muốn có nó hơn. Tôi cũng không chắc đó là cách thích hợp để có được trình điều khiển mới nhất, nhưng ngay bây giờ điều này dường như làm điều đó:

sudo apt-get cài đặt nvidia-driver-390


3
Đúng vậy, nếu bạn không cài đặt trình điều khiển Nvidia từ kho Ubuntu, bạn có thể phải cài đặt lại chúng sau mỗi lần cập nhật kernel.
ubfan1

Bạn cũng có thể cần nvidia-driver-390-dev
Mr.WISTMe


4

Đây là những gì tôi đã làm. Có thể có thêm những thứ bổ sung mà tôi có thể không phải làm, nhưng tôi sẽ bao gồm nó.

Đầu tiên hãy lấy trình điều khiển kho ppa. (Tôi sẽ nói điều này là bắt buộc trước khi cài đặt, trừ khi bạn muốn mạo hiểm một số vòng đăng nhập của cái chết).

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update

Sau đó cài đặt trình điều khiển mới nhất. Tôi sử dụng trình cập nhật GUI cho hầu hết các phần được gọi là Phần mềm & Cập nhật, trong tab Trình điều khiển bổ sung. Cho đến hôm nay, trình điều khiển nvidia 396 đã có sẵn.

Nhận g ++ - 6 và gcc-6. (Cần thiết)

sudo apt install g++-6
sudo apt install gcc-6

Bạn có thể thử sử dụng nvidia-cuda-toolkit, nhưng đường dẫn đến các thư viện không quen thuộc với tôi. Tôi không muốn gây rối với nó.

(Tôi có thể bỏ qua cái này, nhưng hãy truy cập nó nếu những thứ khác gây ra vấn đề)

sudo apt install nvidia-cuda-toolkit

Tôi đã kết thúc việc cài đặt tệp chạy 9.1 cho Ubuntu 17.04. Tải về nó. Đánh dấu tệp là tệp thực thi (Tôi nhấp chuột phải vào tệp trong máy tính để bàn). Đi vào nhà ga và đặt. (Cần thiết)

./cuda_9.1.85_387.26_linux.run --override

Nó sẽ cài đặt nó bằng trình biên dịch gcc mới. Nó sẽ hỏi bạn một loạt các câu hỏi, và nó sẽ muốn họ trả lời ngay lập tức.

Trả lời có cho sự hợp nhất không được hỗ trợ.

Không cho trình điều khiển nvidia.

Có - với bộ công cụ

Tôi đã sử dụng vị trí cài đặt mặc định

Sau khi được cài đặt, hãy chắc chắn rằng bạn thiết lập đường dẫn của mình. Các tập tin chạy cũng sẽ cung cấp cho bạn một lời nhắc nhở. Ngoài ra tài liệu nvidia sẽ cho bạn biết những gì cần xuất.

echo 'export PATH=/usr/local/cuda-9.1/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-9.1/lib64:$LD_LIBRARY_PATH' >> ~/.bash.rc
source ~/.bashrc

Cuối cùng, bạn phải thiết lập các liên kết sim thành gcc-6 và g ++ - 6 hoặc bạn sẽ nhận được cảnh báo về việc biên dịch mã của riêng bạn. (Bắt buộc)

sudo ln -s /usr/bin/gcc-6 /usr/local/cuda/bin/gcc
sudo ln -s /usr/bin/g++-6 /usr/local/cuda/bin/g++

Khởi động lại hệ thống. (Cần thiết)


Câu trả lời tốt, nhưng trong tình huống của tôi, trình điều khiển Ubuntu repo nvidia là phiên bản phụ sai! Tại thời điểm đăng nvidia-396gói này, phiên bản 396.37 không hoạt động cho GeForce GTX 950 của tôi. Vì vậy, tôi đã phải cài đặt 396,18 bằng tay! Vì vậy, hãy chắc chắn kiểm tra trình điều khiển là người bạn thực sự cần.
salotz

2

Hãy xem câu trả lời của tôi cho 16.04 diễn ra như thế nào :

  1. Tải xuống CUDA cho Ubuntu 17.10 (runfile local) - Tensorflow khuyến nghị CUDA 9.0 - CUDA 9.2 dường như không hoạt động với tf
  2. Cài đặt các yêu cầu CUDA (xem phần bên dưới)
  3. Chạy sudo sh cuda_7.5.18_linux.run
  4. Làm theo lời nhắc dòng lệnh.

Bước tiếp theo: Cài đặt cuDNN

CUDA 9.2

$ nvidia-smi
Fri Jun  8 18:09:24 2018       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 390.48                 Driver Version: 390.48                    |
|-------------------------------+----------------------+----------------------+
| 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  | 00000000:02:00.0 Off |                  N/A |
| N/A   72C    P0    N/A /  N/A |    512MiB /  2004MiB |     90%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0      1031      G   /usr/lib/xorg/Xorg                           276MiB |
|    0      3072      G   ...-token=0F06A89A68C1B8739F1AB9EF1C5654F9   232MiB |
+-----------------------------------------------------------------------------+

$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2018 NVIDIA Corporation
Built on Wed_Apr_11_23:16:29_CDT_2018
Cuda compilation tools, release 9.2, V9.2.88

Cảnh báo : Không cài đặt trình điều khiển hiển thị! (Ít nhất là nó không hoạt động trên Thinkpad T460p của tôi)

CUDA 9.0 cho tf

$ nvidia-smi
Sat Jun  9 08:55:30 2018       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 390.48                 Driver Version: 390.48                    |
|-------------------------------+----------------------+----------------------+
| 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  | 00000000:02:00.0 Off |                  N/A |
| N/A   68C    P0    N/A /  N/A |    595MiB /  2004MiB |     91%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0      1036      G   /usr/lib/xorg/Xorg                           350MiB |
|    0      2531      G   ...-token=FA7CF967F32AD2277A4B0EA78D1CB8D4   241MiB |
+-----------------------------------------------------------------------------+

$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2017 NVIDIA Corporation
Built on Fri_Sep__1_21:08:03_CDT_2017
Cuda compilation tools, release 9.0, V9.0.176

Yêu cầu CUDA

$ sudo apt-get install gcc-6 g++-6
$ sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-6 50
$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-6 50

Xác minh với

$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/6/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 6.4.0-17ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-6/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++ --prefix=/usr --with-as=/usr/bin/x86_64-linux-gnu-as --with-ld=/usr/bin/x86_64-linux-gnu-ld --program-suffix=-6 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 6.4.0 20180424 (Ubuntu 6.4.0-17ubuntu1)

0

Kinh nghiệm của riêng tôi trong việc cài đặt CUDA. Đã thử nghiệm trên Ubuntu 18.04. Bài tập, nhiệm vụ:

  • Cài đặt trình điều khiển đồ họa cho Palit GeForce GTX 1080 Ti GameRock 11GB GDDR5X [NEB108TT15LC-1020G].
  • Cài đặt thư viện CUDA cho tất cả người dùng.

Liên kết liên quan:

Cài đặt trình điều khiển NVIDIA

Truy cập trang web NVIDIA - https://www.nvidia.com/Doad/index.aspx và tải trình điều khiển mới nhất cho GPU của bạn. Trong trường hợp của tôi, đó là:

Product Type: GeForce
Product Series: GeForce 10 Series
Product: GeForce GTX 1080 Ti
Operating System: Linux 64-bit
Language: English (US)
Press <SEARCH> button and check that founded driver is supporting your GPU
in "SUPPORTED PRODUCTS" tab.

Tải về nó. Trong trường hợp của tôi tên tệp là:NVIDIA-Linux-x86_64-410.78.run

# Change permission to run and execute it
sudo chmod +x NVIDIA-Linux-x86_64-410.78.run

# Before installation install gcc and make packages:
sudo apt install gcc
sudo apt install make

Tốt hơn là chạy cài đặt trình điều khiển trong chế độ văn bản. Đối với chế độ văn bản nhấn <Ctrl>+<Alt>+<F3>và đăng nhập vào bàn điều khiển.

Nhiều khả năng bạn sẽ gặp vấn đề với trình điều khiển đồ họa được cài đặt trước đó được gọi là Nouveau.

# Remove Nouveau driver
sudo apt –purge remove xserver-xorg-video-nouveau
# Remove previously installed NVIDIA driver
sudo apt purge nvidia*

# Execute file and answer the questions during installation
sudo ./NVIDIA-Linux-x86_64-410.78.run

# Reboot Ubuntu
sudo reboot

# To check if installation is successful
nvidia-smi

Bạn sẽ thấy đầu ra của Trình điều khiển Nvidia: nhập mô tả hình ảnh ở đây

# Check again
lsmod | grep nouveau  # should be zero output
lsmod | grep nvidia   # should be non-zero output

# Another check. {tab} means you should press <Tab> button on your keyboard.
cat /proc/driver/nvidia/gpus/{tab}/information

Bạn sẽ thấy mô hình chính xác của GPU của mình: nhập mô tả hình ảnh ở đây

Cài đặt thư viện CUDA cho tất cả người dùng

# Install gcc, kernel headers and development libraries
sudo apt install gcc-6 g++-6 linux-headers-$(uname -r) freeglut3-dev libxmu-dev libpcap-dev

Tải xuống bộ công cụ CUDA từ - https://developer.nvidia.com/cuda-doads Chọn : Linux, x86_64, Ubuntu, 18.04, runfile (local).

Tải xuống tệp 2.0 GB: cuda_10.0.130_410.48_linux.run

# Change permissions and run it
sudo chmod +x cuda_10.0.130_410.48_linux.run
sudo ./cuda_10.0.130_410.48_linux.run

If installation is successful, your should see the following output:
===========
= Summary =
===========

Toolkit: Installed in /usr/local/cuda-10.0
Samples: Not Selected

Please make sure that
 - PATH includes /usr/local/cuda-10.0/bin
 - LD_LIBRARY_PATH includes /usr/local/cuda-10.0/lib64, or, add /usr/local/cuda-10.0/lib64 to /etc/ld.so.conf and run ldconfig as root

Để định cấu hình môi trường CUDA cho tất cả người dùng (và ứng dụng) trên hệ thống của bạn, hãy tạo hai tệp (sử dụng sudo và trình soạn thảo văn bản bạn chọn)

# Create file cuda.sh
sudo touch /etc/profile.d/cuda.sh
# Open cuda.sh file
sudo nano /etc/profile.d/cuda.sh
# Add content to the file
export PATH=$PATH:/usr/local/cuda/bin
export CUDADIR=/usr/local/cuda

# Also create file cuda.conf
sudo touch /etc/ld.so.conf.d/cuda.conf
# Open cuda.conf file
sudo nano /etc/ld.so.conf.d/cuda.conf
# Add content to the file
/usr/local/cuda/lib64

# Restart ldconfig
sudo ldconfig

# Create symbolic links to GCC6 in the CUDA bin folder.
sudo ln -s /usr/bin/gcc-6 /usr/local/cuda-10.0/bin/gcc
sudo ln -s /usr/bin/g++-6 /usr/local/cuda-10.0/bin/g++

# Test CUDA by building the examples
# Copy the CUDA samples source directory to someplace in your home directory
# Go to the directory with the samples and run:
make -j4

# There could be compilation error for the samples
# Error: cannot find -lGL
# I was able to fix it by following the instructions in this link:
# http://techtidings.blogspot.com/2012/01/problem-with-libglso-on-64-bit-ubuntu.html (the final two commands)
sudo rm /usr/lib/x86_64-linux-gnu/libGL.so
sudo ln -s /usr/lib/libGL.so.1 /usr/lib/x86_64-linux-gnu/libGL.so
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.