用于固定大小矩阵和向量的C ++库

时间:2013-02-27 18:46:09

标签: c++ matrix cuda cross-platform linear-algebra

我正在寻找一个C ++固定大小的矩阵库,它将以与 boost :: numeric :: ublas 相同的方式实现向量和矩阵的最常见操作,但是要使用< strong> CUDA内核(因此固定大小仅使用本地内存而非全局内存访问)。

我找到了几个基于主机的矩阵库: boost :: numeric :: ublas Eigen blitz ,但他们没有固定大小的矩阵我可以在我的内核上使用CUDA。 Eigen Matrix3f 和相应的东西我正在寻找的,但它不能用nvcc编译(尽管似乎有一些朝这个方向前进,见here)。

编辑:我正在Linux上做所有这些事情,因此希望可能有跨平台的东西......

2 个答案:

答案 0 :(得分:3)

如果您正在寻找一个可以很好地运行的流行C ++数学库,您可以尝试glm用于您的目的。它以GLSL为模型,这意味着它的数据以列主要顺序存储,这对所有着色器/ gpu导向设计都很友好。 GLM是一个仅限标题的库,据称对标准非常友好,所以它可能会为您正确编译。

答案 1 :(得分:0)

与DirectX SDK一起发布的XNA Math怎么样?它包含向量和矩阵的特殊类以及对它们进行操作的大量特殊函数。

  • XMVECTOR
  • XMMATRIX
  • XMVectorMethodName
  • XMMatrixMethodName