summaryrefslogtreecommitdiff
path: root/src/trace-driven/trace_driven.h
diff options
context:
space:
mode:
authorMahmoud <[email protected]>2020-05-23 22:45:28 -0400
committerMahmoud <[email protected]>2020-05-23 22:45:28 -0400
commit47e1a8a3a45203c34a93672a1b1bd742dc193183 (patch)
tree4db7185ba2d4af2bd03e1388cd15a33b95ea8562 /src/trace-driven/trace_driven.h
parent90a36a59f5619790b7f6d80375f69d05a75c0a82 (diff)
code refomratting
Diffstat (limited to 'src/trace-driven/trace_driven.h')
-rw-r--r--src/trace-driven/trace_driven.h215
1 files changed, 108 insertions, 107 deletions
diff --git a/src/trace-driven/trace_driven.h b/src/trace-driven/trace_driven.h
index e9fecd9..09a2527 100644
--- a/src/trace-driven/trace_driven.h
+++ b/src/trace-driven/trace_driven.h
@@ -1,8 +1,8 @@
-//developed by Mahmoud Khairy, Purdue Univ
+// developed by Mahmoud Khairy, Purdue Univ
+#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
-#include <assert.h>
#ifndef TRACE_DRIVEN_H
#define TRACE_DRIVEN_H
@@ -11,143 +11,144 @@
#include "../gpgpu-sim/shader.h"
#include "ISA_Def/trace_opcode.h"
-class trace_function_info: public function_info {
-public:
- trace_function_info(const struct gpgpu_ptx_sim_info &info, gpgpu_context* m_gpgpu_context):function_info(0, m_gpgpu_context ) {
- m_kernel_info = info;
- }
-
- virtual const struct gpgpu_ptx_sim_info* get_kernel_info () const {
- return &m_kernel_info;
- }
-
- virtual const void set_kernel_info (const struct gpgpu_ptx_sim_info &info) {
- m_kernel_info = info;
- }
+class trace_function_info : public function_info {
+ public:
+ trace_function_info(const struct gpgpu_ptx_sim_info& info,
+ gpgpu_context* m_gpgpu_context)
+ : function_info(0, m_gpgpu_context) {
+ m_kernel_info = info;
+ }
- virtual ~trace_function_info() {
+ virtual const struct gpgpu_ptx_sim_info* get_kernel_info() const {
+ return &m_kernel_info;
+ }
- }
+ virtual const void set_kernel_info(const struct gpgpu_ptx_sim_info& info) {
+ m_kernel_info = info;
+ }
+ virtual ~trace_function_info() {}
};
-class trace_warp_inst_t: public warp_inst_t {
-public:
+class trace_warp_inst_t : public warp_inst_t {
+ public:
+ trace_warp_inst_t() {
+ m_gpgpu_context = NULL;
+ m_opcode = 0;
+ m_tconfig = NULL;
+ }
- trace_warp_inst_t() {
- m_gpgpu_context=NULL;
- m_opcode=0;
- m_tconfig=NULL;
- }
+ trace_warp_inst_t(const class core_config* config,
+ gpgpu_context* gpgpu_context, class trace_config* tconfig)
+ : warp_inst_t(config) {
+ m_gpgpu_context = gpgpu_context;
+ m_opcode = 0;
+ m_tconfig = tconfig;
+ }
- trace_warp_inst_t(const class core_config *config, gpgpu_context* gpgpu_context, class trace_config* tconfig ):warp_inst_t(config) {
- m_gpgpu_context = gpgpu_context;
- m_opcode=0;
- m_tconfig=tconfig;
- }
+ bool parse_from_string(
+ std::string trace,
+ const std::unordered_map<std::string, OpcodeChar>* OpcodeMap);
- bool parse_from_string(std::string trace, const std::unordered_map<std::string,OpcodeChar>* OpcodeMap);
-
-private:
- gpgpu_context* m_gpgpu_context;
- class trace_config* m_tconfig;
- unsigned m_opcode;
- bool check_opcode_contain(const std::vector<std::string>& opcode, std::string param);
- unsigned get_datawidth_from_opcode(const std::vector<std::string>& opcode);
+ private:
+ gpgpu_context* m_gpgpu_context;
+ class trace_config* m_tconfig;
+ unsigned m_opcode;
+ bool check_opcode_contain(const std::vector<std::string>& opcode,
+ std::string param);
+ unsigned get_datawidth_from_opcode(const std::vector<std::string>& opcode);
};
-class trace_kernel_info_t: public kernel_info_t {
-public:
- trace_kernel_info_t(dim3 gridDim, dim3 blockDim, unsigned m_binary_verion, trace_function_info* m_function_info, std::ifstream* inputstream, gpgpu_sim * gpgpu_sim, gpgpu_context* gpgpu_context, class trace_config* config);
-
- bool get_next_threadblock_traces(std::vector<std::vector<trace_warp_inst_t>*> threadblock_traces);
+class trace_kernel_info_t : public kernel_info_t {
+ public:
+ trace_kernel_info_t(dim3 gridDim, dim3 blockDim, unsigned m_binary_verion,
+ trace_function_info* m_function_info,
+ std::ifstream* inputstream, gpgpu_sim* gpgpu_sim,
+ gpgpu_context* gpgpu_context, class trace_config* config);
-private:
- std::ifstream* ifs;
- gpgpu_sim * m_gpgpu_sim;
- gpgpu_context* m_gpgpu_context;
- trace_config* m_tconfig;
- unsigned binary_verion;
- const std::unordered_map<std::string,OpcodeChar>* OpcodeMap;
+ bool get_next_threadblock_traces(
+ std::vector<std::vector<trace_warp_inst_t>*> threadblock_traces);
+ private:
+ std::ifstream* ifs;
+ gpgpu_sim* m_gpgpu_sim;
+ gpgpu_context* m_gpgpu_context;
+ trace_config* m_tconfig;
+ unsigned binary_verion;
+ const std::unordered_map<std::string, OpcodeChar>* OpcodeMap;
};
-
class trace_config {
-public:
- trace_config(gpgpu_sim * m_gpgpu_sim);
-
- void set_latency(unsigned category, unsigned& latency, unsigned& initiation_interval);
- void parse_config();
+ public:
+ trace_config(gpgpu_sim* m_gpgpu_sim);
+ void set_latency(unsigned category, unsigned& latency,
+ unsigned& initiation_interval);
+ void parse_config();
-private:
-
- unsigned int_latency, fp_latency, dp_latency, sfu_latency, tensor_latency;
- unsigned int_init, fp_init, dp_init, sfu_init, tensor_init;
- gpgpu_sim* m_gpgpu_sim;
-
+ private:
+ unsigned int_latency, fp_latency, dp_latency, sfu_latency, tensor_latency;
+ unsigned int_init, fp_init, dp_init, sfu_init, tensor_init;
+ gpgpu_sim* m_gpgpu_sim;
};
class trace_parser {
-public:
- trace_parser(const char* kernellist_filepath, gpgpu_sim * m_gpgpu_sim, gpgpu_context* m_gpgpu_context);
-
- std::vector<std::string> parse_kernellist_file();
- trace_kernel_info_t* parse_kernel_info(const std::string& kerneltraces_filepath, trace_config* config);
- void parse_memcpy_info(const std::string& memcpy_command, size_t& add, size_t& count);
-
- void kernel_finalizer(trace_kernel_info_t* kernel_info);
+ public:
+ trace_parser(const char* kernellist_filepath, gpgpu_sim* m_gpgpu_sim,
+ gpgpu_context* m_gpgpu_context);
-private:
+ std::vector<std::string> parse_kernellist_file();
+ trace_kernel_info_t* parse_kernel_info(
+ const std::string& kerneltraces_filepath, trace_config* config);
+ void parse_memcpy_info(const std::string& memcpy_command, size_t& add,
+ size_t& count);
- std::string kernellist_filename;
- std::ifstream ifs;
- gpgpu_sim * m_gpgpu_sim;
- gpgpu_context* m_gpgpu_context;
+ void kernel_finalizer(trace_kernel_info_t* kernel_info);
+ private:
+ std::string kernellist_filename;
+ std::ifstream ifs;
+ gpgpu_sim* m_gpgpu_sim;
+ gpgpu_context* m_gpgpu_context;
};
class trace_shd_warp_t {
-public:
- trace_shd_warp_t() {
- trace_pc=0;
- }
+ public:
+ trace_shd_warp_t() { trace_pc = 0; }
- std::vector<trace_warp_inst_t> warp_traces;
- const trace_warp_inst_t* get_next_inst();
- void clear();
- bool trace_done();
- address_type get_start_pc();
- address_type get_pc();
-
-private:
- unsigned trace_pc;
+ std::vector<trace_warp_inst_t> warp_traces;
+ const trace_warp_inst_t* get_next_inst();
+ void clear();
+ bool trace_done();
+ address_type get_start_pc();
+ address_type get_pc();
+ private:
+ unsigned trace_pc;
};
-class trace_shader_core_ctx: public shader_core_ctx {
-public:
- trace_shader_core_ctx(class gpgpu_sim *gpu,
- class simt_core_cluster *cluster,
- unsigned shader_id,
- unsigned tpc_id,
- const shader_core_config *config,
- const memory_config *mem_config,
- shader_core_stats *stats):shader_core_ctx(gpu, cluster, shader_id, tpc_id, config, mem_config, stats) {
-
- m_trace_warp.resize(get_config()->max_warps_per_shader);
- }
-
- virtual void checkExecutionStatusAndUpdate(warp_inst_t &inst, unsigned t, unsigned tid);
- void init_traces( unsigned start_warp, unsigned end_warp, kernel_info_t &kernel );
- unsigned trace_sim_inc_thread( kernel_info_t &kernel);
- virtual void func_exec_inst( warp_inst_t &inst );
- friend class shader_core_ctx;
+class trace_shader_core_ctx : public shader_core_ctx {
+ public:
+ trace_shader_core_ctx(class gpgpu_sim* gpu, class simt_core_cluster* cluster,
+ unsigned shader_id, unsigned tpc_id,
+ const shader_core_config* config,
+ const memory_config* mem_config,
+ shader_core_stats* stats)
+ : shader_core_ctx(gpu, cluster, shader_id, tpc_id, config, mem_config,
+ stats) {
+ m_trace_warp.resize(get_config()->max_warps_per_shader);
+ }
-private:
- std::vector<trace_shd_warp_t> m_trace_warp;
+ virtual void checkExecutionStatusAndUpdate(warp_inst_t& inst, unsigned t,
+ unsigned tid);
+ void init_traces(unsigned start_warp, unsigned end_warp,
+ kernel_info_t& kernel);
+ unsigned trace_sim_inc_thread(kernel_info_t& kernel);
+ virtual void func_exec_inst(warp_inst_t& inst);
+ friend class shader_core_ctx;
+ private:
+ std::vector<trace_shd_warp_t> m_trace_warp;
};
#endif