Torch.cuda.device_count() always returns 1

Yes, that is the expected behavior.
This post explains it a bit more.