私は OpenCL と CUDA を知っています。これらはモバイル デバイスではサポートされていません。しかし、それらのほとんどは OpenGL ES をサポートしています。そこで、一般的なコンピューティング用の OpenGL ES シェーディング言語を使用して学習したいと考えています。OpenGLSL の OpenCL や CUDA のように。
- 何種類のバッファーを使用できますか? 彼らは何ですか?
- これらのバッファを操作する方法
私が知っているように、ここまで頂点シェーダーとフラグメント シェーダーを作成できます。
- フラグメント シェーダーを使用する場合、どのバッファーを操作できますか
- 頂点シェーダーを使用するときにどのバッファーを操作できますか
- GPUに同期機能はありますか(GPUでの同期を意味します.OpenCLまたはCUDAのブロックで同期されたスレッドのように)
PS: Using Mobile GPU for General-Purpose Computing
という論文を読みました。彼らの実験は、次の仕様の Nvidia Tegra SoC で実行されました。
- 1GHz デュアルコア ARM Cortex-A9 CPU、
- 1GBのRAM
- 333MHz で動作する Nvidia 超低電力 GeForce GPU、および 512MB のフラッシュ メモリ
FFT(128*128) で 3 倍のスピードアップが得られます。これらの結果は良いと思います。それをする価値があるかどうか、皆さんは考えますか。では、主なボトルネックはメモリアクセスですよね?
多くの人が言ったように、OpenGL ES で汎用コンピューティングを行う価値はありません。したがって、OpenCL をサポートするモバイルも期待する価値はありません。右?私の意見では、OpenGL ES は OpenCL の助長です。