mirror of
https://github.com/ggerganov/llama.cpp.git
synced 2024-11-11 13:30:35 +00:00
gguf-split : add basic checks (#9499)
* gguf-split : do not overwrite existing files when merging * gguf-split : error when too many arguments are passed
This commit is contained in:
parent
6988da94a2
commit
e6deac31f7
@ -152,7 +152,7 @@ static void split_params_parse_ex(int argc, const char ** argv, split_params & p
|
|||||||
throw std::invalid_argument("error: invalid parameter for argument: " + arg);
|
throw std::invalid_argument("error: invalid parameter for argument: " + arg);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (argc - arg_idx < 2) {
|
if (argc - arg_idx != 2) {
|
||||||
throw std::invalid_argument("error: bad arguments");
|
throw std::invalid_argument("error: bad arguments");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -389,10 +389,17 @@ static void gguf_merge(const split_params & split_params) {
|
|||||||
int n_split = 1;
|
int n_split = 1;
|
||||||
int total_tensors = 0;
|
int total_tensors = 0;
|
||||||
|
|
||||||
auto * ctx_out = gguf_init_empty();
|
// avoid overwriting existing output file
|
||||||
|
if (std::ifstream(split_params.output.c_str())) {
|
||||||
|
fprintf(stderr, "%s: output file %s already exists\n", __func__, split_params.output.c_str());
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
|
||||||
std::ofstream fout(split_params.output.c_str(), std::ios::binary);
|
std::ofstream fout(split_params.output.c_str(), std::ios::binary);
|
||||||
fout.exceptions(std::ofstream::failbit); // fail fast on write errors
|
fout.exceptions(std::ofstream::failbit); // fail fast on write errors
|
||||||
|
|
||||||
|
auto * ctx_out = gguf_init_empty();
|
||||||
|
|
||||||
std::vector<uint8_t> read_data;
|
std::vector<uint8_t> read_data;
|
||||||
std::vector<ggml_context *> ctx_metas;
|
std::vector<ggml_context *> ctx_metas;
|
||||||
std::vector<gguf_context *> ctx_ggufs;
|
std::vector<gguf_context *> ctx_ggufs;
|
||||||
|
Loading…
Reference in New Issue
Block a user