2013-12-04 3 views
0

Моя тестовая платформа:Почему очень просто Renderscript работает в GPU в 3 раза медленнее, чем в CPU

Development OS: Windows 7 32-bit 
Phone: Nexus 5 
Phone OS version: Android 4.4 
SDK bundle: adt-bundle-windows-x86-20131030 
Build-tool version: 19 
SDK tool version: 22.3 
Platform tool version: 19 

Я написал очень простой Renderscript следующим образом:

#pragma rs_fp_relaxed 
uchar4 __attribute__((kernel)) someKernel(uchar4 in, uint32_t x, uint32_t y){ 
    return in; 
} 

Я также использовал

adb shell setprop debug.rs.default-CPU-driver 1 

, чтобы заставить скрипт работать на CPU для сравнения производительности.

Я также использовал сценарий для запуска в течение короткого периода времени для прогрева, прежде чем я посчитаю время работы.

Чтобы убедиться, что я знаю, является ли код работать на GPU или CPU, я могу контролировать следующие две вещи:

  1. я контролировать LogCat, чтобы увидеть, если отображается этот журнал «успешно загружены выполнения: libRSDriver_adreno. так»
  2. я контролировать использование процессора

Я бегу этот сценарий с двумя большими изображениями с разрешением 1600by1067 и 1920by1200 соответственно. Так как Nexus 5, использующий Android 4.4, поддерживает вычисления Rendercript GPU, я предположил, что производительность этого простого скрипта будет выше в GPU. Тем не менее, результат последовательно показал, что скорость работы скрипта (многоядерный процессор Nexus 5) почти в 3 раза выше, чем на графическом процессоре Adreno 330.

Я хотел бы спросить, почему это произошло, и если я пропустил что-то, чтобы ускорить этот простой скрипт.

ответ

0

Ваш скрипт не делает значимой работы, но вы потенциально делаете дополнительные копии структуры данных (не может гарантировать, что драйвер GPU делает в этом случае). Почему бы не попробовать пример, который на самом деле что-то делает с вводом, а не просто копировать его непосредственно на выход?

+0

Большое спасибо Стивен, я разместил следующий вопрос здесь: http://stackoverflow.com/questions/20382860/why-does-those-google-image-processing-sample-renderscript-runs-slower-on-gpu Надеюсь, ты поможешь мне. Я отвечу на этот ответ. –

Смежные вопросы