I need to optimize my matlab code through vectorization

1 次查看(过去 30 天)
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 个评论
Image Analyst
Image Analyst 2015-4-16
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 2015-4-17
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..

请先登录,再进行评论。

回答(1 个)

Jan
Jan 2015-4-16
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 个评论
Abeera Tariq
Abeera Tariq 2015-4-16
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 2015-4-16
编辑:James Tursa 2015-4-16
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

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Solver Outputs and Iterative Display 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by