Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá, pessoal!
Neste artigo, continuaremos com a série que mostra como programar em CUDA e obter o processamento paralelo de alto desempenho com as mais novas placas de vídeo da nVIDIA.
Abordaremos a instalação do terceiro e último componente necessário para a programação em CUDA: o NVIDIA GPU Computing SDK 4.0. Recomendo a todos que confiram a primeira e a segunda parte desta série de artigos que aborda a motivação para a programação paralela neste ambiente e a instalação do driver da placa nVidia Geoforce 480 GTX.
A instalação do NVIDIA GPU Computing SDK no ambiente descrito para testes nesta série de artigos é realizada pelo arquivo gpucomputingsdk_4.0.17_win_64.exe. Como estamos lidando com um computador com o Windows em 64 bits, é preciso sempre procurar a versão de 64 bits de cada software, incluindo drivers, toolkits e tudo mais. Neste caso, o arquivo possui 466 MB e pode ser obtido diretamente no site do fabricante clicando aqui.
Vale a pena notar que é neste SDK que encontraremos diversos exemplos de programação em CUDA e também a integração com o DirectX, o OpenGL e MPI. Contudo, para a integração com o DirectX, é preciso instalar o DirectX SDK e, para a integração de CUDA com o MPI, é preciso a instalação do Microsoft HPC Pack SDK.
Para o uso de OpenGL, não é necessário a instalação de nenhum pacote adicional, pois a bibliotecas já são instaladas com o GPU Computing SDK. Como esta série de artigos abordará a instalação e a construção básica de programas em CUDA, não abordarei o uso do DirectX e nem de MPI.
O primeiro passo do instalador traz a janela de boas-vindas do assistente.
/applications/core/interface/imageproxy/imageproxy.php?img=http://conteudo.imasters.com.br/21208/37588.png&key=1f365643f4f3c7e1aa25ccb525e425c177128535dfbf9fe779b4f5a5bf57e00e" alt="37588.png" />
Figura 1. Janela de boas-vindas do instalador do NVIDIA GPU Computing SDK.
Em seguida, é preciso aceitar o EULA (End User License Agreement) do NVIDIA GPU Computing SDK. Mais uma vez, este SDK não está mais em beta, como é o caso do driver da placa.
/applications/core/interface/imageproxy/imageproxy.php?img=http://conteudo.imasters.com.br/21208/37589.png&key=e9df1f8360d7e49d524e0365201ef7edf2d11ce7360efdc05f2d51b9adf69321" alt="37589.png" />
Figura 2. Tela de EULA do CUDA Toolkit 4.0
A próxima tela permitirá a inscrição no programa de desenvolvimento da nVIDIA chamado NVIDIA Developer Tools de forma idêntica à que foi vista na instalação do NVIDA CUDA Toolkit. A filiação deste programa é opcional, porém para quem vai trabalhar com esta tecnologia é uma boa idéia fazer a inscrição neste programa, principalmente porque a NVIDIA envia diversos e-mails informando sobre novos produtos e atualizações das ferramentas.
A figura abaixo mostra como se inscrever no programa (é preciso escolher a primeira opção do checkbox para concretizar a inscrição).
/applications/core/interface/imageproxy/imageproxy.php?img=http://conteudo.imasters.com.br/21208/37590.png&key=e596ee84541080e62bc88050eb5f28360b634cb06a100022a54482d6ebdc2d60" alt="37590.png" />
Figura 3. Tela de inscrição no programa de desenvolvedores da NVIDIA.
A próxima tela do instalador perguntará qual é o usuário cuja pasta será utilizada para a cópia dos arquivos. Neste exemplo, utilizei a opção Current User que fez referência ao usuário Mauro do Windows.
/applications/core/interface/imageproxy/imageproxy.php?img=http://conteudo.imasters.com.br/21208/37591.png&key=05e05d657ce62ee56852e51fd3977b2b977294cdd9be4b770155b37aaf639a19" alt="37591.png" />
Figura 4. Janela que permite escolher sob as configurações de qual usuário o pacote será instalado.
A próxima tela do instalador permitirá escolher qual a pasta (caminho) será utilizada para a instalação dos arquivos. A pasta sugerida é determinada pelo usuário escolhido na janela anterior. É importante lembrar qual é esta pasta, pois toda a documentação, bibliotecas, exemplos, projetos e demais arquivos deste pacote vão ser instalados sob esta pasta.
Podemos notar que a sugestão foge do padrão, que é instalar os programas na pasta Arquivos de Programas (Program Files) ou equivalente. No exemplo, escolhi o seguinte caminho: C:UsersmauroAppDataLocalNVIDIA CorporationNVIDIA GPU Computing SDK 4.0. A Figura 6 mostra a última tela do instalador antes da cópia e configuração dos arquivos.
/applications/core/interface/imageproxy/imageproxy.php?img=http://conteudo.imasters.com.br/21208/37592.png&key=889da436234eb891df35d9a4f4edbabb9ebe8e95029dc6272302b2a5e576f101" alt="37592.png" />
Figura 5. Tela do instalador que permite a escolha da pasta da instalação.
/applications/core/interface/imageproxy/imageproxy.php?img=http://conteudo.imasters.com.br/21208/37593.png&key=b513d58e1ae4c698aefcf288387de5a2b705fb91c0768dd602a02b1f5f885820" alt="37593.png" />
Figura 6. Tela que indica o início do processo de cópia e configuração dos arquivos.
O processo de cópia e instalação pode demorar um pouco, dependendo da configuração da máquina.
/applications/core/interface/imageproxy/imageproxy.php?img=http://conteudo.imasters.com.br/21208/37594.png&key=deb9250964a9266db6f82e5b4017b3aadbc50fe4a79f4219b81b0e5cbcfbce6c" alt="37594.png" />
Figura 7. Janela do instalador indicando o progresso da instalação.
Por fim, temos a tela que indica se a instalação foi realizada com sucesso. É importante lembrar que a documentação oficial de instalação dos componentes CUDA, o CUDA_C_Getting_Started_Windows.pdf, sugere alguns passos adicionais à instalação que serão apresentados em seguida.
/applications/core/interface/imageproxy/imageproxy.php?img=http://conteudo.imasters.com.br/21208/37595.png&key=73680f5684da198341a12f4dba465ac287d0f1bc1fd39151124752a1cd7f400f" alt="37595.png" />
Figura 8. Término da instalação do NVIDIA GPU Computing SDK 4.0.
Agora, o primeiro passo a ser realizado após a instalação do NVIDIA GPU Computing SDK 4.0 é verificar se houve algum problema nas instalações realizadas. O manual recomenda executar o programa bandwidthTest.exe, que já vem compilado e foi armazenado na seguinte pasta: C:UsersmauroAppDataLocalNVIDIA CorporationNVIDIA GPU Computing SDK 4.0Cbinwin64Release. E também indica que é recomendado testar o compilador da NVIDIA, o nvcc, através da compilação do projeto deste pequeno executável.
Neste caso, o projeto, isto é, o arquivos necessários para abrir o projeto no Visual Studio.NET, estavam localizados em C:UsersmauroAppDataLocalNVIDIA CorporationNVIDIA GPU Computing SDK 4.0CsrcbandwidthTest.
A propósito, quem pretende trabalhar com a CUDA no Visual Studio.NET deve se familiarizar com as diversas opções de projeto que foram configuradas, tais como: caminhos para os arquivos include, bibliotecas, tarefa de compilação customizada e outros.
Quando fui testar o programa bandwidthTeste.exe, percebi que após o término da instalação tive um erro: o programa rodou, mas não conseguiu se conectar à placa (que é tratada como um device na documentação e nos programas). Precisei instalar uma versão mais atualizada do driver e depois disso tudo funcionou corretamente. A Figura 9 mostrará o resultado da execução do programa bandwidthTeste.exe que faz um pequeno diagnóstico do device e mostra alguns dados interessantes a respeito da capacidade de comunicação entre a CPU e a GPU.
/applications/core/interface/imageproxy/imageproxy.php?img=http://conteudo.imasters.com.br/21208/37599.png&key=d66ee8c9ffa61d811aed34c9eb0ae5457f4b7abeaad889550bdf3aa3c63d10af" alt="37599.png" />
Figura 9. Resultado da execução do programa bandwidthTest.exe
Para finalizar, a verificação da instalação o manual recomenda executar um programa que tem uma saída visual chamado particles.exe. No meu ambiente, este programa estava armazenado na mesma pasta do arquivo bandwidth.exe, ou seja, em C:UsersmauroAppDataLocalNVIDIA CorporationNVIDIA GPU Computing SDK 4.0Cbinwin64Release.
Notem que é possível compilar este programa, pois o projeto dele está armazenado em C:UsersmauroAppDataLocalNVIDIA CorporationNVIDIA GPU Computing SDK 4.0Csrcparticles. O que este programa faz é apresentar a manipulação de partículas através da CPU. O resultado é a movimentação de pequenas partículas dentro de um cubo, como pode ser visto na Figura 10, que mostra a incrível quantidade de 26.563,4 fps (vinte e seis mil quinhentos e sessenta e três vírgula quatro frames por segundo) obtidos em uma animação simples de partículas. Esta quantidade de quadros por segundo não é fixa, pois, conforme a animação é executada, ela varia, mais no meu ambiente ficou sempre em torno de 26.000 fps.
/applications/core/interface/imageproxy/imageproxy.php?img=http://conteudo.imasters.com.br/21208/37597.png&key=f71a2572909ff7a8dec4d6b1983c8c05b77c013bfc7b33413c49dca40fcb01f0" alt="37597.png" />
Figura 10. Programa CUDA Particles rodando a 26.563,4 fps
Com isso, terminamos a parte de instalação necessária para o ambiente CUDA. As próximas partes desta série de artigos abordarão como é realizada a programação em C/C++ em CUDA.
Até.
Carregando comentários...