|
graph
|
#include "pangolin/triangle_counter/spmm_tc.hpp"#include "pangolin/logger.hpp"#include "pangolin/utilities.hpp"#include "pangolin/reader/edge_list_reader.hpp"#include <nvToolsExt.h>#include <limits>#include <cub/cub.cuh>
Functions | |
| template<typename U > | |
| static __device__ uint64_t | intersection_count (const U *ab, const U *ae, const U *bb, const U *be) |
| template<typename Index > | |
| __global__ void | spmm_csr_csr (Index *edgeSrc, Index *edgeDst, uint64_t *edgeCnt, uint64_t *nextEdge, const pangolin::GPUCSRView< Index > aL, const pangolin::GPUCSRView< Index > aU) |
|
static |
return the number of common elements between sorted lists a and b
| ab | beginning of a |
| ae | end of a |
| bb | beginning of b |
| be | end of b |
| __global__ void spmm_csr_csr | ( | Index * | edgeSrc, |
| Index * | edgeDst, | ||
| uint64_t * | edgeCnt, | ||
| uint64_t * | nextEdge, | ||
| const pangolin::GPUCSRView< Index > | aL, | ||
| const pangolin::GPUCSRView< Index > | aU | ||
| ) |
Count triangles using LxU*L CSR method
One thread per row
| edgeSrc | src of edge (at least # edges long) |
| edgeDst | dst of edge (at least # edges long) |
| edgeCnt | tri count of edge (at least # edges long) |
| nextEdge | pointer to next available edge |
| aL | aL*aU, lower-triangular |
| aU | aL*aU, upper-triagular |
1.8.13