@@ -32,10 +32,19 @@ typedef struct {
32
32
33
33
// Accelerator details
34
34
unsigned int num_accel;
35
- std::vector<std::vector<int >>
36
- accel_job_ids; // [num_accel][accel_invoc_queue_depth]
35
+
36
+ // Circular buffer that implements hardware kernel invocation queue
37
+ // size: [num_accel][accel_invoc_queue_depth]
38
+ std::vector<std::vector<int >> accel_job_ids;
39
+ // Depth of hardware kernel invocation queue [num_accel]
40
+ std::vector<unsigned int > accel_invoc_queue_depth;
41
+ // Points to the last kernel that has been launched but not yet finished
42
+ // [num_accel]
37
43
std::vector<int > accel_queue_front;
44
+ // Points to the last empty slot on hardware kernel invocation queue
45
+ // where kernel at the next index is the next one to finish [num_accel]
38
46
std::vector<int > accel_queue_back;
47
+
39
48
std::vector<acl_kernel_if_addr_range> accel_csr;
40
49
std::vector<acl_kernel_if_addr_range> accel_perf_mon;
41
50
std::vector<unsigned int > accel_num_printfs;
@@ -74,9 +83,6 @@ typedef struct {
74
83
// e.g., in a future code refactoring.
75
84
bool cra_ring_root_exist = false ;
76
85
77
- // Depth of hardware kernel invocation queue
78
- std::vector<unsigned int > accel_invoc_queue_depth;
79
-
80
86
// Track which of the kernels is the autorun profiling kernel (-1 if none)
81
87
int autorun_profiling_kernel_id;
82
88
0 commit comments