Skip to content

[P0] Questions about FCFS #54

@tancheng

Description

@tancheng

Hi @MeowMJ, let's discuss these tmr, thanks~

  1. execution_time = self.kernel.total_iterations * self.ii

Shouldn't we manipulate number of iterations (instead of II) to calculate execution time?

  1. def calculate_execution_time(self):

We should also have migratable/expanded II?

  1. def copy_with_valid(self):

Why we need this func?

  1. 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?

  1. 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?

  2. I don't see a CGRA class, how do we calculate per-CGRA utilization?

  3. https://github.com/tancheng/CGRA-Mapper/blob/6c19f2d233714a3135a06295cf5453dcda9a5025/tools/expandable/NeuraDemo.py#L543What is none here?

  4. # 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?

  1. # 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.

Metadata

Metadata

Assignees

Labels

questionFurther information is requested

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions