They should be equivalent but obviously they are all different implementations.
The sd/md versions convert a convolution into multiple dot products and are only suitable for short filter lengths. 20 is probably excessive for this, they've worked fine for me up to 8 though.
So you probably want sc, mc0 or mc1. These all use conv2d under the hood, discarding one of the dimensions. The difference between them is which dimension they discard: sc discards the channel dimension (sc for "single channel"), and the mc ones discard height and width respectively. Try them all in combination with your favourite convolution backend, and use the one that's fastest :)
Sander