|
|
#include "runner/ax650/ax_api_loader.h" |
|
|
#include "runner/ax650/ax_model_runner_ax650.hpp" |
|
|
#include "cmdline.hpp" |
|
|
|
|
|
#include <fstream> |
|
|
#include <vector> |
|
|
#include <cstring> |
|
|
|
|
|
AxSysApiLoader &get_ax_sys_loader(); |
|
|
|
|
|
AxEngineApiLoader &get_ax_engine_loader(); |
|
|
|
|
|
int main(int argc, char *argv[]) |
|
|
{ |
|
|
cmdline::parser parser; |
|
|
parser.add<std::string>("model", 'm', "model", true); |
|
|
parser.parse_check(argc, argv); |
|
|
|
|
|
AxSysApiLoader &ax_sys_loader = get_ax_sys_loader(); |
|
|
|
|
|
AxEngineApiLoader &ax_engine_loader = get_ax_engine_loader(); |
|
|
|
|
|
ax_sys_loader.AX_SYS_Init(); |
|
|
AX_ENGINE_NPU_ATTR_T npu_attr; |
|
|
memset(&npu_attr, 0, sizeof(AX_ENGINE_NPU_ATTR_T)); |
|
|
npu_attr.eHardMode = AX_ENGINE_VIRTUAL_NPU_DISABLE; |
|
|
ax_engine_loader.AX_ENGINE_Init(&npu_attr); |
|
|
|
|
|
ax_runner_ax650 runner; |
|
|
std::ifstream file(parser.get<std::string>("model"), std::ios::binary); |
|
|
if (!file.is_open()) |
|
|
{ |
|
|
printf("open file failed\n"); |
|
|
return -1; |
|
|
} |
|
|
std::vector<uint8_t> model_data((std::istreambuf_iterator<char>(file)), std::istreambuf_iterator<char>()); |
|
|
runner.init(model_data.data(), model_data.size(), 0); |
|
|
|
|
|
ax_engine_loader.AX_ENGINE_Deinit(); |
|
|
ax_sys_loader.AX_SYS_Deinit(); |
|
|
return 0; |
|
|
} |