How to speed up large marix multiply?

4 visualizzazioni (ultimi 30 giorni)
Jiuxuan Zhao
Jiuxuan Zhao il 24 Giu 2019
Commentato: Joss Knight il 3 Ago 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 Commenti
KSSV
KSSV il 24 Giu 2019
Explore gpuArray option.
Jan
Jan il 24 Giu 2019
Do the matrices have a pattern or are they sparse? Why do you assume that there is anything better than A*A' ?

Accedi per commentare.

Risposte (1)

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

Accedi per commentare.

Categorie

Scopri di più su Mathematics and Optimization in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by