Подтвердить что ты не робот

Можно ли запрограммировать GPU для Android?

Теперь я программирую на Android, и мне интересно, можем ли мы теперь использовать GPGPU для Android? Однажды я услышал, что Renderscript может потенциально выполнить на GPGPU в будущем. Но мне интересно, можно ли нам сейчас программировать на GPGPU? И если это возможно для меня, чтобы программа на Android GPGPU, где я могу найти некоторые учебники или примеры программ? Благодарим вас за помощь и предложения.

До сих пор я знаю, что в библиотеке OpenGL ES теперь ускоряется использование графического процессора, но я хочу использовать графический процессор для вычислений. Я хочу, чтобы ускорить вычисления, чтобы я мог использовать некоторые библиотеки API, такие как OpenCL.

4b9b3361

Ответ 1

Фактически Renderscript Compute не использует GPU в это время, но предназначен для него.

От Ромена Гая, который работает на платформе Android:

  • Renderscript Compute в настоящее время связан с ЦП, но с конструкцией for_each он будет использовать сразу несколько ядер.
  • Renderscript Compute был разработан для работы на графическом процессоре и/или процессоре.
  • Renderscript Compute избегает необходимости писать код JNI и дает вам независимые от архитектуры результаты с высокой производительностью.
  • Renderscript Compute может с Android 4.1 извлекать выгоду из оптимизаций SIMD (NEON on ARM).

https://groups.google.com/d/msg/android-developers/m194NFf_ZqA/Whq4qWisv5MJ

Ответ 2

да, это возможно.

вы можете использовать либо renderscript, либо opengGL ES 2.0.

renderscript доступен на Android 3.0 и выше, а openGL ES 2.0 доступен примерно на 95% устройств.

Ответ 3

Начиная с Android 4.2, Renderscript может включать GPU в вычислениях (в некоторых случаях). Дополнительная информация здесь: http://android-developers.blogspot.com/2013/01/evolution-of-renderscript-performance.html

Как я понимаю, подклассы ScriptIntrinsic хорошо оптимизированы для работы на графическом процессоре на совместимом оборудовании (например, Nexus10 с Mali T604). Документация: http://developer.android.com/reference/android/renderscript/ScriptIntrinsic.html

Конечно, вы можете использовать OpenCL, но Renderscript гарантирован (от Google, будучи частью самого Android) для работы даже на аппаратном обеспечении, которое не поддерживает вычисления GPGPU, и будет использовать любые другие доступные средства ускорения, поддерживаемые на котором он работает.

Ответ 4

Существует несколько вариантов: вы можете использовать OpenGL ES 2.0, который поддерживается почти всеми устройствами, но имеет ограниченную функциональность для GPGPU. Вы можете использовать OpenGL ES 3.0, с помощью которого вы можете сделать гораздо больше с точки зрения обработки графических процессоров. Или вы можете использовать RenderScript, но это зависит от платформы и, кроме того, не дает вам никакого влияния на то, будут ли ваши алгоритмы работать на графическом процессоре или процессоре. Резюме по этой теме можно найти в этом магистерском тезисе: Параллельные вычисления для обработки цифровых сигналов на графических устройствах мобильных устройств.

Вы также должны проверить ogles_gpgpu, что позволяет GPGPU через OpenGL ES 2.0 на Android и iOS.