cuDDL
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
cuddl::detail::plane_counts Struct Reference

Bit-sliced pairwise counts of one 32-bucket group, accumulated per lane. More...

Public Member Functions

template<size_t BucketCount, bool ReferenceFull = false>
__device__ pairwise_counts reduce () const noexcept
 Warp-reduces the counts into an exact pairwise summary.
 

Public Attributes

uint32_t lower {}
 
uint32_t differ {}
 Buckets whose scores differ.
 
uint32_t occupied {}
 Buckets whose scores differ or whose reference score is nonzero: all but both-empty.
 
uint32_t matches {}
 

Detailed Description

Bit-sliced pairwise counts of one 32-bucket group, accumulated per lane.

Differing and occupied buckets are counted rather than their equal and empty complements, so no complement is computed per plane group; the reduction recovers the complements.

Definition at line 1395 of file kernels.cuh.

Member Function Documentation

◆ reduce()

template<size_t BucketCount, bool ReferenceFull = false>
__device__ pairwise_counts cuddl::detail::plane_counts::reduce ( ) const
inlinenoexcept

Warp-reduces the counts into an exact pairwise summary.

Definition at line 1405 of file kernels.cuh.

1405 {
1406 auto const total_lower = __reduce_add_sync(0xffffffffU, lower);
1407 auto const total_differ = __reduce_add_sync(0xffffffffU, differ);
1408 auto const total_occupied = ReferenceFull ? static_cast<uint32_t>(BucketCount)
1409 : __reduce_add_sync(0xffffffffU, occupied);
1410 return {
1411 .lower = total_lower,
1412 .equal = total_occupied - total_differ,
1413 .higher = total_differ - total_lower,
1414 .both_empty = static_cast<uint32_t>(BucketCount) - total_occupied,
1415 };
1416 }
uint32_t occupied
Buckets whose scores differ or whose reference score is nonzero: all but both-empty.
Definition kernels.cuh:1400
uint32_t differ
Buckets whose scores differ.
Definition kernels.cuh:1398

Member Data Documentation

◆ differ

uint32_t cuddl::detail::plane_counts::differ {}

Buckets whose scores differ.

Definition at line 1398 of file kernels.cuh.

1398{};

◆ lower

uint32_t cuddl::detail::plane_counts::lower {}

Definition at line 1396 of file kernels.cuh.

1396{};

◆ matches

uint32_t cuddl::detail::plane_counts::matches {}

Definition at line 1401 of file kernels.cuh.

1401{};

◆ occupied

uint32_t cuddl::detail::plane_counts::occupied {}

Buckets whose scores differ or whose reference score is nonzero: all but both-empty.

Definition at line 1400 of file kernels.cuh.

1400{};

The documentation for this struct was generated from the following file: