Much slower valid convolution using complementary size of kernels.
Afficher commentaires plus anciens
I am using the valid convolution using convn( T, a, 'valid').
I have run the code below:
T = randn(384,384,8);
a = randn(5,5,8);
b = randn(380,380,1);
tic; convn(T,a,'valid'); toc
tic; convn(T,b,'valid'); toc
The reuslt in my computer is
Elapsed time is 0.002837 seconds.
Elapsed time is 0.016301 seconds.
Thus the the latter is much slower compared to fomer one.
However, in terms of flops, or only in terms of multiplications
convn(T,a,'valid')
takes 5*5*8*(384-5+1)*(384-5+1)*(8-8+1) = 28880000 multiplications
convn(T,b,'valid')
also takes 380*380*1*(384-380+1)*(384-380+1)*(8-1+1) = 28880000 multiplications
So why are the two computing time so different?
And is there some ways to implement the convn(T,b,'valid') much faster?
3 commentaires
Bruno Luong
le 22 Déc 2020
"So why are the two computing time so different?"
Just a guess but convn(T,a,'valid') possible more suitable to be parallelize since the result is (380 x 380) and each can be computed independently.
Whereas convn(T,a,'valid') is harder.
Bruno Luong
le 24 Déc 2020
Modifié(e) : Bruno Luong
le 24 Déc 2020
No not FLOPS. As you said the FLOPS are more or less indentical.
Réponses (3)
Bjorn Gustavsson
le 21 Déc 2020
0 votes
No, n-dimensional fourier-transforms, multiplication of the Fourier-transforms of 5-5-8 a with T will be a fair bit faster than the multiplication of the 380-by-380-by-1 b with T.
HTH
Roshan Hingnekar
le 22 Déc 2020
Modifié(e) : Walter Roberson
le 22 Déc 2020
0 votes
T and 'a' are 3 dimensional where as 'b' is 2 dimensional, convolution of 3-dimensional with 2-dimensional will be slower than a 3-dimensional with a 3-dimensional.
refer to the below links for further insight on randn and convn functions.
1 commentaire
Shen Zhao
le 24 Déc 2020
Bruno Luong
le 22 Déc 2020
0 votes
I would suggest to do specific conv with MEX programing.
Not sure the chance to beat MATLAB though.
1 commentaire
Shen Zhao
le 24 Déc 2020
Catégories
En savoir plus sur GPU Computing dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!