Assign time slice to task in MALI GPU

Hello,

I have a system with MALI G78 AE GPU which has 4 slices in 4 different partitions, each slice with 2 shader cores.

I would like to know if it is possible to assign a time slice for a task to have access to the GPU partition in the system, and if so, how this can be done?

Example: Task A and Task B execute in the same partition on the system, am I capable to assign 10ms to Task A and then 20ms to Task B and so on until the tasks are finished?

How the context switch is driven in the MALI GPU? Is it something configurable in its arbiter?

Thanks, Luca.

Parents
  • Hi Luca, 

    The Arbiter provides a simple round-robin fair scheduling policy based on the mali_arbiter.ko's request_timeout parameter.

    The stack is provided as a reference, so it is expected that both the configuration (module parameter and sysfs interface) and scheduling policy is replaced with a use-case and system specific implementation. 

    run_next_vm_locked() in mali_arbiter_main.c is where the request timeout is applied on granting the GPU.
    Logic would need to be added to this function to apply a different request timeout based on the VM (Access Window).
    Kind regards,
    Richard.
Reply
  • Hi Luca, 

    The Arbiter provides a simple round-robin fair scheduling policy based on the mali_arbiter.ko's request_timeout parameter.

    The stack is provided as a reference, so it is expected that both the configuration (module parameter and sysfs interface) and scheduling policy is replaced with a use-case and system specific implementation. 

    run_next_vm_locked() in mali_arbiter_main.c is where the request timeout is applied on granting the GPU.
    Logic would need to be added to this function to apply a different request timeout based on the VM (Access Window).
    Kind regards,
    Richard.
Children