c++ - How to use DSP to speed-up a code on OMAP? -


I am working on the video codec for OMAP 3430. I already have the code written in C ++, and I try to modify the port / port some of it to take advantage of the DSP (SDK (OMAP ZOOM3430 SDK) I have an additional DSP).

I have been running a small amount of data (~ 250 bytes), which tried to make a small port for loop, but about 2m times on different data. But communication between CPU and DSP is greater than the load gain (if I have it)

I think this work is like customizing a code for GPU in normal computer. My question is, what type of parts will be beneficial? How to take care of such functions of GPU programmer

Edit:. GPP application assigns a buffer of 0x1000 bytes
  • The GPP application calls the DSPProcessor_ReserveMemory to reserve a DSP virtual address space for each assigned buffer, which is 4K size automatic Page is more than the allocated buffer for alignment. The total reservation size should also be aligned with a 4K page limit.
  • The GPP application invokes DSPProcessor_Map DSP virtual address to map each assigned buffer to the safe spaces in the previous step.
  • The GPP application creates a message to inform the DSP execution phase of the address of the virtual address space, which is mapped to the allocated buffer on GPP. The GPP application uses DSPNode_PutMessage to send messages to DSP.
  • Copy the call to GPP to be processed in memcpy shared memory.
  • The GPP application invokes the DSPProcessor_FlushMemory to make sure the data has been flush that cache.
  • GPP application creates a message to inform DSP execution phase that it has finished writing buffer and the DSP can now reach buffer, including the amount of data written to the buffer in the message So that DSP will know how much data will be copied. GPP uses DSPNode_PutMessage to send messages of DSP to DSP waiting to hear messages and then call DSPNode_GetMessage. After doing these, the execution of the DSP program begins, and the DSP informs the GPP with a message when it comes to processing just to try I am inside the DSP program. No processing. I just send the "finished processing" message back to GPP And it still takes a lot of time to be because of the use of internal / external memory, or is it simply because of the overload of communication?

  • itemprop = "text">

    OMAP 3430 does not have a board on the DSP, in which the virtual bus for the system bus is an IVA2 + video / Audio decoded engine and CIPD is a PowerVR SGX-based unit at the OMAP 3430, in Cortex Corps like DSP. Although there are programmable shaders in it and I believe there is no support for general purpose programming Ella Quaida or OpenCL. I may be wrong but I have never heard of such support

    If your board is using IVA2+ encoding / decode engine, then you should use appropriate libraries for this unit. We need to and it only supports the specific codecs that we know. Are you trying to write your own library in this module?

    If your costx has been used in DSP's (Simi's instructions), then post some code.

    If there is some additional DSP on your Dev board, what is DSP and how is it connected to OMAP?

    As a desktop GP query, in the case of video decode, you use the function library to be supplied by the vendor to call the hardware, there are many, Vdipu for windows, But this kind of libraries (pure Vihd, I think its a phone). There are both Linux and Windows libraries for board linux engines in ATI, I do not know the name.


    Comments

    Popular posts from this blog

    c++ - Linux and clipboard -

    What is expire header and how to achive them in ASP.NET and PHP? -

    sql server - How can I determine which of my SQL 2005 statistics are unused? -