MCPcopy Create free account
hub / github.com/PABannier/bark.cpp / ggml_quantize_weights

Function ggml_quantize_weights

bark.cpp:273–485  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

271}
272
273static bool ggml_quantize_weights(
274 std::ifstream& fin,
275 std::ofstream& fout,
276 const ggml_ftype ftype,
277 const std::vector<std::string>& to_quant,
278 const std::vector<std::string>& to_skip) {
279 ggml_type qtype = GGML_TYPE_F32;
280
281 switch (ftype) {
282 case GGML_FTYPE_MOSTLY_Q4_0:
283 qtype = GGML_TYPE_Q4_0;
284 break;
285 case GGML_FTYPE_MOSTLY_Q4_1:
286 qtype = GGML_TYPE_Q4_1;
287 break;
288 case GGML_FTYPE_MOSTLY_Q5_0:
289 qtype = GGML_TYPE_Q5_0;
290 break;
291 case GGML_FTYPE_MOSTLY_Q5_1:
292 qtype = GGML_TYPE_Q5_1;
293 break;
294 case GGML_FTYPE_MOSTLY_Q8_0:
295 qtype = GGML_TYPE_Q8_0;
296 break;
297 case GGML_FTYPE_UNKNOWN:
298 case GGML_FTYPE_ALL_F32:
299 case GGML_FTYPE_MOSTLY_F16:
300 case GGML_FTYPE_MOSTLY_Q4_1_SOME_F16:
301 case GGML_FTYPE_MOSTLY_Q2_K:
302 case GGML_FTYPE_MOSTLY_Q3_K:
303 case GGML_FTYPE_MOSTLY_Q4_K:
304 case GGML_FTYPE_MOSTLY_Q5_K:
305 case GGML_FTYPE_MOSTLY_Q6_K: {
306 fprintf(stderr, "%s: invalid model type %d\n", __func__, ftype);
307 return false;
308 }
309 };
310
311 if (!ggml_is_quantized(qtype)) {
312 fprintf(stderr, "%s: invalid quantization type %d (%s)\n", __func__, qtype, ggml_type_name(qtype));
313 return false;
314 }
315
316 size_t total_size_org = 0;
317 size_t total_size_new = 0;
318
319 std::vector<float> work;
320
321 std::vector<uint8_t> data_u8;
322 std::vector<ggml_fp16_t> data_f16;
323 std::vector<float> data_f32;
324
325 std::vector<int64_t> hist_all(1 << 4, 0);
326
327 int32_t n_tensors = 0;
328 read_safe(fin, n_tensors);
329 write_safe(fout, n_tensors);
330

Callers 1

Calls 6

readMethod · 0.80
dataMethod · 0.80
writeMethod · 0.80
read_safeFunction · 0.70
write_safeFunction · 0.70
sizeMethod · 0.45

Tested by

no test coverage detected