cub::TransformAsyncCopyPolicy#

struct TransformAsyncCopyPolicy#

The async copy sub-policy for TransformPolicy.

Public Functions

inline friend ::std::ostream &operator<<(
::std::ostream &os,
const TransformAsyncCopyPolicy &policy
)#

Public Members

int threads_per_block#

Number of threads in a CUDA block.

int min_items_per_thread = 1#

Minimum number of items per thread (inclusive)

int max_items_per_thread = 32#

Maximum number of items per thread (inclusive)

int unroll_factor = 1#

The unroll factor for the transformation loop in the kernel.

The value 0 retains the compiler’s default unrolling (specifying no unroll pragma), 1 means no unrolling. This parameter has no effect when store vectorization is enabled (see store_vec_size) and eligible at runtime (buffer alignments are sufficient).

int store_vec_size = 0#

Output elements per vectorized store; only used when algorithm == ublkcp.

0 = auto (16 / sizeof(output), a 16-byte STG.128); 1 disables vectorization (scalar stores) and compiles the vectorized branch out of the kernel.

Friends

inline friend constexpr bool operator==(
const TransformAsyncCopyPolicy &lhs,
const TransformAsyncCopyPolicy &rhs
) noexcept#
inline friend constexpr bool operator!=(
const TransformAsyncCopyPolicy &lhs,
const TransformAsyncCopyPolicy &rhs
) noexcept#