【问题标题】:Fast Matrix Multiplication快速矩阵乘法
【发布时间】:2017-01-25 14:01:03
【问题描述】:

我有一个面试测试,我必须使用给定的矩阵乘法算法实现快速矩阵乘法。

我必须使用我想要的任何编译器在任何平台上实现它。任务说:

•PC 实施应为 SIMD 优化做好准备。 • 设计数据处理模块的合理接口。 • 在不降低效率的情况下编写可移植的 ANSIC 代码。不要使用汇编程序。 • 考虑操作的数量、操作的复杂性。关心函数调用开销、循环开销、内存访问时间和缓存性能等问题

我应该在像树莓派这样的平台上实现它吗?或者在 CPU+DSP 或 ARM+NEON 或 CPU+GPU 模拟器上?还是直接给代码?

谢谢

【问题讨论】:

  • 这样问面试官不是更好吗?

标签: gpu


【解决方案1】:

关于指令级并行性、线程级并行性、缓存利用率以及在加速矩阵乘法中没有使用的东西有一个完整的理论。

我可以指出你,首先要了解 CPU 缓存是如何工作的。当一个块被加载到缓存中时,它是如何映射到缓存索引的,一个块何时被驱逐等。请参阅有关计算机体系结构的书,或 Wikipedia。

那么我可以为你指出阻塞矩阵乘法算法。

最后是 BLAS 规范和 OpenBLAS 作为 CPU 最快的实现。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-07
    • 2011-11-30
    • 2016-06-25
    • 2013-03-26
    • 1970-01-01
    • 1970-01-01
    • 2018-04-09
    相关资源
    最近更新 更多