import pytest import torch from common_utils import tensor_equal import colossalai from colossalai.tensor import ColoParameter, ColoTensor, ColoTensorSpec, ProcessGroup from colossalai.testing import free_port @pytest.mark.skip def test_multiinheritance(): colossalai.launch(config={}, rank=0, world_size=1, host='localhost', port=free_port(), backend='nccl') colo_param = ColoParameter(None, requires_grad=True) assert colo_param.dist_spec.placement.value == 'r' assert isinstance(colo_param, ColoTensor) assert isinstance(colo_param, torch.nn.Parameter) # __deepcopy__ overload import copy colo_param2 = copy.deepcopy(colo_param) assert isinstance(colo_param2, ColoParameter) assert tensor_equal(colo_param.data, colo_param2.data) assert colo_param.requires_grad == colo_param2.requires_grad # __repr__ overload assert 'ColoParameter' in str(colo_param) # __torch_function__ clone_param = torch.clone(colo_param) assert isinstance(clone_param, ColoTensor) if __name__ == '__main__': test_multiinheritance()