XeTLA v0.3.6
IntelĀ® Xe Templates for Linear Algebra - API Definition Document
 
Loading...
Searching...
No Matches
gpu::xetla::xetla_nbarrier_t< num_producers, num_consumers, arch_tag > Struct Template Reference

xetla nbarrier definition API. More...

#include <raw_send_nbarrier.hpp>

Public Member Functions

__XETLA_API void init_nbarrier (uint8_t nbarrier_id, nbarrier_role role=nbarrier_role::producer_consumer)
 
__XETLA_API void arrive ()
 named barrier signal from subgroup.
 
__XETLA_API void wait ()
 named barrier wait within subgroup.
 
__XETLA_API void arrive_wait ()
 named barrier signal from subgroup.
 

Public Attributes

xetla_vector< uint32_t, 16 > nbar
 Description of named barrier objection.
 
uint32_t barrier_id
 

Detailed Description

template<uint8_t num_producers = 1, uint8_t num_consumers = 1, gpu_arch arch_tag = gpu_arch::Xe>
struct gpu::xetla::xetla_nbarrier_t< num_producers, num_consumers, arch_tag >

xetla nbarrier definition API.

This is the API to define a named barrier within subgroup.

Template Parameters
num_producersis the number of subgroups participating the barrier as producer.
num_consumersis the number of subgroups participating the barrier as consumer.

Member Function Documentation

◆ arrive()

template<uint8_t num_producers = 1, uint8_t num_consumers = 1, gpu_arch arch_tag = gpu_arch::Xe>
__XETLA_API void gpu::xetla::xetla_nbarrier_t< num_producers, num_consumers, arch_tag >::arrive ( )
inline

named barrier signal from subgroup.

Parameters
baris the named barrier object.

◆ arrive_wait()

template<uint8_t num_producers = 1, uint8_t num_consumers = 1, gpu_arch arch_tag = gpu_arch::Xe>
__XETLA_API void gpu::xetla::xetla_nbarrier_t< num_producers, num_consumers, arch_tag >::arrive_wait ( )
inline

named barrier signal from subgroup.

◆ init_nbarrier()

template<uint8_t num_producers = 1, uint8_t num_consumers = 1, gpu_arch arch_tag = gpu_arch::Xe>
__XETLA_API void gpu::xetla::xetla_nbarrier_t< num_producers, num_consumers, arch_tag >::init_nbarrier ( uint8_t  nbarrier_id,
nbarrier_role  role = nbarrier_role::producer_consumer 
)
inline
Parameters
roleis the role of subgroup when participating the barrier.
nbarrier_id[in] is the id of the barrier. note: all subgroups participating the barrier should have the same barrier_id. Here is the bspec link https://gfxspecs.intel.com/Predator/Home/Index/54006

◆ wait()

template<uint8_t num_producers = 1, uint8_t num_consumers = 1, gpu_arch arch_tag = gpu_arch::Xe>
__XETLA_API void gpu::xetla::xetla_nbarrier_t< num_producers, num_consumers, arch_tag >::wait ( )
inline

named barrier wait within subgroup.

Member Data Documentation

◆ barrier_id

template<uint8_t num_producers = 1, uint8_t num_consumers = 1, gpu_arch arch_tag = gpu_arch::Xe>
uint32_t gpu::xetla::xetla_nbarrier_t< num_producers, num_consumers, arch_tag >::barrier_id

◆ nbar

template<uint8_t num_producers = 1, uint8_t num_consumers = 1, gpu_arch arch_tag = gpu_arch::Xe>
xetla_vector<uint32_t, 16> gpu::xetla::xetla_nbarrier_t< num_producers, num_consumers, arch_tag >::nbar

Description of named barrier objection.

Structure is defined in here.