Threading vs multiprocessing for saturating gpu(s)

Let’s say that you’re not doing any preprocessing to the data and you have multiple GPUs. In this case would using multiprocessing have a big advantage over threading? And would it make sense to use multiprocessing or multithreading for training GANs when discriminator and generator can be run in parallel?(e.g. discriminator calculating real loss and generator generating fake image)