阿里笔试题矩阵相乘问题
有两个NN的矩阵A和B,想要在PC上按矩阵乘法基本算法编程实现计算AB。假设N较大,本机内存也很大,可以存下A、B和结果矩阵。那么,为了计算速度,A和B在内存中应该如何存储(按行存指先存储第一行,再第二行,直到最后一行;按列存指先存储第一列,再第二列,直到最后一列)?
A按行存,B按行存。
A按行存,B按列存。
A按列存,B按行存。
A按列存,B按列存。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我觉得,根据AxB,应该是A按照行存储,B按照列存储,这个跟矩阵向量计算有关.
A按行存,B按行存。
自己思考的,可能不对。
可以用结果矩阵当临时矩阵。
乘法是A的行乘B的列,读取顺序是一次读取A的一行和B的一列,那就是A按行存,B按列存。
这样的话缓存命中更高。
可以参考:
https://software.intel.com/zh-cn/articles/superscalar-programming-101-matrix-multiply-part-2