summaryrefslogtreecommitdiff
path: root/src/gpgpu-sim
diff options
context:
space:
mode:
Diffstat (limited to 'src/gpgpu-sim')
-rw-r--r--src/gpgpu-sim/shader.cc4
-rw-r--r--src/gpgpu-sim/shader.h12
2 files changed, 11 insertions, 5 deletions
diff --git a/src/gpgpu-sim/shader.cc b/src/gpgpu-sim/shader.cc
index fbf9d52..3692c01 100644
--- a/src/gpgpu-sim/shader.cc
+++ b/src/gpgpu-sim/shader.cc
@@ -1036,12 +1036,14 @@ swl_scheduler::swl_scheduler ( shader_core_stats* stats, shader_core_ctx* shader
char* config_string )
: scheduler_unit ( stats, shader, scoreboard, simt, warp, sp_out, sfu_out, mem_out, id )
{
+ unsigned m_prioritization_readin;
int ret = sscanf( config_string,
"warp_limiting:%d:%d",
- (int*)&m_prioritization,
+ &m_prioritization_readin,
&m_num_warps_to_limit
);
assert( 2 == ret );
+ m_prioritization = (scheduler_prioritization_type)m_prioritization_readin;
// Currently only GTO is implemented
assert( m_prioritization == SCHEDULER_PRIORITIZATION_GTO );
assert( m_num_warps_to_limit <= shader->get_config()->max_warps_per_shader );
diff --git a/src/gpgpu-sim/shader.h b/src/gpgpu-sim/shader.h
index c2775cf..6f31523 100644
--- a/src/gpgpu-sim/shader.h
+++ b/src/gpgpu-sim/shader.h
@@ -419,14 +419,18 @@ public:
int id,
char* config_str )
: scheduler_unit ( stats, shader, scoreboard, simt, warp, sp_out, sfu_out, mem_out, id ),
- m_pending_warps()
+ m_pending_warps()
{
+ unsigned inner_level_readin;
+ unsigned outer_level_readin;
int ret = sscanf( config_str,
"two_level_active:%d:%d:%d",
&m_max_active_warps,
- (int*)&m_inner_level_prioritization,
- (int*)&m_outer_level_prioritization );
+ &inner_level_readin,
+ &outer_level_readin);
assert( 3 == ret );
+ m_inner_level_prioritization=(scheduler_prioritization_type)inner_level_readin;
+ m_outer_level_prioritization=(scheduler_prioritization_type)outer_level_readin;
}
virtual ~two_level_active_scheduler () {}
virtual void order_warps();
@@ -447,7 +451,7 @@ protected:
const std::vector< shd_warp_t* >::const_iterator& prioritized_iter );
private:
- std::deque< shd_warp_t* > m_pending_warps;
+ std::deque< shd_warp_t* > m_pending_warps;
scheduler_prioritization_type m_inner_level_prioritization;
scheduler_prioritization_type m_outer_level_prioritization;
unsigned m_max_active_warps;