Forçando Renderscript para executar na CPU ou GPU (pelo menos para fins de ajuste de desempenho)

Eu tenho algunsbásico algoritmos (DCT / IDCT e alguns outros) portados e funcionando (como esperado pelo menos funcionalmente) no Nexus 10. Como esses algoritmos são implementações primeiro, seu tempo de execução está atualmente sendo executado em segundos, o que é compreensível.

No entanto, dada a arquitetura do Renderscript, vejo que esses algoritmos são executados na CPU ou na GPU, dependendo de outras atividades de aplicativos paralelos. Por exemplo, em meu aplicativo, há uma visualização de rolagem para imagens e qualquer atividade nessa visualização, essencialmente, envia a execução de renderização para CPU. Se não houver atividade, o algoritmo é executado na GPU. Eu vejo isso ao vivo através de traços ARM-DS5 Mali / A15.

Essa situação está se apresentando como pesadelo de depuração / ajuste, já que o delta de desempenho quando o algoritmo é executado na CPU (dual core) versus GPU (Mali) é da ordem de 2 segundos, tornando muito difícil avaliar as melhorias de desempenho que eu sou fazendo no meu código de algoritmo.

Existe uma maneira de contornar este problema? Uma possível solução é pelo menos ter uma opção de configurabilidade de depuração para escolher o tipo de destino (ARM, GPU) para o código do renderscript?

questionAnswers(1)

yourAnswerToTheQuestion