Posso usare la GPU per i calcoli?


Risposte:


67

A partire dal 2012, la soluzione migliore era implementare il calcolo come shader di frammenti in GLSL ES e trovare un modo per rappresentare l'output come texture RGBA (32 bit).

Eben ha dichiarato in questo discorso del 2012 che OpenCL non sarà probabilmente implementato, ma che potrebbe esserci un'API sviluppata in futuro; la risposta inizia alle 21:20 ed Eben dice "potremmo fornire un modo per far calcolare un po 'di quello scopo generale".

Recenti sviluppi come il progetto VC4CL hanno tentato di implementare OpenCL sulla GPU VideoCore IV utilizzata da Raspberry Pi, e altri progetti correlati ora forniscono l'accesso ad alcune delle potenze di calcolo generali della GPU.


6
AFAIK quel discorso è la risposta più definitiva finora ... la risposta inizia alle 21:20, e Eben dice "potremmo fornire un modo per far calcolare un po 'di quello scopo generale"
je4d

5
Parte del codice GPU è stato aperto! github.com/raspberrypi/userland
John La Rooy,

È equivalente all'implementazione di OpenCL, in quanto qualcuno può semplicemente aggiungere un backend VideoCore OpenCL a LLVM per compilare OpenCL in VC.
Maxthon Chan,

2
La situtazione è cambiata nel 2014 con il rilascio ufficiale della documentazione e vari blogposts su GPGPU sul blog ufficiale stesso.
frappè

29

Al momento: esiste solo un'interfaccia framebuffer per scopi di visualizzazione. Non esiste OpenCL né piani per esso né è disponibile documentazione per creare OpenCL. CUDA è solo Nvida, quindi non è applicabile. Una volta che un driver OpenGL sarà disponibile, potresti essere in grado di progettare alcuni calcoli tramite la GPU, ma resta utile vedere quanto sarà utile.

Dai un'occhiata a questo thread dettagliato sul forum RPi: API di elaborazione GPU



9

Puoi scrivere programmi di alto livello che girano sulla GPU del Pi usando QPULib:

https://github.com/mn416/QPULib

È un linguaggio di programmazione e un compilatore indirizzato ai 12 processori vettoriali (QPU) all'interno della GPU Pi. Mira a essere facile da usare ed è implementato come EDSL (Embedded Domain Specific Language), un'alternativa leggera a un backend OpenCL completo.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.