edgesoftmax
This is a edgesoftmax forward computation. Here we further support stacked sparse value with the same pattern by using ‘head’ parameter.
\[softmax_{ij}=\frac{exp(value_{ij})}{\Sigma_{j\in N(i)}exp(value_{ij})}\]
\(N(i)\) is the set of nodes that have an edge to i. \(value_{ij}\) means the value of edge point from node i to node j.
void edge_softmax_cuda(
int m, //m for S's rows
int head, //stack parameter
int *rowptr, //row pointer in CSR format
float *values, //stacked weights of multi-graph
float *softmax);