Take this information with a grain of salt, as I didn’t run DataParallel in C++, but I don’t think the worse performance of DataParallel compared to DDP is due to the GIL, but probably the communication overhead needed for the scatter/gather of the model parameters and data.