Spaces:
Sleeping
Sleeping
Added global failure rate
Browse files- app.py +2 -2
- summary_page.py +45 -0
app.py
CHANGED
|
@@ -58,8 +58,8 @@ def get_description_text():
|
|
| 58 |
msg = [
|
| 59 |
"Transformer CI Dashboard",
|
| 60 |
"-",
|
| 61 |
-
"
|
| 62 |
-
"
|
| 63 |
]
|
| 64 |
msg = ["**" + x + "**" for x in msg] + [""]
|
| 65 |
if Ci_results.last_update_time:
|
|
|
|
| 58 |
msg = [
|
| 59 |
"Transformer CI Dashboard",
|
| 60 |
"-",
|
| 61 |
+
"AMD runs on MI325",
|
| 62 |
+
"NVIDIA runs on A10",
|
| 63 |
]
|
| 64 |
msg = ["**" + x + "**" for x in msg] + [""]
|
| 65 |
if Ci_results.last_update_time:
|
summary_page.py
CHANGED
|
@@ -35,6 +35,42 @@ COLORS = {
|
|
| 35 |
MODEL_NAME_FONT_SIZE = 16
|
| 36 |
LABEL_FONT_SIZE = 14
|
| 37 |
LABEL_OFFSET = 1 # Distance of label from bar
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 38 |
|
| 39 |
|
| 40 |
def draw_text_and_bar(
|
|
@@ -80,6 +116,9 @@ def create_summary_page(df: pd.DataFrame, available_models: list[str]) -> plt.Fi
|
|
| 80 |
fontfamily='monospace', weight='normal')
|
| 81 |
ax.axis('off')
|
| 82 |
return fig
|
|
|
|
|
|
|
|
|
|
| 83 |
|
| 84 |
# Calculate dimensions for N-column layout
|
| 85 |
model_count = len(available_models)
|
|
@@ -91,6 +130,12 @@ def create_summary_page(df: pd.DataFrame, available_models: list[str]) -> plt.Fi
|
|
| 91 |
|
| 92 |
fig, ax = plt.subplots(figsize=(FIGURE_WIDTH, figure_height), facecolor='#000000')
|
| 93 |
ax.set_facecolor('#000000')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 94 |
|
| 95 |
visible_model_count = 0
|
| 96 |
max_y = 0
|
|
|
|
| 35 |
MODEL_NAME_FONT_SIZE = 16
|
| 36 |
LABEL_FONT_SIZE = 14
|
| 37 |
LABEL_OFFSET = 1 # Distance of label from bar
|
| 38 |
+
FAILURE_RATE_FONT_SIZE = 28
|
| 39 |
+
|
| 40 |
+
|
| 41 |
+
def calculate_overall_failure_rates(df: pd.DataFrame, available_models: list[str]) -> tuple[float, float]:
|
| 42 |
+
"""Calculate overall failure rates for AMD and NVIDIA across all models."""
|
| 43 |
+
if df.empty or not available_models:
|
| 44 |
+
return 0.0, 0.0
|
| 45 |
+
|
| 46 |
+
total_amd_tests = 0
|
| 47 |
+
total_amd_failures = 0
|
| 48 |
+
total_nvidia_tests = 0
|
| 49 |
+
total_nvidia_failures = 0
|
| 50 |
+
|
| 51 |
+
for model_name in available_models:
|
| 52 |
+
if model_name not in df.index:
|
| 53 |
+
continue
|
| 54 |
+
|
| 55 |
+
row = df.loc[model_name]
|
| 56 |
+
amd_stats, nvidia_stats = extract_model_data(row)[:2]
|
| 57 |
+
|
| 58 |
+
# AMD totals
|
| 59 |
+
amd_total = sum(amd_stats.values())
|
| 60 |
+
if amd_total > 0:
|
| 61 |
+
total_amd_tests += amd_total
|
| 62 |
+
total_amd_failures += amd_stats['failed'] + amd_stats['error']
|
| 63 |
+
|
| 64 |
+
# NVIDIA totals
|
| 65 |
+
nvidia_total = sum(nvidia_stats.values())
|
| 66 |
+
if nvidia_total > 0:
|
| 67 |
+
total_nvidia_tests += nvidia_total
|
| 68 |
+
total_nvidia_failures += nvidia_stats['failed'] + nvidia_stats['error']
|
| 69 |
+
|
| 70 |
+
amd_failure_rate = (total_amd_failures / total_amd_tests * 100) if total_amd_tests > 0 else 0.0
|
| 71 |
+
nvidia_failure_rate = (total_nvidia_failures / total_nvidia_tests * 100) if total_nvidia_tests > 0 else 0.0
|
| 72 |
+
|
| 73 |
+
return amd_failure_rate, nvidia_failure_rate
|
| 74 |
|
| 75 |
|
| 76 |
def draw_text_and_bar(
|
|
|
|
| 116 |
fontfamily='monospace', weight='normal')
|
| 117 |
ax.axis('off')
|
| 118 |
return fig
|
| 119 |
+
|
| 120 |
+
# Calculate overall failure rates
|
| 121 |
+
amd_failure_rate, nvidia_failure_rate = calculate_overall_failure_rates(df, available_models)
|
| 122 |
|
| 123 |
# Calculate dimensions for N-column layout
|
| 124 |
model_count = len(available_models)
|
|
|
|
| 130 |
|
| 131 |
fig, ax = plt.subplots(figsize=(FIGURE_WIDTH, figure_height), facecolor='#000000')
|
| 132 |
ax.set_facecolor('#000000')
|
| 133 |
+
|
| 134 |
+
# Add overall failure rates at the top as a proper title
|
| 135 |
+
failure_text = f"Overall Failure Rates: AMD {amd_failure_rate:.1f}% | NVIDIA {nvidia_failure_rate:.1f}%"
|
| 136 |
+
ax.text(50, -1.25, failure_text, ha='center', va='top',
|
| 137 |
+
color='#FFFFFF', fontsize=FAILURE_RATE_FONT_SIZE,
|
| 138 |
+
fontfamily='monospace', fontweight='bold')
|
| 139 |
|
| 140 |
visible_model_count = 0
|
| 141 |
max_y = 0
|