Filter löschen
Filter löschen

How to speed up large marix multiply?

1 Ansicht (letzte 30 Tage)
Jiuxuan Zhao
Jiuxuan Zhao am 24 Jun. 2019
Kommentiert: Joss Knight am 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 Kommentare
KSSV
KSSV am 24 Jun. 2019
Explore gpuArray option.
Jan
Jan am 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' ?

Melden Sie sich an, um zu kommentieren.

Antworten (1)

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

Melden Sie sich an, um zu kommentieren.

Community Treasure Hunt

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

Start Hunting!

Translated by