Skip to content

Commit 7d76980

Browse files
committed
more split view fixes
1 parent 50c5a53 commit 7d76980

File tree

1 file changed

+26
-5
lines changed

1 file changed

+26
-5
lines changed

ggml/src/ggml-tp/ggml-tp.cpp

Lines changed: 26 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1263,10 +1263,6 @@ static void do_init(size_t node_index, ggml_tensor * tensor, ggml_tensor_paralle
12631263

12641264
switch (tensor->op) {
12651265
case GGML_OP_ROPE: {
1266-
if (tensor->view_src) {
1267-
GGML_ABORT("Tensor %s has view source tensors, which are not supported for tensor parallelism.\n", tensor->name);
1268-
}
1269-
12701266
auto src0_split_tensors = src0_extra->has_rejoin ? GGML_TP_SPLIT_NONE : src0_extra->split_tensors;
12711267

12721268
if (src0_extra->split_tensors == GGML_TP_SPLIT_VIEW) {
@@ -1790,7 +1786,32 @@ static void do_init(size_t node_index, ggml_tensor * tensor, ggml_tensor_paralle
17901786
break;
17911787
}
17921788

1793-
case GGML_OP_VIEW:
1789+
case GGML_OP_VIEW: {
1790+
auto src0_split_tensors = src0_extra->has_rejoin ? GGML_TP_SPLIT_NONE : src0_extra->split_tensors;
1791+
if (!src0_split_tensors) {
1792+
create_default_tensors();
1793+
set_src_tensor(0, GGML_TP_SPLIT_NONE);
1794+
}
1795+
else {
1796+
if (src0_split_tensors == GGML_TP_SPLIT_COLUMNS && src0->ne[0] == tensor->ne[0]) {
1797+
GGML_LOG_WARN("UNUSED CODE PATH VIEW SPLIT COL\n");
1798+
// column split tensor with no change to columns
1799+
create_column_split_tensors();
1800+
set_src_tensor(0, GGML_TP_SPLIT_COLUMNS);
1801+
}
1802+
else if (src0_split_tensors == GGML_TP_SPLIT_ROWS && src0->ne[1] == tensor->ne[1]) {
1803+
GGML_LOG_WARN("UNUSED CODE PATH VIEW SPLIT ROW\n");
1804+
// row split tensor with no change to rows
1805+
create_row_split_tensors();
1806+
set_src_tensor(0, GGML_TP_SPLIT_ROWS);
1807+
}
1808+
else {
1809+
has_init = true;
1810+
extra->split_tensors = GGML_TP_SPLIT_VIEW;
1811+
}
1812+
}
1813+
break;
1814+
}
17941815
case GGML_OP_PERMUTE:
17951816
case GGML_OP_RESHAPE: {
17961817
auto src0_split_tensors = src0_extra->has_rejoin ? GGML_TP_SPLIT_NONE : src0_extra->split_tensors;

0 commit comments

Comments
 (0)