diff --git a/projects/clr/hipamd/include/hip/amd_detail/amd_hip_cooperative_groups.h b/projects/clr/hipamd/include/hip/amd_detail/amd_hip_cooperative_groups.h index d499a93b47..322cab668b 100644 --- a/projects/clr/hipamd/include/hip/amd_detail/amd_hip_cooperative_groups.h +++ b/projects/clr/hipamd/include/hip/amd_detail/amd_hip_cooperative_groups.h @@ -921,6 +921,15 @@ template class thread_block_tile_type coalesced_info.tiled_info.is_tiled = true; } + __CG_QUALIFIER__ thread_block_tile_type(unsigned int meta_group_rank, + unsigned int meta_group_size) + : tiled_group(numThreads) { + coalesced_info.tiled_info.num_threads = numThreads; + coalesced_info.tiled_info.is_tiled = true; + coalesced_info.tiled_info.meta_group_rank = meta_group_rank; + coalesced_info.tiled_info.meta_group_size = meta_group_size; + } + public: using tbtBase::num_threads; using tbtBase::size; @@ -1189,6 +1198,16 @@ template struct tiled_partition_internal : thread_block_tile(g) {} }; +// ParentCGTy = thread_block_tile specialization +template +struct tiled_partition_internal > + : public thread_block_tile > { + static_assert(size <= ParentSize, "Sub tile size must be <= parent tile size in tiled_partition"); + + __CG_QUALIFIER__ tiled_partition_internal(const thread_block_tile& g) + : thread_block_tile >(g) {} +}; + } // namespace impl /** \ingroup CooperativeGConstruct