summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJiří Podivín <66251151+jpodivin@users.noreply.github.com>2023-11-17 16:19:16 +0100
committerGitHub <noreply@github.com>2023-11-17 17:19:16 +0200
commitba4cf5c0bf37a729d29e899dadf14541cddd23d4 (patch)
tree9dcf5b40fc32a57c0c7b602a8e47cf8c4b7583a6
parente85bb1a8e736228a1f0d965777de5f77f22834b8 (diff)
train : move number of gpu layers argument parsing to common/train.cpp (#4074)
- introduces help entry for the argument - cuts '--gpu-layers' form in order to simplify usage and documentation. Signed-off-by: Jiri Podivin <jpodivin@gmail.com> Co-authored-by: Jiri Podivin <jpodivin@redhat.com>
-rw-r--r--common/train.cpp12
-rw-r--r--examples/finetune/finetune.cpp11
2 files changed, 12 insertions, 11 deletions
diff --git a/common/train.cpp b/common/train.cpp
index 964b156b..773e2c59 100644
--- a/common/train.cpp
+++ b/common/train.cpp
@@ -1136,6 +1136,7 @@ void print_common_train_usage(int /*argc*/, char ** /*argv*/, const struct train
fprintf(stderr, " --adam-beta2 N AdamW beta2 in interval [0,1). How much to smooth the second moment of gradients. (default %f)\n", params->adam_beta2);
fprintf(stderr, " --adam-gclip N AdamW gradient clipping. Disabled when zero. (default %f)\n", params->adam_gclip);
fprintf(stderr, " --adam-epsf N AdamW epsilon for convergence test. Disabled when <= zero. (default %f)\n", params->adam_eps_f);
+ fprintf(stderr, " -ngl N, --n-gpu-layers N Number of model layers to offload to GPU (default %d)", params->n_gpu_layers);
fprintf(stderr, "\n");
}
@@ -1355,6 +1356,17 @@ bool consume_common_train_arg(
return true;
}
params->adam_gclip = std::stof(argv[i]);
+ } else if (arg == "-ngl" || arg == "--n-gpu-layers") {
+ if (++i >= argc) {
+ *invalid_param = true;
+ return true;
+ }
+#ifdef LLAMA_SUPPORTS_GPU_OFFLOAD
+ params->n_gpu_layers = std::stoi(argv[i]);
+#else
+ fprintf(stderr, "warning: not compiled with GPU offload support, --n-gpu-layers option will be ignored\n");
+ fprintf(stderr, "warning: see main README.md for information on enabling GPU BLAS support\n");
+#endif
} else if (arg == "-h" || arg == "--help") {
params->print_usage = true;
return true;
diff --git a/examples/finetune/finetune.cpp b/examples/finetune/finetune.cpp
index 7fecce25..af46e44a 100644
--- a/examples/finetune/finetune.cpp
+++ b/examples/finetune/finetune.cpp
@@ -1460,17 +1460,6 @@ static bool train_params_parse(int argc, char ** argv, struct train_params * par
}
params->n_rank_w3 = std::stoi(argv[i]);
params->custom_n_rank_w3 = true;
- } else if (arg == "--gpu-layers" || arg == "-ngl" || arg == "--n-gpu-layers") {
- if (++i >= argc) {
- invalid_param = true;
- break;
- }
-#ifdef LLAMA_SUPPORTS_GPU_OFFLOAD
- params->common.n_gpu_layers = std::stoi(argv[i]);
-#else
- fprintf(stderr, "warning: not compiled with GPU offload support, --n-gpu-layers option will be ignored\n");
- fprintf(stderr, "warning: see main README.md for information on enabling GPU BLAS support\n");
-#endif
} else {
fprintf(stderr, "error: unknown argument: %s\n", arg.c_str());
train_print_usage(argc, argv, &default_params);