Dit zorgt dat de nvidia-304 drivers geinstalleerd worden via het nvidia-current package. CUDA5.5 wordt door deze driver niet ondersteund en dus moeten we een recentere driver installeren in de volgende stap.
STAP 5: Installeer de laatste nieuwe nvidia drivers voor Ubuntu 12.04.3 zodat CUDA 5.5 ondersteund wordt
Installeer de recentste ondersteunde drivers voor deze kernel via
Herstart de bumblebee deamon zodat de wijzigingen opgenomen worden
sudo service bumblebeed restart
Op dit moment zou je een werkende bumblebee deamon moeten hebben die doet wat noodzakelijk is. Je kan dit testen via de volgende stappen:
Controleer of bumblebee deamon correct opstart door het process expliciet op te starten met een debugger
sudo bumblebeed --debug
Controleer zeker in de debug output of de driver (nvidia-319-updates) correct geinitialiseerd wordt een je bericht krijgt dat de deamon op messages wacht.
Controleer nu of je software kan opstarten via de NVIDIA GPU (in feite de rendering die gedaan wordt op GPU via de bumblebee pipeline)
optirun -vv firefox
Als alles correct werkt, zal een firefox venster openen. Groot verschil is dat deze visualisatie nu gerenderd wordt door de NVIDIA GPU en niet de onboard Intel GPU.
Ga naar je downloads folder, geef executable rechten aan de NVIDIA *.run file en voer uit
cd ~ cd Downloads/ chmod +x NVIDIA.run sudo ./NVIDIA.run
Ga met spatiebalk door de license agreement en accepteer
Bij de vraag of je de nvidia - driver wil installeren zeg je NO
Bij de vraag of je CUDA toolkit wil installeren kies je YES en gebruik je default locatie voor installatie
Bij de vraag of je de CUDA examples wil installeren kies je YES en gebruik je default locatie voor installatie
Als de installatie ten einde loopt dan ga je terug naar de grafische weergave via
sudo service lightdm start
STAP 8: Test de CUDA installatie via de voorziene samples
Er dienen nog enkele configuraties te gebeuren van de juiste source folders
Eerst configureren we de correcte PATH initializaties bij het opstarten van een terminal. Om dit niet elke keer te moeten doen, voegen we aan het opstartscript ~/.bashrc enkele zaken toe.
sudo apt-get install emacs (gemakkelijke editor om files aan te passen - keuze is hier natuurlijk vrij) cd ~ sudo emacs .bashrc
Voeg onderaan volgende lijnen toe aan de file
# Extra path data for CUDA toolkit functionality export PATH=/usr/local/cuda-5.5/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda-5.5/lib64:/usr/local/cuda-5.5/lib:$LD_LIBRARY_PATH
Installeer nog snel enkele pakketten die nodig zijn voor een goede werking van alle CUDA samples (OpenGL en openMPI)
Ga naar samples folder via een terminal en build de examples
cd ~ cd NVIDIA-samples-folder/ make
Na de complete build zijn alle examples te vinden in de folder ~/NVIDIA-samples-folder/bin/x86_64/linux/release/
Start met het uitvoeren van de deviceQuery app zodanig dat je kan controleren of je CUDA kaart herkend wordt en er eventueel debug info komt rond problemen
sudo optirun ./deviceQuery
Het resultaat zou eruit moeten zien als volgt
./deviceQuery Starting...
CUDA Device Query (Runtime API) version (CUDART static linking)
Detected 1 CUDA Capable device(s)
Device 0: "GeForce GT 540M" CUDA Driver Version / Runtime Version 5.5 / 5.5 CUDA Capability Major/Minor version number: 2.1 Total amount of global memory: 2048 MBytes (2147155968 bytes) ( 2) Multiprocessors, ( 48) CUDA Cores/MP: 96 CUDA Cores GPU Clock rate: 1344 MHz (1.34 GHz) Memory Clock rate: 800 Mhz Memory Bus Width: 128-bit L2 Cache Size: 131072 bytes Maximum Texture Dimension Size (x,y,z) 1D=(65536), 2D=(65536, 65535), 3D=(2048, 2048, 2048) Maximum Layered 1D Texture Size, (num) layers 1D=(16384), 2048 layers Maximum Layered 2D Texture Size, (num) layers 2D=(16384, 16384), 2048 layers Total amount of constant memory: 65536 bytes Total amount of shared memory per block: 49152 bytes Total number of registers available per block: 32768 Warp size: 32 Maximum number of threads per multiprocessor: 1536 Maximum number of threads per block: 1024 Max dimension size of a thread block (x,y,z): (1024, 1024, 64) Max dimension size of a grid size (x,y,z): (65535, 65535, 65535) Maximum memory pitch: 2147483647 bytes Texture alignment: 512 bytes Concurrent copy and kernel execution: Yes with 1 copy engine(s) Run time limit on kernels: Yes Integrated GPU sharing Host Memory: No Support host page-locked memory mapping: Yes Alignment requirement for Surfaces: Yes Device has ECC support: Disabled Device supports Unified Addressing (UVA): Yes Device PCI Bus ID / PCI location ID: 1 / 0 Compute Mode: < Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >
deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 5.5, CUDA Runtime Version = 5.5, NumDevs = 1, Device0 = GeForce GT 540M Result = PASS
Probeer nadien ook wat meer rekenintensieve modules zoals de volumeRender of boxFilter
Je systeem kan nu overweg met CUDA 5.5 en kan visualisaties tunnelen via de bumblebee interface!
Installatie van Ubuntu 12.04.3 LTS op een systeem met een NVIDIA OPTIMUS enabled GPGPU kaart en CUDA 5.5 ondersteuning
STAP 1: Installeer Ubuntu 12.04.3 op uw systeem
STAP 2: Updates installeren en je aptitude updaten
sudo apt-get update
sudo apt-get upgrade
STAP 3: zorgen dat er geen enkele nvidia installatie op je systeem staat
nvidia-uninstall
sudo apt-get remove --purge nvidia*
STAP 4: installeer Bumblebee en de bijhorende Nvidia drivers
sudo apt-get remove linux-headers-generic
sudo add-apt-repository ppa:bumblebee/stable
sudo add-apt-repository ppa:ubuntu-x-swat/x-updates
sudo apt-get update
sudo apt-get install bumblebee bumblebee-nvidia virtualgl linux-headers-generic-lts-raring
sudo reboot
STAP 5: Installeer de laatste nieuwe nvidia drivers voor Ubuntu 12.04.3 zodat CUDA 5.5 ondersteund wordt
sudo apt-get install nvidia-319-updates nvidia-settings-319-updates
sudo reboot
STAP 6: Configureer bumblebee correct, zodanig dat je optirun kan gebruiken
[bumblebeed]
Driver=nvidia
[driver-nvidia]
KernelDriver=nvidia-319-updates
LibraryPath=/usr/lib/nvidia-319-updates:/usr/lib32/nvidia-319-updates
XorgModulePath=/usr/lib/nvidia-319-updates/xorg,/usr/lib/xorg/modules
Section "Device"
Identifier "DiscreteNvidia"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BusID "PCI:01:00:0"
sudo service bumblebeed restart
Op dit moment zou je een werkende bumblebee deamon moeten hebben die doet wat noodzakelijk is. Je kan dit testen via de volgende stappen:
sudo bumblebeed --debug
optirun -vv firefox
STAP 7: Installeer CUDA 5.5
sudo service lightdm stop
cd ~
cd Downloads/
chmod +x NVIDIA.run
sudo ./NVIDIA.run
sudo service lightdm start
STAP 8: Test de CUDA installatie via de voorziene samples
sudo apt-get install emacs (gemakkelijke editor om files aan te passen - keuze is hier natuurlijk vrij)
cd ~
sudo emacs .bashrc
# Extra path data for CUDA toolkit functionality
export PATH=/usr/local/cuda-5.5/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-5.5/lib64:/usr/local/cuda-5.5/lib:$LD_LIBRARY_PATH
sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
sudo apt-get install mpi-default-dev
cd ~
cd NVIDIA-samples-folder/
make
sudo optirun ./deviceQuery
./deviceQuery Starting...
CUDA Device Query (Runtime API) version (CUDART static linking)
Detected 1 CUDA Capable device(s)
Device 0: "GeForce GT 540M"
CUDA Driver Version / Runtime Version 5.5 / 5.5
CUDA Capability Major/Minor version number: 2.1
Total amount of global memory: 2048 MBytes (2147155968 bytes)
( 2) Multiprocessors, ( 48) CUDA Cores/MP: 96 CUDA Cores
GPU Clock rate: 1344 MHz (1.34 GHz)
Memory Clock rate: 800 Mhz
Memory Bus Width: 128-bit
L2 Cache Size: 131072 bytes
Maximum Texture Dimension Size (x,y,z) 1D=(65536), 2D=(65536, 65535), 3D=(2048, 2048, 2048)
Maximum Layered 1D Texture Size, (num) layers 1D=(16384), 2048 layers
Maximum Layered 2D Texture Size, (num) layers 2D=(16384, 16384), 2048 layers
Total amount of constant memory: 65536 bytes
Total amount of shared memory per block: 49152 bytes
Total number of registers available per block: 32768
Warp size: 32
Maximum number of threads per multiprocessor: 1536
Maximum number of threads per block: 1024
Max dimension size of a thread block (x,y,z): (1024, 1024, 64)
Max dimension size of a grid size (x,y,z): (65535, 65535, 65535)
Maximum memory pitch: 2147483647 bytes
Texture alignment: 512 bytes
Concurrent copy and kernel execution: Yes with 1 copy engine(s)
Run time limit on kernels: Yes
Integrated GPU sharing Host Memory: No
Support host page-locked memory mapping: Yes
Alignment requirement for Surfaces: Yes
Device has ECC support: Disabled
Device supports Unified Addressing (UVA): Yes
Device PCI Bus ID / PCI location ID: 1 / 0
Compute Mode:
< Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >
deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 5.5, CUDA Runtime Version = 5.5, NumDevs = 1, Device0 = GeForce GT 540M
Result = PASS
Je systeem kan nu overweg met CUDA 5.5 en kan visualisaties tunnelen via de bumblebee interface!