Kokkos Core Kernels Package  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Public Types | List of all members
Kokkos::LayoutTileLeft< ArgN0, ArgN1, IsPowerOfTwo > Struct Template Reference

Memory layout tag indicating left-to-right (Fortran scheme) striding of multi-indices by tiles. More...

#include <Kokkos_Layout.hpp>

Public Types

typedef LayoutTileLeft< ArgN0,
ArgN1, IsPowerOfTwo > 
array_layout
 Tag this class as a kokkos array layout. More...
 

Detailed Description

template<unsigned ArgN0, unsigned ArgN1, bool IsPowerOfTwo = ( Impl::is_integral_power_of_two(ArgN0) && Impl::is_integral_power_of_two(ArgN1) )>
struct Kokkos::LayoutTileLeft< ArgN0, ArgN1, IsPowerOfTwo >

Memory layout tag indicating left-to-right (Fortran scheme) striding of multi-indices by tiles.

This is an example of a MemoryLayout template parameter of View. The memory layout describes how View maps from a multi-index (i0, i1, ..., ik) to a memory location.

"Tiled layout" indicates a mapping to contiguously stored ArgN0 by ArgN1 tiles for the rightmost two dimensions. Indices are LayoutLeft within each tile, and the tiles themselves are arranged using LayoutLeft. Note that the dimensions ArgN0 and ArgN1 of the tiles must be compile-time constants. This speeds up index calculations. If both tile dimensions are powers of two, Kokkos can optimize further.

Definition at line 217 of file Kokkos_Layout.hpp.

Member Typedef Documentation

template<unsigned ArgN0, unsigned ArgN1, bool IsPowerOfTwo = ( Impl::is_integral_power_of_two(ArgN0) && Impl::is_integral_power_of_two(ArgN1) )>
typedef LayoutTileLeft<ArgN0,ArgN1,IsPowerOfTwo> Kokkos::LayoutTileLeft< ArgN0, ArgN1, IsPowerOfTwo >::array_layout

Tag this class as a kokkos array layout.

Definition at line 221 of file Kokkos_Layout.hpp.


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