2025-02-02 14:58:18 -05:00
|
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
|
2024-12-01 19:01:00 -06:00
|
|
|
import json
|
|
|
|
|
|
|
|
import matplotlib.pyplot as plt
|
|
|
|
import pandas as pd
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
|
|
|
|
|
data = []
|
|
|
|
for name in ['disagg_prefill', 'chunked_prefill']:
|
|
|
|
for qps in [2, 4, 6, 8]:
|
|
|
|
with open(f"results/{name}-qps-{qps}.json") as f:
|
|
|
|
x = json.load(f)
|
|
|
|
x['name'] = name
|
|
|
|
x['qps'] = qps
|
|
|
|
data.append(x)
|
|
|
|
|
|
|
|
df = pd.DataFrame.from_dict(data)
|
|
|
|
dis_df = df[df['name'] == 'disagg_prefill']
|
|
|
|
chu_df = df[df['name'] == 'chunked_prefill']
|
|
|
|
|
|
|
|
plt.style.use('bmh')
|
|
|
|
plt.rcParams['font.size'] = 20
|
|
|
|
|
|
|
|
for key in [
|
|
|
|
'mean_ttft_ms', 'median_ttft_ms', 'p99_ttft_ms', 'mean_itl_ms',
|
|
|
|
'median_itl_ms', 'p99_itl_ms'
|
|
|
|
]:
|
|
|
|
|
|
|
|
fig, ax = plt.subplots(figsize=(11, 7))
|
|
|
|
plt.plot(dis_df['qps'],
|
|
|
|
dis_df[key],
|
|
|
|
label='disagg_prefill',
|
|
|
|
marker='o',
|
|
|
|
linewidth=4)
|
|
|
|
plt.plot(chu_df['qps'],
|
|
|
|
chu_df[key],
|
|
|
|
label='chunked_prefill',
|
|
|
|
marker='o',
|
|
|
|
linewidth=4)
|
|
|
|
ax.legend()
|
|
|
|
|
|
|
|
ax.set_xlabel('QPS')
|
|
|
|
ax.set_ylabel(key)
|
|
|
|
ax.set_ylim(bottom=0)
|
|
|
|
fig.savefig(f'results/{key}.png')
|
|
|
|
plt.close(fig)
|