We are always using asynchronous thrust launch on a cuda stream, which involves extra `cudaStreamSync` within thrust calls, e.g., https://github.com/rapidsai/wholegraph/blob/9f290c4ff814f0e527324c8f7095c04cfb461a79/cpp/src/wholememory_ops/functions/exchange_ids_nccl_func.cu#L63 https://github.com/rapidsai/wholegraph/blob/9f290c4ff814f0e527324c8f7095c04cfb461a79/cpp/src/wholegraph_ops/unweighted_sample_without_replacement_func.cuh#L340 It would be better to change to `thrust::cuda::par_nosync`, to make it easier to overlap with other operations.
We are always using asynchronous thrust launch on a cuda stream, which involves extra
cudaStreamSyncwithin thrust calls, e.g.,wholegraph/cpp/src/wholememory_ops/functions/exchange_ids_nccl_func.cu
Line 63 in 9f290c4
wholegraph/cpp/src/wholegraph_ops/unweighted_sample_without_replacement_func.cuh
Line 340 in 9f290c4
It would be better to change to
thrust::cuda::par_nosync, to make it easier to overlap with other operations.