89 size_t m_shared_mem_size;
95 MUDA_HOST
Launch(dim3 gridDim, dim3 blockDim,
size_t sharedMemSize = 0, cudaStream_t stream =
nullptr) MUDA_NOEXCEPT
98 m_block_dim(blockDim),
99 m_shared_mem_size(sharedMemSize)
103 MUDA_HOST
Launch(
int gridDim = 1,
105 size_t sharedMemSize = 0,
106 cudaStream_t stream =
nullptr) MUDA_NOEXCEPT
109 m_block_dim(blockDim),
110 m_shared_mem_size(sharedMemSize)
114 MUDA_HOST
Launch(dim3 blockDim,
size_t sharedMemSize = 0, cudaStream_t stream =
nullptr) MUDA_NOEXCEPT
117 m_block_dim(blockDim),
118 m_shared_mem_size(sharedMemSize)
122 template <
typename F,
typename UserTag = Default>
123 MUDA_HOST
Launch& apply(F&& f);
124 template <
typename F,
typename UserTag = Default>
127 template <
typename F,
typename UserTag = Default>
128 MUDA_HOST
Launch& apply(
const dim3& active_dim, F&& f);
130 template <
typename F,
typename UserTag = Default>
133 template <
typename F,
typename UserTag = Default>
134 MUDA_HOST MUDA_NODISCARD
auto as_node_parms(F&& f) -> S<NodeParms<F>>;
136 template <
typename F,
typename UserTag = Default>
137 MUDA_HOST MUDA_NODISCARD
auto as_node_parms(F&& f,
Tag<UserTag>)
140 template <
typename F,
typename UserTag = Default>
141 MUDA_HOST MUDA_NODISCARD
auto as_node_parms(
const dim3& active_dim, F&& f)
144 template <
typename F,
typename UserTag = Default>
145 MUDA_HOST MUDA_NODISCARD
auto as_node_parms(
const dim3& active_dim, F&& f,
Tag<UserTag>)
150 template <
typename F,
typename UserTag = Default>
151 MUDA_HOST
void invoke(F&& f);
153 template <
typename F,
typename UserTag = Default>
154 MUDA_HOST
void invoke(
const dim3& active_dim, F&& f);
156 MUDA_GENERIC dim3 calculate_grid_dim(
const dim3& active_dim)
const MUDA_NOEXCEPT;
158 MUDA_GENERIC
void check_input_with_range()
const MUDA_NOEXCEPT;
160 MUDA_GENERIC
void check_input()
const MUDA_NOEXCEPT;