Clear Filters
Clear Filters

How to speed up large marix multiply?

1 view (last 30 days)
Jiuxuan Zhao
Jiuxuan Zhao on 24 Jun 2019
Commented: Joss Knight on 3 Aug 2019
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 Comments
KSSV
KSSV on 24 Jun 2019
Explore gpuArray option.
Jan
Jan on 24 Jun 2019
Do the matrices have a pattern or are they sparse? Why do you assume that there is anything better than A*A' ?

Sign in to comment.

Answers (1)

Matt J
Matt J on 24 Jun 2019
Edited: Matt J on 24 Jun 2019
If you download mtimesx, you can avoid an explicit transpose,
mtimesx SPEED
B=mtimesx(A,A,'c');
  3 Comments
Jan
Jan on 8 Jul 2019
@Joss: What does "internally supported" exactly mean? Does the JIT acceleration omit the explicit transposition?
Joss Knight
Joss Knight on 3 Aug 2019
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.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!