Могу ли я использовать графический процессор для расчетов?

104

Можно ли использовать графический процессор для расчетов? (например, CUDA / OpenCL)

Алекс Л
источник

Ответы:

67

Начиная с 2012 года, вам лучше всего было реализовать вычисления как фрагментный шейдер в GLSL ES и найти способ представить выходные данные в виде RGBA (32-битной) текстуры.

В своем выступлении 2012 года Эбен заявил, что OpenCL вряд ли будет реализован, но в будущем может быть разработан API; ответ начинается в 21:20 , и Эбен говорит, что «мы можем предоставить людям какой-то способ получить некоторые из этих вычислений общего назначения».

Недавние разработки, такие как проект VC4CL , пытались реализовать OpenCL на GPU VideoCore IV, используемом Raspberry Pi, а другие связанные проекты теперь предоставляют доступ к некоторым общим вычислительным возможностям графического процессора.

finnw
источник
6
AFAIK, что разговор - самый окончательный ответ до сих пор ... ответ начинается в 21:20, и Эбен говорит, что "мы можем предоставить людям какой-то способ получить некоторые из этих вычислений общего назначения"
je4d
5
Часть кода GPU была открыта! github.com/raspberrypi/userland
Джон Ла Рой
Это эквивалентно реализации OpenCL, поскольку кто-то может просто добавить серверную часть VideoCore OpenCL в LLVM для компиляции OpenCL в VC.
Maxthon Chan
2
Ситуация изменилась в 2014 году с официальным выпуском документации и различных постов о GPGPU на самом официальном блоге.
Flakeshake
29

Не в настоящее время - есть только интерфейс кадрового буфера для отображения. Нет OpenCL, нет планов и нет документации по созданию OpenCL. CUDA - это только Nvida, поэтому не применимо. Как только драйвер OpenGL станет доступным, вы сможете разрабатывать некоторые вычисления с помощью графического процессора, но насколько это будет полезно, еще неизвестно.

Проверьте эту подробную тему на форуме RPi: API обработки графического процессора

Ник МакКлауд
источник
11

Это может быть полезно. Библиотека Python GPGPU для Raspberry Pi. https://github.com/nineties/py-videocore

GPU общего назначения (GPGPU) - это графический процессор (GPU), который выполняет неспециализированные вычисления, которые обычно выполняются процессором.

raspi-ниндзя
источник
9

Вы можете написать высокоуровневые программы, которые запускаются на графическом процессоре Pi, используя QPULib:

https://github.com/mn416/QPULib

Это язык программирования и компилятор, предназначенный для 12 векторных процессоров (QPU) внутри графического процессора Pi. Он призван быть простым в использовании и реализован как EDSL (Embedded Domain Specific Language) - легкая альтернатива полноценному бэкэнду OpenCL.

user46562
источник
7

Фонд Raspberry Pi уже было одобрение GPGPU на Pi с 2014 года, вскоре после того, как Broadcom выпустила документацию для блоков QPU внутри GPU.

Экспериментальный OpenCL-компилятор был создан Саймоном Дж. Холлом (победителем тесно связанного конкурса 2014 года за 10000 долларов за приемлемый запуск Quake без использования GPU BLOB): см. Здесь .

flakeshake
источник