-
Notifications
You must be signed in to change notification settings - Fork 14
Description
Hi @MeowMJ, let's discuss these tmr, thanks~
CGRA-Mapper/tools/expandable/NeuraDemo.py
Line 364 in 6c19f2d
execution_time = self.kernel.total_iterations * self.ii
Shouldn't we manipulate number of iterations (instead of II) to calculate execution time?
CGRA-Mapper/tools/expandable/NeuraDemo.py
Line 338 in 6c19f2d
def calculate_execution_time(self):
We should also have migratable/expanded II?
CGRA-Mapper/tools/expandable/NeuraDemo.py
Line 368 in 6c19f2d
def copy_with_valid(self):
Why we need this func?
CGRA-Mapper/tools/expandable/NeuraDemo.py
Lines 413 to 414 in 6c19f2d
execution_time = instance.calculate_execution_time() instance.end_time = current_time + execution_time
If it is current time + instance.calculate_execution_time()
, then instance.calculate_execution_time()
should be updated for every func call?
-
CGRA-Mapper/tools/expandable/NeuraDemo.py
Line 485 in 6c19f2d
instance.end_time = new_end_time
instance.end_time
is updated by both release() and reallocate(), how to distinguish, they are by default exclude to each other? -
I don't see a CGRA class, how do we calculate per-CGRA utilization?
-
https://github.com/tancheng/CGRA-Mapper/blob/6c19f2d233714a3135a06295cf5453dcda9a5025/tools/expandable/NeuraDemo.py#L543What is
none
here? -
CGRA-Mapper/tools/expandable/NeuraDemo.py
Lines 588 to 591 in 6c19f2d
# Check running instances for possible re-allocation if priority_bosting: for running in running_instances: available_cgras, total_cgra_runtime = re_allocate(running, current_time, available_cgras, events, total_cgra_runtime)
How could this affect the end
time to deque an event from the heapq? This would cause one kernel has two end
events?
CGRA-Mapper/tools/expandable/NeuraDemo.py
Lines 593 to 601 in 6c19f2d
# Calculate ratio for each kernel for kernel in kernels: total_execution_time = sum( [inst.pure_execution_time for inst in completed_instances if inst.kernel.kernel_name == kernel.kernel_name]) total_waiting_time = sum( [inst.pure_waiting_time for inst in completed_instances if inst.kernel.kernel_name == kernel.kernel_name]) total_time = total_execution_time + total_waiting_time kernel_execution_ratio[kernel.kernel_name] = total_execution_time / total_time if total_time > 0 else 0 kernel_waiting_ratio[kernel.kernel_name] = total_waiting_time / total_time if total_time > 0 else 0
Let's discuss these stats.