So, it looks like this creates a bottleneck and the GPU isn’t utilized for more than 15%:

I think I misinterpreted your figure before:

dead_workers.PNG799×243 5.39 KB

The second last row is the GPU process? I think this may look like expected then. You can see that 5 workers are doing sth but the task is not very demanding so that the remaining 3 out of 8 workers may not be really used. They all use ~200 Mb of memory, so the 3 workers may just be finished at the time you took that screenshot and are waiting for the remaining 5 to finish. The bottleneck is likely IO since you have only ~0.4% CPU usage.
The 12.4% GPU usage looks also normal maybe, because you have a very small model (2.660 Mb) and there’s probably not much to do for the GPU in terms of computation compared to other tasks that need to be performed during the forward & backward passes like updating the weights and so forth?
Another thing to do is maybe that you have too many workers and there is a communication-based bottleneck between the processes. Maybe reduce the number of workers temporarily to 1 and 2 and see if you can better GPU utilization. I usually use 2 or 4 processes max and always get like 99% utilization for relatively standard models like ResNet 34 etc.