CUDA Toolkit 7/8/9 Debian 8 (Jessie) veya 9 (Stretch) üzerine nasıl kurulur?


26

Cuda Toolkit 7.0 veya 8 Debian 8'e nasıl kurulur ?

Debian 8'in CUDA Toolkit 6.0 kullanarak indirme ve yükleme seçeneğiyle birlikte geldiğini biliyorum apt-get install nvidia-cuda-toolkit, ancak bunu CUDA araç seti sürüm 7.0 veya 8 için nasıl yapıyorsunuz?

Aşağıda açıklandığı gibi Ubuntu yükleyicilerini kullanarak yüklemeyi denedim:

sudo wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/cuda-repo-ubuntu1404_7.0-28_amd64.deb

dpkg -i cuda-repo-ubuntu1404_7.0-28_amd64.deb

sudo apt-get update

sudo apt-get install -y cuda

Ancak işe yaramadı ve aşağıdaki mesaj geri döndü:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 cuda : Depends: cuda-7-0 (= 7.0-28) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

@ nullgeppetto: Lütfen aşağıdaki cevabımdaki talimatları takip etmeyi deneyin :-)
einpoklum - Monica

Yanıtlar:


30

Aşağıdaki talimatlar CUDA 7.0, 7.5 ve önceki birkaç (ve muhtemelen daha sonraki) versiyonlar için geçerlidir. Debian dağıtımlarına gelince, onlar Jessie ve Stretch ve muhtemelen diğer sürümler için geçerlidir. Bir amd64 (x86_64) mimarisi varsayarlar, ancak bunları x86 (x86_32) için kolayca uyarlayabilirsiniz.

Kurulum önkoşulları

  • g ++ - CUDA sürümünüz tarafından desteklenen en yeni GCC sürümünü kullanmalısınız. CUDA 7.x için bu, 4.x satırının son sürümü olan 4.9.3 olacaktır; CUDA 8.0 için, GCC 5.x sürümleri desteklenir. Dağıtımınız varsayılan olarak GCC 5.x kullanıyorsa, bunu kullanın, aksi takdirde GCC 5.4.0 yapmalıdır. Daha önceki sürümler kullanışlıdır, ancak yalnızca daha iyi modern-C ++ özelliği için ana bilgisayar tarafı kodu için destek varsa, onları tavsiye etmem.
  • gcc - g ++ ile birlikte gelir. Ben bile CMake'in nvcc'nin g ++ yerine g ++ 'yı açmasını bazı durumlarda bir -xanahtarla (ancak bundan emin değil) düşünüyorum.
  • libGLU - Mesa OpenGL kütüphaneleri (+ geliştirme dosyaları?)
  • libXi - X Pencere Sistemi Xinput eklenti kütüphaneleri (+ geliştirme dosyaları?)
  • libXmu - X Pencere Sistemi "çeşitli yardımcı programlar" kütüphanesi (+ geliştirme dosyaları?)
  • Linux çekirdeği - Çalıştırdığınız çekirdek sürümünün başlıkları.

Belirli paketlerin bir listesini istiyorsanız, bu tam olarak hangi dağıtıma bağlıdır, ancak aşağıdakileri deneyin (CUDA 7.x için):

sudo apt-get install gcc g++ gcc-4.9 g++-4.9 libxi libxi6 libxi-dev libglu1-mesa libglu1-mesa-dev libxmu6 libxmu6-dev linux-headers-amd64 linux-source

Ayrıca -dbgbu paketlerin bazı sürümlerini hata ayıklama sembolleri için ekleyebilirsiniz .

Ben oldukça emin bu kapakları hepsini - ama sadece zaten yüklü olan bir şey kaçırmış olabilir. Ayrıca, CUDA en azından deneysel olarak clang ile çalışabilir , ancak bunu denemedim.

CUDA çekirdek sürücüsünü yükleme

  1. NVIDIA'nın CUDA İndirilenleri sayfasına gidin .
  2. Seç Linux> x86_64> Ubuntu onlar (: Ubuntu 15.04 yazma anda) sahip en son ne sürümü ardından, vb.
  3. .Run dosya seçeneğini seçin .
  4. .Run dosyasını indirin (şu anda bu ). Koymamaya dikkat et /tmp.
  5. .Run dosyayı çalıştırılabilir yapın: chmod a+x cuda_7.5.18_linux.run.
  6. Kök ol.
  7. .Run dosyasını yürütün: Aptalca shrink-wrap lisanslarını kabul ediyormuş gibi yapın; NVIDIA çekirdek sürücüsünü kurmak için "evet" deyin ve diğer her şeye "hayır" deyin.

Kurulum, NVIDIA çekirdek sürücüsünü kurmayı beklediğini ancak araç seti kurulumuna devam etmeden / yeniden denemeden önce yeniden başlatmanız gerektiğini söylemelidir. Yani...

  1. Görünüşe göre başarılı olmuş, yeniden başlat.

CUDA'nın kendisini yükleme

  1. Kök ol.
  2. Bul ve yürüt cuda_7.5.18_linux.run
  3. Bu sefer, sürücüyü yüklemeye Hayır, başka şeyler yüklemeye Evet deyin ve varsayılan yolları kabul edin (veya onları değiştirin, sizin için ne işe yararsa).

Yükleyicinin şimdi başarısız olması muhtemeldir . Beklediğimiz bir tür başarısızlık olduğunu varsaymak iyi bir şey: Derleyici sürümünüzün desteklenmediğini söylemeli - CUDA 7.0 veya 7.5 gcc 4.9'a kadar destekliyor ve varsayılan olarak 5.x sürümünüz var. Şimdi, eğer eksik kütüphaneler hakkında bir mesaj alırsanız , bu bir şekilde önkoşullarla ilgili talimatlarımın bir şekilde başarısız olduğu anlamına gelir ve burada yorum yapmalısınız, böylece onları düzeltebilirim. "İyi başarısızlık" olduğunu varsayarsak, devam et:

  1. .Run dosyasını bu kez --override seçeneğiyle yeniden çağırın.
  2. 11. adımdakilerle aynı seçimleri yapın.

CUDA şimdi varsayılan olarak /usr/local/cuda(bu bir sembolik link) altında yüklenmelidir . Ama bitmedi!

NVIDIA'nın nvcc derleyicisini doğru g ++ sürümünü kullanmaya yönlendirmek

NVIDIA'nın CUDA derleyicisi aslında g ++ 'u bir bağlantı işleminin parçası olarak ve / veya .cu dosyaları yerine gerçek C ++' ı derlemek için çağırır. Bence. Neyse, yolunuzda olanı çalıştırmak için varsayılan olarak g++; ama eğer bir başkasınıg++ altına yerleştirirseniz /usr/local/cuda/bin, ilk önce onu kullanır! Yani...

  1. Yürütün symlink /usr/bin/g++-4.9 /usr/local/cuda/bin/g++(ve iyi bir önlem için, belki de) symlink /usr/bin/gcc-4.9 /usr/local/cuda/bin/gcc.

Bu kadar.

Kurulumu denemek

  1. cd /root/NVIDIA_CUDA-7.5_Samples/0_Simple/vectorAdd
  2. make

Derleme başarıyla sonuçlanmalı ve ne zaman

  1. ./vectorAdd

Aşağıdaki çıktıyı almalısınız:

root@mymachine:~/NVIDIA_CUDA-7.5_Samples/0_Simple/vectorAdd# ./vectorAdd
[Vector addition of 50000 elements]
Copy input data from the host memory to the CUDA device
CUDA kernel launch with 196 blocks of 256 threads
Copy output data from the CUDA device to the host memory
Test PASSED
Done

notlar

  • NVIDIA GDK'yı (GPU Geliştirme Seti) kurmanıza gerek yoktur, ancak zarar vermez ve bazıları için faydalı olabilir. Sisteminizin kök dizinine kurun; oldukça güvenli bir kaldırıcı sonradan var: /usr/bin/uninstall_gdk.pl. CUDA 8'de zaten CUDA'nın IIANM'sine entegre edilmiştir.
  • Nvidia -... veya cuda ... gibi adlarla başka paketler yüklemeyin; Acımayabilirler ama kesinlikle yardım etmeyecekler.
  • Bunlardan herhangi birini yapmadan önce, kullanarak GPU'nuzun tanındığından emin olmak isteyebilirsiniz lspci | grep -i nvidia.

... peki, bunların neredeyse hepsi: Tabi eğer root değilseniz, çekirdek sürücüsünü yükleyemezsiniz. Ancak CUDA kodunu onsuz oluşturabilir (çalıştıramazsınız).
einpoklum - Monica

Sadece bunu denedim. cuda yükleyicisi sadece yüklemeyi reddediyor. .Deb dosyasını kullanmanız gerektiğini belirten bir uyarı ile kurtarılır.

@WernerVanBelle: Bunu ayrı bir soru olarak gönderebilir misiniz? Ya da en azından çok kısa ise uyarıyı alıntı? Ayrıca, IIRC bazı "zorla" komut satırı seçeneği vardır, denediniz mi?
einpoklum - Monica

Bunların tümü - sürücü kurulumu hariç - ana dizininizde kök olmayan bir kullanıcı olarak da yapılabilir, ancak bu yalnızca CUDA kodunu oluşturmak için yeterli olmaz, çalıştırmaz . Bunun için çekirdeğinizde uygun bir nVIDIA sürücüsüne ihtiyacınız var ve bunu sadece bir kök kullanıcı yapabilir. Aksini öneren önceki yorumum için üzgünüm. Ayrıca, root olmayan bir kullanıcı olarak oluşturmak için, eğer dağıtımınız daha yeni bir versiyona sahipse, kendi gcc / g ++ versiyonunuzu oluşturmanız gerekebilir (CUDA 7.x için gcc 4.9.3'e ihtiyacınız olacaktır).
einpoklum - Monica

@ celavek: Eğer bu cevabın Debian 9'u yeterince iyi kapsamadığını düşünüyorsanız, önerilen bir düzenleme yapmadan önce nedenini açıklayınız.
einpoklum - Monica

6

Bence backports kullanarak yapmalısın, ben aslında sorunsuz bir şekilde nvidia-cuda-toolkitdebian jessie 7.5 yüklüyorum .

Ücretsiz, sizin için ücretsiz destek ekleyin /etc/apt/sources.list. Benim için (jessie'de) Bunu sadece dosyamın altına koydum:

# jessie-backports
deb http://httpredir.debian.org/debian jessie-backports main contrib non-free

kaydedildi, apt-get update ve son olarak:

apt-get install -t jessie-backports nvidia-cuda-toolkit


1

Debian 9 ile daha eski bir GPU (GT 720) ile "uzat" için ilave adımlar gerekir. Yukarıdaki birinin (@celavek) buna sahip olduğunu görüyorum, bu yüzden benim için çalışanı dolduracağım. Kabul edilen cevap, ihtiyaç duyulan hemen hemen her şeyi kapsar. Bunun farkına varmak oldukça hoş bir örnek, ancak umarım burada birkaç Google araması yapan kişiyi kurtaracak bazı yararlı şeyler olabilir.

1. adımda CUDA 8.0 için "Eski Sürümler" e tıklayın ve "CUDA Toolkit 8.0 GA 2" yi seçin. Ardından Linux, x86_64, Ubuntu, 16.04, runfile (yerel).

Paketlenmiş sürücüyü kabul etmedim ve bunun yerine daha önce yüklediğim 384.130 sürücülerini GPU'm için kullandım. Bu konuda daha fazla bilgi: Debian Wiki . Kilometreniz değişebilir, GT 720 dışındaki kartlar için konuşamam. Seçtiğim yol buydu, pişman değilim (henüz).

Yükleme işlemi, 12. adımdaki yerel InstallUtils.pm dosyasındaki bir yetersizlik nedeniyle başarısız olduğunda cuda_8.0.61_375.26_linux.run dosyasını açmanız ancak --tar mxvf bayrağıyla çalıştırmanız gerekir. Sonra (root olarak) InstallUtils.pm dosyasını / usr / lib / x86_64-linux-gnu / pearl-base dizinine kopyalayın:

./cuda_8.0.61_375.26_linux.run --tar mxvf
sudo cp InstallUtils.pm /usr/lib/x86_64-linux-gnu/perl-base

Şimdi adım 12 komutu başarılı olmalı.

Sizin Debian 9.0, g ++ sürüm 6+ ile gelir, bu işe yaramaz. VectorAdd'in 15. adımda derlenmesi başarısız olacaktır. Bu tanıtım belgesini takip ettim: 5.5.0 sürümünü kurmak için GCC'nin Çoklu Sürümlerini Kurmak. 5.5.0 için bu dosyayı isteyeceksiniz

wget http://mirrors.concertpass.com/gcc/releases/gcc-5.5.0/gcc-5.5.0.tar.xz

ve tarball'ı şu şekilde açın:

tar -xJf gcc-5.5.0.tar.xz

Bunun benim için çalışması için bazı şeyleri güncellemeliydim (kitaplıklar ve 32 bit derleme ekledim):

sudo apt-get install libgmp3-dev libmpfr-dev libmpc-dev
sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install build-essential gcc-multilib rpm libstdc++6:i386 libgcc1:i386 zlib1g:i386 libncurses5:i386

Şimdi derleyiciyi yapılandırabilir, yapabilir ve yükleyebilirsiniz.

--Prefix = / usr / local / gcc / 5.5.0 flag ile yapılandırmayı unutmayın

Şimdi, 15. adımdaki vectorAdd örneğini şununla derleyebilirsiniz:

make HOST_COMPILER=/usr/local/gcc/5.5.0/bin/g++

Veya bu:

export HOST_COMPILER=/usr/local/gcc/5.5.0/bin/g++
make

Makefile dosyasını değiştirmeye gerek yoktur, derleyici geçersiz kılma işlemlerini doğru bir şekilde gerçekleştirir.

Şimdi gerginlikle çalışan bir CUDA 8.0 kurulumuna sahip olmalısınız.


0

Ubuntu için Ağ Yükleyicileri bu sayfadan kullanmayı deneyin:

https://developer.nvidia.com/cuda-downloads#linux

Ubuntu 14. * kurulumcuları yeterince uyumlu olmalıdır.


1
Ubuntu yükleyicisinin işe yaramadığını söylemeliydim - bu durumu yansıtacak şekilde yazıyı güncelledi.
Greg,

@Greg, Cuda'yı Debian'a nasıl kuracağınızı çözdünüz mü?
nullgeppetto

@ nullgeppetto Üstesinden gelemediğim çok fazla uyumluluk sorunu bulduğum için Debian fikrinden vazgeçtim.
Greg

@Greg, hmmm, korktuğum şey buydu .. Peki, * ubuntu ya da başka bir şey için mi gittin? Şahsen, hala gtx 960'ımı bekliyorum, bu yüzden Debian'ı deneyeceğim ... İsterseniz size haber vereceğim.
nullgeppetto

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.