Skip to content

Commit eb9f945

Browse files
committed
llama-bench : add optional progress messages
1 parent 8ebe8dd commit eb9f945

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

examples/llama-bench/llama-bench.cpp

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -249,6 +249,7 @@ struct cmd_params {
249249
ggml_sched_priority prio;
250250
int delay;
251251
bool verbose;
252+
bool progress;
252253
output_formats output_format;
253254
output_formats output_format_stderr;
254255
};
@@ -280,6 +281,7 @@ static const cmd_params cmd_params_defaults = {
280281
/* prio */ GGML_SCHED_PRIO_NORMAL,
281282
/* delay */ 0,
282283
/* verbose */ false,
284+
/* progress */ false,
283285
/* output_format */ MARKDOWN,
284286
/* output_format_stderr */ NONE,
285287
};
@@ -319,6 +321,7 @@ static void print_usage(int /* argc */, char ** argv) {
319321
printf(" -o, --output <csv|json|jsonl|md|sql> (default: %s)\n", output_format_str(cmd_params_defaults.output_format));
320322
printf(" -oe, --output-err <csv|json|jsonl|md|sql> (default: %s)\n", output_format_str(cmd_params_defaults.output_format_stderr));
321323
printf(" -v, --verbose (default: %s)\n", cmd_params_defaults.verbose ? "1" : "0");
324+
printf(" --progress (default: %s)\n", cmd_params_defaults.progress ? "1" : "0");
322325
printf("\n");
323326
printf("Multiple values can be given for each parameter by separating them with ',' or by specifying the parameter multiple times.\n");
324327
}
@@ -616,6 +619,8 @@ static cmd_params parse_cmd_params(int argc, char ** argv) {
616619
invalid_param = !output_format_from_str(argv[i], params.output_format_stderr);
617620
} else if (arg == "-v" || arg == "--verbose") {
618621
params.verbose = true;
622+
} else if (arg == "--progress") {
623+
params.progress = true;
619624
} else {
620625
invalid_param = true;
621626
break;
@@ -1523,7 +1528,13 @@ int main(int argc, char ** argv) {
15231528
llama_model * lmodel = nullptr;
15241529
const cmd_params_instance * prev_inst = nullptr;
15251530

1531+
int params_idx = 0;
1532+
auto params_count = params_instances.size();
15261533
for (const auto & inst : params_instances) {
1534+
params_idx ++;
1535+
if (params.progress) {
1536+
fprintf(stderr, "llama-bench: benchmark %d/%ld: starting\n", params_idx, params_count);
1537+
}
15271538
// keep the same model between tests when possible
15281539
if (!lmodel || !prev_inst || !inst.equal_mparams(*prev_inst)) {
15291540
if (lmodel) {
@@ -1573,10 +1584,16 @@ int main(int argc, char ** argv) {
15731584

15741585
// warmup run
15751586
if (t.n_prompt > 0) {
1587+
if (params.progress) {
1588+
fprintf(stderr, "llama-bench: benchmark %d/%ld: warmup prompt run\n", params_idx, params_count);
1589+
}
15761590
//test_prompt(ctx, std::min(t.n_batch, std::min(t.n_prompt, 32)), 0, t.n_batch, t.n_threads);
15771591
test_prompt(ctx, t.n_prompt, 0, t.n_batch, t.n_threads);
15781592
}
15791593
if (t.n_gen > 0) {
1594+
if (params.progress) {
1595+
fprintf(stderr, "llama-bench: benchmark %d/%ld: warmup generation run\n", params_idx, params_count);
1596+
}
15801597
test_gen(ctx, 1, 0, t.n_threads);
15811598
}
15821599

@@ -1586,9 +1603,15 @@ int main(int argc, char ** argv) {
15861603
uint64_t t_start = get_time_ns();
15871604

15881605
if (t.n_prompt > 0) {
1606+
if (params.progress) {
1607+
fprintf(stderr, "llama-bench: benchmark %d/%ld: prompt run %d/%d\n", params_idx, params_count, i + 1, params.reps);
1608+
}
15891609
test_prompt(ctx, t.n_prompt, 0, t.n_batch, t.n_threads);
15901610
}
15911611
if (t.n_gen > 0) {
1612+
if (params.progress) {
1613+
fprintf(stderr, "llama-bench: benchmark %d/%ld: generation run %d/%d\n", params_idx, params_count, i + 1, params.reps);
1614+
}
15921615
test_gen(ctx, t.n_gen, t.n_prompt, t.n_threads);
15931616
}
15941617

0 commit comments

Comments
 (0)