我可以使用OpenGL进行通用矩阵乘法吗?

我可以使用OpenGL进行通用矩阵乘法吗?,opengl,matrix-multiplication,Opengl,Matrix Multiplication,MultMatrix似乎只对4x4矩阵进行乘法,这对于OpenGL来说是有意义的,但我想知道OpenGL中是否存在更通用的矩阵乘法函数。否,这可以通过查看。最大的矩阵数据类型是4x4 的确,通过以非常巧妙的方式使用OpenGL原语,可以让GPU做更多的通用数学,包括用于加密目的的字符串和文本操作。但是,您需要一个通用的矩阵乘法函数 。它没有乘法原语,但它是为一般数值计算而设计的,因此示例和库非常常见 您还可以在中为NVIDIA处理器轻松编写通用矩阵乘法。他们的教程包括这样一个例程的设计。很多人认

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

否,这可以通过查看。最大的矩阵数据类型是4x4

的确,通过以非常巧妙的方式使用OpenGL原语,可以让GPU做更多的通用数学,包括用于加密目的的字符串和文本操作。但是,您需要一个通用的矩阵乘法函数

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


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

很多人认为,传统的OpenGL(直到OpenGL-2.1)矩阵乘法在某种程度上会更快。事实并非如此。固定函数管道矩阵操作函数均在CPU上执行,仅在绘图调用之前按需更新GPU矩阵寄存器


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

当然,你可以使用两个2D浮点数组在OpenGL中编写自己的程序,但它实际上并没有使用它的设计语言。使用OpenGL(浮点缓冲区等)执行诸如通用矩阵乘法之类的任务通常被称为“老派”GPGPU(通用GPU)编程方法。我认为仍然有可能让事情正常工作(而且工作速度很快,因为驱动程序和硬件对图形工作负载的优化程度很高)但现在确实有更好的工具可用。如果您的图形算法以某种方式使用更大的矩阵,那么尝试这种方法可能会更有意义。虽然这个答案不一定回答所问的问题,但我认为它回答了本应提出的问题,并且提供了比接受更多的价值我的回答是否定的。