| 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> |
nothing calls this directly
no outgoing calls
no test coverage detected