我知道 OpenCL 和 CUDA。这些在移动设备中不受支持。但它们中的大多数都支持 OpenGL ES。所以我想学习使用OpenGL ES着色语言进行通用计算。像 OpenCL 或 CUDA 一样,在 OpenGLSL 中。
- 我可以使用多少种缓冲液?这些是什么?
- 如何操作这些缓冲区
据我所知,到目前为止,我可以创建顶点和片段着色器。
- 使用片段着色器时可以操作哪个缓冲区
- 使用顶点着色器时可以操作哪个缓冲区
- GPU中是否有任何同步功能(我的意思是GPU中的同步。例如OpenCL或CUDA中块中的线程同步)
PS:
我读了一篇论文Using Mobile GPU for General-Purpose Computing。他们的实验是在具有以下规格的 Nvidia Tegra SoC 上进行的:
- 1GHz 双核 ARM Cortex-A9 CPU,
- 1GB 内存
- 运行频率为 333MHz 的 Nvidia 超低功耗 GeForce GPU,以及 512MB 闪存
它可以在 FFT(128*128) 上获得 3 倍的加速。我认为这些结果很好。大家觉得值不值得去做。那么主要的瓶颈是内存访问权限吗?
正如许多人所说,在 OpenGL ES 上进行通用计算是不值得的。所以也不值得期待移动设备支持 OpenCL。对?在我看来,OpenGL ES 是 OpenCL 的基础