summaryrefslogtreecommitdiff
path: root/src/trace-driven/trace_driven.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/trace-driven/trace_driven.h')
-rw-r--r--src/trace-driven/trace_driven.h43
1 files changed, 33 insertions, 10 deletions
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<std::vector<trace_warp_inst_t>>& 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<std::string>& kernellist);
+ std::vector<std::string> 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<std::vector<trace_warp_inst_t>>& threadblock_traces);
+
+private:
+
+};
+
#endif