I need to optimize my matlab code through vectorization

1 visualización (últimos 30 días)
Abeera Tariq
Abeera Tariq el 16 de Abr. de 2015
Comentada: Abeera Tariq el 17 de Abr. de 2015
I need to vectorize this loop in code.. can someone guide?
function X = IDWT2DCT(x,Dct_matrix,IW_matrix)
[K,MN]=size(x);
block_size = 8;
X = zeros(block_size,block_size,K);
temp = zeros(block_size,block_size);
y = (Dct_matrix'*x);
for k = 1:K
temp = reshape(y(k,:),block_size,block_size);
X(:,:,k) = IW_matrix*temp*IW_matrix';
end
*****Speed is not issue, i just need to vanish this loop****** [EDITED, Jan, Code formatted]
  6 comentarios
Image Analyst
Image Analyst el 16 de Abr. de 2015
I agree with Jan that the loop takes virtually no time, unless K is huge, and I'm talking billions. Looping a few hundred thousand or a few million times takes like a microsecond. What is the value of K? What are the dimensions of Y and x?
Abeera Tariq
Abeera Tariq el 17 de Abr. de 2015
I need to implement the whole code on GPU, issue is that there are many loops inside loops .. so as an initiative i took inner most loop so that i can move to outer most loop..

Iniciar sesión para comentar.

Respuestas (1)

Jan
Jan el 16 de Abr. de 2015
I hesitate to invest any period of time when I cannot see any benefit. You ask for an "optimization", but the code will not be better in any way if it is vectorized. Therefore I'm convinced, that I cannot "optimize" it, especially when speed does not matter. If you want to have more complex for debugging and most likely faster as a side-effect, try these marvelous functions:
Please note, that "optimizing" code, which is not a bottleneck of a program is a known anti-pattern of programming. See http://en.wikipedia.org/wiki/Anti-pattern -> "premature optimization" and http://en.wikipedia.org/wiki/Optimization_(computer_science)#When_to_optimize
  2 comentarios
Abeera Tariq
Abeera Tariq el 16 de Abr. de 2015
I need to implement this on gpu nd there r many loops inside loops so i started removing these loops through vectorization.. :(
James Tursa
James Tursa el 16 de Abr. de 2015
Editada: James Tursa el 16 de Abr. de 2015
If you are implementing this on a GPU then why not work with a BLAS library to do the matrix multiplies? E.g.,
https://developer.nvidia.com/cublas

Iniciar sesión para comentar.

Categorías

Más información sobre Loops and Conditional Statements en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by