Skip to content
Merged
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
df7e650
[CLI] add CLI launcher
YuliangLiu0306 Apr 13, 2022
73753aa
Merge branch 'feature/cli' into main
YuliangLiu0306 Apr 13, 2022
80da77a
Merge branch 'hpcaitech:main' into main
YuliangLiu0306 Apr 15, 2022
551359c
Merge branch 'hpcaitech:main' into main
YuliangLiu0306 Apr 18, 2022
a25697a
Revert "[CLI] add CLI launcher"
YuliangLiu0306 Apr 19, 2022
77b5704
Merge branch 'hpcaitech:main' into main
YuliangLiu0306 Apr 19, 2022
e23d33e
Merge branch 'hpcaitech:main' into main
YuliangLiu0306 Apr 20, 2022
997c625
Merge branch 'hpcaitech:main' into main
YuliangLiu0306 Apr 23, 2022
961d950
Merge branch 'hpcaitech:main' into main
YuliangLiu0306 Apr 24, 2022
2deaa40
Merge branch 'hpcaitech:main' into main
YuliangLiu0306 Apr 24, 2022
9ff217f
Merge branch 'hpcaitech:main' into main
YuliangLiu0306 Apr 28, 2022
501dc1a
Merge branch 'hpcaitech:main' into main
YuliangLiu0306 May 12, 2022
21e43fd
Merge branch 'hpcaitech:main' into main
YuliangLiu0306 May 21, 2022
cbd4579
Merge branch 'hpcaitech:main' into main
YuliangLiu0306 May 23, 2022
1443291
Merge branch 'hpcaitech:main' into main
YuliangLiu0306 May 30, 2022
e627cf5
Merge branch 'hpcaitech:main' into main
YuliangLiu0306 Jun 10, 2022
289316e
Merge branch 'hpcaitech:main' into main
YuliangLiu0306 Jun 15, 2022
689e047
Merge branch 'hpcaitech:main' into main
YuliangLiu0306 Jun 15, 2022
0a83919
Merge branch 'hpcaitech:main' into main
YuliangLiu0306 Jun 17, 2022
98c1ef9
Merge branch 'hpcaitech:main' into main
YuliangLiu0306 Jun 20, 2022
9a3af67
Merge branch 'hpcaitech:main' into main
YuliangLiu0306 Jun 21, 2022
7700793
Merge branch 'hpcaitech:main' into main
YuliangLiu0306 Jun 28, 2022
3c77d1f
Merge branch 'hpcaitech:main' into main
YuliangLiu0306 Jun 30, 2022
7c10323
Merge branch 'hpcaitech:main' into main
YuliangLiu0306 Jul 4, 2022
11711d1
Merge branch 'hpcaitech:main' into main
YuliangLiu0306 Jul 6, 2022
cee6276
Merge branch 'hpcaitech:main' into main
YuliangLiu0306 Jul 8, 2022
8d00be0
Merge branch 'hpcaitech:main' into main
YuliangLiu0306 Jul 12, 2022
af2a8f9
Merge branch 'hpcaitech:main' into main
YuliangLiu0306 Jul 12, 2022
7b3899b
Merge branch 'hpcaitech:main' into main
YuliangLiu0306 Jul 12, 2022
3eb8757
Merge branch 'hpcaitech:main' into main
YuliangLiu0306 Jul 13, 2022
201b54c
Merge branch 'hpcaitech:main' into main
YuliangLiu0306 Jul 14, 2022
c5a284d
Merge branch 'hpcaitech:main' into main
YuliangLiu0306 Jul 18, 2022
8ee6650
Merge branch 'hpcaitech:main' into main
YuliangLiu0306 Jul 19, 2022
d57e4fc
Merge branch 'hpcaitech:main' into main
YuliangLiu0306 Jul 20, 2022
84836f7
[fx] update MetaInforProp pass to process more complex node.meta
YuliangLiu0306 Jul 20, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 20 additions & 9 deletions colossalai/fx/passes/meta_info_prop.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,24 @@ def _extract_tensor_metadata(result: torch.Tensor) -> TensorMetadata:
return TensorMetadata(shape, dtype, requires_grad, stride, numel)


def _compute_node_numel(node_metadata: any) -> int:
"""
Compute numel of a node with ``tensor_meta`` attribute.
"""
node_numel = 0

if isinstance(node_metadata, TensorMetadata):
node_numel += node_metadata.numel
elif isinstance(node_metadata, dict):
value_list = [v for _, v in node_metadata.items()]
node_numel += _compute_node_numel(value_list)
else:
for element in node_metadata:
node_numel += _compute_node_numel(element)

return node_numel


@compatibility(is_backward_compatible=True)
class MetaInfoProp(torch.fx.Interpreter):
"""
Expand Down Expand Up @@ -78,20 +96,13 @@ def extract_tensor_meta(obj):
return obj

meta = map_aggregate(result, extract_tensor_meta)

if found_tensor:
n.meta['tensor_meta'] = meta
else:
n.meta['tensor_meta'] = TensorMetadata(None, None, False, None, 0)
# counting the total size of node outputs
total_node_size = 0
if isinstance(n.meta['tensor_meta'], TensorMetadata):
total_node_size += n.meta['tensor_meta'].numel
else:
for element in n.meta['tensor_meta']:
assert isinstance(
element, TensorMetadata
), f"``n.meta['tensor_meta']`` should be either TensorMetadata or a tuple of TensorMetadata."
total_node_size += element.numel
total_node_size = _compute_node_numel(n.meta['tensor_meta'])
# counting the total size of parameters
total_param_size = 0
if n.op == 'call_module':
Expand Down