矩阵乘法优化(使用霓虹灯模拟效果与着色器)

Matrix multiplying Optimization ( Using Neon simd vs shader )

本文关键字:模拟 霓虹灯 优化      更新时间:2023-10-16

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

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

然而,我感到困惑的是,当我使用NEON指令将矩阵乘以矩阵时,我不确定这是否是比Shader代码中的矩阵乘以矩阵更好的方法,因为正如你所知,即使NEON的存在有助于更快地计算,GPU的内核也比cpu多得多。

有人知道这两种方式的区别吗?

这很难说,因为您正在讨论主要用于嵌入式应用程序(ARM NEON)的CPU指令集。这对我来说意味着你正在处理一个嵌入式GPU,它在本质上可能是标量,也可能不是标量。较新的GPU是标量的,但较老的体系结构是矢量的,嵌入式体系结构通常在设计方面处于较老的一边。因此,虽然你确信基于NEON的矩阵乘法是SIMD,但在GLSL端,它可能是标量或矢量,具体取决于主机GPU。

但是,所有关于如何操作的讨论在总体方案中都是无关紧要的。真正重要的是为什么执行矩阵乘法。如果它是每个顶点或每个片段都不变化的东西,那么你通常最好在CPU上完成。否则,即使GPU可能有更多的功能单元,你也在浪费计算资源,一遍又一遍地并行进行相同的计算。

你的问题似乎意味着这是一种可以在CPU上完成一次并在着色期间多次使用的方法,这将是一种更好的方法。