ColossalAI/colossalai/context/process_group_initializer/process_group_initializer.py

39 lines
1.2 KiB
Python
Raw Normal View History

2021-10-28 16:21:23 +00:00
#!/usr/bin/env python
# -*- encoding: utf-8 -*-
from abc import ABC, abstractmethod
from colossalai.context import Config
class ProcessGroupInitializer(ABC):
2022-01-21 02:44:30 +00:00
"""An object, knowing the parallelism configuration, that initializes parallel groups.
2022-03-25 05:02:39 +00:00
Args:
rank (int): The rank of current process.
world_size (int): Size of whole communication world.
config (Config): Running configuration.
data_parallel_size (int): Size of data parallel.
pipeline_parallel_size (int): Size of pipeline parallel.
tensor_parallel_size (int): Size of tensor parallel.
2022-01-21 02:44:30 +00:00
"""
2021-10-28 16:21:23 +00:00
def __init__(self,
rank: int,
world_size: int,
config: Config,
data_parallel_size: int,
2022-01-21 02:44:30 +00:00
pipeline_parallel_size: int,
2021-10-28 16:21:23 +00:00
tensor_parallel_size: int
):
self.rank = rank
self.world_size = world_size
self.data_parallel_size = data_parallel_size
self.config = config
2022-01-21 02:44:30 +00:00
self.pipeline_parallel_size = pipeline_parallel_size
2021-10-28 16:21:23 +00:00
self.tensor_parallel_size = tensor_parallel_size
super().__init__()
@abstractmethod
def init_dist_group(self):
pass