Your question
Ask a clear and concise question about Megatron-LM.
why non-interleaved does not support overlap_p2p_comm?
if args.num_layers_per_virtual_pipeline_stage is not None:
if args.overlap_p2p_comm:
assert args.pipeline_model_parallel_size > 1, \
'when interleaved schedule is used, pipeline-model-parallel size '\
'should be greater than 1'
else:
assert args.pipeline_model_parallel_size > 2, \
'when interleaved schedule is used and p2p communication overlap is disabled, '\
'pipeline-model-parallel size should be greater than 2 to avoid having multiple '\
'p2p sends and recvs between same 2 ranks per communication batch'
assert args.num_layers % args.transformer_pipeline_model_parallel_size == 0, \
'number of layers should be divisible by the pipeline parallel size'
num_layers_per_pipeline_stage = args.num_layers // args.transformer_pipeline_model_parallel_size
assert num_layers_per_pipeline_stage % args.num_layers_per_virtual_pipeline_stage == 0, \
'number of layers per pipeline stage must be divisible number of layers per virtual pipeline stage'
args.virtual_pipeline_model_parallel_size = num_layers_per_pipeline_stage // \
args.num_layers_per_virtual_pipeline_stage
else:
args.virtual_pipeline_model_parallel_size = None
# Overlap P2P communication is disabled if not using the interleaved schedule.
args.overlap_p2p_comm = False
if args.rank == 0:
print('WARNING: Setting args.overlap_p2p_comm to False since non-interleaved '
'schedule does not support overlapping p2p communication')
Your question
Ask a clear and concise question about Megatron-LM.
why non-interleaved does not support overlap_p2p_comm?