Shortcuts

DDPSpawnPlugin

class pytorch_lightning.plugins.training_type.DDPSpawnPlugin(parallel_devices=None, num_nodes=None, cluster_environment=None, checkpoint_io=None, sync_batchnorm=None, ddp_comm_state=None, ddp_comm_hook=None, ddp_comm_wrapper=None, **kwargs)[source]

Bases: pytorch_lightning.plugins.training_type.parallel.ParallelPlugin

Spawns processes using the torch.multiprocessing.spawn() method and joins processes after training finishes.

add_to_queue(trainer, queue)[source]

Appends the trainer.callback_metrics dictionary to the given queue. To avoid issues with memory sharing, we cast the data to numpy.

Parameters

queue (SimpleQueue) – the instance of the queue to append the data.

Return type

None

barrier(*args, **kwargs)[source]

Synchronizes all processes which blocks processes until the whole group enters this function.

Parameters

name – an optional name to pass into barrier.

Return type

None

broadcast(obj, src=0)[source]

Broadcasts an object to all processes.

Parameters
  • obj (object) – the object to broadcast

  • src (int) – source rank

Return type

object

get_from_queue(trainer, queue)[source]

Retrieve the trainer.callback_metrics dictionary from the given queue. To preserve consistency, we cast back the data to torch.Tensor.

Parameters

queue (SimpleQueue) – the instance of the queue from where to get the data.

Return type

None

model_to_device()[source]

Moves the model to the correct device.

post_dispatch(trainer)[source]

Hook to do something after the training/evaluation/prediction finishes.

pre_backward(closure_loss)[source]

Run before precision plugin executes backward.

Return type

None

reduce(tensor, group=None, reduce_op='mean')[source]

Reduces a tensor from several distributed processes to one aggregated tensor.

Parameters
  • tensor – the tensor to sync and reduce

  • group (Optional[Any]) – the process group to gather results from. Defaults to all processes (world)

  • reduce_op (Union[ReduceOp, str]) – the reduction operation. Defaults to ‘mean’/’avg’. Can also be a string ‘sum’ to calculate the sum during reduction.

Return type

Tensor

Returns

reduced value, except when the input was not a tensor the output remains is unchanged

setup()[source]

Called by the accelerator to finish setup.

Return type

None

spawn(function, *args, return_result=True, **kwargs)[source]

Spawn processes that run the given function.

Parameters
  • function (Callable) – The function to spawn processes from.

  • *args – Optional positional arguments that will be passed to the function in addition to the process index. These arguments must be pickleable.

  • return_result (bool) – If True, copies the output of the function from process 0 to the main process and returns it.

  • **kwargs – Optional named arguments that will be passed to the function in addition to the process index. These arguments must be pickleable.

Return type

Optional[Any]

Returns

The output of the function of process 0.

teardown()[source]

This method is called to teardown the training process.

It is the right place to release memory and free other resources.

Return type

None

property root_device

Return the root device.