Fast multiplication of rows of one matrix and columns of the second matrix
Mostrar comentarios más antiguos
I would like to compute v(k) = A(k, :)* B(:, k) as fast as possible (no-loops). Currently, I am doing diag(A * B) but it has unnecessary overhead of computation, and storage.
2 comentarios
Daniel Shub
el 5 de Oct. de 2011
Do you want to do it as fast as possible or without loops? The JIT accelerator means that those two things are not necessarily the same.
Daniel Shub
el 5 de Oct. de 2011
How big is A? Is it sparse or distributed or anything funky like that?
Respuesta aceptada
Más respuestas (1)
Daniel Shub
el 5 de Oct. de 2011
0 votos
Yair's blog has a nice post on memory issues and array operations:
It is not always obvious what is the best solution.
If your matrices are really big you might be better off distributing them to a graphic card. If your machine has a lot of cores, the for loop could be replaced by a parfor loop, or even distributed to a cluster. It is silly to worry about slight inefficiencies if you can access 1000+ cores.
Categorías
Más información sobre Loops and Conditional Statements en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!