10#ifndef AIE_TEST_LIBRARY_H
11#define AIE_TEST_LIBRARY_H
19#include "hsa/hsa_ext_amd.h"
25inline void mlir_aie_write_pkt(hsa_queue_t *q, uint32_t packet_id, T *pkt) {
26 reinterpret_cast<T *
>(q->base_address)[packet_id] = *pkt;
32#define mlir_aie_check(s, r, v, errors) \
34 printf("ERROR %s: %s expected %d, but was %d!\n", s, #r, v, r); \
32#define mlir_aie_check(s, r, v, errors) \ …
37#define mlir_aie_check_float(s, r, v, errors) \
39 printf("ERROR %s: %s expected %f, but was %f!\n", s, #r, v, r); \
37#define mlir_aie_check_float(s, r, v, errors) \ …
47 XAie_Events _startE, XAie_Events _endE, XAie_Events _resetE,
48 XAie_ModuleType _module) {
58 XAie_PerfCounterControlSet(devInst, XAie_TileLoc(col, row), mode, pfc,
72 XAie_PerfCounterGet(devInst, XAie_TileLoc(col, row), mode, pfc, &start);
83 XAie_PerfCounterGet(devInst, XAie_TileLoc(col, row), mode, pfc, &val);
95 XAie_PerfCounterGet(devInst, XAie_TileLoc(col, row), mode, pfc, &end);
104 printf(
"WARNING: EventMonitor: performance counter wrapped!\n");
114 XAie_ModuleType mode;
116 XAie_DevInst *devInst;
127hsa_status_t mlir_aie_packet_req_translation(hsa_agent_dispatch_packet_t *pkt,
130hsa_status_t mlir_aie_packet_nd_memcpy(
131 hsa_agent_dispatch_packet_t *pkt, uint16_t herd_id, uint8_t col,
132 uint8_t direction, uint8_t channel, uint8_t burst_len, uint8_t memory_space,
133 uint64_t phys_addr, uint32_t transfer_length1d, uint32_t transfer_length2d,
134 uint32_t transfer_stride2d, uint32_t transfer_length3d,
135 uint32_t transfer_stride3d, uint32_t transfer_length4d,
136 uint32_t transfer_stride4d);
138hsa_status_t mlir_aie_queue_dispatch_and_wait(
139 hsa_agent_t *agent, hsa_queue_t *q, uint64_t packet_id, uint64_t doorbell,
140 hsa_agent_dispatch_packet_t *pkt,
bool destroy_signal =
true);
152 int lockval,
int timeout);
154 int lockval,
int timeout);
EventMonitor(aie_libxaie_ctx_t *_xaie, u32 _col, u32 _row, u32 _pfc, XAie_Events _startE, XAie_Events _endE, XAie_Events _resetE, XAie_ModuleType _module)
void mlir_aie_print_memtiledma_status(aie_libxaie_ctx_t *ctx, int col, int row)
Print the status of a memtiledma represented by the given location.
int mlir_aie_acquire_lock(aie_libxaie_ctx_t *ctx, int col, int row, int lockid, int lockval, int timeout)
Acquire a physical lock.
u32 mlir_aie_data_mem_rd_word(aie_libxaie_ctx_t *ctx, int col, int row, u64 addr)
Read a value from the data memory of a particular tile memory.
void mlir_aie_clear_tile_memory(aie_libxaie_ctx_t *ctx, int col, int row)
Clear the contents of the memory associated with the given tile.
u64 mlir_aie_get_tile_addr(aie_libxaie_ctx_t *ctx, int col, int row)
Return the base address of the given tile.
void mlir_aie_clear_shim_config(aie_libxaie_ctx_t *ctx, int col, int row)
Zero out the configuration memory of the shim tile.
void mlir_aie_clear_config(aie_libxaie_ctx_t *ctx, int col, int row)
Zero out the program and configuration memory of the tile.
void mlir_aie_print_dma_status(aie_libxaie_ctx_t *ctx, int col, int row)
Print the status of a dma represented by the given tile.
void mlir_aie_deinit_libxaie(aie_libxaie_ctx_t *)
Release access to the libXAIE context.
int mlir_aie_release_lock(aie_libxaie_ctx_t *ctx, int col, int row, int lockid, int lockval, int timeout)
Release a physical lock.
int mlir_aie_init_device(aie_libxaie_ctx_t *ctx, uint32_t device_id=0)
Initialize the device represented by the context.
void mlir_aie_print_shimdma_status(aie_libxaie_ctx_t *ctx, int col, int row)
Print the status of a shimdma represented by the given location (row = 0).
u32 mlir_aie_read32(aie_libxaie_ctx_t *ctx, u64 addr)
Read the AIE configuration memory at the given physical address.
void mlir_aie_dump_tile_memory(aie_libxaie_ctx_t *ctx, int col, int row)
Dump the contents of the memory associated with the given tile.
void computeStats(u32 performance_counter[], int n)
Given an array of values, compute and print statistics about those values.
void mlir_aie_write32(aie_libxaie_ctx_t *ctx, u64 addr, u32 val)
Write the AIE configuration memory at the given physical address.
aie_libxaie_ctx_t * mlir_aie_init_libxaie()
Initialize libXAIE and allocate a new context object.
void mlir_aie_data_mem_wr_word(aie_libxaie_ctx_t *ctx, int col, int row, u64 addr, u32 data)
Write a value to the data memory of a particular tile memory.
void mlir_aie_print_tile_status(aie_libxaie_ctx_t *ctx, int col, int row)
Print the status of a core represented by the given tile.