Skip to content

Commit 144c90c

Browse files
committed
Use the work buffer instead to fix MSVC build
1 parent 877f857 commit 144c90c

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
@@ -5974,6 +5974,8 @@ static void ggml_compute_forward_add_q_f32(
59745974
const int ir0 = dr*ith;
59755975
const int ir1 = MIN(ir0 + dr, nr);
59765976

5977+
float * wdata = (float*) params->wdata + ne00 * ith;
5978+
59775979
for (int ir = ir0; ir < ir1; ++ir) {
59785980
// src0 indices
59795981
const int i03 = ir/(ne02*ne01);
@@ -5996,12 +5998,11 @@ static void ggml_compute_forward_add_q_f32(
59965998
assert(ne00 % 32 == 0);
59975999

59986000
// unquantize row from src0 to temp buffer
5999-
float tmp[ne00];
6000-
dequantize_row_q(src0_row, tmp, ne00);
6001+
dequantize_row_q(src0_row, wdata, ne00);
60016002
// add src1
6002-
ggml_vec_acc_f32(ne00, tmp, src1_row);
6003+
ggml_vec_acc_f32(ne00, wdata, src1_row);
60036004
// quantize row to dst
6004-
quantize_row_q(tmp, dst_row, ne00);
6005+
quantize_row_q(wdata, dst_row, ne00);
60056006
}
60066007
}
60076008

@@ -10198,6 +10199,14 @@ void ggml_graph_compute(struct ggml_context * ctx, struct ggml_cgraph * cgraph)
1019810199
case GGML_OP_ADD:
1019910200
{
1020010201
node->n_tasks = n_threads;
10202+
10203+
size_t cur = 0;
10204+
10205+
if (node->src0->type == GGML_TYPE_Q4_0 || node->src0->type == GGML_TYPE_Q4_1) {
10206+
cur = GGML_TYPE_SIZE[GGML_TYPE_F32] * node->src0->ne[0] * n_threads;
10207+
}
10208+
10209+
work_size = MAX(work_size, cur);
1020110210
} break;
1020210211
case GGML_OP_SUB:
1020310212
case GGML_OP_MUL:

0 commit comments

Comments
 (0)