NVidia CUDA veya OpenCL'in nVidia ayrı kartlı / Intel Integrated Graphics'li bir dizüstü bilgisayarda çalışmasını nasıl sağlayabilirim?


28

Arka plan: Ben bir 3D sanatçısıyım (hobi olarak) ve yakın zamanda Ubuntu 12.04 LTS'i Windows 7 ile çift önyükleme olarak kullanmaya başladım. Yakın zamanda nVidia GeForce GT 540M GPU özellikli 64 bit Toshiba dizüstü bilgisayarımda çalışıyor grafik kartı). Ayrıca, Intel Entegre Grafikleri de var (Ubuntu’nun kullandığından şüpheleniyorum).

Böylece, 3B sahnelerimi Windows'taki resimlere yaptığımda, CPU'mu veya nVidia GPU'mu (daha hızlı) kullanmak arasında seçim yapabilirim. 3B uygulamadan, GPU’yu CUDA veya OpenCL kullanacak şekilde ayarlayabilirim. Ubuntu'da GPU seçeneği yoktur.

Linux ve nVidia Optimus teknolojisi ile ilgili konularda araştırma yaptıktan sonra (çok fazla?), Biraz daha aydınlandım, ama çok daha fazla kafam karıştı.

Pil ömrü benim için bir sorun olmadığından, Optimus teknolojisi hakkında bir şey umrumda değil.

İşte sorum şu: Ubuntu'daki nVidia GPU'mda CUDA kullanan programları (Blender gibi) kullanabilmek için ne yapabilirim? NVidia sürücülerine ihtiyacım olacak mı? (Linux'taki Optimus kurulumlarıyla iyi oynamadıklarını duydum.) Ubuntu'daki GPU'mda OpenCL kullanmanın en azından bir yolu var mı?

Yanıtlar:


27

Sadece biraz deney yaptım ve Eric Appleman'ın Bumblebee'nin CUDA için gerekli olmadığı konusundaki ifadelerini doğrulayabilirim. ( Bumblebee hakkında daha fazlası : Optimus Teknolojisine sahip bir NVIDIA GeForce, Ubuntu tarafından destekleniyor mu? )

Eğer grafik örnekleri OpenGL kullanarak göstermek gerektiğinde Ancak, bunu aksi takdirde ya da ekranda bir şey görmek veya hata alamadım Optimus sistemleri için Bumblebee gibi ihtiyaç şey:

ERROR: Support for necessary OpenGL extensions missing.

Bir CUDA programını çalıştırırken, CUDA araç setini ve bir nvidia sürücüsü kurmanız gerekir. Programları derlemeyi düşünüyorsanız, ayrıca SDK'ya da ihtiyacınız vardır. Yükleyiciler http://developer.nvidia.com/cuda-downloads adresinde bulunabilir , lütfen Optimus dizüstü bilgisayarınızı kullanmadan önce aşağıdaki talimatları okuyun.

CUDA'yı yükleme

sürücü

Nvidia sürücüsünü Ubuntu'nun paket yöneticisinden kurmanızı tavsiye ederim. Bumblebee'yi yüklerseniz, sürücü hakkında endişelenmenize gerek yoktur. Aksi takdirde, kurulumdan sonra , nvidia kitaplıklarını https://askubuntu.com/a/107746/6969 adresinde anlatıldığı gibi devre dışı bırakın . Bunu yapmazsanız, 3D ivmesini kaybedersiniz ve düşük çözünürlükte sıkışırsınız.

Toolkit

Temel olarak yükleyiciyi indirmeniz, çalıştırılabilir hale getirmeniz ve çalıştırmanız gerekir. - Yükleyiciyi indirin. Bu yazı itibariyle 4.2.9 en son sürücüdür. 64 bit işletim sistemine sahip olduğum için, 64 bit 11.04 Ubuntu paketini kullanıyorum (12.04 çalıştırıyorum) - Çalıştırılabilir olmasını sağlayın ve kuruluma izin verin /usr/local/cuda:

chmod +x cudatoolkit_4.2.9_linux_64_ubuntu11.04.run
sudo ./cudatoolkit_4.2.9_linux_64_ubuntu11.04.run

CUDA'yı nereye yükleyeceğinizi soran yükleme mesajı oluştuğunda, varsayılanı kabul etmek için Enter tuşuna basın /usr/local/cuda:

......................................
Enter install path (default /usr/local/cuda, '/cuda' will be appended):

Yüklemeden sonra, cuda kütüphane dizinini kütüphane arama yolunuza koymanızı öneren bazı mesajları yazdıracaktır:

========================================

* Please make sure your PATH includes /tmp/cuda/cuda/bin
* Please make sure your LD_LIBRARY_PATH
*   for 32-bit Linux distributions includes /tmp/cuda/cuda/lib
*   for 64-bit Linux distributions includes /tmp/cuda/cuda/lib64:/tmp/cuda/cuda/lib
* OR
*   for 32-bit Linux distributions add /tmp/cuda/cuda/lib
*   for 64-bit Linux distributions add /tmp/cuda/cuda/lib64 and /tmp/cuda/cuda/lib
* to /etc/ld.so.conf and run ldconfig as root

* Please read the release notes in /tmp/cuda/cuda/doc/

* To uninstall CUDA, remove the CUDA files in /tmp/cuda/cuda
* Installation Complete

İsterseniz bu adımı atlayabilirsiniz, ancak daha LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda/lib:$LD_LIBRARY_PATHsonra bir programı çalıştırırken ayar yapmanız gerekir .

SDK

CUDA uygulamalarını derlemek istiyorsanız, SDK'yı yukarıda açıklandığı şekilde takabilirsiniz. İndirin, çalıştırılabilir hale getirin ve çalıştırın (root olarak değil, örneğin sudo!). Bir kısmını derlerken, NVIDIA_GPU_Computing_SDK/C/common/common.mkolsa bazı değişiklikler yapmak zorunda kaldım :

  • yaklaşık 189 satırından sonra OPENGLLIB := -lGL -lGLU -lX11 -lXi -lXmuekle:

    OPENGLLIB += -L/usr/lib/nvidia-current -L/usr/lib32/nvidia-current
    
  • yaklaşık hattı 271, takası sonrasında ${RENDERCHECKGLLIB}birlikte ${OPENGLLIB}benzediğini şekilde:

    LIB += $(RENDERCHECKGLLIB) ${OPENGLLIB} $(PARAMGLLIB) ${LIB} -ldl -rdynamic
    
  • birkaç (5) satır daha yapın, aynısını yapın, ancak kaldırın -lcuda.
  • birkaç (7) satır daha, aynı satır 271’de yaptığınız gibi yapın.

CUDA'yı kullanma

CUDA'nın çalışması için nvidia odaklı bir X sunucusuna ihtiyacı yok. Bu durumda rastgele test programınızı aşağıdaki gibi çalıştırabilirsiniz:

LD_LIBRARY_PATH = / usr / lib / nvidia akımı: / usr / lib32 / nvidia akımı: $ LD_LIBRARY_PATH someComputallyIntensiveProgram

CUDA'yı kütüphane yolunuza eklemediyseniz, şunlara ihtiyacınız olacaktır:

LD_LIBRARY_PATH = / usr / lib / nvidia akımı: / usr / lib32 / nvidia akımı: / usr / yerel / cuda / lib64: / usr / yerel / cuda / lib: $ LD_LIBRARY_PATH someComputallyIntensiveProgram

(programınız 64-bit ise, 32-bit yollarını buradan kaldırabilirsiniz).

CUDA programında OpenGL kullanarak görüntülenecek bir şey varsa, optirun kullanmanız gerekir:

 optirun blender

Veya, varsayılan yolunuza CUDA eklememişseniz:

LD_LIBRARY_PATH = / usr / yerel / cuda / lib64: / usr / yerel / cuda / lib: $ LD_LIBRARY_PATH optirun blender


Teşekkürler, size ödülü vereceğim (ancak Topluluk Wiki cevabımı kabul edeceğim).
Peter Cassetta

Ayrıca, 100 temsilci ve bir oylama, Bumblebee Projesi'ndeki çalışmalarınız için ne kadar minnettar olduğumu tam olarak ifade etmiyor. Siz ve meslektaşlarınız onu olduğu gibi mükemmel bir yazılım parçası haline getirdiniz. Çok teşekkür ederim :)
Peter Cassetta

2
Bir şey değil, şimdi o zaman bize PRIME şeklinde son bir çözümle güncellenmiş bir xorg + mesa (veya Wayland?) Yığını ile
ödüllendiririm

1
PRIME , Xorg size grafik göstermekten sorumlu ekran sunucusudur, Mesa OpenGL içindir, Wayland , Xorg'un olası bir halefidir.
Lekensteyn

1
CUDA'nın asgari bir NVIDIA sürücüsü gerektirdiği belirtilmelidir. Örneğin, CUDA 6.5 en az NVIDIA 340.21'e ihtiyaç duyuyor.
Yamaneko

15

İşte tam cevap ( Alex Falappa ve Lekensteyn'in cevaplarına dayanarak ):

NVidia Optimus GPU'ların Ubuntu'da CUDA'yı çalıştırmasını sağlamak gerçekten mümkün.

CUDA için yaban arısı gerekli değildir. ( Bumblebee hakkında daha fazlası : Optimus Teknolojisine sahip bir NVIDIA GeForce, Ubuntu tarafından destekleniyor mu? )

Eğer grafik örnekleri OpenGL kullanarak göstermek gerektiğinde Ancak, bunu aksi takdirde ya da ekranda bir şey görmek veya hata alamadım Optimus sistemleri için Bumblebee gibi ihtiyaç şey:

ERROR: Support for necessary OpenGL extensions missing. 

Blender gibi yoğun grafikli bir program kullanmanız gerekiyorsa, Bumblebee şu an gitmek için iyi bir yoldur.

Geç CUDA'yı takma sen Bumblebee'yi yüklemek istemiyorsanız (eğer OpenGL gerekmiyorsa yani).
Aksi takdirde, okumaya devam edin.

Bumblebee'nin Kurulumu

Talimatları uygulayın de Nvidia Optimus çalışmaları ile dizüstü yapmak nasıl?

Bunlar şu anda bir Bumblebee geliştiricisi tarafından güncel tutulmaktadır.

Bumblebee'yi yükledikten ve yeniden başlattıktan sonra, optirunprogramı kullanarak programları başlatırken kullanılacak grafik kartını seçebileceksiniz .
Örneğin:

optirun blender

Her şeyin doğru çalışıp çalışmadığını hızlı bir şekilde test etmek için şunları kullanın:

optirun glxspheres

Hepsi düzgün çalışıyorsa, renkli küreler içeren bir program göreceksiniz.

Terminaldeki GL satıcısı dizesinin nvidia kelimesini içerdiğini doğrulayın .
Yalnızca çalıştırırsanız glxspheres, satıcı dizesinde bunun yerine Intel kartı içerdiğini göreceksiniz.

Bir CUDA programını çalıştırırken, CUDA araç setini ve bir nvidia sürücüsü kurmanız gerekir. Programları derlemeyi düşünüyorsanız, ayrıca SDK'ya da ihtiyacınız vardır. Yükleyiciler http://developer.nvidia.com/cuda-downloads adresinde bulunabilir , lütfen Optimus dizüstü bilgisayarınızı kullanmadan önce aşağıdaki talimatları okuyun.

CUDA'yı yükleme

sürücü

Nvidia sürücüsünü Ubuntu'nun paket yöneticisinden kurmanızı tavsiye ederim. Bumblebee'yi yüklerseniz, sürücü hakkında endişelenmenize gerek yoktur. Aksi takdirde, kurulumdan sonra , nvidia kitaplıklarını https://askubuntu.com/a/107746/6969 adresinde açıklandığı şekilde devre dışı bırakın. . Bunu yapmazsanız, 3D ivmesini kaybedersiniz ve düşük çözünürlükte sıkışırsınız.

Toolkit

Temel olarak yükleyiciyi indirmeniz, çalıştırılabilir hale getirmeniz ve çalıştırmanız gerekir. - Yükleyiciyi indirin. 9 Ocak 2013 itibariyle, 5.0.35 en yeni sürücüdür. 64 bit işletim sistemim olduğu için 64 bit 11.10 Ubuntu paketini kullanıyorum (çalıştırmaya rağmen 12.10) - Çalıştırılabilir olmasını sağlayın ve kuruluma izin verin /usr/local/cuda:

chmod +x cudatoolkit_5.0.35_linux_64_ubuntu11.10-1.run
sudo ./cudatoolkit_5.0.35_linux_64_ubuntu11.10-1.run

CUDA'yı nereye yükleyeceğinizi soran yükleme mesajı oluştuğunda, varsayılanı kabul etmek için Enter tuşuna basın /usr/local/cuda:

......................................
Enter install path (default /usr/local/cuda, '/cuda' will be appended):

Yüklemeden sonra, cuda kütüphane dizinini kütüphane arama yolunuza koymanızı öneren bazı mesajları yazdıracaktır:

========================================

* Please make sure your PATH includes /tmp/cuda/cuda/bin
* Please make sure your LD_LIBRARY_PATH
*   for 32-bit Linux distributions includes /tmp/cuda/cuda/lib
*   for 64-bit Linux distributions includes /tmp/cuda/cuda/lib64:/tmp/cuda/cuda/lib
* OR
*   for 32-bit Linux distributions add /tmp/cuda/cuda/lib
*   for 64-bit Linux distributions add /tmp/cuda/cuda/lib64 and /tmp/cuda/cuda/lib
* to /etc/ld.so.conf and run ldconfig as root

* Please read the release notes in /tmp/cuda/cuda/doc/

* To uninstall CUDA, remove the CUDA files in /tmp/cuda/cuda
* Installation Complete

İsterseniz bu adımı atlayabilirsiniz, ancak daha LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda/lib:$LD_LIBRARY_PATHsonra bir programı çalıştırırken ayarlamanız gerekir .

SDK

CUDA uygulamalarını derlemek istiyorsanız, SDK'yı yukarıda açıklandığı şekilde takabilirsiniz. İndirin, çalıştırılabilir hale getirin ve çalıştırın (root olarak değil, örneğin sudo!).

CUDA'yı kullanma

CUDA'nın çalışması için nvidia odaklı bir X sunucusuna ihtiyacı yok. Bu durumda rastgele test programınızı aşağıdaki gibi çalıştırabilirsiniz:

LD_LIBRARY_PATH = / usr / lib / nvidia akımı: / usr / lib32 / nvidia akımı: $ LD_LIBRARY_PATH someComputallyIntensiveProgram

CUDA'yı kütüphane yolunuza eklemediyseniz, şunlara ihtiyacınız olacaktır:

LD_LIBRARY_PATH = / usr / lib / nvidia akımı: / usr / lib32 / nvidia akımı: / usr / yerel / cuda / lib64: / usr / yerel / cuda / lib: $ LD_LIBRARY_PATH someComputallyIntensiveProgram

(programınız 64-bit ise, 32-bit yollarını buradan kaldırabilirsiniz).

CUDA programında OpenGL kullanarak görüntülenecek bir şey varsa, optirun kullanmanız gerekir:

 optirun blender

Veya, varsayılan yolunuza CUDA eklememişseniz:

LD_LIBRARY_PATH = / usr / yerel / cuda / lib64: / usr / yerel / cuda / lib: $ LD_LIBRARY_PATH optirun blender

Blender Yapı Kurulumu

(Önceden derlenmiş CUDA Çekirdekleriyle)

Çalıştırdığınızda optirun blender, Blender'dan CUDA çekirdek derlemesinin başarısız olduğunu belirten bir mesaj ve terminalde aşağıdakine benzer bir mesaj alabilirsiniz:

Compiling CUDA kernel ...
nvcc warning : Option '--opencc-options (-Xopencc)' is obsolete and ignored, when
targeting compute_20, sm_20, or higher
gcc: error trying to exec 'cc1plus': execvp: No such file or directory
CUDA kernel compilation failed, see console for details.

Blender'ın GPU görüntü oluşturma özelliğini kullanmak istiyorsanız, önceden derlenmiş CUDA çekirdeklerine sahip bir Blender yapısına ihtiyacınız olabilir. Dan oluşturur blender.org tüm CUDA çekirdekleri önceden derledik; ppa: cheleb / blender-svn oluşturur ( bu soruda daha fazla bilgi ).

Resmi bir Blender yapımı kurmak için, bu cevapta verilen talimatları takip etmeniz yeterlidir .

Blender'ı yüklediyseniz, Blender'ı /usr/lib/blenderterminalden çalıştırabilmeli ve GPU görüntülemeyi aşağıdakilerle kullanabilmelisiniz:

 optirun '/usr/lib/blender/blender'

Bumblebee'nin (yabanarısı / istikrarlı PPA'dan yüklenen) son sürümlerinin usermodkomuta ihtiyacı yoktur . Askubuntu.com/a/36936/6969 adresindeki kurulum talimatlarını güncel tutacağım , bu yüzden bu kurulum talimatlarını kopyalamak yerine lütfen bu gönderiye bağlanın .
Lekensteyn

@ Lekensteyn Tamam, bitti!
Peter Cassetta

2

Linux altında hibrit grafikler (genellikle Intel tümleşik grafikler ve Nvidia ayrık grafikler) desteği şu anda biraz zahmetli. X sunucu alanında bir şeyler yavaşça ilerliyor ancak nefesini tutmayın.

Tahmin ettiğiniz gibi, Bumblebee şu anda gitmek için iyi bir yoldur.

Geçenlerde Intel / Nvidia grafikli bir Asus N55 dizüstü bilgisayar satın aldım ve Blender Cycles işleyicisini CUDA kullanabildim.

Ubuntu 12.04'ü kurduğumda, varsayılan olarak intel grafik sürücüsünden tümleşik grafikleri kullandı. Noveau grafik sürücüsü kurulmamalı.

Sonra bir terminal açtım ve yaptım:

sudo add-apt-repository ppa:bumblebee/stable
sudo apt-get update
sudo apt-get install bumblebee bumblebee-nvidia

Bundan sonra yaptım (kurulum talimatlarında önerildiği şekilde):

sudo usermod -a -G bumblebee $USER

Sonra yeniden başlattım.

Programları başlatırken kullanılacak sürücüyü seçmek için optirun programını kullanın, örneğin:

optirun blender

Tüm çalışmaların doğru kullanılıp kullanılmadığını test etmek için:

optirun glxspheres

Ve GL satıcısı dizesinin Nvidia kelimesini içerdiğini doğrulayın. Eğer koşarsanız:

glxspheres

Satıcı dizesi Intel kelimesini içermelidir


Bumblebee'yi kurmadan önce nVidia sürücülerini kurmam gerekir mi? Sanırım cevabını nasıl söylediğine bağlı olarak değil. Ayrıca, birinin Ubuntu'daki CUDA'yı Optimus kartıyla kullanabildiğini görmek güzel! 15 tekrar alır almaz bunu oylayacağım. :)
Peter Cassetta

Tamam, Bumblebee'yi kurdum. Kullandım optirunve Blender'ın nVidia GPU'umu 3D görünüm portunu oluşturmak için kullandığını doğrulayabilirim. Ancak, Blender Kullanıcı Tercihleri'ndeki açılır menüde "GPU" seçeneği yoktur. Sadece "CPU" listeler. Bu ekran görüntüsüne bakınız . CUDA'yı kullanmak için ek sürücüler yüklemem gerekecek mi?
Peter Cassetta

1

Tüm CUDA örneklerini çalıştırmak için Bumblebee kullanarak, buradan 295.40 sürücülerini yüklemelisiniz ve kurulum sırasında geçersiz kılmamayı tercih edin config x11.

Sonra örnekleri derlemek ve programı çalıştırmak için aynı sürücüyü kullanmanız gerekir.

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.