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.

AM5729: DSP libraries for Source Encoding

Part Number: AM5729

Hello,

I am working with the AM5729 SoC and am developing my DSP application on the C66x core. 


I see there is a DSP library in the processor SDK. However, I don't find anything for source encoders like Reed Solomon codes, Golay codes, etc. 

1) Are there any libraries defined for source encoding/decoding that can be directly used and which make use of the C66x architecture to optimize the functionality?

I read in one of the posts that a Reed Solomon decoder for C64x was demonstrated using assembly multiply instruction to carry out the Galois field multiplication. 

2) Are there any similar suggestions for the C66x architecture available? 

3) Is using assembly instructions the only way to optimize a platform-independent C code for source encoding/decoding in accordance to the C66x core architecture? 

Thanks,

Dimple

  • Hi,

    We highly discourage to write assembly code. In most of the cases assembly code generated ( from C code for given loop) will be almost of same compute efficiency as ASM code. If not then the way to proceed further is to highlight that situation to compiler team, that in this scenario C code is not performing as expected. Then compiler team can look into that and enhance the compiler. 

    In C coding you can choose which specific instruction to be used. There are C callable API for each instruction, that will restrict compiler to use that specific instruction only. We call those as intrinsic. If you dont use those C callable Apis ( or intrinsic) then you are leaving compiler  to choose the instruction for you which might not be efficient or not desirable by you.

    And whatever suggestion you have read for C64x should be applicable to C66x as well. I am not very much aware of encode and decode but you can refer C66x instruction set below to find out specific instructions for this propose. 

    https://www.ti.com/lit/ug/sprugh7/sprugh7.pdf?ts=1677770555538&ref_url=https%253A%252F%252Fwww.google.com%252F

    Regards

    Deepak Poddar

  • Hi Deepak, 

    Thanks for your reply. 

    Are the C callable APIs (intrinsic) part of the Processor SDK? If yes, could you please point me to which library they belong to?

    Thank you,

    Dimple

  • you can look c6x header file in the compiler. e.g. ti-cgt-c6000_8.3.7/include/c6x.h. It will deceleration of all the instructions. 

    There are plenty of online documentation are available for c6x intrisic optimization. You can refer them.

    Regards

    Deepak Poddar