Solved by InnovArul in post #4 
              
              
                .to() checks if the memory content is already in the given device and then, acts to move the memory only if the device is different. In case of cpu, the memory was already in the device that’s requested. So, .to(). did not act on the memory.