#include #include #include #include #include #include #include int main() { std::string ep_name = "MacaEP"; Ort::Env env = Ort::Env(ORT_LOGGING_LEVEL_WARNING, "ONNXRT"); OrtMACAProviderOptions maca_options; maca_options.device_id=0; Ort::SessionOptions sessionOptions; sessionOptions.AppendExecutionProvider_MACA(maca_options); Ort::Session session(env, "/local/zj_1213_bev/camera.backbone.onnx", sessionOptions); std::vector input_data_1(1*6*3*256*704, 1.0f); std::vector output_data_1(6*32*88*80); std::vector output_data_2(6*118*32*88); Ort::MemoryInfo memory_info_handler = Ort::MemoryInfo::CreateCpu(OrtArenaAllocator, OrtMemTypeDefault); Ort::IoBinding binding(session); std::vector input_shapes_1 = session.GetInputTypeInfo(0).GetTensorTypeAndShapeInfo().GetShape(); Ort::Value input_tensor_1 = Ort::Value::CreateTensor( memory_info_handler, input_data_1.data(), input_data_1.size(), input_shapes_1.data(), input_shapes_1.size()); binding.BindInput("img", input_tensor_1); std::vector output_shapes_1 = session.GetOutputTypeInfo(0).GetTensorTypeAndShapeInfo().GetShape(); Ort::Value output_tensor_1 = Ort::Value::CreateTensor( memory_info_handler, output_data_1.data(), output_data_1.size(), output_shapes_1.data(), output_shapes_1.size()); binding.BindOutput("camera_feature", output_tensor_1); std::vector output_shapes_2 = session.GetOutputTypeInfo(1).GetTensorTypeAndShapeInfo().GetShape(); Ort::Value output_tensor_2 = Ort::Value::CreateTensor( memory_info_handler, output_data_2.data(), output_data_2.size(), output_shapes_2.data(), output_shapes_2.size()); binding.BindOutput("camera_depth_weights", output_tensor_2); while (1) { auto start = std::chrono::high_resolution_clock::now(); session.Run(Ort::RunOptions{nullptr}, binding); auto end = std::chrono::high_resolution_clock::now(); auto duration = std::chrono::duration_cast(end - start).count(); std::cout << "consume: " << duration << " us" << std::endl; for (int i=0; i<20; i++) { std::cout << output_data_1[i] << " "; } std::cout << std::endl; std::cout << "-----------------------------------------------------------"<< std::endl; } return 0; }