У меня есть несколько базовых алгоритмов (DCT/IDCT и несколько других), портированных и работающих (как ожидалось, по крайней мере, функционально) на Nexus 10. Поскольку эти алгоритмы - это первые реализации, время их выполнения в настоящее время запущено в сек, что понятно.Принудительный Renderscript для работы на процессоре или графическом процессоре (Atleast для настройки производительности)
Однако, учитывая архитектуру Renderscript, я вижу, что эти алгоритмы выполняются либо на процессоре, либо на графическом процессоре в зависимости от других действий параллельного приложения. Например, в моем приложении есть scrollview для изображений и любая активность в этом представлении, по существу, толкает выполнение renderscript на CPU. Если нет активности, алгоритм работает на графическом процессоре. Я вижу это в прямом эфире через следы ARM-DS5 Mali/A15.
Эта ситуация представляет собой кошмар отладки/настройки, поскольку дельта производительности, когда алгоритм работает на процессоре (двухъядерный) по сравнению с графическим процессором (Мали), составляет порядка 2 секунд, что очень затрудняет оценку производительности улучшения, которые я выполняю по моему алгоритму.
есть ли способ обойти эту проблему? Одно из возможных решений заключается в том, что у вас есть опция конфигурации отладки для выбора целевого типа (ARM, GPU) для кода renderscript?
Ба, есть по крайней мере, способ запросить систему, будет ли она выполняться на CPU или GPU. – user2023370