dpp_type< instr > Struct Template Reference

dpp_type&lt; instr &gt; Struct Template Reference#

Composable Kernel: ck::dpp_type< instr > Struct Template Reference
ck::dpp_type< instr > Struct Template Reference

Detailed Description

template<DppInstr instr>
struct ck::dpp_type< instr >

Structure representing DPP GEMM executed by a single wavefront.

Each structure instantiation must contain the following fields:

  • wave_size - number of threads that execute a single DPP GEMM operation, usually equal to the number of threads in a wavefront;
  • lanegroup_size - number of threads (lanes) that share data using DPP instruction modifier, it's 8 in case of DPP8;
  • m_per_wave - size along M dimension of matrix C that is processed in a single DPP GEMM operation;
  • n_per_wave - size along N dimension of matrix C that is processed in a single DPP GEMM operation;
  • m_per_lanegroup - size along M dimension that is processed by a single lanegroup;
  • n_per_lanegroup - size along N dimension that is processed by a single lanegroup;
  • m_per_thread - size along M dimension of the tile calculated by a single thread;
  • n_per_thread - size along N dimension of the tile calculated by a single thread;
  • k_per_dpp - size along K dimension that is reduced in a single DPP GEMM operation;
  • share_a - indicates whether we share matrix A or matrix B between lanes using DPP modifiers.

Not all the combinarions are supported now, for current restrictions see the static asserts in the DppSelector's contructor.


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