How to speed up large marix multiply?

1 vue (au cours des 30 derniers jours)
Jiuxuan Zhao
Jiuxuan Zhao le 24 Juin 2019
Commenté : Joss Knight le 3 Août 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 commentaires
KSSV
KSSV le 24 Juin 2019
Explore gpuArray option.
Jan
Jan le 24 Juin 2019
Do the matrices have a pattern or are they sparse? Why do you assume that there is anything better than A*A' ?

Connectez-vous pour commenter.

Réponses (1)

Matt J
Matt J le 24 Juin 2019
Modifié(e) : Matt J le 24 Juin 2019
If you download mtimesx, you can avoid an explicit transpose,
mtimesx SPEED
B=mtimesx(A,A,'c');
  3 commentaires
Jan
Jan le 8 Juil 2019
@Joss: What does "internally supported" exactly mean? Does the JIT acceleration omit the explicit transposition?
Joss Knight
Joss Knight le 3 Août 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.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Mathematics and Optimization dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by