If the Variable is created during the forward pass no. That is why you should use input.new(...) so that you create a tensor of the right type on the right device.
If you create it in the init of your module, you can have self.tmp_buffer = torch.zeros(B, S) (that you will pack into a Variable during the forward pass). This tmp_buffer will be sent on the gpu when you call net.cuda().