This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

OpenCL : Can the two GPU devices in Mali-T628 work in parallel

Hi,

I have an Odroid XU3 board. And i am trying to program the Mali-T628 GPU on this board with OpenCL.

With the devices example that comes with the Mali SDK, I came to understand that there are two GPU devices on the Mali-T628. One device with 4 compute units and another device with 2 compute units. I was able to use these devices separately and found that the device with 2 compute units is slower than the device with 4 compute units. But I could not get them to run in parallel.

I created separate command queues for these devices and enqueued the kernels(assigning double the work for the larger device). Though the two kernels seems to be put in their queues immediately, the second kernels seems to start execution only after the first completes. From the profiling information, it seems that the kernels are getting executed sequentially.  Profile information given below. Note the queued time for the second kernel.

Profiling information:

Queued time: 0.334ms

Wait time: 21.751ms

Run time: 12246.8ms

Profiling information:

Queued time: 12269.4ms

Wait time: 0.183916ms

Run time: 12494.5ms

Is this sequential execution expected ?


Thanks in advance,
--Kiran

Parents
  • Hi Kiran,

    Using two separate queues for the two devices is the right way of doing things and is known to work.

    Could you please share with us the part of your code where you create the devices and command queues ?

    Thanks,

    Anthony

Reply
  • Hi Kiran,

    Using two separate queues for the two devices is the right way of doing things and is known to work.

    Could you please share with us the part of your code where you create the devices and command queues ?

    Thanks,

    Anthony

Children