CUDA en openSUSE 11.3


  1. Instalar montón de cosas necesarias
    paris@linux-liye:~> sudo zypper -n in -t pattern devel_C_C++ devel_basis devel_kerne
    paris@linux-liye:~> sudo zypper -n in gcc43 gcc43-32bit gcc43-c++ gcc43-info gcc43-locale
    
  2. Baja el Driver de Nvidia de la página de CUDA yo baje el Developer Drivers for Linux (260.19.26) 64-bit. Para instalarlo es necesario salir del entorno gráfico
    paris@linux-liye:~> sudo /sbin/init 3
    

    Inicia de nuevo sesión en la consola que aparece y ejecuta lo siguiente:

    paris@linux-liye:~> cd Downloads
    paris@linux-liye:~/Downloads> sudo sh devdriver_3.2_linux_64_260.19.26.run
    

    sigue las instrucciones. Cuando termine puedes iniciar el entorno gráfico con:

    paris@linux-liye:~/Downloads> sudo /sbin/init 5
    
  3. Baja el CUDA Toolkit for OpenSUSE 11.2 64-bit de la página de CUDA e instalalao
    paris@linux-liye:~/Downloads> sudo sh cudatoolkit_3.2.16_linux_64_suse11.2.run
    paris@linux-liye:~/Downloads> cd ..
    paris@linux-liye:~> vi .bashrc
    

    y al final del archivo agrega lo siguiente:

    export PATH=/usr/local/cuda/bin:$PATH
    export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
    
    :wq
    

    Cierra la terminal y abrela de nuevo, para confirmar que se instalo bien

    paris@linux-liye:~> nvcc -V
    nvcc: NVIDIA (R) Cuda compiler driver
    Copyright (c) 2005-2010 NVIDIA Corporation
    Built on Wed_Nov__3_16:16:57_PDT_2010
    Cuda compilation tools, release 3.2, V0.2.1221
    
  4. Baja el GPU Computing SDK code samples de la página de CUDA e instalalo
    paris@linux-liye:~> cd Downloads/
    paris@linux-liye:~/Downloads> sh gpucomputingsdk_3.2.16_linux.run
    
  5. Ahora a corregir unos cuantos detalles. Para poder compilar le digo a linux que use gcc 4.3:
    paris@linux-liye:~> sudo /usr/sbin/update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.3 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.3
    paris@linux-liye:~> sudo /usr/sbin/update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.5 40 --slave /usr/bin/g++ g++ /usr/bin/g++-4.5
    paris@linux-liye:~> sudo /usr/sbin/update-alternatives --config gcc
    
    There are 2 alternatives which provide `gcc'.
    
      Selection    Alternative
    -----------------------------------------------
    *+        1    /usr/bin/gcc-4.3
              2    /usr/bin/gcc-4.5
    
    Press enter to keep the default[*], or type selection number: 1
    Using '/usr/bin/gcc-4.3' to provide 'gcc'.
    

    Creo unos links a librerías para que el Makefile de los ejemplos de CUDA los pueda encontrar

    paris@linux-liye:~> sudo ln -s /usr/lib64/libglut.so.3 /usr/lib64/libglut.so
    paris@linux-liye:~> sudo ln -s /usr/lib64/libGLU.so.1 /usr/lib64/libGLU.so
    

    Me fue imposible compilar el ejemplo simpleMPI por falta de la librería mpi.h asi que cambie el nombre de su Makefile para que no se compilara

    paris@linux-liye:~> cd NVIDIA_GPU_Computing_SDK/C/
    paris@linux-liye:~/NVIDIA_GPU_Computing_SDK/C> mv src/simpleMPI/Makefile src/simpleMPI/_Makefile
    
  6. A compilar los ejemplos.
    paris@linux-liye:~/NVIDIA_GPU_Computing_SDK/C> make
    [Y a esperar un ratin, si algo sale mal aquí se debe notar.]
    
  7. La ultima prueba
    paris@linux-liye:~/NVIDIA_GPU_Computing_SDK/C> cd bin/linux/release/
    paris@linux-liye:~/NVIDIA_GPU_Computing_SDK/C/bin/linux/release> ./deviceQuery
    ./deviceQuery Starting...
    
     CUDA Device Query (Runtime API) version (CUDART static linking)
    
    There is 1 device supporting CUDA
    
    Device 0: "GeForce GT 330M"
      CUDA Driver Version:                           3.20
      CUDA Runtime Version:                          3.20
      CUDA Capability Major/Minor version number:    1.2
      Total amount of global memory:                 536543232 bytes
      Multiprocessors x Cores/MP = Cores:            6 (MP) x 8 (Cores/MP) = 48 (Cores)
      Total amount of constant memory:               65536 bytes
      Total amount of shared memory per block:       16384 bytes
      Total number of registers available per block: 16384
      Warp size:                                     32
      Maximum number of threads per block:           512
      Maximum sizes of each dimension of a block:    512 x 512 x 64
      Maximum sizes of each dimension of a grid:     65535 x 65535 x 1
      Maximum memory pitch:                          2147483647 bytes
      Texture alignment:                             256 bytes
      Clock rate:                                    1.10 GHz
      Concurrent copy and execution:                 Yes
      Run time limit on kernels:                     Yes
      Integrated:                                    No
      Support host page-locked memory mapping:       Yes
      Compute mode:                                  Default (multiple host threads can use this device simultaneously)
      Concurrent kernel execution:                   No
      Device has ECC support enabled:                No
      Device is using TCC driver mode:               No
    
    deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 3.20, CUDA Runtime Version = 3.20, NumDevs = 1, Device = GeForce GT 330M
    
    
    PASSED
    
    Press  to Quit...
    -----------------------------------------------------------