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.

RTOS/AM5728: Leveraging OpenMP and IPC simultaneously

Part Number: AM5728

Tool/software: TI-RTOS

Hi,

We have a project around ARM/DSP just like processor_sdk_rtos_am57xx_5_02_00_10\demos\bigdataipc\host_linux\simple_buffer_exampe. Now we are going to use OpenMP simultaneously.

We have read SPRAB27B and we want to combine parallel processing models.

The problem at hand is we want to have HLOS on ARMs (Linux), RTOS on DSPs (BIOS) and keep them connected through IPC. Be cause we need full control over the processing mechanism. Furthermore we should run some more processing applications on DSPs. Although we can leverage the same IPC mechanism to deploy our applications on other DSPs, we prefer to use a higher level solution like OpenMP.

Our development teem just did the same configuration as you may find in this post. And the same errors. Is there any way to have low level IPC while using high level OpenMP programming model on DSPs?

Any help would greatly be appreciated.

Thank you.

Best regards, Omid MDB

  • Hi Omid,

    Would it be possible to post your CCS project here? Do you just simply enable '--openmp' option in compiler from CCS? How does your application look like? A small cut-down CCS project demonstrating the problem would help.

    Regards,
    Garrett
  • XDCtools version: 3.51.1.18_core
    IPC version: 3.50.3.04
    SYS/BIOS version: 6.73.1.01
    am57xx OpenMP version: 2.6.2.01

     

    Hi Garrett,

    Thank you for your reply.

    I am developing a complex object tracking application and my project is based on IPC bigdata project. I don't want to use OpenCL. The host (ARMs) running smp linux and the slave(s) (DSP) running BIOS (Master/Slave Model). The host sends message (an image buffer) to the slave (DSP#0). The slave processor receives messages (image) and sends back reply to the host.

    Now, I want to use OpenMP parallel processing model for developing multi-threaded application.

    Garrett Ding said:
    Would it be possible to post your CCS project here?

    You can refer to the processor_sdk_rtos_am57xx_5_02_00_10\demos\bigdataipc\host_linux\simple_buffer_example.

    Garrett Ding said:
    Do you just simply enable '--openmp' option in compiler from CCS?

    Yes, I enable the '--openmp' compiler option and I compile it successfully, but it does not work.

    My original question is that, can I use IPC (Master/Slave model for communication between cores (linux on ARM and BIOS on DSP)) and OpenMP (for piece of code that would like to parallelize it on the DSPs) simultaneously?

    Best regards, Omid MDB

  • Hi Omid,

    The post you referred to was a compile/link issue - "configPkg/linker.cmd", line 158: error #10099-D: program will not fit into available memory. placement with alignment fails for section ".localfar" size 0x84203

    but in your case, it seems that you are able to compile/build but the application doesn't work, correct?

    Yes, IPC (Master/Slave model for communication between cores (linux on ARM and BIOS on DSP)) and OpenMP (for piece of code that would like to parallelize it on the DSPs) should be able to work simultaneously, but it might not be straight forward, and you may need separate IPC transport for them, just an example on how to set up two transports - e2e.ti.com/.../675085

    Regards,
    Garrett