Skip to content

Commit fac51bc

Browse files
committed
filter stale config data when parallelism settings change between runs
1 parent cf2c453 commit fac51bc

1 file changed

Lines changed: 19 additions & 3 deletions

File tree

packages/app/src/components/inference/hooks/useChartData.ts

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -121,9 +121,25 @@ export function useChartData(
121121
if (!allRows || !sequenceIslOsl) return [];
122122
const seqFilter = (r: { isl: number; osl: number }) =>
123123
r.isl === sequenceIslOsl.isl && r.osl === sequenceIslOsl.osl;
124-
const mainRows = allRows
125-
.filter(seqFilter)
126-
.map((r) => (selectedRunDate ? { ...r, date: selectedRunDate, actualDate: r.date } : r));
124+
const seqFiltered = allRows.filter(seqFilter);
125+
126+
// For each (hw, framework, spec_method, disagg, precision) group, keep only
127+
// rows from the most recent date. When parallelism settings change between runs,
128+
// old config_ids create stale data points under the same legend line — drop them.
129+
const maxDatePerGroup = new Map<string, string>();
130+
for (const r of seqFiltered) {
131+
const key = `${r.hardware}|${r.framework}|${r.spec_method}|${r.disagg}|${r.precision}`;
132+
const cur = maxDatePerGroup.get(key);
133+
if (!cur || r.date > cur) maxDatePerGroup.set(key, r.date);
134+
}
135+
const deduped = seqFiltered.filter((r) => {
136+
const key = `${r.hardware}|${r.framework}|${r.spec_method}|${r.disagg}|${r.precision}`;
137+
return r.date === maxDatePerGroup.get(key);
138+
});
139+
140+
const mainRows = deduped.map((r) =>
141+
selectedRunDate ? { ...r, date: selectedRunDate, actualDate: r.date } : r,
142+
);
127143
if (comparisonDates.length === 0) return mainRows;
128144
const extraRows = comparisonQueries.flatMap((q, i) =>
129145
(q.data ?? [])

0 commit comments

Comments
 (0)