From bdb1b766d03d6f2ffa87a15971f6718f4cdc5e58 Mon Sep 17 00:00:00 2001 From: George Hotz <72895+geohot@users.noreply.github.com> Date: Mon, 30 Nov 2020 02:21:06 -0800 Subject: [PATCH] Make the DSP work everywhere (#2621) * Use DSP again * 20 Hz Co-authored-by: Willem Melching --- common/realtime.py | 9 +++++++-- selfdrive/modeld/dmonitoringmodeld.cc | 9 --------- selfdrive/modeld/models/dmonitoring.cc | 5 +---- 3 files changed, 8 insertions(+), 15 deletions(-) diff --git a/common/realtime.py b/common/realtime.py index 9f73150072..6a1618673e 100644 --- a/common/realtime.py +++ b/common/realtime.py @@ -4,16 +4,21 @@ import os import time import multiprocessing -from common.hardware import PC +from common.hardware import PC, TICI from common.clock import sec_since_boot # pylint: disable=no-name-in-module, import-error # time step for each process DT_CTRL = 0.01 # controlsd DT_MDL = 0.05 # model -DT_DMON = 0.1 # driver monitoring DT_TRML = 0.5 # thermald and manager +# driver monitoring +if TICI: + DT_DMON = 0.05 +else: + DT_DMON = 0.1 + class Priority: MIN_REALTIME = 52 # highest android process priority is 51 diff --git a/selfdrive/modeld/dmonitoringmodeld.cc b/selfdrive/modeld/dmonitoringmodeld.cc index 3a9b134eff..3721fd4b9b 100644 --- a/selfdrive/modeld/dmonitoringmodeld.cc +++ b/selfdrive/modeld/dmonitoringmodeld.cc @@ -26,10 +26,6 @@ int main(int argc, char **argv) { int err; setpriority(PRIO_PROCESS, 0, -15); -#ifdef QCOM2 - set_core_affinity(5); -#endif - signal(SIGINT, (sighandler_t)set_do_exit); signal(SIGTERM, (sighandler_t)set_do_exit); @@ -70,11 +66,6 @@ int main(int argc, char **argv) { LOGD("dmonitoring process: %.2fms, from last %.2fms", t2-t1, t1-last); last = t1; -#ifdef QCOM2 - // this makes it run at about 2.7Hz on tici CPU to deal with modeld lags - // TODO: DSP needs to be freed (again) - usleep(250000); -#endif } visionstream_destroy(&stream); } diff --git a/selfdrive/modeld/models/dmonitoring.cc b/selfdrive/modeld/models/dmonitoring.cc index fd262801e6..3ab5f445c3 100644 --- a/selfdrive/modeld/models/dmonitoring.cc +++ b/selfdrive/modeld/models/dmonitoring.cc @@ -22,11 +22,8 @@ void dmonitoring_init(DMonitoringModelState* s) { #else const char* model_path = "../../models/dmonitoring_model.dlc"; #endif -#ifdef QCOM2 - int runtime = USE_CPU_RUNTIME; -#else + int runtime = USE_DSP_RUNTIME; -#endif s->m = new DefaultRunModel(model_path, (float*)&s->output, OUTPUT_SIZE, runtime); s->is_rhd = Params().read_db_bool("IsRHD"); }