English version of this post.
Éste tutorial explica como instalar CUDA 7.0 Production Release en un sistema Debian Wheezy, lo primero que debemos hacer es descargar el driver de gráficos desde el sitio de Nvidia y seleccionar el modelo de la tarjeta de video con la que contemos, en mi caso, tengo un servidor con 2 tarjetas de video Nvidia, la primera es una Geoforce GTX660 y la segunda es una Geoforce GTX650, si no estás seguro de la versión de los drivers que deberías instalar, puedes checar esta información en el siguiente enlace.
http://www.nvidia.com.mx/Download/index.aspx?lang=en-us
El driver requerido que soporta la versión nueva de CUDA 7.0 es 386 o más arriba, asegurate de bajar la última versión para tu tarjeta de video
También, necesitamos descargar el toolkit de Cuda 7.0 del siguiente enlace.
https://developer.nvidia.com/cuda-toolkit
La versión del toolkit que necesitamos descargar es para el archivo RUN de Linux de 64bit
para la última versión de ubuntu, el archivo se llama: cuda_7.0.28_linux.run.
http://developer.download.nvidia.com/compute/cuda/7_0/Prod/local_installers/cuda_7.0.28_linux.run
Ahora necesitamos verificar que tenemos un procesador que soporta GPUs mediante el siguiente comando
cuda7_install.sh
# verify we have a cuda capable gpu lspci | grep -i nvidia
En mi caso el resultado del comando es algo como esto
cuda7_install.sh
# lscpi output 03:00.0 VGA compatible controller: NVIDIA Corporation Device 11c0 (rev a1) 03:00.1 Audio device: NVIDIA Corporation Device 0e0b (rev a1) 04:00.0 VGA compatible controller: NVIDIA Corporation Device 0fc6 (rev a1) 04:00.1 Audio device: NVIDIA Corporation Device 0e1b (rev a1)
Si no obtienes ningún resultado entonces deberías verificar que tu hardware esté correctamente instalado, ahora procedemos a verificar nuestra versión de linux por medio de los siguientes comandos
cuda7_install.sh
# Linux version uname -m && cat /etc/*release
Para este post, estoy utilizando Debian Wheezy por lo que deberías ver algo como lo siguiente
cuda7_install.sh
# version output x86_64 PRETTY_NAME="Debian GNU/Linux 7 (wheezy)" NAME="Debian GNU/Linux" VERSION_ID="7" VERSION="7 (wheezy)" ID=debian ANSI_COLOR="1;31" HOME_URL="http://www.debian.org/" SUPPORT_URL="http://www.debian.org/support/" BUG_REPORT_URL="http://bugs.debian.org/"
Ahora necesitamos verificar que tenemos un compilador GCC válido, ésto es requerido para poder instalar el driver de Nvidia, lo checamos mediante el siguiente comando
cuda7_install.sh
# verify gcc version gcc --version
Y deberías ver un resultado como el siguiente
cuda7_install.sh
# gcc output gcc (Debian 4.7.2-5) 4.7.2 Copyright (C) 2012 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Si no tienes un compilador GCC válido, instala uno por medio del siguiente comando
cuda7_install.sh
# gcc install sudo apt-get install build-essential
Antes de proceder con el proceso de instalacion, necesitamos desinstalar cualquier versión de CUDA que pudiera estar instalada, si ésta es la primera vez que instalas CUDA entonces ignora este paso, para desinstalar versiones anteriores de CUDA utiliza el siguiente comando
cuda7_install.sh
# cuda uninstall sudo /usr/local/cuda-X.Y/bin/uninstall_cuda_X.Y.pl
Donde X y Y es la versión de CUDA
Si estamos actualizando la versión del driver de CUDA no tenemos que hacer nada ya que el instalador del driver remueve versiones antiguas
Si queremos desinstalar el driver de CUDA utiliza el siguiente comando
cuda7_install.sh
# cuda driver uninstall sudo /usr/bin/nvidia-uninstall
Una vez completados los paso antes mencionados y teniendo disponible los archivos para la instalación, procedemos a deshabilitar el driver nouveau que es el driver default para debian, hacemos eso mediante la creación del siguiente archivo:
cuda7_install.sh
# edit debian driver configuration file vim /etc/modprobe.d/disable-nouveau.conf
Y agregando el siguiente contenido
cuda7_install.sh
# blacklist defualt driver blacklist nouveau options nouveau modeset=0
Nota: para verificar que tenemos el driver nouveau corriendo, solo ejecuta el siguiente comando, si imprime algo entonces significa que tenemos corriendo el driver nouveau
cuda7_install.sh
# verify noveau lsmod | grep nouveau
Después de crear el archivo para bloquear el driver nouveau, procedemos a reinicar la máquina en modo default,
Una vez reiniciado vamos a notar como la resolución del sistema pasó a un nivel inferior y eso significa que el driver defaul nouveau no fue cargado, ahora necesitamos instalar los archivos header para nuestro sistema de nuestro repositorio para poder compilar el driver de Nvidia, hacemos esto mediante los siguientes comandos
cuda7_install.sh
# dependencies sudo apt-get install linux-headers-$(uname -r)
Después de instalar estos archivos procedemos a remover el driver nouveau completamente de nuestro sistema por medio del siguiente comando
cuda7_install.sh
# remove the nouveau driver completly apt-get remove --purge xserver-xorg-video-nouveau
Después de remover el driver necesitamos reiniciar el sistema en modo recovery, una vez reiniciado en modo recovery procedemos con la instalación del driver, primero necesitamos saber cual versión de compilador se usó para compilar el kernel, si no sabemos la versión podemos saberlo con el siguiente comando
cuda7_install.sh
# find curr gcc version cat /proc/version
Y obtendremos algo como lo suguiente
cuda7_install.sh
# version output Linux version 3.2.0-4-amd64 (debian-kernel@lists.debian.org) (gcc version 4.6.3 (Debian 4.6.3-14) ) #1 SMP Debian 3.2.54-2
Una vez que sabemos la versión correcta del compilador, necesitamos setearla con un comando export como se muestra a continuación
cuda7_install.sh
# set gcc version export CC=gcc-4.6
Ahora podemos proceder con la instalación del driver, navegamos a nuestro directorio de descarga y ejecutamos el archivo del driver
cuda7_install.sh
# execute driver install sudo sh NVIDIA-Linux-x86_64-346.47.run
Una vez que la instalación esté terminada, procedemos a reiniciar la máquina y notaremos como nuestros drivers de nvidia están instalados debido a que la resolución ha subido de nivel, ahora procedemos con la instalación del toolkit de la siguiente manera.
cuda7_install.sh
# execute toolkit install sudo sh cuda_7.0.28_linux.run
Cuando se nos pida, elegimos NO instalar el driver NVidia ya que éste ha sido instalado satisfactoriamente, y elegimos una ruta de instalación para los ejemplos de código
La última cosa a hacer es compilar los ejemplos de código y correrlos, para hacer esto navegamos al directorio de los ejemplos de código y simplemente ejecutamos make
¡Y eso es todo!
Aquí hay algunos links relacionados con CUDA 7.0
The CUDA getting started manual which covers in deep installation instructions
http://developer.download.nvidia.com/compute/cuda/7_0/Prod/doc/CUDA_Getting_Started_Linux.pdf
Página de descargas de CUDA
https://developer.nvidia.com/cuda-downloads
The Nvidia Driver downloads page
http://www.nvidia.com.mx/Download/index.aspx?lang=en-us
Algunos blog post sobre CUDA 7.0
http://devblogs.nvidia.com/parallelforall/power-cpp11-cuda-7/
http://devblogs.nvidia.com/parallelforall/cuda-7-release-candidate-feature-overview/
¡Saludos! 🙂
-Yohan