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
  • Hi Richard,

    Thanks for your reply on this case.

    I don't have any further questions, but if anyone is interested in modifying their default request_timeout value for the context switch on the GPU, this can be done dynamically through the following command:

    $ echo <new_value> | sudo tee sys/module/mali_arbiter/parameters/request_timeout

    <new value> should be in ms and sudo may not be necessary. Example: echo 10 | tee (...)

    Kind regards, Luca.