John Tortugo

Entradas etiquetadas como ‘Programação’

Desenvolvimendo com CUDA no Ubuntu 8.04

25 25UTC Outubro 25UTC 2008 · 3 Comentários

Olá.

Estou escrevendo este post porquê já a algum tempo estava procurando um bom tutorial de como instalar a biblioteca CUDA no ubuntu 8.04 (Hardy Heron) e por fim encontrei este excelente tutorial: CUDA Development in Ubuntu e o que estarei apresentando aqui para vocês é a minha tradução e interpretação deste artigo que julguei ser de ótima qualidade.

O que está em verde são linhas de comando você pode copia-las e colar (ctrl+shift) em seu terminal que funcionará.

# Parte 1
# Instalando os pacotes básicos de programação no ubuntu
sudo apt-get install build-essential libglut3-dev -y

# Instalando o driver da NVidia
# a partir do site oficial da nvidia (utilizou-se o wget mas você pode baixar diretamente do site)
wget http://developer.download.nvidia.com/compute/cuda/2_0/linux/driver/NVIDIA-Linux-x86-177.67-pkg1.run

# Tornando o arquivo que foi baixado, executável
chmod +x ./NVIDIA-Linux-x86-177.67-pkg1.run

# Este comando irá fechar o seu ambiente gráfico, a instalação do driver requer isso.
sudo /etc/init.d/gdm stop

# Instale o driver; na minha máquina eu fui questionado se desejava baixar uma versão do kernel
# pre-compilada, confirmei que sim porém não baixou e o programa de instalação criou uma versão
# locamente e a utilizou.
sudo ./NVIDIA-Linux-x86-177.67-pkg1.run

# Inicialize novamente a interface gráfica
sudo /etc/init.d/gdm start

# Este passo é para resolver um conflito de drivers; se não o fizermos a máquina entrar em um modo
# gráfico pobre ao ser reiniciada.
sudo gedit /etc/default/linux-restricted-modules-common
# Mude/Adicione (separado por espaço) o texto DISABLED_MODULES(” “) para DISABLED_MODULES(“nv”)

# Parte 2
# Instalando o CUDA Toolkit
wget http://developer.download.nvidia.com/compute/cuda/2_0/linux/toolkit/NVIDIA_CUDA_Toolkit_2.0_ubuntu7.10_x86.run
chmod +x NVIDIA_CUDA_Toolkit_2.0_ubuntu7.10_x86.run
sudo ./NVIDIA_CUDA_Toolkit_2.0_ubuntu7.10_x86.run auto

# Configurando as variáveis de ambiente (digite exatamente o que está abaixo, digite logado no usuário que irá compilar os programas – após esse passo reinicie seu terminal)
echo “# CUDA stuff
PATH=\$PATH:/usr/local/cuda/bin
LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:/usr/local/cuda/lib
export PATH
export LD_LIBRARY_PATH” >> ~/.bashrc

# Parte 3
# Instalando o CUDA SDK (Pressione enter em ambas as perguntas para confirmar o diretório padrão)
wget http://developer.download.nvidia.com/compute/cuda/2_0/linux/sdk/NVIDIA_CUDA_SDK_2.02.0807.1535_linux.run
chmod +x ./NVIDIA_CUDA_SDK_2.02.0807.1535_linux.run
./NVIDIA_CUDA_SDK_2.02.0807.1535_linux.run

# Parte 4
# Compile e execute um exemplo para ficar admirado! ;-)
cd ~/NVIDIA_CUDA_SDK/
make
~/NVIDIA_CUDA_SDK/bin/linux/release/nbody

fluidsGl

nbody

# Parte 5
# Instalar o configurador do driver da NVidia
sudo apt-get install nvidia-settings

# Parte 6
# O Compiz as vezes entra em conflito com o CUDA, para evitar isso desabilite os efeitos visuais
# Sistema -> Preferencias -> Aparencia -> Efeitos Visuais -> Nenhum

# Parte 7
# Alguns exemplos legais
~/NVIDIA_CUDA_SDK/bin/linux/release/nbody
~/NVIDIA_CUDA_SDK/bin/linux/release/particles
~/NVIDIA_CUDA_SDK/bin/linux/release/oceanFFT
~/NVIDIA_CUDA_SDK/bin/linux/release/simpleGL

Se os efeitos parecerem estar dando saltos (algo como lag) pode ser porquê a taxa de quadros por segundo do exemplo não está sincronizada com a do monitor, para corrigir isto habilite a opção “Sync to VBlank”:
Sistema -> Administração -> NVIDIA X Server Settings -> X Screen 0 -> OpenGL Settings -> marque “Sync VBlank”.

# Parte 8
# Comece a programar em CUDA!

Uma forma fácil de criar seu primeiro projeto em CUDA é através do modelo que vem com o SDK. Execute estes comandos para criar um projeto com base no modelo:

cd ~/NVIDIA_CUDA_SDK/projects
cp -r template/ myproject

Crie o projeto dentro da pasta do SDK porquê ele possui dependencias e manter a estrutura de pastas é importante!

Altere o Makefile
cd myproject
gedit Makefile

Mude as linhas:

# Add source files here
EXECUTABLE := template

Para:

# Add source files here
EXECUTABLE := myproject

Para rodar o projeto em modo emulado:
make emu=1
Ou para rodar direto na GPU:
make

Ponha o menino para rodar:
~/NVIDIA_CUDA_SDK/bin/linux/emurelease/myproject
Ou
~/NVIDIA_CUDA_SDK/bin/linux/release/myproject

Bem é isso ae pessoal, aqui na minha máquina funcionou de primeira, qualquer dúvida que tiverem postem ae que talvez eu possa ajudar ou alguém mais experiente possa. Se encontrarem alguma forma mais rápida para instalar me enviem o link que eu colocarei aqui.

Existem alguns sites e tutoriais muito bons na internet que podem ser utilizado como um guia para o aprendizado eis alguns:

http://forums.nvidia.com/
http://www.ddj.com/architect/207200659
http://llpanorama.wordpress.com/2008/06/11/threads-and-blocks-and-grids-oh-my/
http://llpanorama.wordpress.com/2008/05/21/my-first-cuda-program/

Obrigado pela leitura e espero que seja útil!

Categorias: Computação · Notícias
Etiquetado: , , , , ,

Tática de programador

30 30UTC Setembro 30UTC 2008 · 4 Comentários

Nice try..

Categorias: Computação
Etiquetado: , , , , , , ,

Linguagem de Programação Esotérica???

17 17UTC Setembro 17UTC 2008 · 2 Comentários

Não meu amigo não são linguagens para religiosos…. bem na verdade são linguagens para os religiosos da computação rsrss ou pelo menos para nós Geeks de plantão ;-)

São IMHO incríveis!!! com poucos símbolos você pode criar programas, o intuito dessas linguagens é fazer experimentos com compiladores com elas é possível escrever compiladores com apenas alguns K’s de código.

A alguns rounds atrás eu estava participando do Google Code Jam e vi uma notícia na lista de discussão que teve UM participante que tinha resolvido um dos problemas utilizando a linguagem BrainFuck, a qual eu nunca tinha ouvido falar antes, então fui procurar na nossa mãe (wikipedia) e encontrei a relação de diversas linguagens esotéricas, segue abaixo um hello world em brainfuck ;-) e o link para diversas outras; espero que curtam ;-)

++++++++++[>++++++++>+++++++++++
>---------->+++>++++++++>+++++++
+++++>+++++++++++>++++++++++>+++
++++++++>+++<<<<<<<<<<-]>-.>--.>
++++.>++.>---.>---.>.>.>+.>+++.>

Hello world em Linguagens esotéricas

Até a proxima!

Categorias: Computação · Curiosidades
Etiquetado: , , ,