summaryrefslogtreecommitdiff
path: root/src/gpgpu-sim/gpu-sim.h
diff options
context:
space:
mode:
authorMahmoud <[email protected]>2018-10-11 12:59:39 -0400
committerMahmoud <[email protected]>2018-10-11 12:59:39 -0400
commitbeeafb66d2e2bb441ab1eacade75322a72961be0 (patch)
tree04e71c63714464d17105f8ae2563a99365d821f8 /src/gpgpu-sim/gpu-sim.h
parenta6b9171a158d29d5d1ad415d087f483feb1af965 (diff)
parent8193d93d0e154206c21ef9da3f2214e2f8409dce (diff)
Merge branch 'dev-purdue-integration' of https://github.rcac.purdue.edu/abdallm/gpgpu-sim_distribution into dev-purdue-integration
Diffstat (limited to 'src/gpgpu-sim/gpu-sim.h')
-rw-r--r--src/gpgpu-sim/gpu-sim.h30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/gpgpu-sim/gpu-sim.h b/src/gpgpu-sim/gpu-sim.h
index 1778008..1bae1fa 100644
--- a/src/gpgpu-sim/gpu-sim.h
+++ b/src/gpgpu-sim/gpu-sim.h
@@ -383,6 +383,32 @@ private:
friend class gpgpu_sim;
};
+struct occupancy_stats {
+ occupancy_stats() : aggregate_warp_slot_filled(0), aggregate_theoretical_warp_slots(0){}
+ occupancy_stats( unsigned long long wsf, unsigned long long tws )
+ : aggregate_warp_slot_filled(wsf), aggregate_theoretical_warp_slots(tws){}
+
+ unsigned long long aggregate_warp_slot_filled;
+ unsigned long long aggregate_theoretical_warp_slots;
+
+ float get_occ_fraction() const {
+ return float(aggregate_warp_slot_filled) / float(aggregate_theoretical_warp_slots);
+ }
+
+ occupancy_stats& operator+=(const occupancy_stats& rhs) {
+ aggregate_warp_slot_filled += rhs.aggregate_warp_slot_filled;
+ aggregate_theoretical_warp_slots += rhs.aggregate_theoretical_warp_slots;
+ return *this;
+ }
+
+ occupancy_stats operator+(const occupancy_stats& rhs) const{
+ return occupancy_stats( aggregate_warp_slot_filled + rhs.aggregate_warp_slot_filled,
+ aggregate_theoretical_warp_slots + rhs.aggregate_theoretical_warp_slots
+ );
+ }
+};
+
+
class gpgpu_sim : public gpgpu_t {
public:
gpgpu_sim( const gpgpu_sim_config &config );
@@ -521,6 +547,9 @@ public:
unsigned long long gpu_tot_sim_insn;
unsigned long long gpu_sim_insn_last_update;
unsigned gpu_sim_insn_last_update_sid;
+ occupancy_stats gpu_occupancy;
+ occupancy_stats gpu_tot_occupancy;
+
FuncCache get_cache_config(std::string kernel_name);
void set_cache_config(std::string kernel_name, FuncCache cacheConfig );
@@ -549,4 +578,5 @@ public:
}
};
+
#endif