【发布时间】:2014-02-25 13:16:46
【问题描述】:
我正在尝试通过矩阵乘法来实现大矩阵的SSE 版本。
我正在寻找一种基于SIMD 实现的高效算法。
我想要的方法如下:
A(n x m) * B(m x k) = C(n x k)
并且所有的矩阵都被认为是16字节对齐的浮点数组。
我在网上搜索了一些描述8x8乘法甚至更小的文章。我真的需要它尽可能高效,我不想使用Eigen 库或类似的库。 (只有SSE3 更具体)。
如果有人能帮我找到一些关于如何开始实施的文章或资源,我将不胜感激。
【问题讨论】:
-
使用一个已建立的库可能是迄今为止最简单和最有效的方法。这有什么问题?
-
我终于想在设备上实现它了。我希望它独立于第三方库
-
你需要单线程还是多线程版本?
-
看看 BLAS 实现的源代码,看看他们做了什么?这些代码有很多优化。 ATLAS (math-atlas.sourceforge.net) 已获得 BSD 许可。
标签: c++ assembly sse matrix-multiplication simd