AWRL6844: Vectorization in porting from C674x (AWR6843) to C66 (AWRL6844)

Part Number: AWRL6844
Other Parts Discussed in Thread: AWR6843

Tool/software:

Hi Radar team, 

I have an application on the C674x (AWR6843) that I need to port to C66 (AWRL6844). However, I am concerned that C66 performance will only be an improvement over C674 if I vectorize my code. How can I ensure that my code is properly vectorized so I can use the full potential of the C66? 

All the best,

Ethan Cope

  • Hey Ethan,

    This should be done automatically by the compiler to a degree. There are some specific DSP intrinsics, pragmas, variable attributes, restrict qualifiers, and assertions that can help the compiler identify operations that can be vectorized within a loop. However, how these features are utilized should remain the same between C66 and C674, so I don’t believe there is much manual work needed here.

    Certain DSP optimization features may need to be manually adjusted, and some optimization features are expanded, such as new intrinsics, but this has to be handled on a case-by-case basis - see resources below.

    I would recommend getting the code working on C66 and benchmarking to see if more performance is needed. As mentioned by the TMS320C6000 Programmer’s Guide, most loops achieve maximum throughput simply through compiler optimization working in tandem with the previously mentioned features, so as long as those features are utilized on C674, then presumably the compiler will have already optimized these loops to near maximum throughput on C66. If additional work is needed, I’d recommend reviewing the following materials as there is a wealth of optimization ideas to pick through:

    Hopefully this helps, but let me know if you have any follow up questions.

    Cheers,

    Kristien