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