RenderScript

提供: MonoBook
ナビゲーションに移動 検索に移動

RenderScriptとは、Androidが採用、搭載しているCUDAに似たプログラマブルシェーダーである。

概要

RenderScriptはAndroid 3.0で登場した機能で、もともとはその名前のとおり3Dレンダリングするためのものであったが、いろいろと試行錯誤を繰り返したのち、Android 4.2でそれらは廃止され、現在ではいわゆるOpenCLCUDAなどと類似するGPGPU向けのコンピュートシェーダーと2D画像処理向けの組み込み関数群というかたちに落ち着いている。

このような歴史的背景から名前は「RenderScript」だが実質的には「ComputeScript」である。

Androidには標準でCPUドライバが含まれており、とりあえずAndroid 4.2以降であればGPUがショボい端末でも動くという特徴がある。

Androidが採用しているJavaKotlinビットマップピクセル単位で処理する、いわゆる「ポインタを使ってぶん回す」系の処理には死ぬほど向いていない。それを補うのがRenderScriptであり、主にJavaで書くと死ぬほど遅い2D画像処理を書くのに使われる。スマホのしょぼいGPUでは「GPGPUだから速い」という利点はほぼなく、どちらかというとJavaでは記述の難しい部分を補う手法、かつNDKC言語)のようにSoCに依存するものではない手法という意味合いが強い。

Xamarin.Android

ちなみにXamarin.AndroidではRenderScriptは一部しかサポートされておらずカスタムカーネル(独自プログラム)などは利用できない。ただXamarin.AndroidではC#がポインタをサポートしているのでRenderScriptを使わずともポインタをぶん回す方法である程度は突破できる。

関連項目

参考文献