nn.DataParallel will not use the passed GPUs in model.module.preprocess, since the forward method will be used to create the model clones, split the data etc., as you’ve already assumed.
You could call other functions inside the forward method, if you want to use all devices.