Можно ли скомпилировать код Renderscript и запустить его на Snapdragon Haxagon DSP?

Утверждается, что Renderscript поддерживает «различные типы процессоров, такие как CPU, GPU или DSP». Теперь, вероятно, самый популярный DSP в наши дни в мире Android — это Hexagon, присутствующий в SOC Snapdragon. Можно ли вообще заставить код Renderscript работать на Hexagon? Если да, то как это сделать и каковы ограничения?

ОБНОВЛЕНИЕ

что касается моего до сих пор исследования проблемы - нет ни документации, ни доступных примеров, поэтому реверс-инжиниринг драйверов Qualcomm кажется логичным следующим шагом. По понятным причинам я решил сначала спросить.


person Miloslaw Smyk    schedule 24.08.2015    source источник


Ответы (2)


Вы не можете заставить RenderScript работать на каком-либо конкретном процессоре, поэтому здесь вы ничего не можете сделать (если только вы не собираетесь писать компилятор Hexagon + драйвер). Что касается драйвера/компилятора Hexagon, ни одно из устройств Nexus в настоящее время не поставляется с поддержкой Hexagon для RenderScript, хотя каждое из них имеет поддержку RenderScript с помощью графического процессора.

person Stephen Hines    schedule 24.08.2015
comment
Предполагая, что такой драйвер существует, может ли Renderscript с точки зрения архитектуры одновременно запускать ядра на разных аппаратных средствах? То есть, предполагая, что нет зависимостей данных, могу ли я запустить одно ядро ​​​​на GPU, а следующее начать выполнение на Hexagon? (А потом еще на ЦП?) - person Miloslaw Smyk; 28.08.2015
comment
У нас пока нет способа делать одновременные ядра, но вы, безусловно, можете разделить ядро ​​​​на несколько устройств для выполнения (например, выполнять 1/3 на ЦП, 1/3 на GPU, 1/3 на DSP). - person Stephen Hines; 08.09.2015

Как RenderScript разделил ядро ​​на несколько устройств? Всегда равняется устройствам? (т.е. в nexus 5 выполнять 1/2 на процессоре и 1/2 на графическом процессоре?).

person Alexandre Albano    schedule 10.09.2015
comment
Это действительно должен быть комментарий, а не ответ - person Chris Montanaro; 10.09.2015
comment
Конкретный драйвер для данного устройства определяет, как разделить работу (ЦП, ГП и т. д.). Он может быть статическим (т. е. всегда выполнять ядра на графическом процессоре, если можете), или динамическим (т. е. графический процессор перегружен другой работой, поэтому на этот раз выполняйте его на процессоре). - person Stephen Hines; 10.09.2015
comment
Диск GPU определяет рабочий раздел? (т. е. в Nexus 5 ядро ​​​​отправляется на графический процессор, а диск Adreno решает, сколько выполнять?) Мой вопрос: кто (Renderscript, диск Adreno) делит рабочую нагрузку? - person Alexandre Albano; 11.09.2015
comment
Это не просто драйвер GPU. Эти решения принимает водитель поставщика. Прямо сейчас я не думаю, что кто-то из них на самом деле разделяет работу, а вместо этого принимает решения по принципу «все или ничего» между процессором и графическим процессором. Тем не менее, структура предназначена для разделения работы, но просто еще не использовалась. - person Stephen Hines; 12.09.2015