Skip to content

Commit f2b8462

Browse files
Add pbar for evaluating mappings
1 parent 5b95d93 commit f2b8462

1 file changed

Lines changed: 16 additions & 7 deletions

File tree

accelforge/mapper/FFM/main.py

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@
1818
_check_einsum2pmappings_not_empty,
1919
)
2020
from accelforge._accelerated_imports import pd
21+
from tqdm import tqdm
22+
23+
from accelforge.util import delayed, parallel
2124

2225

2326
logger = logging.getLogger(__name__)
@@ -85,21 +88,27 @@ def map_workload_to_arch(
8588
print_progress=print_progress,
8689
)
8790

88-
new_mapping_data = []
89-
for i in range(len(mappings.data)):
91+
def eval_mapping(i, spec, mappings):
9092
local_spec = deepcopy(spec)
9193
local_spec.model.metrics = local_spec.mapper.info_metrics
9294
local_spec.mapping = mappings.data.iloc[i]["Total<SEP>mapping"]()
93-
# BUG: Mapping._from_pmappings create mappings that cannot be evaluated!
9495
this_mapping = evaluate_mapping(
9596
local_spec,
9697
flattened_arches=mappings.flattened_arches,
9798
evaluated_specs=mappings.evaluated_specs,
9899
)
99-
new_mapping_data.append(this_mapping.data)
100-
101-
mappings.data = pd.concat(new_mapping_data).fillna(0)
102-
100+
return i, this_mapping.data
101+
102+
results = [None] * len(mappings.data)
103+
use_pbar = (print_progress or one_pbar_only) and len(mappings.data) > 1
104+
for i, result in parallel(
105+
[delayed(eval_mapping)(i, spec, mappings) for i in range(len(mappings.data))],
106+
pbar="Evaluating chosen mappings in detail" if use_pbar else None,
107+
return_as="generator_unordered",
108+
):
109+
results[i] = result
110+
111+
mappings.data = pd.concat(results).fillna(0)
103112
return mappings
104113

105114

0 commit comments

Comments
 (0)