I increased batch_size to 256. The GPU usage is now 10%. It was 14% when batch_size was 64.
Also I have seen in many YouTube videos that if we use a very large batch size the overall generalization of the model decreases and hence the validation accuracy goes down. Is that true?