ΣSigmaStudio Ask AI Русский Log in

Too many cycles in complex multiplication

Processors & DSP pw8 Jan 12, 2024 00:00 3 replies Original on forum ↗
Subscribe
pw8 Question
Jan 12, 2024 00:00

Dear team,

I am working with the ADSP-SC584 evaluation board and want to analyse the number of cycles of a complex multiplication. I am using CCES 2.12.0.

The number of cycles are 49174 of the complex multiplication. When looking at the assembly code I noticed that the body of the loop needs 11 cycles and the loopcounter is only a 1/4 of the size of my loop.

On another DSP (ADSP-21489) the same code needs a loop with 4 steps and in total only 32786 Cycles. The loopcounter is 1/2 of the size (8191).
I have no idea why the loopcounters the number of cycles in the loop are different. The SHARC architecturesof the DSPs are looking the same for me regarding SIMD performance and bus-architecture.

I have activated the optimization and SIMD in the properties for Core1, so that is not the problem here.

That is a part of the assembly code of the ADSP-21489 and there you can see that the loop only needs 4 cycles do perform the 4 multiplications and the additions are done in the first 2 cycles in parallel. Thats what I was expecting from the SC584 as well.

Why is that not the case for the SC-584? Do I have to enable other properties in my settings or in my code to boost my performance and to lower the cycle number?

Thanks for your advice and help
Philipp

Audio Signal Processors

Audio Products

software

adsp-21489

adsp-sc584

performance

CCES 2.12.0

dsp&processors

SHARC Audio Processors/SoCs

Show More

code.PNG
code.PNG
pastedimage1705066480420v1.png
pastedimage1705066480420v1.png
pw8 Reply
Jan 15, 2024 00:00

As additional information, here is the diassembly code from the SC-584:

You can clearly see here that the loopcounter is only half the size at 4096, but the loop body requires 11 steps.

I appreciate your help!

size_16384_2.PNG
size_16384_2.PNG
pastedimage1705308608422v2.png
pastedimage1705308608422v2.png
Divya.P Reply
Jan 15, 2024 00:00

Hi,

For complete information on stalls, refer to the Engineer-to-Engineer Note EE-375: Migrating Legacy SHARC to ADSP-SC58x/2158x SHARC+ Processors
www.analog.com/.../EE375v01.pdf

Also refer "Pipeline Flushes and Stalls " from the below linked PRM:
www.analog.com/.../sc58x-2158x-prm.pdf

Regards,
Divya.P

pw8 Reply
Jan 15, 2024 00:00

Thank you very much, that was very helpful!

I didn't realize that the architectures of SHARC and SHARC+ differ in the pipeline, which affects the number of cycles.