Todo mundo tem esse supercomputador imensamente paralelo em sua área de trabalho na forma de uma GPU de placa gráfica.
- Qual é o "olá mundo" equivalente da comunidade da GPU?
- O que devo fazer, para onde vou, para começar a programar a GPU para os principais fornecedores de GPU?
-Adão
Respostas:
Confira o CUDA da NVidia, IMO, é a plataforma mais fácil de fazer programação de GPU. Há toneladas de materiais legais para ler. http://www.nvidia.com/object/cuda_home.html
Olá mundo seria fazer qualquer tipo de cálculo usando GPU.
Espero que ajude.
fonte
fonte
Acho que os outros responderam sua segunda pergunta. Quanto ao primeiro, o "Olá Mundo" da CUDA, não acho que exista um padrão definido, mas pessoalmente recomendo um somador paralelo (isto é, um programa que soma N números inteiros).
Se você observar o exemplo de "redução" no NVIDIA SDK, a tarefa superficialmente simples poderá ser estendida para demonstrar várias considerações sobre CUDA, como leituras combinadas, conflitos no banco de memória e desenrolamento de loop.
Veja esta apresentação para mais informações:
http://www.gpgpu.org/sc2007/SC07_CUDA_5_Optimization_Harris.pdf
fonte
Dê uma olhada no SDK da ATI Stream Computing . É baseado no BrookGPU desenvolvido em Stanford.
No futuro, todo o trabalho da GPU será padronizado usando o OpenCL . É uma iniciativa patrocinada pela Apple que será neutra em relação aos fornecedores de placas gráficas.
fonte
O OpenCL é um esforço para tornar uma biblioteca multiplataforma capaz de programar código adequado para, entre outras coisas, GPUs. Ele permite escrever o código sem saber em qual GPU ele será executado, facilitando assim o uso de parte do poder da GPU, sem atingir especificamente vários tipos de GPU. Suspeito que não seja tão eficiente quanto o código nativo da GPU (ou tão nativo quanto os fabricantes da GPU permitirão), mas a troca pode valer a pena para alguns aplicativos.
Ele ainda está nos estágios relativamente iniciais (1.1 a partir desta resposta), mas ganhou alguma força no setor - por exemplo, é suportado nativamente no OS X 10.5 e superior.
fonte
CUDA é uma excelente estrutura para começar. Permite escrever kernels GPGPU em C. O compilador produzirá microcódigo GPU a partir do seu código e enviará tudo o que é executado na CPU para o seu compilador comum. É apenas NVIDIA e funciona apenas em placas da série 8 ou melhor. Você pode conferir a zona CUDA para ver o que pode ser feito com ela. Existem algumas demos excelentes no CUDA SDK . A documentação que acompanha o SDK é um bom ponto de partida para escrever código. Ele orientará você a escrever um kernel de multiplicação de matrizes, que é um ótimo lugar para começar.
fonte
Outra maneira fácil de entrar na programação de GPU, sem entrar no CUDA ou no OpenCL, é através do OpenACC .
O OpenACC funciona como o OpenMP, com diretivas do compilador (como
#pragma acc kernels
) para enviar trabalho para a GPU. Por exemplo, se você tem um loop grande (somente os maiores são realmente beneficiados):Edit: infelizmente, apenas o compilador PGI realmente suporta o OpenACC agora, para placas de GPU NVIDIA.
fonte
Experimente GPU ++ e libSh
O link LibSh tem uma boa descrição de como eles vinculam a linguagem de programação às primitivas gráficas (e, obviamente, as próprias primitivas), e o GPU ++ descreve o que é tudo isso, ambos com exemplos de código.
fonte
Se você usa o MATLAB, torna-se bastante simples o uso de GPUs para computação técnica (cálculos matriciais e processamento pesado de matemática / números). Acho útil para o uso de placas GPU fora dos jogos. Cheque o link abaixo:
http://www.mathworks.com/discovery/matlab-gpu.html
fonte