|
|
@@ -583,20 +583,20 @@ bool gpt_params_parse_ex(int argc, char ** argv, gpt_params & params) {
|
|
|
break;
|
|
|
}
|
|
|
params.n_gpu_layers = std::stoi(argv[i]);
|
|
|
-#ifndef LLAMA_SUPPORTS_GPU_OFFLOAD
|
|
|
- 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
|
|
|
+ if (!llama_supports_gpu_offload()) {
|
|
|
+ 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");
|
|
|
+ }
|
|
|
} else if (arg == "--gpu-layers-draft" || arg == "-ngld" || arg == "--n-gpu-layers-draft") {
|
|
|
if (++i >= argc) {
|
|
|
invalid_param = true;
|
|
|
break;
|
|
|
}
|
|
|
params.n_gpu_layers_draft = std::stoi(argv[i]);
|
|
|
-#ifndef LLAMA_SUPPORTS_GPU_OFFLOAD
|
|
|
- fprintf(stderr, "warning: not compiled with GPU offload support, --n-gpu-layers-draft option will be ignored\n");
|
|
|
- fprintf(stderr, "warning: see main README.md for information on enabling GPU BLAS support\n");
|
|
|
-#endif
|
|
|
+ if (!llama_supports_gpu_offload()) {
|
|
|
+ fprintf(stderr, "warning: not compiled with GPU offload support, --n-gpu-layers-draft option will be ignored\n");
|
|
|
+ fprintf(stderr, "warning: see main README.md for information on enabling GPU BLAS support\n");
|
|
|
+ }
|
|
|
} else if (arg == "--main-gpu" || arg == "-mg") {
|
|
|
if (++i >= argc) {
|
|
|
invalid_param = true;
|
|
|
@@ -637,11 +637,11 @@ bool gpt_params_parse_ex(int argc, char ** argv, gpt_params & params) {
|
|
|
const std::regex regex{R"([,/]+)"};
|
|
|
std::sregex_token_iterator it{arg_next.begin(), arg_next.end(), regex, -1};
|
|
|
std::vector<std::string> split_arg{it, {}};
|
|
|
- if (split_arg.size() >= LLAMA_MAX_DEVICES) {
|
|
|
+ if (split_arg.size() >= llama_max_devices()) {
|
|
|
invalid_param = true;
|
|
|
break;
|
|
|
}
|
|
|
- for (size_t i = 0; i < LLAMA_MAX_DEVICES; ++i) {
|
|
|
+ for (size_t i = 0; i < llama_max_devices(); ++i) {
|
|
|
if (i < split_arg.size()) {
|
|
|
params.tensor_split[i] = std::stof(split_arg[i]);
|
|
|
} else {
|
|
|
@@ -989,30 +989,30 @@ void gpt_print_usage(int /*argc*/, char ** argv, const gpt_params & params) {
|
|
|
printf(" -cb, --cont-batching enable continuous batching (a.k.a dynamic batching) (default: disabled)\n");
|
|
|
printf(" --mmproj MMPROJ_FILE path to a multimodal projector file for LLaVA. see examples/llava/README.md\n");
|
|
|
printf(" --image IMAGE_FILE path to an image file. use with multimodal models\n");
|
|
|
- if (llama_mlock_supported()) {
|
|
|
+ if (llama_supports_mlock()) {
|
|
|
printf(" --mlock force system to keep model in RAM rather than swapping or compressing\n");
|
|
|
}
|
|
|
- if (llama_mmap_supported()) {
|
|
|
+ if (llama_supports_mmap()) {
|
|
|
printf(" --no-mmap do not memory-map model (slower load but may reduce pageouts if not using mlock)\n");
|
|
|
}
|
|
|
printf(" --numa attempt optimizations that help on some NUMA systems\n");
|
|
|
printf(" if run without this previously, it is recommended to drop the system page cache before using this\n");
|
|
|
printf(" see https://github.com/ggerganov/llama.cpp/issues/1437\n");
|
|
|
-#ifdef LLAMA_SUPPORTS_GPU_OFFLOAD
|
|
|
- printf(" -ngl N, --n-gpu-layers N\n");
|
|
|
- printf(" number of layers to store in VRAM\n");
|
|
|
- printf(" -ngld N, --n-gpu-layers-draft N\n");
|
|
|
- printf(" number of layers to store in VRAM for the draft model\n");
|
|
|
- printf(" -sm SPLIT_MODE, --split-mode SPLIT_MODE\n");
|
|
|
- printf(" how to split the model across multiple GPUs, one of:\n");
|
|
|
- printf(" - none: use one GPU only\n");
|
|
|
- printf(" - layer (default): split layers and KV across GPUs\n");
|
|
|
- printf(" - row: split rows across GPUs\n");
|
|
|
- printf(" -ts SPLIT, --tensor-split SPLIT\n");
|
|
|
- printf(" fraction of the model to offload to each GPU, comma-separated list of proportions, e.g. 3,1\n");
|
|
|
- printf(" -mg i, --main-gpu i the GPU to use for the model (with split-mode = none),\n");
|
|
|
- printf(" or for intermediate results and KV (with split-mode = row) (default: %d)\n", params.main_gpu);
|
|
|
-#endif // LLAMA_SUPPORTS_GPU_OFFLOAD
|
|
|
+ if (llama_supports_gpu_offload()) {
|
|
|
+ printf(" -ngl N, --n-gpu-layers N\n");
|
|
|
+ printf(" number of layers to store in VRAM\n");
|
|
|
+ printf(" -ngld N, --n-gpu-layers-draft N\n");
|
|
|
+ printf(" number of layers to store in VRAM for the draft model\n");
|
|
|
+ printf(" -sm SPLIT_MODE, --split-mode SPLIT_MODE\n");
|
|
|
+ printf(" how to split the model across multiple GPUs, one of:\n");
|
|
|
+ printf(" - none: use one GPU only\n");
|
|
|
+ printf(" - layer (default): split layers and KV across GPUs\n");
|
|
|
+ printf(" - row: split rows across GPUs\n");
|
|
|
+ printf(" -ts SPLIT, --tensor-split SPLIT\n");
|
|
|
+ printf(" fraction of the model to offload to each GPU, comma-separated list of proportions, e.g. 3,1\n");
|
|
|
+ printf(" -mg i, --main-gpu i the GPU to use for the model (with split-mode = none),\n");
|
|
|
+ printf(" or for intermediate results and KV (with split-mode = row) (default: %d)\n", params.main_gpu);
|
|
|
+ }
|
|
|
printf(" --verbose-prompt print a verbose prompt before generation (default: %s)\n", params.verbose_prompt ? "true" : "false");
|
|
|
printf(" --no-display-prompt don't print prompt at generation (default: %s)\n", !params.display_prompt ? "true" : "false");
|
|
|
printf(" -gan N, --grp-attn-n N\n");
|
|
|
@@ -1651,7 +1651,7 @@ void dump_non_result_info_yaml(FILE * stream, const gpt_params & params, const l
|
|
|
fprintf(stream, "cont_batching: %s # default: false\n", params.cont_batching ? "true" : "false");
|
|
|
fprintf(stream, "temp: %f # default: 0.8\n", sparams.temp);
|
|
|
|
|
|
- const std::vector<float> tensor_split_vector(params.tensor_split, params.tensor_split + LLAMA_MAX_DEVICES);
|
|
|
+ const std::vector<float> tensor_split_vector(params.tensor_split, params.tensor_split + llama_max_devices());
|
|
|
dump_vector_float_yaml(stream, "tensor_split", tensor_split_vector);
|
|
|
|
|
|
fprintf(stream, "tfs: %f # default: 1.0\n", sparams.tfs_z);
|