为什么OpenCL没有矩阵数据类型?

mrp*_*pyo 6 types matrix opencl

考虑到OpenCL内核在与着色器相同的单元上执行,对于我来说OpenCL具有与GLSL相同的数据类型似乎是合乎逻辑的,但在此处查看:http://www.khronos.org/registry/cl/sdk/1.2/ docs/man/xhtml/dataTypes.html我没有看到矩阵类型.

这是为什么?

另外,这是否意味着如果我想乘以4x4矩阵,使用OpenCL比使用GLSL要慢?

maZ*_*ZZu 7

实际上,如果更仔细地查看链接,则保留数据类型的类别中有矩阵数据类型:floatnxm,doublenxm.因此,在将来的标准版本中很可能会实现这些类型.我不知道他们为什么还没有那样做.

此时,您可以使用数组或image2d_t来表示矩阵.您可能想看看这篇文章

什么来速度.这并不一定意味着OpenCL速度较慢,但​​很有可能.即使您设法使用OpenCL为一个平台编写完美的矩阵乘法代码,在某些其他平台上性能也可能相当差.在OpenGL中,制造商正在编写自己的矩阵乘法代码,这对于每个平台都应该是最佳的.