如果是这样,使用它的最佳方式是什么?
如果我使用它,最好(在合理范围内)使用它以使 GPU 饱和,我是否正确?
如果没有,那么真正快速地进行大量矩阵乘法的简单方法是什么?我在Android Studio中使用Java工作。
仅对一组 4×4 个矩阵进行操作并不能真正受益于 GPU 加速。这有四个原因:
将- 工作任务提交到 GPU 会产生一定的开销。
- 尽管 GPU 通过高带宽互连连接,但来自/到 GPU 的 I/O 带宽通常仍比 CPU 内存带宽低一个数量级。
- 一组 4×4 矩阵可轻松放入 L1 缓存。
- 现代 CPU 具有矢量指令,基本上将整个 4×4 个矩阵作为一个整体进行处理。
如果没有,那么真正快速地进行大量矩阵乘法的简单方法是什么?
这实际上取决于数据类型:矩阵的种群分布如何?矩阵集之间发生了多少交换?您的矩阵访问是由收集-读取还是分散-写入主导的?
在许多病理情况下,单线程 CPU 性能实际上优于 GPU。