Sunday, April 5, 2015

Configuring CUDA toolkit in my workstations

I have access to two computers with NVidia video card: my notebook with hybrid graphics card (Intel and NVidia GTX 540M) and a desktop with a single GTX 680.

To install all I need to program in CUDA on my desktop was smooth, however the notebook I had some trouble for the two video cards. I will present what I did in this post.

Clear any driver version you have installed

press ctrl+alt+F1, make the login, stop xwindow...

~$ sudo /etc/init.d/mdm stop
~$ sudo apt-get purge xserver-xorg-video-nouveau libdrm-nouveau2 nvidia*
~$ sudo update-initramfs -u -k all
~$ sudo reboot

Installing requirements

press ctrl+alt+F1, make the login, and...

~$ sudo /etc/init.d/mdm stop
~$ sudo apt-get update
~$ sudo apt-get install binutils gcc make g++ build-essential

Get the latest CUDA Toolkit

~$ wget http://developer.download.nvidia.com/compute/cuda/7_0/Prod/local_installers/cuda_7.0.28_linux.run
~$ chmod a+x cuda_7.0.28_linux.run
~$ ./cuda_7.0.28_linux.run --extract=/home/rhubner/inst
~$ cd inst
~/inst$ sudo ./NVIDIA-Linux-x86_64-346.46.run
~/inst$ sudo ./cuda-linux64-rel-7.0.28-19326674.run
~/inst$ sudo ./cuda-samples-linux-7.0.28-19326674.run
~/inst$ sudo reboot

Test CUDA instalation in samples

 ~$ cd /usr/local/cuda/samples/1_Utilities/deviceQuery
/usr/local/cuda/samples/1_Utilities/deviceQuery$ sudo make
/usr/local/cuda/samples/1_Utilities/deviceQuery$ ./deviceQuery

In my poor laptop show this:

./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          7.0 / 7.0
  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 Max Clock rate:                            1344 MHz (1.34 GHz)
  Memory Clock rate:                             900 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:                     No
  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 Domain ID / Bus ID / location ID:   0 / 1 / 0
  Compute Mode:
     < Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >

deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 7.0, CUDA Runtime Version = 7.0, NumDevs = 1, Device0 = GeForce GT 540M
Result = PASS


When nouveau driver is uninstalled, the window borders disappear ... I solved the problem as follows:

~$ sudo aptitude install kde-window-manager
~$ kwin --replace

Ready! My laptop is ready for programming in CUDA.

No comments:

Post a Comment