2014-09-11 2 views
0
  1. Я изучаю renderscript, у меня есть сомнения относительно того, что произойдет, если код renderscript будет работать на одном ядре процессора, будет ли преимущество в производительности?
  2. Также в функции функции root есть два аргумента unit32_t, которые позволяют вам получить доступ к некоторой координате, но я смущен тем, в каком месте он указывает, и в чем его необходимость?

ответ

2

1) Почему, по вашему мнению, он будет работать на «одном процессорном ядре»? С самого начала мы запускали RS на всех ядрах ЦП, поэтому вы сбиты с толку. 2) В ядре (например, «root») два аргумента uint32_t x и y используются для предоставления вам индекса ячейки, которая в настоящее время вычисляется. Например, если у вас есть выделение 1024 x 768, x и y будут варьироваться от 0-1023 до 0-767 соответственно. Каждая пара (соответствующая 1 ячейке в вычислении) будет выполняться только один раз.

Полезно, если вам также необходимо получить доступ к глобальной переменной, используя rsGetElementAt_ (). Примером этого может быть смесь, где вам нужно читать с 2 входов (мы предоставляем только один вход в RS сегодня), поэтому вы можете получить один из ваших пикселей для чтения с этого входа, и вы можете прочитать другой пиксель используя rsGetElementAt_().

+0

Спасибо за ваш ответ. Вопрос был в том, что если код RS работает на процессоре с одним ядром – CTDex

+0

Даже на одном ядре RS быстрее обрабатывает данные, чем соответствующий код Java. Он также, как правило, быстрее, чем код NDK C/C++, поскольку он может использовать преимущества NEON и других специфичных для процессора функций без необходимости иметь резервный путь, который этого не делает. –

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