dgl.ops.u_add_e_sum(g, x, y)

Generalized SpMM function. It fuses two steps into one kernel.

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

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

  • g (DGLHeteroGraph) – The input graph

  • x (tensor) – The source node features.

  • y (tensor) – The edge features.


The result tensor.

Return type



This function supports autograd (computing input gradients given the output gradient). If the feature shape of two input operands do not match, we first broadcasts the features to a unified shape (note that the memory usage will not increase accordingly) and then performs the operation.

Broadcasting follows NumPy semantics. Please see https://docs.scipy.org/doc/numpy/user/basics.broadcasting.html for more details about the NumPy broadcasting semantics.

The sum function will return zero for nodes with no incoming messages.