android opengl Matrix类是否在其计算中使用GPU?



如果是这样,使用它的最佳方式是什么?

如果我使用它,最好(在合理范围内)使用它以使 GPU 饱和,我是否正确?

如果没有,那么真正快速地进行大量矩阵乘法的简单方法是什么?我在Android Studio中使用Java工作。

仅对一组 4×4 个矩阵进行操作并不能真正受益于 GPU 加速。这有四个原因:

  1. 工作任务提交到 GPU 会产生一定的开销。
  2. 尽管 GPU 通过高带宽互连连接,但来自/到 GPU 的 I/O 带宽通常仍比 CPU 内存带宽低一个数量级。
  3. 一组 4×4 矩阵可轻松放入 L1 缓存。
  4. 现代 CPU 具有矢量指令,基本上将整个 4×4 个矩阵作为一个整体进行处理。

如果没有,那么真正快速地进行大量矩阵乘法的简单方法是什么?

这实际上取决于数据类型:矩阵的种群分布如何?矩阵集之间发生了多少交换?您的矩阵访问是由收集-读取还是分散-写入主导的?

在许多病理情况下,单线程 CPU 性能实际上优于 GPU。

最新更新