Skip to content

Commit 83965d0

Browse files
LucasWilkinsonadobrzyn
authored andcommitted
[Misc] Benchmark Serving Script Support Appending Results (vllm-project#17028)
Signed-off-by: Lucas Wilkinson <[email protected]> Signed-off-by: Agata Dobrzyniewicz <[email protected]>
1 parent 2115c76 commit 83965d0

File tree

1 file changed

+20
-11
lines changed

1 file changed

+20
-11
lines changed

benchmarks/benchmark_serving.py

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -713,7 +713,7 @@ def main(args: argparse.Namespace):
713713
))
714714

715715
# Save config and results to json
716-
if args.save_result:
716+
if args.save_result or args.append_result:
717717
result_json: dict[str, Any] = {}
718718

719719
# Setup
@@ -734,6 +734,14 @@ def main(args: argparse.Namespace):
734734
raise ValueError(
735735
"Invalid metadata format. Please use KEY=VALUE format."
736736
)
737+
# Traffic
738+
result_json["request_rate"] = (args.request_rate if args.request_rate
739+
< float("inf") else "inf")
740+
result_json["burstiness"] = args.burstiness
741+
result_json["max_concurrency"] = args.max_concurrency
742+
743+
# Merge with benchmark result
744+
result_json = {**result_json, **benchmark_result}
737745

738746
if not args.save_detailed:
739747
# Remove fields with too many data points
@@ -744,15 +752,6 @@ def main(args: argparse.Namespace):
744752
if field in result_json:
745753
del result_json[field]
746754

747-
# Traffic
748-
result_json["request_rate"] = (args.request_rate if args.request_rate
749-
< float("inf") else "inf")
750-
result_json["burstiness"] = args.burstiness
751-
result_json["max_concurrency"] = args.max_concurrency
752-
753-
# Merge with benchmark result
754-
result_json = {**result_json, **benchmark_result}
755-
756755
# Save to file
757756
base_model_id = model_id.split("/")[-1]
758757
max_concurrency_str = (f"-concurrency{args.max_concurrency}"
@@ -762,7 +761,12 @@ def main(args: argparse.Namespace):
762761
file_name = args.result_filename
763762
if args.result_dir:
764763
file_name = os.path.join(args.result_dir, file_name)
765-
with open(file_name, "w", encoding='utf-8') as outfile:
764+
with open(file_name,
765+
mode="a+" if args.append_result else "w",
766+
encoding='utf-8') as outfile:
767+
# Append a newline.
768+
if args.append_result and outfile.tell() != 0:
769+
outfile.write("\n")
766770
json.dump(result_json, outfile)
767771
save_to_pytorch_benchmark_format(args, result_json, file_name)
768772

@@ -894,6 +898,11 @@ def main(args: argparse.Namespace):
894898
help="When saving the results, whether to include per request "
895899
"information such as response, error, ttfs, tpots, etc.",
896900
)
901+
parser.add_argument(
902+
"--append-result",
903+
action="store_true",
904+
help="Append the benchmark result to the existing json file.",
905+
)
897906
parser.add_argument(
898907
"--metadata",
899908
metavar="KEY=VALUE",

0 commit comments

Comments
 (0)