| AI Engine API User Guide (AIE-API) 2026.1

Loading...
Searching...
No Matches
aie_types.hpp File Reference

## Detailed Description

Types exposed to users.

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

## Classes
struct | aie::tile_id
| Identifies a particular tile within the AIE array. More...

## Namespaces
namespace | aie
| Base namespace for AIE operations and types.
namespace | aie::sync

## Macros
#define | __AIE_API_AIE_TYPES__HPP__

## Typedefs
template<AccumClass Class, unsigned Bits>
using | aie::accum_tag_t
template<AccumClass Class, unsigned Bits>
using | aie::accum_tag_t
template<AccumClass Class, unsigned Bits>
using | aie::accum_tag_t
template<AccumClass Class, unsigned Bits>
using | aie::accum_tag_t
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 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<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>
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>

## Enumerations
enum class | aie::rounding_mode : unsigned
| Rounding modes. More...
enum class | aie::saturation_mode : unsigned
| Saturation modes. More...

## Functions
template<typename Fn, typename... MutexTypes>
void | aie::sync::locked (Fn fn, MutexTypes &...mutexes)

## Variables
template<typename T>
static constexpr unsigned | aie::native_vector_length_v = detail::native_vector_length_v<T>

## Class Documentation

## ◆ aie::tile_id

struct aie::tile_id

Identifies a particular tile within the AIE array.

Class Members
uint16_t | col |
uint16_t | row |

## Macro Definition Documentation

## ◆ __AIE_API_AIE_TYPES__HPP__

#define __AIE_API_AIE_TYPES__HPP__