2016-09-17 129 views
0

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

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

•PC实现应该准备好进行SIMD优化。 •为数据处理模块设计合理的接口。 •在不降低效率的情况下编写便携式ANSIC代码。不要使用汇编程序。 •考虑操作的数量和操作的复杂性。关心像函数调用开销,循环开销,内存访问时间和缓存性能的事情

我应该在像raspberry pi这样的平台上实现这个吗?或者在CPU + DSP或ARM + NEON或CPU + GPU模拟器上运行?或者只是给代码?

谢谢

+0

这不是面试官更好的问题吗? –

回答

0

有大约指令级并行,线程级并行,缓存利用率和加快矩阵乘法没有使用什么样的整体理论。

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

然后我可以指出你的阻塞矩阵乘法算法。

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