Проблема производительности использования Renderscript c указателем стиля

В сценарии рендеринга я использую связанные указатели для перебора большого изображения. Проблема в производительности доступа к массиву.

...
for(int i=0; i < channels; i++) {
    sum += (input[i*input_size]) * mulValue;
}
...

Например, когда input_size равен 12288, для завершения сценария требуется 1,5 секунды, но когда input_size равен 12280, это занимает ~0,5 секунды.

Что может вызвать такое загадочное поведение?

1 ответ

Понимание влияния на производительность того, что вы пишете в RenderScript (или openCL), является сложным.

Простое написание на RendersScript не гарантирует производительность. Много раз вы сталкиваетесь с проблемами когерентности кэша, когда ваш доступ к памяти меняется.

Довольно часто лучше структурировать код как серию ядер, которые обрабатывают дружественный кэшу способ.

Извините, если это неясно. Ваш квест не имеет достаточно деталей.

Другие вопросы по тегам