cuda::experimental::stf::async_resources_handle#

class async_resources_handle#

A handle which stores resources useful for an efficient asynchronous execution.

For example this will store the pools of CUDA streams.

This class relies on a PIMPL idiom and can be passed by value. Creating a new object of this type does not initialize any resource, as these will be set lazily.

Public Functions

inline async_resources_handle()#
inline explicit async_resources_handle(::std::nullptr_t)#
inline explicit operator bool() const#
inline stream_pool &get_device_stream_pool(
int dev_id,
bool for_computation,
)#
inline ::std::ptrdiff_t get_unique_id(size_t cnt = 1)#
inline void release_unique_id(::std::ptrdiff_t id, size_t cnt = 1)#
inline bool validate_sync_and_update(
::std::ptrdiff_t dst,
::std::ptrdiff_t src,
int event_id,
)#
inline ::cuda::std::pair<::std::shared_ptr<cudaGraphExec_t>, bool> cached_graphs_query(
size_t nnodes,
size_t nedges,
::std::shared_ptr<cudaGraph_t> g,
)#
inline auto &gc_helper(int dev_id)#
inline exec_affinity &get_affinity()#
inline const exec_affinity &get_affinity() const#
inline bool has_affinity() const#
inline void push_affinity(
::std::vector<::std::shared_ptr<exec_place>> p,
) const#
inline void push_affinity(::std::shared_ptr<exec_place> p) const#
inline void pop_affinity() const#
inline const ::std::vector<::std::shared_ptr<exec_place>> &current_affinity(
) const#

Public Static Attributes

static constexpr size_t pool_size = 4#
static constexpr size_t data_pool_size = 4#