Posso usar a GPU para cálculos?

104

É possível usar a GPU para cálculos? (por exemplo, CUDA / OpenCL)

Alex L
fonte

Respostas:

67

A partir de 2012, sua melhor aposta era implementar sua computação como um shader de fragmento no GLSL ES e encontrar uma maneira de representar a saída como uma textura RGBA (32 bits).

Eben afirmou nesta palestra de 2012 que não é provável que o OpenCL seja implementado, mas que pode haver uma API desenvolvida no futuro; a resposta começa às 21:20 , e Eben diz que "podemos fornecer um meio para que as pessoas consigam calcular esse objetivo geral".

Desenvolvimentos recentes, como o projeto VC4CL , tentaram implementar o OpenCL na GPU VideoCore IV usada pelo Raspberry Pi, e outros projetos relacionados agora fornecem acesso a parte da capacidade geral de computação da GPU.

finnw
fonte
6
AFAIK que a conversa é a resposta mais definitiva até agora ... a resposta começa às 21:20, e Eben diz "nós podemos fornecer alguma maneira para as pessoas para obter algum desse propósito geral calcular out"
je4d
5
Parte do código da GPU foi aberta! github.com/raspberrypi/userland
John La Rooy
É equivalente à implementação do OpenCL, pois alguém pode simplesmente adicionar um back-end do VideoCore OpenCL ao LLVM para compilar o OpenCL ao VC.
Maxthon Chan
2
A situação mudou em 2014 com o lançamento oficial da documentação e vários posts do blog sobre GPGPU no próprio blog oficial.
flakeshake
29

Atualmente, não há apenas uma interface de buffer de quadros para fins de exibição. Não há OpenCL e não há planos para isso, nem documentação disponível para criar o OpenCL. CUDA é apenas Nvida, portanto não é aplicável. Depois que um driver OpenGL estiver disponível, você poderá criar alguns cálculos via GPU, mas a utilidade disso ainda está por ser vista.

Confira este tópico detalhado no fórum RPi: GPU Processing API

Nick McCloud
fonte
11

Essa pode ser útil. Biblioteca python GPGPU para o raspberry pi. https://github.com/nineties/py-videocore

Uma GPU de uso geral (GPGPU) é uma unidade de processamento gráfico (GPU) que executa cálculos não especializados que normalmente seriam realizados pela CPU

raspi-ninja
fonte
9

Você pode escrever programas de alto nível que são executados na GPU do Pi usando o QPULib:

https://github.com/mn416/QPULib

É uma linguagem de programação e compilador visando os 12 processadores vetoriais (QPUs) dentro da GPU do Pi. Seu objetivo é ser fácil de usar e é implementado como um EDSL (Embedded Domain Specific Language) - uma alternativa leve a um back-end OpenCL completo.

user46562
fonte