Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding air_init() to unit tests #185

Merged
merged 5 commits into from
Feb 24, 2023
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions python/air/compiler/aircc/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -358,6 +358,7 @@ def run_flow(opts):
cmd += [f'-I{thispath}/../../../../runtime_lib/airhost/include']
cmd += [f'-I{thispath}/../../../../runtime_lib']
cmd += [f'-I{thispath}/../../../../../aie/runtime_lib']
cmd += [f'-I{thispath}/../../../../../utils/mlir-aie/runtime_lib']
fifield marked this conversation as resolved.
Show resolved Hide resolved
cmd += ['-DLIBXAIENGINEV2']
cmd += ['-DAIE_LIBXAIE_ENABLE', '-fPIC', '-c']
cmd += ['-o', obj_file, cpp_file]
Expand Down
30 changes: 30 additions & 0 deletions test/02_mb_dispatch/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# Copyright (C) 2022, Xilinx Inc.
fifield marked this conversation as resolved.
Show resolved Hide resolved
# Copyright (C) 2022, Advanced Micro Devices, Inc.
# SPDX-License-Identifier: MIT

CC=clang
ACDC_AIE = $(dir $(shell which aie-opt))/..
ACDC_AIR = $(dir $(shell which air-opt))/..

LDFLAGS = -fuse-ld=lld -rdynamic \
-DLIBXAIENGINEV2 \
-lxaiengine \
-Wl,--whole-archive -lairhost -Wl,--no-whole-archive \
-lstdc++ \
-lm \
-Wl,--no-as-needed -ldl

CFLAGS += -g -I/opt/xaiengine/include
CFLAGS += -std=c++17 -I$(ACDC_AIR)/runtime_lib/airhost/include -I$(ACDC_AIE)/runtime_lib \
-DAIR_LIBXAIE_ENABLE
LDFLAGS += -L/opt/xaiengine/lib -Wl,-R/opt/xaiengine/lib
LDFLAGS += -L$(ACDC_AIR)/runtime_lib/airhost

all: test.exe

%.exe: test.cpp
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(ACDC_AIE)/runtime_lib/test_library.cpp test.cpp -Wl,--whole-archive -Wl,--no-whole-archive


clean::
rm -rf *.exe
9 changes: 8 additions & 1 deletion test/02_mb_dispatch/test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,13 @@

int main(int argc, char *argv[]) {

hsa_status_t init_status = air_init();

if(init_status != HSA_STATUS_SUCCESS) {
std::cout << "air_init() failed. Exiting" << std::endl;
return -1;
}

std::vector<air_agent_t> agents;
auto get_agents_ret = air_iterate_agents(
[](air_agent_t a, void *d) {
Expand All @@ -26,7 +33,7 @@ int main(int argc, char *argv[]) {
assert(get_agents_ret == HSA_STATUS_SUCCESS && "failed to get agents!");

if (agents.empty()) {
std::cout << "fail." << std::endl;
std::cout << "No agents found. Exiting" << std::endl;
return -1;
}

Expand Down
16 changes: 16 additions & 0 deletions test/03_mb_lock_rel/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Copyright (C) 2022, Xilinx Inc.
# Copyright (C) 2022, Advanced Micro Devices, Inc.
# SPDX-License-Identifier: MIT

ACDC_AIE = $(dir $(shell which aie-opt))/..
ACDC_AIR = $(dir $(shell which air-opt))/..

all: test.elf

test.elf: aie.mlir test.cpp
aiecc.py -v --aie-generate-xaiev2 --host-target=x86_64-amd-linux-gnu --sysroot= $< -I/opt/xaiengine/include -L/opt/xaiengine/lib -Wl,-R/opt/xaiengine/lib \
-I$(ACDC_AIR)/runtime_lib/airhost/include -I$(ACDC_AIE)/runtime_lib $(ACDC_AIE)/runtime_lib/test_library.cpp \
-L$(ACDC_AIR)/runtime_lib/airhost test.cpp -Wl,--whole-archive -lairhost -Wl,--no-whole-archive -lstdc++ -o $@

clean::
rm -rf acdc_project *.elf
9 changes: 8 additions & 1 deletion test/03_mb_lock_rel/test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,13 @@ int main(int argc, char *argv[])
auto num_rows = 1;
auto num_cols = 1;

hsa_status_t init_status = air_init();

if(init_status != HSA_STATUS_SUCCESS) {
std::cout << "air_init() failed. Exiting" << std::endl;
return -1;
}

std::vector<air_agent_t> agents;
auto get_agents_ret = air_get_agents(agents);
assert(get_agents_ret == HSA_STATUS_SUCCESS && "failed to get agents!");
Expand All @@ -49,7 +56,7 @@ int main(int argc, char *argv[])
air_packet_device_init(shim_pkt, XAIE_NUM_COLS);
air_queue_dispatch_and_wait(q, wr_idx, shim_pkt);

aie_libxaie_ctx_t *xaie = (aie_libxaie_ctx_t *)air_init_libxaie();
aie_libxaie_ctx_t *xaie = (aie_libxaie_ctx_t *)air_get_libxaie_ctx();

mlir_aie_print_tile_status(xaie, col, row);

Expand Down
9 changes: 8 additions & 1 deletion test/06_air_link_shared/test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,13 @@

int main(int argc, char *argv[]) {

hsa_status_t init_status = air_init();

if(init_status != HSA_STATUS_SUCCESS) {
std::cout << "air_init() failed. Exiting" << std::endl;
return -1;
}

std::vector<air_agent_t> agents;
auto get_agents_ret = air_get_agents(agents);
assert(get_agents_ret == HSA_STATUS_SUCCESS && "failed to get agents!");
Expand All @@ -55,7 +62,7 @@ int main(int argc, char *argv[]) {
queues.push_back(q);
}

aie_libxaie_ctx_t *xaie = (aie_libxaie_ctx_t *)air_init_libxaie();
aie_libxaie_ctx_t *xaie = (aie_libxaie_ctx_t *)air_get_libxaie_ctx();

queue_t *q = queues[0];

Expand Down
16 changes: 16 additions & 0 deletions test/07_mb_beef_maker/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Copyright (C) 2022, Xilinx Inc.
# Copyright (C) 2022, Advanced Micro Devices, Inc.
# SPDX-License-Identifier: MIT

ACDC_AIE = $(dir $(shell which aie-opt))/..
ACDC_AIR = $(dir $(shell which air-opt))/..

all: test.elf

test.elf: aie.mlir test.cpp
aiecc.py -v --aie-generate-xaiev2 --host-target=x86_64-amd-linux-gnu --sysroot= $< -I/opt/xaiengine/include -L/opt/xaiengine/lib -Wl,-R/opt/xaiengine/lib \
-I$(ACDC_AIR)/runtime_lib/airhost/include -I$(ACDC_AIE)/runtime_lib $(ACDC_AIE)/runtime_lib/test_library.cpp \
-L$(ACDC_AIR)/runtime_lib/airhost test.cpp -Wl,--whole-archive -lairhost -Wl,--no-whole-archive -lstdc++ -o $@

clean::
rm -rf acdc_project *.elf
9 changes: 8 additions & 1 deletion test/07_mb_beef_maker/test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,13 @@ main(int argc, char *argv[])
auto col = 7;
auto row = 2;

hsa_status_t init_status = air_init();

if(init_status != HSA_STATUS_SUCCESS) {
std::cout << "air_init() failed. Exiting" << std::endl;
return -1;
}

std::vector<air_agent_t> agents;
auto get_agents_ret = air_get_agents(agents);
assert(get_agents_ret == HSA_STATUS_SUCCESS && "failed to get agents!");
Expand All @@ -53,7 +60,7 @@ main(int argc, char *argv[])
queues.push_back(q);
}

aie_libxaie_ctx_t *xaie = (aie_libxaie_ctx_t *)air_init_libxaie();
aie_libxaie_ctx_t *xaie = (aie_libxaie_ctx_t *)air_get_libxaie_ctx();
if (xaie == NULL) {
std::cout << "Error initializing libxaie" << std::endl;
return -1;
Expand Down
16 changes: 16 additions & 0 deletions test/09_mb_hsa_herd_lock/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Copyright (C) 2022, Xilinx Inc.
# Copyright (C) 2022, Advanced Micro Devices, Inc.
# SPDX-License-Identifier: MIT

ACDC_AIE = $(dir $(shell which aie-opt))/..
ACDC_AIR = $(dir $(shell which air-opt))/..

all: test.elf

test.elf: aie.mlir test.cpp
aiecc.py -v --aie-generate-xaiev2 --host-target=x86_64-amd-linux-gnu --sysroot= $< -I/opt/xaiengine/include -L/opt/xaiengine/lib -Wl,-R/opt/xaiengine/lib \
-I$(ACDC_AIR)/runtime_lib/airhost/include -I$(ACDC_AIE)/runtime_lib $(ACDC_AIE)/runtime_lib/test_library.cpp \
-L$(ACDC_AIR)/runtime_lib/airhost test.cpp -Wl,--whole-archive -lairhost -Wl,--no-whole-archive -lstdc++ -o $@

clean::
rm -rf acdc_project *.elf
9 changes: 8 additions & 1 deletion test/09_mb_hsa_herd_lock/test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,13 @@ int main(int argc, char *argv[])
auto col = 7;
auto row = 2;

hsa_status_t init_status = air_init();

if(init_status != HSA_STATUS_SUCCESS) {
std::cout << "air_init() failed. Exiting" << std::endl;
return -1;
}

std::vector<air_agent_t> agents;
auto get_agents_ret = air_get_agents(agents);
assert(get_agents_ret == HSA_STATUS_SUCCESS && "failed to get agents!");
Expand All @@ -46,7 +53,7 @@ int main(int argc, char *argv[])
queues.push_back(q);
}

aie_libxaie_ctx_t *xaie = (aie_libxaie_ctx_t *)air_init_libxaie();
aie_libxaie_ctx_t *xaie = (aie_libxaie_ctx_t *)air_get_libxaie_ctx();
if (xaie == NULL) {
std::cout << "Error initializing libxaie" << std::endl;
return -1;
Expand Down
16 changes: 16 additions & 0 deletions test/10_mb_shim_dma_to_tile_dma/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Copyright (C) 2022, Xilinx Inc.
# Copyright (C) 2022, Advanced Micro Devices, Inc.
# SPDX-License-Identifier: MIT

ACDC_AIE = $(dir $(shell which aie-opt))/..
ACDC_AIR = $(dir $(shell which air-opt))/..

all: test.elf

test.elf: aie.mlir test.cpp
aiecc.py -v --aie-generate-xaiev2 --host-target=x86_64-amd-linux-gnu --sysroot= $< -I/opt/xaiengine/include -L/opt/xaiengine/lib -Wl,-R/opt/xaiengine/lib \
-I$(ACDC_AIR)/runtime_lib/airhost/include -I$(ACDC_AIE)/runtime_lib $(ACDC_AIE)/runtime_lib/test_library.cpp \
-L$(ACDC_AIR)/runtime_lib/airhost test.cpp -Wl,--whole-archive -lairhost -Wl,--no-whole-archive -lstdc++ -o $@

clean::
rm -rf acdc_project *.elf
11 changes: 9 additions & 2 deletions test/10_mb_shim_dma_to_tile_dma/test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,19 @@ main(int argc, char *argv[])
uint64_t col = 7;
uint64_t row = 0;

hsa_status_t init_status = air_init();

if(init_status != HSA_STATUS_SUCCESS) {
std::cout << "air_init() failed. Exiting" << std::endl;
return -1;
}

std::vector<air_agent_t> agents;
auto get_agents_ret = air_get_agents(agents);
assert(get_agents_ret == HSA_STATUS_SUCCESS && "failed to get agents!");

if (agents.empty()) {
std::cout << "fail." << std::endl;
std::cout << "No agents found. Exiting." << std::endl;
return -1;
}

Expand All @@ -51,7 +58,7 @@ main(int argc, char *argv[])
queues.push_back(q);
}

aie_libxaie_ctx_t *xaie = (aie_libxaie_ctx_t *)air_init_libxaie();
aie_libxaie_ctx_t *xaie = (aie_libxaie_ctx_t *)air_get_libxaie_ctx();
if (xaie == NULL) {
std::cout << "Error initializing libxaie" << std::endl;
return -1;
Expand Down
16 changes: 16 additions & 0 deletions test/11_mb_shim_dma_from_tile_dma/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Copyright (C) 2022, Xilinx Inc.
# Copyright (C) 2022, Advanced Micro Devices, Inc.
# SPDX-License-Identifier: MIT

ACDC_AIE = $(dir $(shell which aie-opt))/..
ACDC_AIR = $(dir $(shell which air-opt))/..

all: test.elf

test.elf: aie.mlir test.cpp
aiecc.py -v --aie-generate-xaiev2 --host-target=x86_64-amd-linux-gnu --sysroot= $< -I/opt/xaiengine/include -L/opt/xaiengine/lib -Wl,-R/opt/xaiengine/lib \
-I$(ACDC_AIR)/runtime_lib/airhost/include -I$(ACDC_AIE)/runtime_lib $(ACDC_AIE)/runtime_lib/test_library.cpp \
-L$(ACDC_AIR)/runtime_lib/airhost test.cpp -Wl,--whole-archive -lairhost -Wl,--no-whole-archive -lstdc++ -o $@

clean::
rm -rf acdc_project *.elf
9 changes: 8 additions & 1 deletion test/11_mb_shim_dma_from_tile_dma/test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,13 @@ main(int argc, char *argv[])
uint64_t col = 6;
uint64_t row = 0;

hsa_status_t init_status = air_init();

if(init_status != HSA_STATUS_SUCCESS) {
std::cout << "air_init() failed. Exiting" << std::endl;
return -1;
}

std::vector<air_agent_t> agents;
auto get_agents_ret = air_iterate_agents(
[](air_agent_t a, void *d) {
Expand Down Expand Up @@ -57,7 +64,7 @@ main(int argc, char *argv[])
queues.push_back(q);
}

aie_libxaie_ctx_t *xaie = (aie_libxaie_ctx_t *)air_init_libxaie();
aie_libxaie_ctx_t *xaie = (aie_libxaie_ctx_t *)air_get_libxaie_ctx();
if (xaie == NULL) {
std::cout << "Error initializing libxaie" << std::endl;
return -1;
Expand Down
16 changes: 16 additions & 0 deletions test/12_dual_channel_shim_dma/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Copyright (C) 2022, Xilinx Inc.
# Copyright (C) 2022, Advanced Micro Devices, Inc.
# SPDX-License-Identifier: MIT

ACDC_AIE = $(dir $(shell which aie-opt))/..
ACDC_AIR = $(dir $(shell which air-opt))/..

all: test.elf

test.elf: aie.mlir test.cpp
aiecc.py -v --aie-generate-xaiev2 --host-target=x86_64-amd-linux-gnu --sysroot= $< -I/opt/xaiengine/include -L/opt/xaiengine/lib -Wl,-R/opt/xaiengine/lib \
-I$(ACDC_AIR)/runtime_lib/airhost/include -I$(ACDC_AIE)/runtime_lib $(ACDC_AIE)/runtime_lib/test_library.cpp \
-L$(ACDC_AIR)/runtime_lib/airhost test.cpp -Wl,--whole-archive -lairhost -Wl,--no-whole-archive -lstdc++ -o $@

clean::
rm -rf acdc_project *.elf
9 changes: 8 additions & 1 deletion test/12_dual_channel_shim_dma/test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,13 @@ main(int argc, char *argv[])
uint64_t col = 7;
uint64_t row = 0;

hsa_status_t init_status = air_init();

if(init_status != HSA_STATUS_SUCCESS) {
std::cout << "air_init() failed. Exiting" << std::endl;
return -1;
}

std::vector<air_agent_t> agents;
auto get_agents_ret = air_get_agents(agents);
assert(get_agents_ret == HSA_STATUS_SUCCESS && "failed to get agents!");
Expand All @@ -51,7 +58,7 @@ main(int argc, char *argv[])
queues.push_back(q);
}

aie_libxaie_ctx_t *xaie = (aie_libxaie_ctx_t *)air_init_libxaie();
aie_libxaie_ctx_t *xaie = (aie_libxaie_ctx_t *)air_get_libxaie_ctx();
if (xaie == NULL) {
std::cout << "Error initializing libxaie" << std::endl;
return -1;
Expand Down
13 changes: 10 additions & 3 deletions test/13_mb_add_one/test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,19 @@ main(int argc, char *argv[])
uint64_t row = 0;
uint64_t col = 6;

hsa_status_t init_status = air_init();

if(init_status != HSA_STATUS_SUCCESS) {
std::cout << "air_init() failed. Exiting" << std::endl;
return -1;
}

std::vector<air_agent_t> agents;
auto get_agents_ret = air_get_agents(agents);
assert(get_agents_ret == HSA_STATUS_SUCCESS && "failed to get agents!");

if (agents.empty()) {
std::cout << "fail." << std::endl;
std::cout << "No agents found. Exiting." << std::endl;
return -1;
}

Expand All @@ -52,9 +59,9 @@ main(int argc, char *argv[])
}

aie_libxaie_ctx_t *xaie =
(aie_libxaie_ctx_t *)air_init_libxaie(0 /* device_id (optional)*/);
(aie_libxaie_ctx_t *)air_get_libxaie_ctx();
if (xaie == NULL) {
std::cout << "Error initializing libxaie" << std::endl;
std::cout << "Error getting libxaie context" << std::endl;
return -1;
}

Expand Down
16 changes: 16 additions & 0 deletions test/14_multi_shim_dma/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Copyright (C) 2022, Xilinx Inc.
# Copyright (C) 2022, Advanced Micro Devices, Inc.
# SPDX-License-Identifier: MIT

ACDC_AIE = $(dir $(shell which aie-opt))/..
ACDC_AIR = $(dir $(shell which air-opt))/..

all: test.elf

test.elf: aie.mlir test.cpp
aiecc.py -v --aie-generate-xaiev2 --host-target=x86_64-amd-linux-gnu --sysroot= $< -I/opt/xaiengine/include -L/opt/xaiengine/lib -Wl,-R/opt/xaiengine/lib \
-I$(ACDC_AIR)/runtime_lib/airhost/include -I$(ACDC_AIE)/runtime_lib $(ACDC_AIE)/runtime_lib/test_library.cpp \
-L$(ACDC_AIR)/runtime_lib/airhost test.cpp -Wl,--whole-archive -lairhost -Wl,--no-whole-archive -lstdc++ -o $@

clean::
rm -rf acdc_project *.elf
Loading