我很好奇GLSL / GLSL和NEON有什么区别

我知道GLSL使用的是GPU内核,而NEON使用的是CPU内核。

但是我感到困惑的是,当我使用NEON指令将矩阵乘以矩阵时,我不确定这是否比在Shader代码中将矩阵乘以矩阵更好的方法,因为如您所知,GPU比cpu拥有更多的内核即使NEON可以帮助您更快地进行计算。

有人知道两种方法有什么区别吗?

最佳答案

很难说,因为您正在讨论主要用于嵌入式应用程序(ARM NEON)的CPU指令集。在我看来,这意味着您正在使用嵌入式GPU,而嵌入式GPU本质上可能是标量的,也可能不是。较新的GPU是标量的,但是较旧的体系结构是矢量,而嵌入式体系结构通常在较旧的方面进行设计。因此,尽管您确定基于NEON的矩阵乘法是SIMD,但在GLSL方面,取决于主机GPU,它可能是标量或向量的。

但是所有关于如何实际实现操作的讨论都与宏大的计划无关。真正重要的是为什么要执行矩阵乘法。如果每个顶点或每个片段的内容不变,那么通常最好在CPU上执行。否则,即使GPU可能具有更多的功能单元,您也会浪费计算资源,一遍又一遍地进行相同的计算。

您的问题似乎暗示这是可以在CPU上完成一次并在着色期间多次使用的方法,这将是更好的通用方法。

关于c++ - 矩阵乘法优化(使用Neon simd与shader),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21895488/

10-11 22:29