dgl.ops.gspmm

dgl.ops.gspmm(g, op, reduce_op, lhs_data, rhs_data)[source]

Generalized Sparse Matrix Multiplication interface. It fuses two steps into one kernel.

  1. Computes messages by op source node and edge features.

  2. Aggregate the messages by reduce_op as the features on destination nodes.

\[x_v = \psi_{(u, v, e)\in \mathcal{G}}(\rho(x_u, x_e))\]

where \(x_v\) is the returned feature on destination nodes, and \(x_u\), \(x_e\) refers to u, e respectively. \(\rho\) means binary operator op and \(\psi\) means reduce operator reduce_op, \(\mathcal{G}\) is the graph we apply gspmm on: g.

Note that this function does not handle gradients.

Parameters
  • g (DGLGraph) – The input graph.

  • op (str) – The binary op’s name, could be add, sub, mul, div, copy_lhs, copy_rhs.

  • reduce_op (str) – Reduce operator, could be sum, max, min, mean.

  • lhs_data (tensor or None) – The left operand, could be None if it’s not required by the op.

  • rhs_data (tensor or None) – The right operand, could be None if it’s not required by the op.

Returns

The result tensor.

Return type

tensor