Puis-je utiliser le GPU pour les calculs?

104

Est-il possible d'utiliser le GPU pour les calculs? (par exemple CUDA / OpenCL)

Alex L
la source

Réponses:

67

À partir de 2012, votre meilleur choix était d'implémenter votre calcul en tant que fragment shader dans GLSL ES et de trouver un moyen de représenter la sortie sous forme de texture RGBA (32 bits).

Eben a déclaré dans son discours de 2012 qu'OpenCL ne serait probablement pas implémenté, mais qu'il pourrait y avoir une API développée dans le futur; la réponse commence à 21h20 , et Eben dit "nous pouvons fournir aux gens un moyen d'obtenir certains de ces calculs à des fins générales".

Des développements récents, tels que le projet VC4CL, ont tenté d'implémenter OpenCL sur le GPU VideoCore IV utilisé par le Raspberry Pi. D'autres projets associés permettent désormais d'accéder à une partie de la puissance de calcul générale du GPU.

finnw
la source
6
Pour autant que je sache, cette conversation est la réponse la plus définitive à ce jour ... la réponse commence à 21h20, et Eben a déclaré: "nous pouvons fournir un moyen aux gens de se familiariser avec ce calcul à des fins générales"
jeudi
5
Une partie du code GPU a été ouverte! github.com/raspberrypi/userland
John La Rooy
Cela équivaut à implémenter OpenCL, dans la mesure où quelqu'un peut simplement ajouter un backend VideoCore OpenCL à LLVM pour compiler OpenCL en VC.
Maxthon Chan
2
La situation a changé en 2014 avec la publication officielle de la documentation et divers articles sur GPGPU sur le blog officiel.
Flakeshake
29

Pas à l'heure actuelle - il n'y a qu'une interface de tampon de mémoire pour l'affichage. Il n'y a pas d'OpenCL et aucun plan pour cela ni de documentation disponible pour créer OpenCL. CUDA est Nvida seulement, donc non applicable. Une fois qu'un pilote OpenGL sera disponible, vous pourrez peut-être concevoir des calculs via le GPU, mais leur utilité reste à déterminer.

Découvrez ce fil de discussion détaillé sur le forum RPi: API de traitement GPU

Nick McCloud
la source
11

Celle-ci peut être utile. Bibliothèque GPGPU python pour le framboise pi. https://github.com/nineties/py-videocore

Un GPU à usage général (GPGPU) est une unité de traitement graphique (GPU) qui effectue des calculs non spécialisés qui seraient généralement effectués par la CPU.

Raspi-Ninja
la source
9

Vous pouvez écrire des programmes de haut niveau qui fonctionnent sur le GPU du Pi en utilisant QPULib:

https://github.com/mn416/QPULib

C'est un langage de programmation et un compilateur ciblant les 12 processeurs vectoriels (QPU) du GPU du Pi. Il se veut simple d'utilisation et implémenté en tant que langage EDSL (Embedded Domain Specific Language), une alternative légère à un backend OpenCL complet.

utilisateur46562
la source
7

La fondation Raspberry Pi a été cautionne GPGPU sur le Pi depuis 2014, peu de temps après Broadcom a publié la documentation pour les unités Qpu à l' intérieur du GPU.

Simon J. Hall a créé un compilateur OpenCL expérimental (le gagnant du concours très lié 2014 de 10 000 $ visant à faire fonctionner Quake de manière acceptable sans utiliser le BLU du GPU): voir ici .

flocons
la source