How to speed up large marix multiply?

4 views (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.

Categories

Find more on Mathematics and Optimization in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!