矩阵-矩阵乘积如何与多个 CPU 一起扩展?

计算科学 线性代数 并行计算 矩阵 布拉斯 基准测试
2021-12-17 02:02:21

如今,一个节点可以拥有 64 个内核。我想知道密集矩阵矩阵乘积 (SGEMMDGEMM) 与多个 CPU/内核的扩展性如何?

我试图找到一些相关的基准,但找不到。

1个回答

与矩阵向量乘法(其中没有缓存重用并且所有内容都必须从内存中取出)之类的东西相比,矩阵-矩阵乘法允许在仔细实现中进行大量缓存重用。性能取决于是否有良好的 BLAS 实施,并且可能取决于可用的内存带宽多少,尽管与 10 到 20 年前相比,这已经不是什么大问题了。

在过去的十年中,在我自己的测试中,我已经看到在 DGEMM 中对于相当大的矩阵(比如 N=5000)在具有多达 8 个内核的双插槽 Xeon 服务器上运行经过良好调整的 BLAS 实现(ATLAS)至少有 80% 的并行效率、OpenBlas、MKL 等)我从来没有测试过超过 8 个内核的机器,所以我不会进一步评论更多的处理器。不要期望小矩阵有良好的并行效率(即使 N=1000 也很小。)