Are you seeing no utilization on the other GPUs at all or just a low utilization?
In the latter case, note that nn.DataParallel has some drawbacks, such as a higher memory usage on the default device, as well as worse performance than DistributedDataParallel, which is why we recommend to use DDP.