| レンダリングスクリプト | |
|---|---|
| 開発者 | グーグル |
| オペレーティング·システム | Android(オペレーティング システム) |
| Webサイト | 開発者 |
RenderScriptは、モバイルデバイス向けAndroidオペレーティングシステムの非推奨コンポーネントであり、異機種ハードウェアの性能を活用したアクセラレーションAPIを提供します。開発者はRenderScriptを使用することで、より複雑な(低レベルの)コードを記述することで、アプリケーションのパフォーマンスを向上させることができます。
開発者には、シンプルな 3D レンダリング API、 CUDAに似たコンピューティング API 、C99派生言語という 3 つの主要なツールが提供されます。
歴史
RenderScriptはAndroid 3.0 Honeycombで追加されました。[ 1 ]
Android 4.1 以降、RenderScript の実験的な3D レンダリング API は非推奨となり、現在はコンピューティング API としてのみ存在します。
Android 4.2では、スクリプト組み込み機能にBlendやBlurなどの新機能や、関連するRenderScriptスクリプトをグループ化して1回の呼び出しで実行できるScriptGroupsが追加されました。また、RenderScriptのサブセットであるFilterScriptも追加されました。FilterScriptを使用すると、開発者は標準のRenderScriptランタイムAPIを使用してFilterScriptで画像処理操作を記述できますが、マルチコアCPU、GPU、DSP間での互換性が高まり、最適化が向上するという厳しい制約があります。FilterScriptは浮動小数点精度が低く、デバイス間の互換性が高いRenderScriptのサブセットであるため、RenderScriptの代替技術と間違えないようにしてください。[ 2 ]
2021年4月19日、GoogleはAndroid 12でRenderScriptが廃止されることを発表し、既存のコードをVulkanに移植することを推奨した。[ 3 ]
特徴
携帯性
RenderScriptは、ハードウェアの種類に関係なく、さまざまなAndroidプラットフォームで常に実行できるように設計されています。パフォーマンスチューニングは実行時に行われます。
RenderScriptの移植性はデバイス固有のドライバに依存します。[ 4 ]基本的なCPU専用のドライバはすべてのデバイスに提供されていますが、GPUの使用を可能にする特定のチップセット提供のRenderScriptドライバもいくつか存在します(例:libRSDriver_adreno.soAndroidライブラリで提供されているQualcomm固有のドライバ)。
パフォーマンス
RenderScriptは、実行時にタスクをチューニングし、基盤となるハードウェア上で効率的に分割して同時に実行できるように設計されています。[ 5 ]
Android 4.2以降、RenderScriptはサポートされているシステムではCPUに加えてGPUでも実行できるように拡張されました。[ 6 ]
制限事項
- RenderScript はまだオンチップのスレッド間通信 ( OpenCLではローカル メモリ、CUDA では共有メモリと呼ばれます) を表現できません。
- RenderScript では、ハードウェア実装の 2D および 3D ルックアップを双線形補間 (CUDA ではテクスチャ、OpenCL ではイメージ読み取りと呼ばれます) で表現することはまだできません。
参考文献
- ^ 「ハニカム」。
- ^ 「Android 4.2 API」 。 2013年3月20日閲覧。
- ^ 「Android GPUコンピューティングの今後の展望」。Android開発者ブログ。2021年4月19日閲覧。
- ^ Marchetti, Alberto (2016). RenderScript: Androidでの並列コンピューティングの簡単な方法(第1版). 2016年8月25日時点のオリジナルよりアーカイブ。 2016年7月5日閲覧。
- ^ 「レンダリングスクリプト パート 2」。
- ^ 「Jelly Bean - レンダリングスクリプトのパフォーマンス」 。 2012年11月27日閲覧。