用于计算具有大量向量y_i的向量x的点积的最佳选择是什么,其中x和y_i的长度大约为10k。
s/dgemv
例程? 我只是在这里寻找一般指导,所以任何建议都会有用 是的,我确实需要表现。 感谢任何光明。
答案 0 :(得分:4)
我认为GPU专门用于快速执行此类操作(以及其他操作)。因此,您可以使用DirectX或OpenGL库来执行向量操作。 D3DXVec2Dot这也可以节省你的CPU时间。
答案 1 :(得分:1)
答案 2 :(得分:0)
对SSE2解决方案进行手动编码并不是很困难,并且可以为纯C例程带来更好的加速。这将带来多少BLAS例程必须由你决定。
最大的加速是通过将数据结构化为格式得出的,这样您就可以利用数据并行和对齐。
答案 3 :(得分:0)
我使用Goto BLAS。这是高性能的内核例程。比MKL和BLAS好很多倍。
答案 4 :(得分:0)
以下提供了使用SSE的BLAS 1级(向量运算)例程。
http://www.applied-mathematics.net/miniSSEL1BLAS/miniSSEL1BLAS.html
如果你有一个nVidia显卡,你可以获得cuBLAS,它将在显卡上执行操作。
http://developer.nvidia.com/cublas
适用于ATI(AMD)显卡
http://developer.amd.com/libraries/appmathlibs/pages/default.aspx