graph
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
vertex_tc.hpp
Go to the documentation of this file.
1 #pragma once
2 
6 
7 #include <vector>
8 #include <iostream>
9 #include <cuda_runtime.h>
10 
12 
13 
15 {
16  private:
17  enum class Kernel
18  {
19  LINEAR,
20  LINEAR_SHARED,
21  BINARY,
22  HASH
23  };
24 
25  private:
27 
28  // partitioned data structures
29  std::vector<UnifiedMemoryCSR> graphs_;
30 
31  // per-block triangle counts for each partition
32  std::vector<CUDAManagedVector<uint64_t>> triangleCounts_;
33 
34  // per-partition device pointers
35  std::vector<const Uint *> rowOffsets_d_;
36  std::vector<const Uint *> nonZeros_d_;
37  std::vector<const char *> isLocalNonZero_d_;
38  std::vector<dim3> dimGrids_;
39  std::vector<uint64_t *> triangleCounts_d_;
40 
41  size_t numEdges_; // edges in input graph
42  size_t numNodes_; // nodes in input graph
43 
44  public:
45  VertexTC(Config &c);
46  virtual ~VertexTC();
47  virtual void read_data(const std::string &path) override;
48  virtual void setup_data() override;
49  virtual size_t count() override;
50  virtual uint64_t num_edges() override { return numEdges_; }
51  virtual size_t num_nodes() { return numNodes_; }
52 };
53 
Kernel kernel_
Definition: vertex_tc.hpp:26
virtual uint64_t num_edges() override
number of edges traversed during triangle counting
Definition: vertex_tc.hpp:50
std::vector< dim3 > dimGrids_
Definition: vertex_tc.hpp:38
Definition: vertex_tc.hpp:14
size_t numEdges_
Definition: vertex_tc.hpp:41
std::vector< uint64_t * > triangleCounts_d_
Definition: vertex_tc.hpp:39
PANGOLIN_BEGIN_NAMESPACE()
std::vector< const char * > isLocalNonZero_d_
Definition: vertex_tc.hpp:37
Definition: cuda_triangle_counter.hpp:15
size_t numNodes_
Definition: vertex_tc.hpp:42
Definition: config.hpp:10
std::vector< CUDAManagedVector< uint64_t > > triangleCounts_
Definition: vertex_tc.hpp:32
Kernel
Definition: vertex_tc.hpp:17
#define PANGOLIN_END_NAMESPACE()
virtual size_t num_nodes()
Definition: vertex_tc.hpp:51
std::vector< const Uint * > nonZeros_d_
Definition: vertex_tc.hpp:36
std::vector< UnifiedMemoryCSR > graphs_
Definition: vertex_tc.hpp:29
std::vector< const Uint * > rowOffsets_d_
Definition: vertex_tc.hpp:35