summaryrefslogtreecommitdiff
path: root/src/trace-driven/trace_driven.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/trace-driven/trace_driven.cc')
-rw-r--r--src/trace-driven/trace_driven.cc15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/trace-driven/trace_driven.cc b/src/trace-driven/trace_driven.cc
index d42ee65..0b1e24b 100644
--- a/src/trace-driven/trace_driven.cc
+++ b/src/trace-driven/trace_driven.cc
@@ -608,6 +608,16 @@ void trace_config::reg_options(option_parser_t opp) {
"Opcode latencies and initiation for tensor in trace "
"driven mode <latency,initiation>",
"4,1");
+
+ for (unsigned j = 0; j < SPECIALIZED_UNIT_NUM; ++j) {
+ std::stringstream ss;
+ ss << "-trace_opcode_latency_initiation_spec_op_" << j + 1;
+ option_parser_register(opp, ss.str().c_str(), OPT_CSTR,
+ &trace_opcode_latency_initiation_specialized_op[j],
+ "specialized unit config"
+ " <latency,initiation>",
+ "4,4");
+ }
}
void trace_config::parse_config() {
@@ -617,6 +627,11 @@ void trace_config::parse_config() {
sscanf(trace_opcode_latency_initiation_sfu, "%u,%u", &sfu_latency, &sfu_init);
sscanf(trace_opcode_latency_initiation_tensor, "%u,%u", &tensor_latency,
&tensor_init);
+
+ for (unsigned j = 0; j < SPECIALIZED_UNIT_NUM; ++j) {
+ sscanf(trace_opcode_latency_initiation_specialized_op[j], "%u,%u",
+ &specialized_unit_latency[j], &specialized_unit_initiation[j]);
+ }
}
void trace_config::set_latency(unsigned category, unsigned& latency,
unsigned& initiation_interval) {