You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
GGML_ABORT("Tensor %s has unsupported op %s for tensor parallelism, src0 is split as view but not evenly divisible by the rope head count.\n", tensor->name, ggml_op_name(tensor->op));
1292
1343
}
1293
1344
1294
-
if (src0_extra->tensors[0]) {
1295
-
GGML_ABORT("Reshape Tensor %s has already been initialized, but is being initialized again.\n", tensor->name);
1296
-
}
1297
-
1298
1345
// rope input is initially on columns.
1299
1346
// input to rope is split [8192,1,1,1], per gpu it is [4096,1,1,1]
1300
1347
// the input is then reshaped [128,64,1,1] per gpu it is [128,32,1,1]
auto src1_split_tensors = src1_extra->has_rejoin ? GGML_TP_SPLIT_NONE : src1_extra->split_tensors;
1341
1388
auto src2_split_tensors = src2_extra->has_rejoin ? GGML_TP_SPLIT_NONE : src2_extra->split_tensors;
1342
1389
1390
+
if (src0_split_tensors == GGML_TP_SPLIT_VIEW) {
1391
+
// make this into columns and create views into it
1392
+
auto src0_viewsrc = src0->view_src;
1393
+
auto src0_viewsrc_extra = (ggml_tensor_parallel_extra *)src0_viewsrc->extra;
1394
+
1395
+
if (src0_extra->tensors[0]) {
1396
+
GGML_ABORT("Reshape Tensor %s has already been initialized, but is being initialized again.\n", tensor->name);
1397
+
}
1398
+
1399
+
if (src0_viewsrc_extra->split_tensors != GGML_TP_SPLIT_ROWS) {
1400
+
GGML_ABORT("Tensor %s has unsupported op %s for tensor parallelism, src0 is split but not as rows.\n", tensor->name, ggml_op_name(tensor->op));
1401
+
}
1402
+
1403
+
if (tensor->ne[1] % src0_viewsrc->ne[1]) {
1404
+
GGML_ABORT("Tensor %s has unsupported op %s for tensor parallelism, src0 is split as view but not evenly divisible by the rope head count.\n", tensor->name, ggml_op_name(tensor->op));
1405
+
}
1406
+
1407
+
// similar to ROPE above, the input must be row split and becomes column split.
1408
+
src0_split_tensors = GGML_TP_SPLIT_DIM2;
1409
+
create_dim2_split_tensors_for(src0, src0_extra);
1410
+
ggml_backend_tp_finish_init_tensor(src0);
1411
+
}
1412
+
1343
1413
if (!src0_split_tensors && !src1_split_tensors && !src2_split_tensors) {
auto src0_split_tensors = src0_extra->has_rejoin ? GGML_TP_SPLIT_NONE : src0_extra->split_tensors;
1542
1613
auto src1_split_tensors = src1_extra->has_rejoin ? GGML_TP_SPLIT_NONE : src1_extra->split_tensors;
1543
1614
1615
+
1616
+
if (src1_split_tensors == GGML_TP_SPLIT_VIEW) {
1617
+
// make this into columns and create views into it
1618
+
auto src1_viewsrc = src1->view_src;
1619
+
auto src1_viewsrc_extra = (ggml_tensor_parallel_extra *)src1_viewsrc->extra;
1620
+
1621
+
if (src1_extra->tensors[0]) {
1622
+
GGML_ABORT("Reshape Tensor %s has already been initialized, but is being initialized again.\n", tensor->name);
1623
+
}
1624
+
1625
+
if (src1_viewsrc_extra->split_tensors != GGML_TP_SPLIT_ROWS) {
1626
+
GGML_ABORT("Tensor %s has unsupported op %s for tensor parallelism, src1 is split but not as rows.\n", tensor->name, ggml_op_name(tensor->op));
1627
+
}
1628
+
1629
+
if ((src1_viewsrc->ne[0] * src1_viewsrc->ne[1]) % tensor->ne[0]) {
1630
+
GGML_ABORT("Tensor %s has unsupported op %s for tensor parallelism, src1 is split as view but not evenly divisible by the rope head count.\n", tensor->name, ggml_op_name(tensor->op));
1631
+
}
1632
+
1633
+
// similar to ROPE above, the input must be row split and becomes column split.
0 commit comments