Add HPS model input support for WMMU Simulations For WMMU Simulations, point the HPS model input to 0x84000000. Change-Id: I945199f2719dd5a16b8073550be27faf976882bb
diff --git a/quant_models/CMakeLists.txt b/quant_models/CMakeLists.txt index 50ca35a..42cdca3 100644 --- a/quant_models/CMakeLists.txt +++ b/quant_models/CMakeLists.txt
@@ -115,46 +115,51 @@ # to increase it. foreach(N 0 1 2 3 4 5 6) -iree_cc_binary( - NAME - hps_${N}_bytecode_static - SRCS - "iree_exec/hps.c" - DEPS - ::hps_${N}_quant_input_c - ::hps_bytecode_module_static_c - ::hps_bytecode_module_static_lib - iree::vm::bytecode_module - model_util::util_static - COPTS - "-DHPS_IDX=${N}" - LINKOPTS - "LINKER:--defsym=__stack_size__=200k" - # TODO(b/241297921): determine HPS heap size - "LINKER:--defsym=__heap_size__=5M" -) + set(HPS_COPTS "-DHPS_IDX=${N}") + if (NOT BUILD_NO_WMMU) + list(APPEND HPS_COPTS "-DNO_STATIC_INPUT") + endif() -springbok_test( - NAME - hps_${N}_emitc_static - SRCS - "iree_exec/hps.c" - DEPS - ::hps_${N}_quant_input_c - ::hps_c_module_static_emitc - ::hps_c_module_static_lib - model_util::util_static - LINKOPTS - "LINKER:--defsym=__stack_size__=200k" - # TODO(b/241297921): determine HPS heap size - "LINKER:--defsym=__heap_size__=5M" - COPTS - "-DHPS_IDX=${N}" - "-DBUILD_EMITC" - TESTFILES - "iree_exec/hps_test.run" - "iree_exec/hps_${N}_test.filecheck" -) + iree_cc_binary( + NAME + hps_${N}_bytecode_static + SRCS + "iree_exec/hps.c" + DEPS + ::hps_${N}_quant_input_c + ::hps_bytecode_module_static_c + ::hps_bytecode_module_static_lib + iree::vm::bytecode_module + model_util::util_static + COPTS + ${HPS_COPTS} + LINKOPTS + "LINKER:--defsym=__stack_size__=200k" + # TODO(b/241297921): determine HPS heap size + "LINKER:--defsym=__heap_size__=5M" + ) + + springbok_test( + NAME + hps_${N}_emitc_static + SRCS + "iree_exec/hps.c" + DEPS + ::hps_${N}_quant_input_c + ::hps_c_module_static_emitc + ::hps_c_module_static_lib + model_util::util_static + LINKOPTS + "LINKER:--defsym=__stack_size__=200k" + # TODO(b/241297921): determine HPS heap size + "LINKER:--defsym=__heap_size__=5M" + COPTS + ${HPS_COPTS} + "-DBUILD_EMITC" + TESTFILES + "iree_exec/hps_test.run" + "iree_exec/hps_${N}_test.filecheck" + ) endforeach() iree_cc_binary(
diff --git a/quant_models/iree_exec/hps.c b/quant_models/iree_exec/hps.c index 5537c29..1b23f02 100644 --- a/quant_models/iree_exec/hps.c +++ b/quant_models/iree_exec/hps.c
@@ -24,6 +24,7 @@ #include "iree/hal/api.h" #include "model_util/util.h" +#if !defined(NO_STATIC_INPUT) #if HPS_IDX == 0 #include "hps_0_quant_input_c.h" #define HPS_QUANT_INPUT hps_0_quant_input @@ -46,6 +47,10 @@ #include "hps_1_quant_input_c.h" #define HPS_QUANT_INPUT hps_1_quant_input #endif +static const void *kInput = HPS_QUANT_INPUT; +#else +static const void *kInput = (const void *)0x84000000; +#endif // if !defined(NO_STATIC_INPUT) // Compiled module embedded here to avoid file IO: #if !defined(BUILD_EMITC) @@ -84,7 +89,7 @@ iree_const_byte_span_t **byte_span) { byte_span[0] = malloc(sizeof(iree_const_byte_span_t)); *byte_span[0] = iree_make_const_byte_span( - HPS_QUANT_INPUT, model->input_size_bytes[0] * model->input_length[0]); + kInput, model->input_size_bytes[0] * model->input_length[0]); return iree_ok_status(); }