Skip to content

Commit ed848a2

Browse files
committed
Use the work buffer instead to fix MSVC build
1 parent 1b51c73 commit ed848a2

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
@@ -5481,6 +5481,8 @@ static void ggml_compute_forward_add_q_f32(
54815481
const int ir0 = dr*ith;
54825482
const int ir1 = MIN(ir0 + dr, nr);
54835483

5484+
float * wdata = (float*) params->wdata + ne00 * ith;
5485+
54845486
for (int ir = ir0; ir < ir1; ++ir) {
54855487
// src0 indices
54865488
const int i03 = ir/(ne02*ne01);
@@ -5503,12 +5505,11 @@ static void ggml_compute_forward_add_q_f32(
55035505
assert(ne00 % 32 == 0);
55045506

55055507
// unquantize row from src0 to temp buffer
5506-
float tmp[ne00];
5507-
dequantize_row_q(src0_row, tmp, ne00);
5508+
dequantize_row_q(src0_row, wdata, ne00);
55085509
// add src1
5509-
ggml_vec_acc_f32(ne00, tmp, src1_row);
5510+
ggml_vec_acc_f32(ne00, wdata, src1_row);
55105511
// quantize row to dst
5511-
quantize_row_q(tmp, dst_row, ne00);
5512+
quantize_row_q(wdata, dst_row, ne00);
55125513
}
55135514
}
55145515

@@ -9715,6 +9716,14 @@ void ggml_graph_compute(struct ggml_context * ctx, struct ggml_cgraph * cgraph)
97159716
case GGML_OP_ADD:
97169717
{
97179718
node->n_tasks = n_threads;
9719+
9720+
size_t cur = 0;
9721+
9722+
if (node->src0->type == GGML_TYPE_Q4_0 || node->src0->type == GGML_TYPE_Q4_1) {
9723+
cur = GGML_TYPE_SIZE[GGML_TYPE_F32] * node->src0->ne[0] * n_threads;
9724+
}
9725+
9726+
work_size = MAX(work_size, cur);
97189727
} break;
97199728
case GGML_OP_SUB:
97209729
case GGML_OP_MUL:

0 commit comments

Comments
 (0)