How to speed up large marix multiply?

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

Community Treasure Hunt

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

Start Hunting!

Translated by