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.

C6Run vs. C6Accel for FFT/IFFT

Other Parts Discussed in Thread: DM3730

Hi,

I'm just wondering what's the best approach to do some FFT and IFFT on Beagleboard-xM (is it DM3730?). I mean is it faster and easier to use just functions available through C6Accel or is it better to use some 3rd party library for FFT/IFFT and compile it to work with C6Run? Despite FFT I also need to do some numerical computation with Levenberg-Marquardt algorithm and I don't know if I could use C6Accel for signal processing and add to it my own code to do the LM optimization? Maybe there're some libraries provided by TI for LM non-linear least squares solutions? What approach is the best for my needs?

 

Thanks

Konrad

  • Konrad,

    I'm not aware of any code for LM optimization, but for the FFT/IFFT, you can make used of the optmiized code that is available in the C64x+ DSPLib library.  For info on using complete DSP libraries with C6Run, see the recent additions to the FAQ.

    http://processors.wiki.ti.com/index.php/C6Run_FAQ#Can_I_use_TI_optimized_libraries_with_C6RunLib.3F

    http://processors.wiki.ti.com/index.php/C6Run_FAQ#Can_I_use_TI_optimized_libraries_with_C6RunApp.3F

    Regards, Daniel

  • Daniel,

    Thank You for this links. There are indeed some new information I didn't notice before . I was hoping to get some advices about what are the advantages for each of these technologies. Let's suppose I have several DSP intensive functions I could compile within one C6Run library with DSPLIB help, but I could also use direct calls to C6Accel functions. I know there are some overheads according to ARM calls to DSP, but is there some rule of thumb that would help me to make my choice? Or should I use some trial and error method to find out which approach is faster. In general I use ARM side portaudio library to fetch some data from soundcard in realtime (several hundreds of kilobytes per second) and want to do some DSP with it - FFT, matched filter, least-mean squares and so on... and then return the results to ARM side. What would You advise on this topic?

     

    Regards, 

    Konrad

     

  • Konrad,

    The basic rule of thumb I follow is if you just want to use functions provided by TI, from our optimized libraries, then using C6Accel is probably fastest/easiest (i.e. you want to use the DSP as more of a black box).  If you want to add special uses around the optimized TI functions, or include your own processing code on the DSP, then I think C6Run is easier to use.  Both use cases can be accomplished with both tools, but the general advice above is accurate (custom code is harder to add to C6Accel, but pre-canned libraries need to have an interface created manually for C6Run).

    Overheads of communicating should be roughly similar.

    Regards, Daniel