我正在寻找一个c++固定大小矩阵库,它将以与boost::numeric::ublas相同的方式实现向量和矩阵的最常见操作,但要在 CUDA内核中使用(因此固定大小仅使用本地内存而不是全局内存访问)。
我发现了几个基于主机的矩阵库:boost::numeric::ublas, Eigen, blitz,但是它们没有固定大小的矩阵,我可以在我的内核上与CUDA一起使用。Eigen有Matrix3f和相应的东西,这是我正在寻找,但它不能生存与nvcc编译(尽管似乎有一些进展在这个方向,见这里)。
编辑:我在Linux上做所有的东西,因此希望可能有一些跨平台的…
如果您正在寻找一个已被证明运行良好的流行c++数学库,您可以尝试glm。它以GLSL为模型,这意味着它的数据以列为主顺序存储,这对所有面向着色器/gpu的设计都很友好。GLM是一个仅用于头文件的库,据称对标准非常友好,所以它可能会为您正确编译。
关于DirectX SDK分发的XNA Math ?它包含向量和矩阵的特殊类,以及对它们进行操作的大量特殊函数。
- XMVECTOR
- XMMATRIX
- XMVectorMethodName
- XMMatrixMethodName