From 8a19d9892efacc7078f1dbbddf45afedd8afe2ec Mon Sep 17 00:00:00 2001 From: Adeeb Shihadeh Date: Mon, 28 Feb 2022 10:32:39 -0800 Subject: [PATCH] modeld: remove support for small model (#23803) * modeld: remove support for small model * use extra --- models/big_supercombo.dlc | 3 --- models/big_supercombo.onnx | 3 --- models/supercombo.dlc | 4 ++-- models/supercombo.onnx | 4 ++-- release/files_common | 1 - selfdrive/modeld/SConscript | 5 +---- selfdrive/modeld/modeld.cc | 13 +++++-------- selfdrive/modeld/models/driving.cc | 12 +++++------- selfdrive/modeld/models/driving.h | 2 +- selfdrive/modeld/thneed/compile.cc | 6 ++---- 10 files changed, 18 insertions(+), 35 deletions(-) delete mode 100644 models/big_supercombo.dlc delete mode 100644 models/big_supercombo.onnx diff --git a/models/big_supercombo.dlc b/models/big_supercombo.dlc deleted file mode 100644 index a27e3d118..000000000 --- a/models/big_supercombo.dlc +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ba3fe3e61853cc1434e3e220f40c8e9d1f1b9bab8458196ba3bea6a10b82c6ed -size 72718099 diff --git a/models/big_supercombo.onnx b/models/big_supercombo.onnx deleted file mode 100644 index 3039035fb..000000000 --- a/models/big_supercombo.onnx +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:bda57c1a66944f5a633ecd739a24d62702c717a234f2fdcc499dfa1d61c3c19e -size 73147489 diff --git a/models/supercombo.dlc b/models/supercombo.dlc index 2ebf4fa82..a27e3d118 100644 --- a/models/supercombo.dlc +++ b/models/supercombo.dlc @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:209e9544e456dbc2a7d60490da65154e129bc84830909d8d931f97b3df93949b -size 56684955 +oid sha256:ba3fe3e61853cc1434e3e220f40c8e9d1f1b9bab8458196ba3bea6a10b82c6ed +size 72718099 diff --git a/models/supercombo.onnx b/models/supercombo.onnx index 17d233dad..3039035fb 100644 --- a/models/supercombo.onnx +++ b/models/supercombo.onnx @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2365bae967cce21ce68707c30bf2981bb7081ee5c3e6a3dff793e660f23ff622 -size 57554657 +oid sha256:bda57c1a66944f5a633ecd739a24d62702c717a234f2fdcc499dfa1d61c3c19e +size 73147489 diff --git a/release/files_common b/release/files_common index cfc8150e3..d390ab742 100644 --- a/release/files_common +++ b/release/files_common @@ -58,7 +58,6 @@ common/transformations/transformations.pyx common/api/__init__.py models/supercombo.dlc -models/big_supercombo.dlc models/dmonitoring_model_q.dlc release/* diff --git a/selfdrive/modeld/SConscript b/selfdrive/modeld/SConscript index 9066a653f..990f8789b 100644 --- a/selfdrive/modeld/SConscript +++ b/selfdrive/modeld/SConscript @@ -31,9 +31,6 @@ thneed_src = [ use_thneed = not GetOption('no_thneed') -use_extra = True # arch == "larch64" -lenv['CXXFLAGS'].append('-DUSE_EXTRA=true' if use_extra else '-DUSE_EXTRA=false') - if arch == "aarch64" or arch == "larch64": libs += ['gsl', 'CB'] libs += ['gnustl_shared'] if arch == "aarch64" else ['pthread', 'dl'] @@ -68,7 +65,7 @@ common_model = lenv.Object(common_src) # build thneed model if use_thneed and arch in ("aarch64", "larch64"): - fn = "../../models/big_supercombo" if use_extra else "../../models/supercombo" + fn = File("#models/supercombo").abspath compiler = lenv.Program('thneed/compile', ["thneed/compile.cc"]+common_model, LIBS=libs) cmd = f"cd {Dir('.').abspath} && {compiler[0].abspath} {fn}.dlc {fn}.thneed --binary" diff --git a/selfdrive/modeld/modeld.cc b/selfdrive/modeld/modeld.cc index 697e31a7b..7f51b9a54 100644 --- a/selfdrive/modeld/modeld.cc +++ b/selfdrive/modeld/modeld.cc @@ -51,7 +51,7 @@ mat3 update_calibration(Eigen::Matrix &extrinsics, bool wide_camera return matmul3(yuv_transform, transform); } -void run_model(ModelState &model, VisionIpcClient &vipc_client_main, VisionIpcClient &vipc_client_extra, bool main_wide_camera, bool use_extra, bool use_extra_client) { +void run_model(ModelState &model, VisionIpcClient &vipc_client_main, VisionIpcClient &vipc_client_extra, bool main_wide_camera, bool use_extra_client) { // messaging PubMaster pm({"modelV2", "cameraOdometry"}); SubMaster sm({"lateralPlan", "roadCameraState", "liveCalibration"}); @@ -134,9 +134,7 @@ void run_model(ModelState &model, VisionIpcClient &vipc_client_main, VisionIpcCl } model_transform_main = update_calibration(extrinsic_matrix_eigen, main_wide_camera, false); - if (use_extra) { - model_transform_extra = update_calibration(extrinsic_matrix_eigen, Hardware::TICI(), true); - } + model_transform_extra = update_calibration(extrinsic_matrix_eigen, Hardware::TICI(), true); live_calib_seen = true; } @@ -181,8 +179,7 @@ int main(int argc, char **argv) { } bool main_wide_camera = Hardware::TICI() ? Params().getBool("EnableWideCamera") : false; - bool use_extra = USE_EXTRA; - bool use_extra_client = Hardware::TICI() && use_extra && !main_wide_camera; + bool use_extra_client = Hardware::TICI() && !main_wide_camera; // cl init cl_device_id device_id = cl_get_device_id(CL_DEVICE_TYPE_DEFAULT); @@ -190,7 +187,7 @@ int main(int argc, char **argv) { // init the models ModelState model; - model_init(&model, device_id, context, use_extra); + model_init(&model, device_id, context); LOGW("models loaded, modeld starting"); VisionIpcClient vipc_client_main = VisionIpcClient("camerad", main_wide_camera ? VISION_STREAM_WIDE_ROAD : VISION_STREAM_ROAD, true, device_id, context); @@ -215,7 +212,7 @@ int main(int argc, char **argv) { LOGW("connected extra cam with buffer size: %d (%d x %d)", wb->len, wb->width, wb->height); } - run_model(model, vipc_client_main, vipc_client_extra, main_wide_camera, use_extra, use_extra_client); + run_model(model, vipc_client_main, vipc_client_extra, main_wide_camera, use_extra_client); } model_free(&model); diff --git a/selfdrive/modeld/models/driving.cc b/selfdrive/modeld/models/driving.cc index e42f2c0f4..83e69cebb 100644 --- a/selfdrive/modeld/models/driving.cc +++ b/selfdrive/modeld/models/driving.cc @@ -26,20 +26,18 @@ constexpr const kj::ArrayPtr to_kj_array_ptr(const std::array return kj::ArrayPtr(arr.data(), arr.size()); } -void model_init(ModelState* s, cl_device_id device_id, cl_context context, bool use_extra) { +void model_init(ModelState* s, cl_device_id device_id, cl_context context) { s->frame = new ModelFrame(device_id, context); s->wide_frame = new ModelFrame(device_id, context); #ifdef USE_THNEED - s->m = std::make_unique(use_extra ? "../../models/big_supercombo.thneed" : "../../models/supercombo.thneed", - &s->output[0], NET_OUTPUT_SIZE, USE_GPU_RUNTIME, use_extra); + s->m = std::make_unique("../../models/supercombo.thneed", #elif USE_ONNX_MODEL - s->m = std::make_unique(use_extra ? "../../models/big_supercombo.onnx" : "../../models/supercombo.onnx", - &s->output[0], NET_OUTPUT_SIZE, USE_GPU_RUNTIME, use_extra); + s->m = std::make_unique("../../models/supercombo.onnx", #else - s->m = std::make_unique(use_extra ? "../../models/big_supercombo.dlc" : "../../models/supercombo.dlc", - &s->output[0], NET_OUTPUT_SIZE, USE_GPU_RUNTIME, use_extra); + s->m = std::make_unique("../../models/supercombo.dlc", #endif + &s->output[0], NET_OUTPUT_SIZE, USE_GPU_RUNTIME, true); #ifdef TEMPORAL s->m->addRecurrent(&s->output[OUTPUT_SIZE], TEMPORAL_SIZE); diff --git a/selfdrive/modeld/models/driving.h b/selfdrive/modeld/models/driving.h index eead06575..c78bfd734 100644 --- a/selfdrive/modeld/models/driving.h +++ b/selfdrive/modeld/models/driving.h @@ -266,7 +266,7 @@ struct ModelState { #endif }; -void model_init(ModelState* s, cl_device_id device_id, cl_context context, bool use_extra); +void model_init(ModelState* s, cl_device_id device_id, cl_context context); ModelOutput *model_eval_frame(ModelState* s, VisionBuf* buf, VisionBuf* buf_wide, const mat3 &transform, const mat3 &transform_wide, float *desire_in); void model_free(ModelState* s); diff --git a/selfdrive/modeld/thneed/compile.cc b/selfdrive/modeld/thneed/compile.cc index 8e031b9ab..a432ce4d0 100644 --- a/selfdrive/modeld/thneed/compile.cc +++ b/selfdrive/modeld/thneed/compile.cc @@ -13,7 +13,7 @@ int main(int argc, char* argv[]) { #define OUTPUT_SIZE 0x10000 float *output = (float*)calloc(OUTPUT_SIZE, sizeof(float)); - SNPEModel mdl(argv[1], output, 0, USE_GPU_RUNTIME, USE_EXTRA); + SNPEModel mdl(argv[1], output, 0, USE_GPU_RUNTIME, true); float state[TEMPORAL_SIZE] = {0}; float desire[DESIRE_LEN] = {0}; @@ -25,9 +25,7 @@ int main(int argc, char* argv[]) { mdl.addDesire(desire, DESIRE_LEN); mdl.addTrafficConvention(traffic_convention, TRAFFIC_CONVENTION_LEN); mdl.addImage(input, 0); - if (USE_EXTRA) { - mdl.addExtra(extra, 0); - } + mdl.addExtra(extra, 0); // first run printf("************** execute 1 **************\n");