MCPcopy Create free account
hub / github.com/alibaba/libgrape-lite / ForEachEdge

Method ForEachEdge

grape/cuda/parallel/parallel_engine.h:989–1013  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

987 template <typename FRAG_T, typename WORK_SOURCE_T, typename ASSIGN_OP,
988 typename EDGE_OP, EdgeDirection ed>
989 inline void ForEachEdge(const Stream& stream, const FRAG_T& dev_frag,
990 const WORK_SOURCE_T& ws, ASSIGN_OP assign_op,
991 EDGE_OP op, LoadBalancing lb) {
992 if (lb == LoadBalancing::kCMOld) {
993 ForEachEdgeCMOld<FRAG_T, WORK_SOURCE_T, ASSIGN_OP, EDGE_OP, ed>(
994 stream, dev_frag, ws, assign_op, op);
995 } else if (lb == LoadBalancing::kCM) {
996 ForEachEdgeCM<FRAG_T, WORK_SOURCE_T, ASSIGN_OP, EDGE_OP, ed>(
997 stream, dev_frag, ws, assign_op, op);
998 } else if (lb == LoadBalancing::kWarp) {
999 ForEachEdgeWarp<FRAG_T, WORK_SOURCE_T, ASSIGN_OP, EDGE_OP, ed>(
1000 stream, dev_frag, ws, assign_op, op);
1001 } else if (lb == LoadBalancing::kCTA) {
1002 ForEachEdgeCTA<FRAG_T, WORK_SOURCE_T, ASSIGN_OP, EDGE_OP, ed>(
1003 stream, dev_frag, ws, assign_op, op);
1004 } else if (lb == LoadBalancing::kStrict) {
1005 ForEachEdgeStrict<FRAG_T, WORK_SOURCE_T, ASSIGN_OP, EDGE_OP, ed>(
1006 stream, dev_frag, ws, assign_op, op);
1007 } else if (lb == LoadBalancing::kNone) {
1008 ForEachEdgeNone<FRAG_T, WORK_SOURCE_T, ASSIGN_OP, EDGE_OP, ed>(
1009 stream, dev_frag, ws, assign_op, op);
1010 } else {
1011 LOG(FATAL) << "Invalid lb policy";
1012 }
1013 }
1014
1015 template <typename FRAG_T, typename WORK_SOURCE_T, typename ASSIGN_OP,
1016 typename EDGE_OP>

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected