我有一个面试测试,我必须用给定的矩阵乘法算法实现快速矩阵乘法。
我必须用我想要的任何编译器在任何平台上实现它。任务是这样说的:
·PC实施应为SIMD优化做好准备。·设计数据处理模块的rational接口。·编写不会降低效率的可移植ANSIC代码。不要使用汇编程序。·考虑操作的数量和操作的复杂性。关心函数调用开销、循环开销、内存访问时间和缓存性能
我应该在像raspberry pi这样的平台上实现它吗?或者在CPU+DSP、ARM+NEON或CPU+GPU模拟器上?或者只是给出代码?
谢谢
发布于 2016-09-18 00:45:55
关于指令级并行、线程级并行、Cache利用率以及哪些不用于加速矩阵乘法,有一套完整的理论。
我可以告诉你,首先要了解CPU缓存是如何工作的。当一个块被加载到缓存中时,它如何映射到缓存索引中,当一个块被逐出时,等等。请参考一本关于计算机体系结构的书,或维基百科。
然后我可以给你介绍分块矩阵乘法算法。
最后是BLAS规范和OpenBLAS作为CPU的最快实现。
https://stackoverflow.com/questions/39546756
复制相似问题