在C或GLSL中乘以矩阵?

时间:2015-10-12 16:34:38

标签: c opengl matrix gpu matrix-multiplication

我有一个OpenGL程序,每秒可以进行相当多的矩阵乘法运算。这些将是4x4矩阵,每个128字节。我的CPU和GPU都是最新的(我有一台MacBook Pro(Retina,13英寸,2014年中))。我知道GPU通常更加面向并行,可能会针对这类内容进行优化。让CPU执行乘法或我的GPU会更快吗?

1 个答案:

答案 0 :(得分:2)

  

我有一个OpenGL程序,每秒可以进行相当多的矩阵乘法运算。

定义“相当好的矩阵乘法量”。请记住,CPU也非常有能力进行这种计算。使用向量化指令集,4×4矩阵 - 矩阵乘法可归结为低至16 FMA(融合乘法加法)指令。那不是很多。鉴于现代CPU也希望保持忙碌,并且通常也需要用于CPU计算的矩阵,因此将矩阵计算保留在CPU上是很有意义的。

如果您可以轻松地并行化所有这些矩阵的计算,那么在GPU上执行它只会带来好处。对于单个4×4矩阵矩阵,将矩阵加载到GPU上并进行内务处理的开销很容易消耗任何性能优势。