in src/PerfHistoryDisplay.js [107:226]
render() {
function gen_summary(delta) {
delta = Math.round(delta * 10000) / 100;
if (delta >= 0) {
delta = "+" + delta;
}
delta += "%";
return delta;
}
function is_optimized(delta) {
return delta < -1 * THRESHOLD;
}
function is_regression(delta) {
return delta > THRESHOLD;
}
function result_icon(result) {
if (is_optimized(result))
return (
<span role="img" style={{ color: "green" }} aria-label="passed">
0
</span>
);
if (is_regression(result))
return (
<span role="img" style={{ color: "red" }} aria-label="failed">
X
</span>
);
return (
<span role="img" style={{ color: "grey" }} aria-label="passed">
-
</span>
);
}
let builds = this.state.builds;
const visible_jobs = this.state.known_jobs.filter((name) =>
this.shouldShowJob(name)
);
const visible_jobs_head = visible_jobs.map((jobName) => (
<th className="rotate" key={jobName} width="20px;">
<div>{jobName}</div>
</th>
));
const benchmark_index = this.state.benchmark_index;
const rows = builds.map((build) => {
const sb_map = build.sb_map;
const pytorch_version =
build.sb_map.get("machine_info")["pytorch_version"];
const status_cols = visible_jobs.map((jobName) => {
const sb = sb_map.get("benchmarks")[benchmark_index.get(jobName)];
const colkey = pytorch_version + "-" + jobName;
let cell = <Fragment />;
const prev_delta =
(sb["stats"]["mean"] - sb["stats"]["prev_mean"]) /
sb["stats"]["prev_mean"];
if (sb !== undefined) {
cell = result_icon(prev_delta);
}
return (
<Tooltip
key={jobName}
overlay={
jobName +
" Mean: " +
round_float(sb["stats"]["mean"]) +
", prev mean: " +
round_float(sb["stats"]["prev_mean"]) +
", delta: " +
gen_summary(prev_delta)
}
mouseLeaveDelay={0}
placement="rightTop"
destroyTooltipOnHide={true}
>
<td
key={colkey}
className="icon-cell"
style={{
textAlign: "right",
fontFamily: "sans-serif",
padding: 0,
}}
>
{" "}
{cell}{" "}
</td>
</Tooltip>
);
});
return (
<tr key={pytorch_version}>
<th className="left-cell"> torch-{pytorch_version} </th>
{status_cols}
</tr>
);
});
return (
<div>
<h2>TorchBench v0 nightly testing result</h2>
<div>
<ul className="menu"></ul>
</div>
<table className="perfHistoryTable">
<thead>
<tr>
<th className="left-cell">Build</th>
{visible_jobs_head}
</tr>
</thead>
<tbody>{rows}</tbody>
</table>
</div>
);
}