How to speed up large marix multiply?

1 次查看(过去 30 天)
Now I have a large matix A and I need to do A*A', how to make this as fast as possible?
eg. A = zeros(40000,1000);
B = A*A';
  2 个评论
Jan
Jan 2019-6-24
Do the matrices have a pattern or are they sparse? Why do you assume that there is anything better than A*A' ?

请先登录,再进行评论。

回答(1 个)

Matt J
Matt J 2019-6-24
编辑:Matt J 2019-6-24
If you download mtimesx, you can avoid an explicit transpose,
mtimesx SPEED
B=mtimesx(A,A,'c');
  3 个评论
Jan
Jan 2019-7-8
@Joss: What does "internally supported" exactly mean? Does the JIT acceleration omit the explicit transposition?
Joss Knight
Joss Knight 2019-8-3
It's not the JIT it's the interpreter. When it sees x'*y, x*y', x'*y' or the dot equivalents (.') it calls a special mtimes-transpose operation that includes the information about which arguments are transposed (or conjugate-transposed), rather than applying the transpose operations separately.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Linear Least Squares 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by