Why do we need separate statements for cuda variables and regular variables

If that’s the style you like, you can do something like this:

def Variable(data, *args, **kwargs):
    if CUDA_ENABLED:  # some global you control:
        return torch.autograd.Variable(data.cuda(), *args, **kwargs)
    else:
        return torch.autograd.Variable(data, *args, **kwargs)