From 6ce5e06d2389cad5041b495d5516b503ec7d2cd2 Mon Sep 17 00:00:00 2001 From: Mahmoud Date: Thu, 12 Sep 2019 18:14:02 -0400 Subject: parsing insts from traces --- src/trace-driven/trace_driven.h | 43 +++++++++++++++++++++++++++++++---------- 1 file changed, 33 insertions(+), 10 deletions(-) (limited to 'src/trace-driven/trace_driven.h') diff --git a/src/trace-driven/trace_driven.h b/src/trace-driven/trace_driven.h index 91ff90b..091707a 100644 --- a/src/trace-driven/trace_driven.h +++ b/src/trace-driven/trace_driven.h @@ -8,7 +8,7 @@ #define TRACE_DRIVEN_H #include "../abstract_hardware_model.h" - +#include "../gpgpu-sim/shader.h" class trace_function_info: public function_info { public: @@ -29,33 +29,45 @@ private: }; -class trace_kernel_info_t: public kernel_info_t { +class trace_warp_inst_t: public warp_inst_t { public: - trace_kernel_info_t(dim3 gridDim, dim3 blockDim, trace_function_info* m_function_info, const std::string& filepath):kernel_info_t(gridDim, blockDim, m_function_info) { - traces_filepath = filepath; + + trace_warp_inst_t() { + + } + trace_warp_inst_t(const class core_config *config):warp_inst_t(config) { } + bool parse_from_string(std::string trace); + + private: - std::string traces_filepath; + }; -class trace_warp_inst_t: public warp_inst_t { +class trace_kernel_info_t: public kernel_info_t { public: - - trace_warp_inst_t() { + trace_kernel_info_t(dim3 gridDim, dim3 blockDim, trace_function_info* m_function_info, std::ifstream* inputstream, gpgpu_sim * gpgpu_sim):kernel_info_t(gridDim, blockDim, m_function_info) { + ifs = inputstream; + m_gpgpu_sim = gpgpu_sim; } -private: + bool get_next_threadblock_traces(std::vector>& threadblock_traces); +private: + std::ifstream* ifs; + 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); - void parse_kernellist_file(std::vector& kernellist); + std::vector parse_kernellist_file(); trace_kernel_info_t* parse_kernel_info(const std::string& kerneltraces_filepath); void kernel_finalizer(trace_kernel_info_t* kernel_info); @@ -68,4 +80,15 @@ private: }; +class trace_shd_warp_t: public shd_warp_t { +public: + trace_shd_warp_t(class shader_core_ctx *shader, unsigned warp_size):shd_warp_t(shader, warp_size) { + } + + bool get_next_threadblock_traces(std::vector>& threadblock_traces); + +private: + +}; + #endif -- cgit v1.3