hpx/async_cuda/cuda_executor.hpp#

Defined in header hpx/async_cuda/cuda_executor.hpp.

See Public API for a list of names and headers that are part of the public HPX API.

namespace hpx
namespace cuda#
namespace experimental#
struct cuda_executor : public hpx::cuda::experimental::cuda_executor_base#

Public Functions

inline explicit cuda_executor(std::size_t device, bool event_mode = true)#
inline ~cuda_executor()#
template<typename F, typename ...Ts>
inline decltype(auto) friend tag_invoke(hpx::parallel::execution::post_t, cuda_executor const &exec, F &&f, Ts&&... ts)#
template<typename F, typename ...Ts>
inline decltype(auto) friend tag_invoke(hpx::parallel::execution::async_execute_t, cuda_executor const &exec, F &&f, Ts&&... ts)#

Protected Functions

template<typename R, typename ...Params, typename ...Args>
inline void post(R (*cuda_function)(Params...), Args&&... args) const#
template<typename R, typename ...Params, typename ...Args>
inline hpx::future<void> async(R (*cuda_kernel)(Params...), Args&&... args) const#
struct cuda_executor_base#

Subclassed by hpx::cuda::experimental::cuda_executor

Public Types

using future_type = hpx::future<void>#

Public Functions

inline cuda_executor_base(std::size_t device, bool event_mode)#
inline future_type get_future() const#

Protected Attributes

int device_#
bool event_mode_#
cudaStream_t stream_#
std::shared_ptr<hpx::cuda::experimental::target> target_#
namespace parallel
namespace execution#