AI Engine API User Guide (AIE) 2022.1
aie_types.hpp File Reference

Types exposed to users. More...

Detailed Description

Types exposed to users.

#include "types.hpp"
#include "detail/accum.hpp"
#include "detail/lock.hpp"
#include "detail/mask.hpp"
#include "detail/mdspan.hpp"
#include "detail/sync_buffer.hpp"
#include "detail/tiled_mdspan.hpp"
#include "detail/tile.hpp"
#include "detail/vector.hpp"

Namespaces

namespace  aie
 
namespace  aie::sync
 

Macros

#define __AIE_API_AIE_TYPES__HPP__
 

Typedefs

template<AccumElemBaseType MinAccumTag, unsigned Elems>
using aie::accum = detail::accum< detail::accum_class_for_tag_v< MinAccumTag >, detail::accum_bits_for_tag_v< MinAccumTag >, Elems >
  More...
 
using aie::AccumClass = detail::AccumClass
 
using aie::sync::adopt_lock_t = detail::adopt_lock_t
 
template<typename Span , unsigned NumBuffers = 2, unsigned NumReaders = 1, unsigned NumWriters = 1>
using aie::sync::buffered_input = detail::sync::input< Span, NumBuffers >
 
template<typename Span , unsigned NumBuffers = 2, unsigned NumReaders = 1, unsigned NumWriters = 1>
using aie::sync::buffered_output = detail::sync::output< Span, NumBuffers >
 
template<unsigned MinAccumBits, unsigned Elems>
using aie::cfp_accum = detail::accum< AccumClass::CFP, detail::to_native_accum_bits< AccumClass::CFP, MinAccumBits >(), Elems >
 
template<unsigned MinAccumBits, unsigned Elems>
using aie::cint_accum = detail::accum< AccumClass::CInt, detail::to_native_accum_bits< AccumClass::CInt, MinAccumBits >(), Elems >
 
template<unsigned NumReaders = 1, unsigned NumWriters = 1>
using aie::sync::consumer_lock = detail::consumer_lock< NumReaders, NumWriters >
 
template<unsigned NumReaders = 1, unsigned NumWriters = 1>
using aie::sync::consumer_sem = detail::consumer_sem< NumReaders, NumWriters >
 
template<size_t... Extents>
using aie::extents = detail::extents< Extents... >
 
template<unsigned MinAccumBits, unsigned Elems>
using aie::fp_accum = detail::accum< AccumClass::FP, detail::to_native_accum_bits< AccumClass::FP, MinAccumBits >(), Elems >
 
template<unsigned MinAccumBits, unsigned Elems>
using aie::int_accum = detail::accum< AccumClass::Int, detail::to_native_accum_bits< AccumClass::Int, MinAccumBits >(), Elems >
 
template<unsigned Elems>
using aie::mask = detail::mask< Elems >
  More...
 
template<typename T , size_t... Extents>
using aie::mdspan = detail::basic_mdspan< T, extents< Extents... >, void, detail::accessor_basic< T > >
 
using aie::sync::mutex = detail::mutex
 
template<unsigned NumReaders = 1, unsigned NumWriters = 1>
using aie::sync::producer_lock = detail::producer_lock< NumReaders, NumWriters >
 
template<unsigned NumReaders = 1, unsigned NumWriters = 1>
using aie::sync::producer_sem = detail::producer_sem< NumReaders, NumWriters >
 
template<typename T , size_t... Extents>
using aie::restrict_mdspan = detail::basic_mdspan< T, extents< Extents... >, void, detail::accessor_restrict< T > >
 
template<typename T , size_t Extents1 = dynamic_extent>
using aie::restrict_span = restrict_span_1d< T, Extents1 >
 
template<typename T , size_t Extents1 = dynamic_extent>
using aie::restrict_span_1d = restrict_mdspan< T, Extents1 >
 
template<typename T , size_t Extents1 = dynamic_extent, size_t Extents2 = dynamic_extent>
using aie::restrict_span_2d = restrict_mdspan< T, Extents1, Extents2 >
 
template<typename T , size_t Extents1 = dynamic_extent, size_t Extents2 = dynamic_extent, size_t Extents3 = dynamic_extent>
using aie::restrict_span_3d = restrict_mdspan< T, Extents1, Extents2, Extents3 >
 
template<typename T , size_t Extents1 = dynamic_extent, size_t Extents2 = dynamic_extent, size_t Extents3 = dynamic_extent, size_t Extents4 = dynamic_extent>
using aie::restrict_span_4d = restrict_mdspan< T, Extents1, Extents2, Extents3, Extents4 >
 
template<typename T , typename TileExtents , size_t... Extents>
using aie::restrict_tiled_mdspan = detail::basic_tiled_mdspan< T, TileExtents, extents< Extents... >, void, detail::accessor_restrict< T > >
 
template<typename T , typename TileExtents , size_t Extents1 = dynamic_extent>
using aie::restrict_tiled_span = tiled_span_1d< T, TileExtents, Extents1 >
 
template<typename T , typename TileExtents , size_t Extents1 = dynamic_extent>
using aie::restrict_tiled_span_1d = tiled_mdspan< T, TileExtents, Extents1 >
 
template<typename T , typename TileExtents , size_t Extents1 = dynamic_extent, size_t Extents2 = dynamic_extent>
using aie::restrict_tiled_span_2d = tiled_mdspan< T, TileExtents, Extents1, Extents2 >
 
template<typename T , typename TileExtents , size_t Extents1 = dynamic_extent, size_t Extents2 = dynamic_extent, size_t Extents3 = dynamic_extent>
using aie::restrict_tiled_span_3d = tiled_mdspan< T, TileExtents, Extents1, Extents2, Extents3 >
 
template<typename T , typename TileExtents , size_t Extents1 = dynamic_extent, size_t Extents2 = dynamic_extent, size_t Extents3 = dynamic_extent, size_t Extents4 = dynamic_extent>
using aie::restrict_tiled_span_4d = tiled_mdspan< T, TileExtents, Extents1, Extents2, Extents3, Extents4 >
 
using aie::sync::scoped_lock = detail::scoped_lock
 
template<typename T , size_t Extents1 = dynamic_extent>
using aie::span = span_1d< T, Extents1 >
 
template<typename T , size_t Extents1 = dynamic_extent>
using aie::span_1d = mdspan< T, Extents1 >
 
template<typename T , size_t Extents1 = dynamic_extent, size_t Extents2 = dynamic_extent>
using aie::span_2d = mdspan< T, Extents1, Extents2 >
 
template<typename T , size_t Extents1 = dynamic_extent, size_t Extents2 = dynamic_extent, size_t Extents3 = dynamic_extent>
using aie::span_3d = mdspan< T, Extents1, Extents2, Extents3 >
 
template<typename T , size_t Extents1 = dynamic_extent, size_t Extents2 = dynamic_extent, size_t Extents3 = dynamic_extent, size_t Extents4 = dynamic_extent>
using aie::span_4d = mdspan< T, Extents1, Extents2, Extents3, Extents4 >
 
using aie::tile = detail::tile
 
using aie::tile_id = detail::tile_id
 
template<typename T , typename TileExtents , size_t... Extents>
using aie::tiled_mdspan = detail::basic_tiled_mdspan< T, TileExtents, extents< Extents... >, void, detail::accessor_basic< T > >
 
template<typename T , typename TileExtents , size_t Extents1 = dynamic_extent>
using aie::tiled_span = tiled_span_1d< T, TileExtents, Extents1 >
 
template<typename T , typename TileExtents , size_t Extents1 = dynamic_extent>
using aie::tiled_span_1d = tiled_mdspan< T, TileExtents, Extents1 >
 
template<typename T , typename TileExtents , size_t Extents1 = dynamic_extent, size_t Extents2 = dynamic_extent>
using aie::tiled_span_2d = tiled_mdspan< T, TileExtents, Extents1, Extents2 >
 
template<typename T , typename TileExtents , size_t Extents1 = dynamic_extent, size_t Extents2 = dynamic_extent, size_t Extents3 = dynamic_extent>
using aie::tiled_span_3d = tiled_mdspan< T, TileExtents, Extents1, Extents2, Extents3 >
 
template<typename T , typename TileExtents , size_t Extents1 = dynamic_extent, size_t Extents2 = dynamic_extent, size_t Extents3 = dynamic_extent, size_t Extents4 = dynamic_extent>
using aie::tiled_span_4d = tiled_mdspan< T, TileExtents, Extents1, Extents2, Extents3, Extents4 >
 
template<ElemBaseType T, unsigned Elems = native_vector_length_v<T>, aie_dm_resource Resource = aie_dm_resource::none>
using aie::unaligned_vector_ref = detail::unaligned_vector_ref< T, Elems, Resource >
  More...
 
template<ElemBaseType T, unsigned Elems = native_vector_length_v<T>>
using aie::vector = detail::vector< T, Elems >
  More...
 
template<ElemBaseType T, unsigned N>
using aie::vector_elem_const_ref = detail::vector_elem_const_ref< T, N >
  More...
 
template<ElemBaseType T, unsigned N>
using aie::vector_elem_ref = detail::vector_elem_ref< T, N >
  More...
 
template<ElemBaseType T, unsigned Elems = native_vector_length_v<T>, aie_dm_resource Resource = aie_dm_resource::none>
using aie::vector_ref = detail::vector_ref< T, Elems, Resource >
  More...