5

Renderscriptの設計は、私が実行しているプロセッサに関する事実を曖昧にすることであることを知っていますが、GPUコンピューティング対応デバイス(現時点ではNexus 10)で実行されるようにコードを書く方法はありますか? GPU?スクリプトの関数が GPU で実行されていることを確認する方法はありますか?

www.leapconf.com/downloads/LihuaZhang-MulticoreWare.pdf は、グローバルを使用しない場合、再帰を使用せず、カーネル内のどこでも rsDebug を呼び出さない場合、GPU で実行されることを示唆しています。あれは正しいですか?

純粋に計算ベースのタスク (たとえば、グラフィックス作業なし) として GPU 上で実行されることが何らかの形で確認された短いスクリプトを見てみたいと思います。

4

1 に答える 1

2

一般に、Nexus 10 の動作に関するこれらの主張は正しいものです。一部の RS ランタイム関数を呼び出すと (たとえば、rsGetAllocation を呼び出さないでください)、CPU が関数を実行することがあります。ただし、4.2 では、割り当てまたはバインドされたポインターではないグローバルは問題ないと思います。

今後、これらの制限の多くが緩和される予定です (グローバルが大きなものです)。

カーネルが実行されている場所を確認するという点では、4.2 でそれを把握するためにできることはあまりありません。そうする説得力のある理由はまだ見当たりませんが、これが本当に重要であることが判明した場合は、systrace のようなものを介してそれほど困難なく追加できるものです。「コードは GPU でより高速に実行されると思います」以上に、それがあなたを傷つけている理由を示すことができれば、遠慮なく私たちに文句を言ってください。

ImageProcessing のマンデルブロー実装 (fw/base/tests/RenderScriptTests/ImageProcessing/) が 4.2 の GPU で実行されることは確かです。

于 2013-06-18T17:28:36.103 に答える