Skip to content

Commit 4fe1f43

Browse files
committed
Use the work buffer instead to fix MSVC build
1 parent 8f5d443 commit 4fe1f43

File tree

1 file changed

+13
-4
lines changed

1 file changed

+13
-4
lines changed

ggml.c

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5265,6 +5265,8 @@ static void ggml_compute_forward_add_q_f32(
52655265
const int ir0 = dr*ith;
52665266
const int ir1 = MIN(ir0 + dr, nr);
52675267

5268+
float * wdata = (float*) params->wdata + ne00 * ith;
5269+
52685270
for (int ir = ir0; ir < ir1; ++ir) {
52695271
// src0 indices
52705272
const int i03 = ir/(ne02*ne01);
@@ -5287,12 +5289,11 @@ static void ggml_compute_forward_add_q_f32(
52875289
assert(ne00 % 32 == 0);
52885290

52895291
// unquantize row from src0 to temp buffer
5290-
float tmp[ne00];
5291-
dequantize_row_q(src0_row, tmp, ne00);
5292+
dequantize_row_q(src0_row, wdata, ne00);
52925293
// add src1
5293-
ggml_vec_acc_f32(ne00, tmp, src1_row);
5294+
ggml_vec_acc_f32(ne00, wdata, src1_row);
52945295
// quantize row to dst
5295-
quantize_row_q(tmp, dst_row, ne00);
5296+
quantize_row_q(wdata, dst_row, ne00);
52965297
}
52975298
}
52985299

@@ -9481,6 +9482,14 @@ void ggml_graph_compute(struct ggml_context * ctx, struct ggml_cgraph * cgraph)
94819482
case GGML_OP_ADD:
94829483
{
94839484
node->n_tasks = n_threads;
9485+
9486+
size_t cur = 0;
9487+
9488+
if (node->src0->type == GGML_TYPE_Q4_0 || node->src0->type == GGML_TYPE_Q4_1) {
9489+
cur = GGML_TYPE_SIZE[GGML_TYPE_F32] * node->src0->ne[0] * n_threads;
9490+
}
9491+
9492+
work_size = MAX(work_size, cur);
94849493
} break;
94859494
case GGML_OP_SUB:
94869495
case GGML_OP_MUL:

0 commit comments

Comments
 (0)