cuda::experimental::stf::frozen_logical_data#

template<typename T>
class frozen_logical_data : public cuda::experimental::stf::frozen_logical_data_untyped#

Frozen logical data are logical data which can be accessed outside tasks.

They are created using ctx.freeze, which returns a frozen_logical_data object. The get() and unfreeze() method allow to get an instance of the frozen data that is valid until unfreeze is called.

Public Types

using element_type = T#

Alias for T

Public Functions

frozen_logical_data() = default#

Default constructor.

inline frozen_logical_data(frozen_logical_data_untyped &&u)#

Constructor from an untyped frozen logical data.

Warning : no checks are done to ensure the type used to create the untyped logical data matches, it is the responsibility of the caller to ensure this is a valid conversion

inline frozen_logical_data(
backend_ctx_untyped bctx,
logical_data<T> ld,
access_mode m,
data_place place,
bool user_freeze,
)#
inline ::std::pair<T, event_list> get(data_place place)#
inline T get(data_place place, cudaStream_t stream)#
inline void unfreeze(event_list prereqs)#
inline void unfreeze(cudaStream_t stream)#
inline frozen_logical_data_untyped &set_automatic_unfreeze(
bool flag = true,
)#
inline access_mode get_access_mode() const#
inline int freeze_fake_task_id() const#
inline int unfreeze_fake_task_id() const#