This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM5748: GPU activity impacts DSP in AM5748 but not in AM5718

Part Number: AM5748
Other Parts Discussed in Thread: AM5718

Tool/software:

Hi experts!!

We are working with Sitara AM5748 and have seen that when we interact with the display of the device, the GPU impacts the performance of DSP1 which receives samples from a couple of ADCs via McASP & EDMA. McASP and subsequent SWIs take longer time than when we don't use the display and there's nothing to repaint. We think the activity caused by the GPU is to blame, as this effect doesn't occur when we disable it and let the MPU handle the graphics.

But what really puzzles us is that this effect doesn't seem to appear using the same binaries with AM5718.

Even if we set the MPU of the AM5748 to work with a single A15 core, just like AM5718, GPU affects the DSP.

Could you provide us any hint or explanation for this different behavior on AM5718 and AM5748?

We know the main differences between these two cores are:
- AM5748 has two A15 cores instead of one (as stated above, we already tried using just one core and the behavior is the same)
- AM5748 has two DSP cores instead of one (we are just using DSP1)
- AM5748 has 2.5 MiB of L3_OCMC instead of 0.5 MiB, but we are using just 0.5 MiB to make the software compatible with both processor models.
- AM5748 has two EMIFs instead of one, but we are using just one with the same DDR configuration as with AM5718.
- AM5748 has EVE (Embedded Vision Engine) but we are no using it.

Any other difference that might explain it?

This post is related to e2e.ti.com/.../am5748-gpu-affecting-dsp.

Best Regards

Ro

  • Hello Ro,

    This one is interesting.. nothing comes to mind but I will confer internally.

    I will be in a business trip next week until 3/13, so please expect delays in response.

    -Josue

  • Hello Ro,

    My assumption is that the AM574x has dedicated bus bandwidth given to the GPU in the case of the AM5748x since the device has a doble core vs the single core GPU in AM5718. 

    Can you check what the settings are for this register in both devices?

    Am571x:

    Am574x: 

    Is there a difference in SYS_BUS_WIDTH?

    -Josue

  • Hello Josue,

    Checked, both AM5718 and AM5748 have a value of 0x00000005 in register 0x5600FE04, which means that Reset value is kept. 128 bits MEM_BUS_WIDTH and 64 bits SYS_BUS_width.

    We tried setting the AM5718 to work with just one A15 core and the bevahior was the same.


    Thank you for the support.

    Best Regards

    Ro

  • Sorry, "We tried setting the AM5748 to work with just one A15 core and the bevahior was the same"

  • Ro, 

    I will see if the Dev team have any comment.

    Thank you for your patience.

    -Josue

  • Hello Josue,

    OK, we will be patient. I hope the Dev team can take a look around soon.  Thank you for the support.

    Best Regards

    Ro 

  • Ro,

    Will follow up in the other thread and continue convo there in order to make sure we do not replicate answers, since they are essentially the same question.

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1484282/am5748-gpu-affecting-dsp

    -Josue

  • Ro,

    Reaching out to HW team, will update with response sometime next week.

    -Josue

  • Ro,

    HW team told me the same thing I mentioned in other thread. 

    "There may be many factors at play, but the top level factor here is the GPU on AM5748 is more powerful compared to what is on AM5718.

    • AM5748 has a SGX544-MP2  (2x544)
    • AM5718 has a SGX544-MP1  (1x544)

     

    AM5748’s more powerful GPU can generate more DDR traffic."

    So the recommended steps are the same,:

    • limit frame-rate
    • implement rate limiter in the interconnect for the GPU 

    -Josue

  • Hello Josue,

    Thank you for the answer! We missed the detail that the AM5748 has two GPU cores, we were not aware of it. Sorry, but I can't find any mention to this detail in this thread nor in the other, but it's OK, this can be the reason to see different behaviors with AM5718 and AM5748.

    Regarding the TRM, section 13.3.1 GPU Block Diagram:

    Graphics rendering is automatically load-balanced between the 2× SGX544 cores. It is possible to disable one or two of the cores if required.

    But our OS teammates can't see a way to do this via driver/configuration or any register explanation into the TRM. Could you tell us how to disable one of the cores?

    About frame-rate, OS mates say that we are using QT-Composer with Chromium which sets (and it's not "controllable") the frame-rate to 60 fps. Anyway, this seems to be a "top" value because using a GPU profiler we see a maximum usage mark of 10 fps. This makes sense as the HMI interface we have in our display, despite being modern, is far from being intensive.

    Finally, we tried some days ago using the rate limiter in the interconnect for the GPU, both trying to reduce the bandwidth for the GPU and giving highest bandwidth to DSP. It's documented in my posts in the other thread.

    Thank you for the support

  • Ro,

    Please check on TRM. If there is a way, then it should be documented. 

    I will not have BW to look into it on my side at the time being.

    Sorry, but I can't find any mention to this detail in this thread nor in the other, but it's OK, this can be the reason to see different behaviors with AM5718 and AM5748.

    Apologies if I did not make the differences clear from the beginning. 

    -Josue