Solved by albanD in post #2 
              
              
                c is not a Tensor here but a python number. And as such it will be on the CPU. 
For you other questions: 


.float() makes a full copy if the given Tensor is not of floating type, otherwise it returns the input as-is
All operations on GPU Tensors will happen on GPU. + or add() are the same thing so…