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.

Why does C6713 run slower than the C31?

Hi,

I have to switch to use the new TI DSP chip C6713 because the old C31 is out of production and I can't even find them from surplus stores any more.

I'm running the C6713 at 200MHz now, whereas I was running the C31 at just 80MHz before.

Nevertheless, I converted my old C31 program written in assembly language into a C program for running on the C6713.

Now, I found the C6713 can run through exactly the same program only 3,000 times per second (with some sub-programs not being activated still), whereas the C31 was able to run through the complete program at least 4,750 times per second before!!!

Can anybody tell me why this is the case? Could it be purely due to the conversion into C? Or are there some kind of compiler optimization options that I may not have turned on that caused this???

Help!

C.M.

  • CM,

    When you build a C application for the DSP, the options that you pass to the compiler have a significant effect on performance.  By default, you may be using default options (i.e. -g and no -o), which allows you to easily debug the application at the cost of relatively poor performance.  I recommend building your application in release profile (i.e. remove -g and add -o3) to get better performance.  The difference in performance between debug and release profiles can be ~10x or higher for intensive algorithms.

    Also, be sure to use the correct -mv option for your C67 DSP core.  If you specify the wrong option, then the compiler may not take advantage of the floating point capabilities of the C67 DSP.  This would obviously have a negative effect on your performance.

    For more information on the various compiler options, please refer to the user guide for the C6000 optimizing compiler:

    Hope this helps.

  • Hi Joe, thanks for the reply. I'm trying out your suggestions now. I already tried removing '-g' and added '-o3' and rebuilt the program, but the program stopped dead almost completely. So looks like I'll have do this optimization thing step by step, fixing up my codes as I go. I already found that even '-o0' made consecutive *GPVAL assignments not compile right, and have fixed it. Now I'm encountering a mysterious random crash problem and am trying to debug it. THis has been posted as  Re: Miss registering a receive event by McBSP1 in the C67x Single Core DSP Forum. I'll move further towards your suggestions after I debugged this problem, if I ever do! Thanks!

    C.M.