Jak zainstalować CUDA na Ubuntu 18.04?

61

Czy jest jakiś samouczek, jak zainstalować CUDA na Ubuntu 18.04?

Instrukcje na stronie internetowej Nvidii dla 17.04 i 16.04 nie działają dla 18.04.

Dostaję komunikat z prośbą o ponowne uruchomienie, a następnie ponowne uruchomienie instalatora. Jednak gdy to robię, ponownie otrzymuję tę samą wiadomość.

Gabs
źródło
To zadziałało dla mnie. Która część nie działa dla ciebie?
user3667089
Mówi, że restart jest potrzeba, a następnie ponownie uruchomić instalator, ale ponownie uruchom komputer i spróbuj ponownie zainstalować i wszystko, co się ma ten sam komunikat ...
Gabs
Spróbuj postępować zgodnie z instrukcją tutaj, która używa pliku wykonywalnego do zainstalowania sterownika i zestawu narzędzi cuda.
stożek

Odpowiedzi:

19

Zainstalowałem CUDA 9.1 na Ubuntu 18.04 i działa bardzo dobrze.

Jednak powinienem zmodyfikować domyślne gcc, g ++ i używać plików .run zamiast plików .deb.

  1. zainstaluj gcc-6, g ++ - 6 (CUDA wymaga gcc-6!)
  2. W katalogu / usr / bin jako root, rm gcc, gcc-ar, gcc-nm, gcc-ranlib g ++, a następnie 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; oraz ln -s g ++ - 6 g ++
  3. zainstaluj CUDA przy użyciu plików .run. Nie możesz zainstalować sterownika. Zamiast tego zainstaluj najnowszy sterownik (w razie potrzeby pobierz NVIDIA-Linux-xxxxxxx.run z Nvidii) byłoby lepiej.

To wszystko.

Próbowałem zainstalować przy użyciu plików .deb, ale powoduje to konflikt pakietów, więc zmieniłem sposób.

Ciesz się !!

Dae-Chul Jo 조대철
źródło
10
Zalecam korzystanie z aktualizacji zamiast zamiast gcc, zobacz askubuntu.com/questions/26498/choose-gcc-and-g-version, aby uzyskać więcej informacji
Mr.WorshipMe
99

W terminalu wpisz:


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

sudo apt update

sudo ubuntu-drivers autoinstall

restart


sudo apt install nvidia-cuda-toolkit gcc-6

nvcc --version

Mam kartę graficzną GTX970 i nową instalację Ubuntu 18.04

To zadziałało dla mnie

eromod
źródło
10
To powinna być akceptowana odpowiedź
luboskrnac
6
To w większości działało dla mnie. Jedynym problemem było to, że nie znaleziono sterowników ubuntu i trzeba było to naprawić, uruchamiając: sudo apt-get install ubuntu-drivers-common (znaleziono tutaj: askubuntu.com/a/361868/766963 )
Volkan Paksoy
To zadziałało dla mnie, chociaż musiałem przełączyć się z powrotem z interfejsu użytkownika do nowej wersji przed uruchomieniem automatycznej instalacji (zgłaszało konflikty podczas instalowania v396 podczas instalacji v390)
Alex Reinking
1
To działało idealnie. Jednak sudo apt upgradewszystko znowu zepsuło, bądź ostrożny z aktualizacjami!
Luis
1
Dla mnie autoinstallpolecenie toThe following packages have unmet dependencies: nvidia-driver-415
MrMartin
12

Włącz wieloświatowe repozytorium, zainstaluj sterowniki nvidia oraz nvidia-cuda-toolkit i gcc6 (najlepiej używając aktualizacji alternatywnych w celu łatwego przełączania wersji):

  1. W oprogramowaniu i aktualizacjach wybierz repozytoria ograniczone i wieloskładnikowe
  2. W zakładce Dodatkowe sterowniki w oprogramowaniu i aktualizacjach wybierz zastrzeżony sterownik NVIDIA (390 dla CUDA 9)
  3. sudo apt update && sudo apt install nvidia-cuda-toolkit lub zainstaluj go z centrum oprogramowania ubuntu.
  4. CUDA wymaga gcc6, użyj aktualizacji-alternatyw, aby utrzymać zarówno gcc7, jak i gcc6, jak wyjaśniono tutaj .

Możesz też postępować zgodnie z instrukcjami Taylora :

  1. Po zainstalowaniu zastrzeżonego sterownika NVIDIA, pobierz instalację CUDA 9 z ich strony (pobierz Ubuntu wersję pliku wykonywalnego 17.04)
  2. spraw, aby pobrany plik był wykonywalny za pomocą sudo chmod +x
  3. uruchom go z flagą --override
  4. Zaakceptuj warunki, powiedz „tak” w przypadku instalacji z nieobsługiwaną konfiguracją, a „nie”, aby zainstalować „NVIDIA Accelerated Graphics Driver dla Linux-x86_64 384,81?”. Upewnij się, że nie zgadzasz się na instalację nowego sterownika.
  5. Zobacz wyżej o korzystaniu z gcc6

Druga metoda ma tę wadę, że uaktualnienie lub usunięcie nie jest tak łatwe.

Mr.WorshipMe
źródło
2
Mimo że link do strony pakietu jest przydatny i jest tutaj wystarczająca ilość informacji, że nie jest to „odpowiedź tylko za pomocą linku” lub coś w tym rodzaju, zalecamy edycję tego, aby wyjaśnić, jak to zrobić.
Eliah Kagan
5

Wątpię, czy powyższe odpowiedzi się kwalifikują, ponieważ wydają się opuszczać system bez całego podsystemu sterowników NVidia. Mogę zgadnąć, dlaczego Cuda nie wciąga sterowników, chociaż prawdopodobnie wolałbym, żeby było inaczej. Nie jestem również pewien, jaki jest właściwy sposób uzyskania najnowszego sterownika, ale w tej chwili wydaje się to robić:

sudo apt-get install nvidia-driver-390

Hayvan M.
źródło
3
Tak, jeśli nie zainstalujesz sterowników Nvidia z repozytoriów Ubuntu, być może będziesz musiał zainstalować je ponownie po każdej aktualizacji jądra.
ubfan1
Prawdopodobnie potrzebujesz także NVIDIA-Driver-390-dev
Mr.WorshipMe
4

Oto co zrobiłem. Mogłyby zostać dodane dodatkowe rzeczy, których prawdopodobnie nie musiałbym robić, ale i tak to dołączę.

Najpierw pobierz sterowniki repozytorium ppa. (Powiedziałbym, że jest to wymagane przed instalacją, chyba że chcesz zaryzykować utratę loginu śmierci).

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

Następnie zainstaluj najnowszy sterownik. Używam narzędzia do aktualizacji GUI w przeważającej części o nazwie Oprogramowanie i aktualizacje, w zakładce Dodatkowe sterowniki. Na dzień dzisiejszy dostępny jest sterownik nvidia 396.

Uzyskaj g ++ - 6 i gcc-6. (Wymagany)

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

Możesz spróbować użyć nvidia-cuda-toolkit, ale ścieżki do bibliotek nie były mi znane. Nie chciałem z tym zadzierać.

(Prawdopodobnie pominąłbym ten, ale przejdź do niego, jeśli inne rzeczy powodują problemy)

sudo apt install nvidia-cuda-toolkit

Skończyłem instalowanie pliku uruchomieniowego 9.1 dla Ubuntu 17.04. Pobierz to. Oznacz plik jako wykonywalny (klikam prawym przyciskiem myszy plik na pulpicie). Idź do terminalu i włóż. (Wymagany)

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

Zainstaluje go przy użyciu nowych kompilatorów gcc. Zadaje ci mnóstwo pytań i chce, aby na nie natychmiast udzielono odpowiedzi.

Odpowiedz tak na nieobsługiwaną konfigurację.

Nie dla sterownika NVIDIA.

Tak - do zestawu narzędzi

Użyłem domyślnych lokalizacji instalacji

Po zainstalowaniu upewnij się, że masz ustawione ścieżki. Plik uruchomienia również da ci przypomnienie. Również dokumentacja NVIDIA powie ci, co wyeksportować.

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

Na koniec musisz skonfigurować simlinks do gcc-6 i g ++ - 6, inaczej otrzymasz ostrzeżenie o kompilacji własnego kodu. (Wymagane)

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

Uruchom ponownie system. (Wymagany)

Derek Stinson
źródło
Dobra odpowiedź, ale w mojej sytuacji sterownik Ubuntu repo nvidia był niewłaściwą pod-wersją! W chwili opublikowania tego nvidia-396pakietu jest to wersja 396.37, która nie działa na moim GeForce GTX 950. Musiałem więc zainstalować 396.18 ręcznie! Upewnij się więc, że sterownik jest tym, którego naprawdę potrzebujesz.
salotz
2

Zobaczmy, jak idzie moja odpowiedź na 16.04 :

  1. Pobierz CUDA dla Ubuntu 17.10 (plik wykonywalny lokalny) - Tensorflow zaleca CUDA 9.0 - CUDA 9.2 wydaje się nie działać z tf
  2. Zainstaluj wymagania CUDA (patrz sekcja poniżej)
  3. Biegać sudo sh cuda_7.5.18_linux.run
  4. Postępuj zgodnie z instrukcjami wiersza poleceń.

Następny krok: zainstaluj 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

Ostrzeżenie : nie instaluj sterownika ekranu! (Przynajmniej nie działało na moim Thinkpad T460p)

CUDA 9.0 dla 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 |
+-----------------------------------------------------------------------------+

i

$ 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

Wymagania 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

Zweryfikuj za pomocą

$ 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)
Martin Thoma
źródło
0

Moje własne doświadczenie w instalacji CUDA. Testowane na Ubuntu 18.04. Zadanie:

  • Zainstaluj sterownik graficzny dla Palit GeForce GTX 1080 Ti GameRock 11GB GDDR5X [NEB108TT15LC-1020G].
  • Zainstaluj bibliotekę CUDA dla wszystkich użytkowników.

Powiązane linki:

Instalacja sterownika NVIDIA

Przejdź do strony internetowej NVIDIA - https://www.nvidia.com/Download/index.aspx i uzyskaj najnowszy sterownik dla twojego GPU. W moim przypadku jest to:

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.

Pobierz to. W moim przypadku nazwa pliku to: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

Lepiej jest uruchomić instalację sterownika w trybie tekstowym. W trybie tekstowym naciśnij <Ctrl>+<Alt>+<F3>i zaloguj się do konsoli.

Najprawdopodobniej będziesz miał problemy z wcześniej zainstalowanym sterownikiem graficznym o nazwie 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

Powinieneś zobaczyć dane wyjściowe sterowników Nvidia: wprowadź opis zdjęcia tutaj

# 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

Powinieneś zobaczyć poprawny model swojego GPU: wprowadź opis zdjęcia tutaj

Instalowanie biblioteki CUDA dla wszystkich użytkowników

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

Pobierz CUDA Toolkit od - https://developer.nvidia.com/cuda-downloads Wybierz: Linux, x86_64, Ubuntu, 18.04, runfile (local).

Pobierz plik 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

Aby skonfigurować środowisko CUDA dla wszystkich użytkowników (i aplikacji) w systemie, utwórz dwa pliki (użyj sudo i dowolnego edytora tekstu)

# 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
FooBar167
źródło