blob: 91ff90bc4ab0494923caa1e995ac61bad470b5f5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
//developed by Mahmoud Khairy, Purdue Univ
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#ifndef TRACE_DRIVEN_H
#define TRACE_DRIVEN_H
#include "../abstract_hardware_model.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;
}
private:
};
class trace_kernel_info_t: public kernel_info_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;
}
private:
std::string traces_filepath;
};
class trace_warp_inst_t: public warp_inst_t {
public:
trace_warp_inst_t() {
}
private:
};
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);
trace_kernel_info_t* parse_kernel_info(const std::string& kerneltraces_filepath);
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;
};
#endif
|