It works with CPUs with multi cores. From the DistributedDataParallel doc:

For multi-device modules and CPU modules, device_ids must be None  or an empty list, and input data for the forward pass must be placed on the correct device.

The thing is that as there is only one “cpu” device in PyTorch, you cannot specify which cores to run a DDP process using the device_ids arg in DistributedDataParallel constructor. However, you should still be able to set the CPU affinity for processes independently?