Skip to content

Commit 395e286

Browse files
cpu: skip NOPs to avoid barriers (#17133)
* cpu: skip NOPs to avoid barriers * cpu: use ggml_op_is_empty
1 parent 13730c1 commit 395e286

File tree

3 files changed

+21
-60
lines changed

3 files changed

+21
-60
lines changed

ggml/src/ggml-cpu/ggml-cpu.c

Lines changed: 21 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1807,22 +1807,6 @@ static void ggml_compute_forward(struct ggml_compute_params * params, struct ggm
18071807
{
18081808
ggml_compute_forward_cont(params, tensor);
18091809
} break;
1810-
case GGML_OP_RESHAPE:
1811-
{
1812-
ggml_compute_forward_reshape(params, tensor);
1813-
} break;
1814-
case GGML_OP_VIEW:
1815-
{
1816-
ggml_compute_forward_view(params, tensor);
1817-
} break;
1818-
case GGML_OP_PERMUTE:
1819-
{
1820-
ggml_compute_forward_permute(params, tensor);
1821-
} break;
1822-
case GGML_OP_TRANSPOSE:
1823-
{
1824-
ggml_compute_forward_transpose(params, tensor);
1825-
} break;
18261810
case GGML_OP_GET_ROWS:
18271811
{
18281812
ggml_compute_forward_get_rows(params, tensor);
@@ -2042,6 +2026,22 @@ static void ggml_compute_forward(struct ggml_compute_params * params, struct ggm
20422026
{
20432027
// nop
20442028
} break;
2029+
case GGML_OP_RESHAPE:
2030+
{
2031+
// nop
2032+
} break;
2033+
case GGML_OP_PERMUTE:
2034+
{
2035+
// nop
2036+
} break;
2037+
case GGML_OP_VIEW:
2038+
{
2039+
// nop
2040+
} break;
2041+
case GGML_OP_TRANSPOSE:
2042+
{
2043+
// nop
2044+
} break;
20452045
case GGML_OP_COUNT:
20462046
{
20472047
GGML_ABORT("fatal error");
@@ -2884,6 +2884,11 @@ static thread_ret_t ggml_graph_compute_thread(void * data) {
28842884
for (int node_n = 0; node_n < cgraph->n_nodes && atomic_load_explicit(&tp->abort, memory_order_relaxed) != node_n; node_n++) {
28852885
struct ggml_tensor * node = cgraph->nodes[node_n];
28862886

2887+
if (ggml_op_is_empty(node->op)) {
2888+
// skip NOPs
2889+
continue;
2890+
}
2891+
28872892
ggml_compute_forward(&params, node);
28882893

28892894
if (state->ith == 0 && cplan->abort_callback &&

ggml/src/ggml-cpu/ops.cpp

Lines changed: 0 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -4455,46 +4455,6 @@ void ggml_compute_forward_cont(
44554455
ggml_compute_forward_dup(params, dst);
44564456
}
44574457

4458-
// ggml_compute_forward_reshape
4459-
4460-
void ggml_compute_forward_reshape(
4461-
const ggml_compute_params * params,
4462-
ggml_tensor * dst) {
4463-
// NOP
4464-
GGML_UNUSED(params);
4465-
GGML_UNUSED(dst);
4466-
}
4467-
4468-
// ggml_compute_forward_view
4469-
4470-
void ggml_compute_forward_view(
4471-
const ggml_compute_params * params,
4472-
ggml_tensor * dst) {
4473-
// NOP
4474-
GGML_UNUSED(params);
4475-
GGML_UNUSED(dst);
4476-
}
4477-
4478-
// ggml_compute_forward_permute
4479-
4480-
void ggml_compute_forward_permute(
4481-
const ggml_compute_params * params,
4482-
ggml_tensor * dst) {
4483-
// NOP
4484-
GGML_UNUSED(params);
4485-
GGML_UNUSED(dst);
4486-
}
4487-
4488-
// ggml_compute_forward_transpose
4489-
4490-
void ggml_compute_forward_transpose(
4491-
const ggml_compute_params * params,
4492-
ggml_tensor * dst) {
4493-
// NOP
4494-
GGML_UNUSED(params);
4495-
GGML_UNUSED(dst);
4496-
}
4497-
44984458
// ggml_compute_forward_get_rows
44994459

45004460
static void ggml_compute_forward_get_rows_q(

ggml/src/ggml-cpu/ops.h

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,10 +51,6 @@ void ggml_compute_forward_scale(const struct ggml_compute_params * params, struc
5151
void ggml_compute_forward_set(const struct ggml_compute_params * params, struct ggml_tensor * dst);
5252
void ggml_compute_forward_cpy(const struct ggml_compute_params * params, struct ggml_tensor * dst);
5353
void ggml_compute_forward_cont(const struct ggml_compute_params * params, struct ggml_tensor * dst);
54-
void ggml_compute_forward_reshape(const struct ggml_compute_params * params, struct ggml_tensor * dst);
55-
void ggml_compute_forward_view(const struct ggml_compute_params * params, struct ggml_tensor * dst);
56-
void ggml_compute_forward_permute(const struct ggml_compute_params * params, struct ggml_tensor * dst);
57-
void ggml_compute_forward_transpose(const struct ggml_compute_params * params, struct ggml_tensor * dst);
5854
void ggml_compute_forward_get_rows(const struct ggml_compute_params * params, struct ggml_tensor * dst);
5955
void ggml_compute_forward_get_rows_back(const struct ggml_compute_params * params, struct ggml_tensor * dst);
6056
void ggml_compute_forward_set_rows(const struct ggml_compute_params * params, struct ggml_tensor * dst);

0 commit comments

Comments
 (0)