If I understand your use case correctly, you are trying to clone the same model onto GPU0 and GPU1, use different inputs, and calculate the loss based on both outputs.
Once this loss is calculated, you would like to calculate the gradients for both models.
How should these gradients be handled? Since the inputs were different, the model clone would get different gradients.
If you would like to reduce the gradients to a single model, I think you should be able to use a distributed approach e.g. via DDP.