Computations happening on GPU

I’m a newbie and have come from tensorflow. I have a few noobie questions about PyTorch

Why are all models in pytorch made inside a class with nn.Module inherited? What is super(class_name, …).initi() ? Can I make a functional model which can fully run on GPU?

What determines whether a certain computation will be run on GPU? If a few tensors are placed on GPU, is it compulsory that all operations whether written in simple python(if, for) or torch.nn.something( gpu_tensor_1, gpu_tensor_2) are run on GPU “completely”? This is where the above model definition comes in, do only those defined in above model run completely on GPU?

I want to place a complete training aspect on GPU and wish to be clear on every aspect of it.