Hi,
The convolution will not ensure that the output is of the same size indeed.
But if you use stride=1, no dilation and your kernel has an odd size, you can set the padding to be floor(kern/2) to make sure that the output will have the same size as the input.
And yes these ops are all implemented on GPU so you will be able tto use it.