diff options
| author | Aaron Barnes <[email protected]> | 2021-05-13 10:42:38 -0400 |
|---|---|---|
| committer | Aaron Barnes <[email protected]> | 2021-05-13 10:42:38 -0400 |
| commit | 5945d709530cc1419f624ffb048739f2b70ee1b9 (patch) | |
| tree | 693d0a3dd835ef6e8e3cd31d3a05c18ed2e62e16 /src | |
| parent | 6a09900b34d2eaf5397fd24a5892bf09062be732 (diff) | |
specialized unit should be partitioned too
Diffstat (limited to 'src')
| -rw-r--r-- | src/gpgpu-sim/shader.cc | 6 | ||||
| -rw-r--r-- | src/gpgpu-sim/shader.h | 4 |
2 files changed, 5 insertions, 5 deletions
diff --git a/src/gpgpu-sim/shader.cc b/src/gpgpu-sim/shader.cc index c72ed95..3059b51 100644 --- a/src/gpgpu-sim/shader.cc +++ b/src/gpgpu-sim/shader.cc @@ -411,7 +411,7 @@ void shader_core_ctx::create_exec_pipeline() { m_fu.push_back(new specialized_unit( &m_pipeline_reg[EX_WB], m_config, this, SPEC_UNIT_START_ID + j, m_config->m_specialized_unit[j].name, - m_config->m_specialized_unit[j].latency)); + m_config->m_specialized_unit[j].latency, k)); m_dispatch_port.push_back(m_config->m_specialized_unit[j].ID_OC_SPEC_ID); m_issue_port.push_back(m_config->m_specialized_unit[j].OC_EX_SPEC_ID); } @@ -2228,8 +2228,8 @@ sp_unit::sp_unit(register_set *result_port, const shader_core_config *config, specialized_unit::specialized_unit(register_set *result_port, const shader_core_config *config, shader_core_ctx *core, unsigned supported_op, - char *unit_name, unsigned latency) - : pipelined_simd_unit(result_port, config, latency, core, 0) { + char *unit_name, unsigned latency, unsigned issue_reg_id) + : pipelined_simd_unit(result_port, config, latency, core, issue_reg_id) { m_name = unit_name; m_supported_op = supported_op; } diff --git a/src/gpgpu-sim/shader.h b/src/gpgpu-sim/shader.h index 7987427..fa71af3 100644 --- a/src/gpgpu-sim/shader.h +++ b/src/gpgpu-sim/shader.h @@ -1239,7 +1239,7 @@ class specialized_unit : public pipelined_simd_unit { public: specialized_unit(register_set *result_port, const shader_core_config *config, shader_core_ctx *core, unsigned supported_op, - char *unit_name, unsigned latency); + char *unit_name, unsigned latency, unsigned issue_reg_id); virtual bool can_issue(const warp_inst_t &inst) const { if (inst.op != m_supported_op) { return false; @@ -1248,7 +1248,7 @@ class specialized_unit : public pipelined_simd_unit { } virtual void active_lanes_in_pipeline(); virtual void issue(register_set &source_reg); - bool is_issue_partitioned() { return false; } + bool is_issue_partitioned() { return true; } private: unsigned m_supported_op; |
