|
graph
|
#include "pangolin/triangle_counter/impact_2019_tc.hpp"#include "pangolin/logger.hpp"#include "pangolin/utilities.hpp"#include "pangolin/algorithm/search.cuh"#include "pangolin/reader/gc_tsv_reader.hpp"#include <nvToolsExt.h>#include <limits>#include <cub/cub.cuh>
Functions | |
| static __global__ void | kernel_tc (uint64_t *__restrict__ triangleCounts, const Int *const edgeSrc, const Int *const edgeDst, const Int *const nodes, const size_t edgeOffset, const size_t numEdges) |
| template<size_t BLOCK_DIM_X> | |
| static __global__ void | kernel_binary (uint64_t *__restrict__ edgeTriangleCounts, const Int *edgeSrc, const Int *edgeDst, const Int *rowStarts, const Int edgeOffset, const Int numEdges) |
|
static |
Count triangles
Use one warp per edge to count triangles. Compare neighbor lists in parallel with a binary search of the longer list
| edgeTriangleCounts | per-edge triangle count |
| edgeSrc | list of edge sources |
| edgeDst | list of edge destinations |
| rowStarts | offset in edgeSrc/edgeDst where each row starts |
| edgeOffset | which edge this kernel should start at |
| numEdges | how many edges to work on |
|
static |
Count triangles
Use one thread per edge to count triangles. Compare sorted neighbor lists linearly.
| triangleCounts | per-edge triangle counts |
| edgeSrc | node ids for edge srcs |
| edgeDst | node ids for edge dsts |
| nodes | source node offsets in edgeDst |
| edgeOffset | where in the edge list this function should begin counting |
| numEdges | how many edges to count triangles for |
1.8.13