13 using S = std::shared_ptr<T>;
15 using U = std::unique_ptr<T>;
16 cudaGraphExec_t m_handle;
32 void upload(cudaStream_t stream =
nullptr);
34 void launch(cudaStream_t stream =
nullptr);
37 void set_kernel_node_parms(S<KernelNode> node,
const S<
KernelNodeParms<T>>& new_parms);
40 void set_memcpy_node_parms(S<MemcpyNode> node,
45 void set_memcpy_node_parms(S<MemcpyNode> node,
const cudaMemcpy3DParms& parms);
46 void set_memset_node_parms(S<MemsetNode> node,
const cudaMemsetParams& parms);
49 void set_event_record_node_parms(S<EventRecordNode> node, cudaEvent_t event);
50 void set_event_wait_node_parms(S<EventWaitNode> node, cudaEvent_t event);
54 cudaGraphExec_t handle()
const {
return m_handle; }
59 std::list<S<NodeParms>> m_cached;