Matrix 为什么OpenCL没有';你没有矩阵数据类型吗?

Matrix 为什么OpenCL没有';你没有矩阵数据类型吗?,matrix,types,opencl,Matrix,Types,Opencl,考虑到OpenCL内核是在与着色器相同的单元上执行的,我认为OpenCL拥有与GLSL相同的数据类型是合乎逻辑的,但看看这里:我没有看到矩阵类型 为什么呢 另外,这是否意味着如果我想乘以4x4矩阵,使用OpenCL时会比使用GLSL慢 事实上,如果您更仔细地观察您的数据库,在保留数据类型类别中有矩阵数据类型:floatnxm、doublenxm。因此,很有可能在标准的未来版本中实现这些类型。我不知道他们为什么还没有这么做 此时,您可以使用数组或image2d_t表示矩阵。你可能想看看这个 速度是

考虑到OpenCL内核是在与着色器相同的单元上执行的,我认为OpenCL拥有与GLSL相同的数据类型是合乎逻辑的,但看看这里:我没有看到矩阵类型

为什么呢


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

事实上,如果您更仔细地观察您的数据库,在保留数据类型类别中有矩阵数据类型:floatnxm、doublenxm。因此,很有可能在标准的未来版本中实现这些类型。我不知道他们为什么还没有这么做

此时,您可以使用数组或image2d_t表示矩阵。你可能想看看这个


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

它具有点积函数,所以速度应该不会慢。虽然我不知道确切的答案,但依我看,密集矩阵可以很容易地用1D数组表示,而稀疏矩阵在各种兼容设备上的有效表示并不容易。这就是为什么没有实现特殊结构的原因。