2014-09-11 65 views
0
  1. 我正在學習renderscript,我懷疑如果renderscript代碼將在單個CPU內核上運行會發生什麼情況,會有性能優勢嗎?
  2. 同樣在根函數函數中,我們有兩個unit32_t參數,它使您能夠訪問某個座標,但我對它指向的位置以及它的需求感到困惑?

回答

2

1)你爲什麼認爲它會運行在「單CPU核心」上?我們從一開始就在所有CPU內核上運行RS,因此您感到困惑。 2)在一個內核(比如「root」)中,兩個uint32_t參數x和y用於給出當前正在計算的單元格的索引。例如,如果您擁有1024 x 768分配,x和y將分別在0-1023和0-767之間變化。每對(對應於計算中的1個單元格)將只執行一次。

如果您還需要使用rsGetElementAt_ ()來訪問全局變量,這很有用。一個例子就是混合,你需要從2個輸入中讀取數據(我們今天只提供一個RS輸入),所以你可以讓你的一個像素讀取該輸入,並且你可以讀取另一個像素使用rsGetElementAt_()。

+0

感謝您的回答我的問題是如果RS代碼在只有單個內核的CPU上運行 – CTDex 2014-09-12 16:24:45

+0

即使在單個內核上,RS的數據處理速度也要快於相應的Java代碼。它通常也比NDK C/C++代碼更快,因爲它可以利用NEON和其他處理器特有的功能,而不必具有不適用的後備路徑。 – 2014-09-12 16:59:16