我可以将OpenGL用于通用矩阵乘法吗?

时间:2012-12-31 04:28:34

标签: opengl matrix-multiplication

MultMatrix看起来只是乘以4x4矩阵,这对于OpenGL来说是有意义的,但我想知道OpenGL中是否存在更通用的矩阵乘法函数。

2 个答案:

答案 0 :(得分:2)

不,可以通过查看documentation轻松验证,包括the GL Shader Language。最大的矩阵数据类型是4x4。

将GPU用于更多通用数学,包括字符串和文本操作,这是非常正确的。加密目的,通过非常棘手的方式使用OpenGL原语。但是,您要求使用通用矩阵乘法函数。

OpenCL is a somewhat different story。它没有乘法原语,但它是为一般数值计算而设计的,因此示例和库非常常见。

您还可以在CUDA中为NVIDIA处理器轻松编码通用矩阵乘法。他们的教程包括这种例程的设计。

答案 1 :(得分:1)

很多人认为,传统的OpenGL(直到OpenGL-2.1)矩阵乘法会更快一些。不是这种情况。固定功能管道矩阵操作功能全部在CPU上执行,只在绘图调用之前按需更新GPU矩阵寄存器。

使用OpenGL进行矩阵数学乘法没有任何好处。如果你想进行GPGPU计算,你必须使用OpenCL或计算着色器来实现这一点,并且要真正从中受益,它必须应用于非常好的并行化问题。