MATLAB Answers

0

movsum slower than conv2 in GPU

Asked by Mir Amid Hashemi on 14 Oct 2019 at 19:36
Latest activity Answered by Joss Knight
on 15 Oct 2019 at 10:46
Hello,
I have this code that tests how both movsum and conv2 perform under GPU.
A=rand(1e4,1e4,'single','gpuArray');
n=10;f=ones(1,n,'single','gpuArray');
gputimeit(@() conv2(f,A))
gputimeit(@() movsum(A,n))
ans =
0.0051
ans =
0.0102
Turns out conv2 takes 5ms whereas movsum takes 10ms.
movsum should have a simpler algorithm than conv2, no?
Amid.

  0 Comments

Sign in to comment.

Tags

Products


Release

R2019a

1 Answer

Answer by Joss Knight
on 15 Oct 2019 at 10:46

One might theorize, perhaps, that movsum literally uses the same kernels as conv2, but first has to construct the filter of ones which takes extra time. I'm not saying that's what happens, but it's a theory. By making more generic kernels, MATLAB saves space, which is important for download times and the MATLAB Compiler Runtime.

  0 Comments

Sign in to comment.