Проблема производительности использования 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 не гарантирует производительность. Много раз вы сталкиваетесь с проблемами когерентности кэша, когда ваш доступ к памяти меняется.
Довольно часто лучше структурировать код как серию ядер, которые обрабатывают дружественный кэшу способ.
Извините, если это неясно. Ваш квест не имеет достаточно деталей.