CUDA e pyCUDA
Autor: Marco Andre Argenta | Publicado: 2012-08-24T14:30:00-07:00

Nesta postagem vou resgatar como instalar o CUDA no Ubuntu 10.04 assim como o pyCUDA, para poder escrever em python e processar cálculos nas GPUs nVidia usando o CUDA.
Antes de mais nada, é necessário que sua placa de vídeo tenha suporte ao CUDA. Uma lista com as placas está disponível em:
http://developer.nvidia.com/cuda/cuda-gpus
Se sua placa estiver na lista, beleza, siga lendo, se não, compre uma!
O primeiro passo é instalar os drivers (de preferência atualizados) da placa. Para isso, siga as instruções dessa postagem:
http://ahmarkinho.blogspot.com.br/2012/02/instalando-drivers-da-placa-de-video.html
* normalmente após alguma atualização no kernel do ubuntu é necessário a reinstalação dos drivers. Na tela de abertura, o mouse não irá funcionar, use o tab para ir até o ok e pressione um enter. Na sequência, reinstale os drivers.
Agora precisamos do Toolkit e do SDK de desenvolvimento do CUDA. Baixe os dois de:
http://developer.nvidia.com/cuda/cuda-downloads
Vá até a pasta onde se encontram os arquivos do Toolkit e do SDK. Primeiro instalaremos o Toolkit. Execute em um terminal:
sudo ./cudatoolkit_4.2.9_linux64_ubuntu10.04.run
*obviamente a versão e o sistema operacionlal podem mudar dependendo do arquivo que você baixou. Baixe o arquivo correspondente a última versão do toolkit e do seu sistema operacional.
Precisamos definir no sistema a onde se encontram os arquivos do CUDA. Para isso, edite o .bashrc. No terminal execute:
gedit /home/USER/.bashrc
*substitua USER pelo seu nome de usuário.
No final do arquivo, insira os seguintes comandos (são três linhas apenas, a primeira inicial com #, a segunda e terceira com export):
#Localização do CUDA
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib:/usr/local/cuda/lib64:$LD_LIBRARY_PATH
Salve e feche o gedit.
Por fim, instalamos o SDK. Execute no terminal (obviamente na pasta do arquivo de instalação do SDK):
sudo ./gpucomputingsdk_4.2.9_linux.run
*a versão pode ser diferente de acordo com a data do download. É recomendável instalar com todas as opções de diretórios padrão.
Na compilação dos exemplos que vem com o SDK é necessário algumas bibliotecas. Execute no terminal:
sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
* a instalação da biblioteca Mesa pode sobrescrever o arquivo de sistema criado pelo driver da placa recém instalado, por isso pode ser necessário reinstalar o driver da placa de vídeo.
Entre no diretório de instalação do SDK. Digite no terminal:
cd /home/USER/NVIDIA_GPU_Computing_SDK/C
*sendo USER o seu nome de usuário.
E execute o make para compilar (certifique-se de ter o gcc instalado). Digite no terminal:
sudo make
Se a compilação for interrompida com o erro "cannot find -lGL" é necessário reinstalar o driver da placa de vídeo.
O resultado da compilação está no diretório /home/USER/NVIDIA_GPU_Computing_SDK/C/bin/linux/release, sendo USER o seu nome de usuário.
Execute o deviceQuery para verificar a instalação. Digite no terminal (obviamente dentro do diretório do resultado da compilação):
./deviceQuery
Se tudo estiver sido instalado corretamente, você receberá, ao final das verificações, o texto PASSED, indicando que está tudo correto e o CUDA está instalado e funcionando.
Agora podemos instalar o wrapper python para o CUDA, o pyCUDA. Antes, recomendo que tenha o python e alguns complementos do python instalado, de acordo com a postagem:
http://ahmarkinho.blogspot.com.br/2012/08/instalacao-e-compilacao-do-python-e.html
Faça o download do código fonte do pyCUDA em:
http://pypi.python.org/pypi/pycuda
Extraia o pacote e vá até o diretório. Utilizando um terminal digite:
python configure.py
python setup.py build
sudo python setup.py install
*o primeiro configura, o segundo compila e o terceiro instala.
A instalação é verificada executando-se alguns dos exemplos que vem junto com o pacote do código fonte. Vá até o diretório examples dentro do diretório onde o pacote foi extraído e execute usando um terminal:
python hello_gpy.py
python demo.py
Se tudo funcionar direitinho, o pyCUDA está instalado e pronto para ser utilizado.