2D convolution with separable kernels ends up being about 2/(kernel width) times faster than using a 2D filter, which becomes a very significant difference as your kernel grows. So, if you can, try to use separable kernels!

(Page 12)