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

Method ForEachEdgeCTA

grape/cuda/parallel/parallel_engine.h:1224–1241  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1222 template <typename FRAG_T, typename WORK_SOURCE_T, typename ASSIGN_OP,
1223 typename EDGE_OP, EdgeDirection ed>
1224 inline void ForEachEdgeCTA(const Stream& stream, const FRAG_T& dev_frag,
1225 const WORK_SOURCE_T& ws, ASSIGN_OP assign_op,
1226 EDGE_OP op) {
1227 int grid_size, block_size;
1228 auto size = ws.size();
1229 if (size == 0) {
1230 return;
1231 }
1232
1233 auto lb_wrapper = [=] __device__() {
1234 LBCTA<FRAG_T, WORK_SOURCE_T, ASSIGN_OP, EDGE_OP, ed>(dev_frag, ws,
1235 assign_op, op);
1236 }; // NOLINT
1237
1238 KernelSizing(grid_size, block_size, size);
1239 KernelWrapper<<<grid_size, block_size, 0, stream.cuda_stream()>>>(
1240 lb_wrapper);
1241 }
1242
1243 template <typename FRAG_T, typename WORK_SOURCE_T, typename ASSIGN_OP,
1244 typename EDGE_OP, EdgeDirection ed>

Callers

nothing calls this directly

Calls 3

KernelSizingFunction · 0.85
cuda_streamMethod · 0.80
sizeMethod · 0.45

Tested by

no test coverage detected