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.

Can OpenMP be used on the 66AK2H14 ARM + DSP Processor?

Other Parts Discussed in Thread: 66AK2H14

Hello, can OpenMP be used to control/configure the ARM cores and DSP cores on the 66AK2H14 processor?

 

Thanks,

Joe

  • Hi Joe,

    I've forwarded this to the OpenMP expert for detailed information.
    You can start getting familiar with the TI implementation of OpenMP from the user guides:
    processors.wiki.ti.com/.../OpenMP_Accelerator_Model_User's_Guide
    downloads.ti.com/.../index.html

    As far as I know OpenMP runs on the DSPs, in order to utilize the arm, you may need the ipc/Sys/Bios as well.

    Best Regards,
    Yordan
  • Yordan,

    HI, thanks for responding to my post. Would it be simpler to use OpenMP on the DSP cores and then use something else on the ARM cores does OpenCL work the same as OpenMP but just for ARM cores? How does one manage the ARM cores now?

    Thanks,

    Joe

  • Hi Jor,

    Yes, you can use OpenMP on the ARM+DSP.
    If you download the TI processor SDK Linux and install it, browse to the 'example-applications/openmpacc-examples-1.3.2.0' and you will have a few examples that use the DSP to run parallel task, all of this called from the ARM processor.

    FYI, I do believe, that OpenMP is built on-top of OpenCL.

    Regards,
    - David
  • David,

    HI, do I download Processor SDK for 66AK2HX Processors - Linux and TI-RTOS support or the SYS/BIOS and Linux Multicore Software Development Kits (MCSDK) for C66x, C647x, C645x Processors software?

    Thanks,
    Joe
  • David,

    Is there a specification version number of OpenMP that I should use? Someone on another post said only OpenMP 4.0.

    Joe
  • Yes, you should download the processor SDK for 66AK2H. You don't have to download the MCSDK since it has been discontinued. 

    You can download the Linux and RTOS processor SDK for the KeyStone 2 here: 

    With regards to the version of OpenMP supported, the TI compiler supports OpenMP 4.0. So, I believe you should limit yourself to that API version. 

    Best regards,

    - David

  • David,

    HI, you mentioned using OpenCL but I was reading the OpenMP® Programming for KeyStone Multicore Processors (sprt620a.pdf) and on page 2 it states "TI plans to support the anticipated OpenMP 4.0 accelerator model for KeyStone-II-based heterogeneous SoCs such the 66AK2Hx and 66AK2Ex SoCs." Have things moved ahead so a designer could use only OpenMP to control the different cores?

    Thanks,
    Joe
  • Yes, you can use OpenMP now on both the ARM and DSP cores. I used it successfully on the 66AK2H14 using all 8 cores to optimize a for loop, effectively running almost 8 times faster. 

    I don't remember exactly which version of OpenMP TI is currently supporting however. 

    Regards,

    - David

  • Thanks David! Which core did the Master Thread run on? Was an ARM core the Master Thread and it could start threads on the other ARM/DSP cores? Or, did you have two Master Threads, one for the ARM cores and one for the DSP cores? Last, was your Development computer, the computer running Code Composer, was that Linux or Windows? I've been told that in order to use OpenMP to control the different cores the Development Computer must be Linux.

    Thanks,
    Joe
  • Hi Joe,

    I have only tested OpenMP running on the DSPs. So, my master core was DSP core 0. I haven't tested OpenMP on the ARM but believe it to be feasible (but you might have to run SYS/Bios on that core).

    I was running Code Composer on Windows. I was only running OpenMp on the DSP so I don't think we have any limitations on the environment. Now, if you want to compile for the ARM for anything (OpenCL, OpenMP or a simple app), you will have to run your environment on Linux.

    Hope this helps!
    Regards,
    - David
  • Yordan,

    HI, thanks for responding to my post. I was reading the document "OpenMP® Programming for KeyStone Multicore Processors" from (www.ti.com/lit/ml/sprt620a/sprt620a.pdf) and on page 2 I find:
    TI plans to support the anticipated OpenMP
    4.0 accelerator model for KeyStone-II-based
    heterogeneous SoCs such the 66AK2Hx and
    66AK2Ex SoCs.

    I was wondering does that mean you will have one Master threat running on the any core and it can issue threats to the other cores? Or, does it mean that you will have a Master thread on one of the ARM cores and it can issues threads to the other ARM cores, and one Master thread running on a DSP core and it can issue a thread to any of the DSP cores?

    Thanks,
    Joe
  • David,

    I'm kinda slow here. When you say " run your environment in Linux", do you mean the environment which Code Composer is running that is Linux? If the ARM is running Bare-metal app using the TI-RTOS does Code Composer need to run on a Linux box? If Code Composer has to run in Linux to compile an app that will run on a ARM running Linux can I use a Virtual Machine? I guess the real problem is that the place where I work everyone is using Windows not Linux. If you run Code Composer on a Virtual Machine running Linux will Code Composer have any difficulties running the debugger?

    Thanks,
    Joe
  • Hi Joe,

    Yes, I meant you need to run code composer in linux in order to compile for ARM linux. You can also run Code Composer inside a VM but you might have problems with debug probes (processors.wiki.ti.com/.../VMware_with_CCS). It worked for me when I tried it but it was a bit slow.

    If you are running Bare-metal, code composer can run on Windows or Linux. Ti provides compiler for the ARM processor for TI-RTOS.

    So, it all depends what you are trying to run on each of the cores. If you plan on using SYS/BIOS, everything can be compiled from your Windows environment. If you plan on using Linux on the A15 cores, you will have to compile these binaries in a Linux environment (VM or native).

    Hope this helps!
    Regards,
    - David
  • Thanks David! Sounds like I will be learning Linux.