ggml : fix cpy op for IQ-quants to use reference impl

ggml-ci
This commit is contained in:
Georgi Gerganov 2024-12-17 17:54:04 +02:00
parent 382bc7f2e8
commit b0597b1493
No known key found for this signature in database
GPG Key ID: 449E073F9DC10735
2 changed files with 16 additions and 6 deletions

View File

@ -2968,8 +2968,12 @@ static void ggml_compute_forward_dup_f16(
id += ne00 * (ne01 - ir1);
}
}
} else if (ggml_get_type_traits_cpu(dst->type)->from_float) {
ggml_from_float_t const quantize_row_q = ggml_get_type_traits_cpu(dst->type)->from_float;
} else if (ggml_get_type_traits_cpu(dst->type)->from_float || ggml_get_type_traits(dst->type)->from_float_ref) {
ggml_from_float_t quantize_row_q = ggml_get_type_traits_cpu(dst->type)->from_float;
if (!quantize_row_q) {
quantize_row_q = ggml_get_type_traits(dst->type)->from_float_ref;
}
float * src0_f32 = (float *) params->wdata + (ne00 + CACHE_LINE_SIZE_F32) * ith;
size_t id = 0;
@ -3565,8 +3569,11 @@ static void ggml_compute_forward_dup_f32(
id += rs * (ne01 - ir1);
}
}
} else if (ggml_get_type_traits_cpu(dst->type)->from_float) {
ggml_from_float_t const quantize_row_q = ggml_get_type_traits_cpu(dst->type)->from_float;
} else if (ggml_get_type_traits_cpu(dst->type)->from_float || ggml_get_type_traits(dst->type)->from_float_ref) {
ggml_from_float_t quantize_row_q = ggml_get_type_traits_cpu(dst->type)->from_float;
if (!quantize_row_q) {
quantize_row_q = ggml_get_type_traits(dst->type)->from_float_ref;
}
size_t id = 0;
size_t rs = nb0 * (ne00 / ggml_blck_size(dst->type));

View File

@ -3549,8 +3549,11 @@ static std::vector<std::unique_ptr<test_case>> make_test_cases_eval() {
for (ggml_type type_src : {GGML_TYPE_F16, GGML_TYPE_F32}) {
for (ggml_type type_dst : all_types) {
test_cases.emplace_back(new test_cpy(type_src, type_dst, {256, 4, 4, 4}));
test_cases.emplace_back(new test_cpy(type_src, type_dst, {256, 2, 3, 4}, {0, 2, 1, 3})); // cpy by rows
//if (type_dst == GGML_TYPE_IQ2_S || type_dst == GGML_TYPE_IQ3_XXS || type_dst == GGML_TYPE_IQ3_S) {
// continue;
//}
test_cases.emplace_back(new test_cpy(type_src, type_dst, {256, 4, 4, 4}));
test_cases.emplace_back(new test_cpy(type_src, type_dst, {256, 2, 3, 4}, {0, 2, 1, 3})); // cpy by rows
}
}
for (ggml_type type_src : {GGML_TYPE_F16, GGML_TYPE_F32}) {