test_3d.py 1009 Bytes
Newer Older
zbian's avatar
zbian committed
1
2
#!/usr/bin/env python
# -*- encoding: utf-8 -*-
アマデウス's avatar
アマデウス committed
3
4
from functools import partial

Frank Lee's avatar
Frank Lee committed
5
6
7
import pytest
import torch
import torch.multiprocessing as mp
アマデウス's avatar
アマデウス committed
8
9
from colossalai.core import global_context as gpc
from colossalai.initialize import launch
10
from colossalai.utils import free_port
zbian's avatar
zbian committed
11

Frank Lee's avatar
Frank Lee committed
12
from checks_3d.check_layer_3d import *
zbian's avatar
zbian committed
13

アマデウス's avatar
アマデウス committed
14
15
16
17
18
19
20
CONFIG = dict(
    parallel=dict(
        pipeline=1,
        tensor=dict(mode='3d', size=8),
    ),
    seed=42,
)
zbian's avatar
zbian committed
21
22
23


def check_layer():
アマデウス's avatar
アマデウス committed
24
25
26
27
28
    check_linear()
    check_layernorm()
    check_classifier()
    # check_embed()
    # check_loss()
zbian's avatar
zbian committed
29
30


31
32
def check_layer_and_operation(rank, world_size, port):
    launch(config=CONFIG, rank=rank, world_size=world_size, host='localhost', port=port, backend='nccl')
zbian's avatar
zbian committed
33
    check_layer()
Frank Lee's avatar
Frank Lee committed
34
35
36
37
38
39
40
    gpc.destroy()
    torch.cuda.empty_cache()


@pytest.mark.dist
def test_3d():
    world_size = 8
41
    run_func = partial(check_layer_and_operation, world_size=world_size, port=free_port())
Frank Lee's avatar
Frank Lee committed
42
    mp.spawn(run_func, nprocs=world_size)
zbian's avatar
zbian committed
43
44
45


if __name__ == '__main__':
Frank Lee's avatar
Frank Lee committed
46
    test_3d()