Forums

I almost lost the hope for DSP! Who can help me?

Started by jyzh...@sina.com December 28, 2007
Recendly, I test the speed of C6713 (-255MHZ) with following simple program:
/*****/
int m1, m2, m3;
void main
{
m1 = 312;
m2 = 4536;
for (i=0;i<30000;i++)
for (j=0;j<3000;j++)
{
m3 = m1/m2;
m3 = m1*m2;
m3 = m1+m2;
m3 = m1-m2;};
}
It spend about 34 seconds. If I run above program on my PC(CPU=AMD 3000+ 1.8GHz), IT SPEND ABOUT 4 SECONDS.
The C6713 is slower than PC about 10 times! I almost lost the hope for DSP!
May be: C6416 or other is fast, Because I only have C6713, Are there any man help me to test above program?
Thank all;
jiangyuzhong.
JYZHZ,

Actually the speed difference is only 8.5:1

However, the PC has the built-in floating point and large L1 cache, while the 6713 does not.
Did you load the program to load/run from the 6713 cache memory?
Did you run the program from RAM (no wait states) or Flash (~5 wait states)?
Did you define the M1, M2, M3, I, J as registers?
Did you compile/link with any optimization?

All the answers to the above seem to be 'no'.

It is a wonder the PC was ONLY 8.5:1 faster.
In-fact, it looks like I and J are not even defined.
It is a wonder it even compiled.

R. Williams

---------- Original Message -----------
From: j...@sina.com
To: c...
Sent: Fri, 28 Dec 2007 09:32:46 -0500
Subject: [c6x] I almost lost the hope for DSP! Who can help me?

> Recendly, I test the speed of C6713 (-255MHZ) with following simple program:
> /*****/
> int m1, m2, m3;
> void main
> {
> m1 = 312;
> m2 = 4536;
> for (i=0;i<30000;i++)
> for (j=0;j<3000;j++)
> {
> m3 = m1/m2;
> m3 = m1*m2;
> m3 = m1+m2;
> m3 = m1-m2;};
> }
> It spend about 34 seconds. If I run above program on my PC(CPU=AMD 3000+ 1.8GHz), IT SPEND
> ABOUT 4 SECONDS. The C6713 is slower than PC about 10 times! I almost lost the hope for
> DSP! May be: C6416 or other is fast, Because I only have C6713, Are there any man help me
> to test above program? Thank all; jiangyuzhong.
------- End of Original Message -------
jyz,

did you use fast math library?
did you try with MUST_ITERATE ?

Regards
Jiang-

> Recendly, I test the speed of C6713 (-255MHZ) with following simple program:
> /*****/
> int m1, m2, m3;
> void main
> {
> m1 = 312;
> m2 = 4536;
> for (i=0;i<30000;i++)
> for (j=0;j<3000;j++)
> {
> m3 = m1/m2;
> m3 = m1*m2;
> m3 = m1+m2;
> m3 = m1-m2;};
> }
> It spend about 34 seconds. If I run above program on my PC(CPU=AMD 3000+ 1.8GHz), IT SPEND ABOUT 4 SECONDS.
> The C6713 is slower than PC about 10 times! I almost lost the hope for DSP!
> May be: C6416 or other is fast, Because I only have C6713, Are there any man help me to test above program?
> Thank all;

The C6713 is six (6) years old. At 300 MHz and 4 parallel MAC, it's 6x slower than
new C6x devices. Compared to TCI6486 (6 core), it's 18x slower.

-Jeff
If such a function with + - * / is fully optimized, the kernel should
be executed with about 20 cycles, or even 10 cycles if 2 kernels run
simultaneously.

So the running time on 255MHz C6713 is
30,000*3,000*10/255,000,000=3.53seconds.

Compared with a 1.8GHz general CPU which uses 4 seconds, not bad.

By the way, DSP works much better if there is no / operation. DSP
usually can beat any general CPU with same frequency when processing
digital signal, since in most cases, / operation is very few.

However, since DSP has limited on-chip resources, to achieve high
performance on DSP, the program must be highly optimized by
human-beings. Code generated by CCS compilers usually is not good enough.

Best regards,
www.yydsp.com

--- In c..., jyzhz@... wrote:
>
> Recendly, I test the speed of C6713 (-255MHZ) with following simple
program:
> /*****/
> int m1, m2, m3;
> void main
> {
> m1 = 312;
> m2 = 4536;
> for (i=0;i<30000;i++)
> for (j=0;j<3000;j++)
> {
> m3 = m1/m2;
> m3 = m1*m2;
> m3 = m1+m2;
> m3 = m1-m2;};
> }
> It spend about 34 seconds. If I run above program on my PC(CPU=AMD
3000+ 1.8GHz), IT SPEND ABOUT 4 SECONDS.
> The C6713 is slower than PC about 10 times! I almost lost the hope
for DSP!
> May be: C6416 or other is fast, Because I only have C6713, Are there
any man help me to test above program?
> Thank all;
> jiangyuzhong.
R. Williams,
I think the compare is JUSTICE. Because in PC i not use any optimization.
I think C6713 is very slower than PC. I run FFT(size = 16*1024) on C6713 and on PC(maltab). result is Similarity;
Is C6416 fast?
regards!
Dear jeff,
Is TCI6486 (6 core) made by TI?
Best regards!
JYZHZ

Recendly, I test the speed of C6713 (-255MHZ) with following simple program:
>/*****/
>int m1, m2, m3;
>void main
>{
>m1 = 312;
>m2 = 4536;
>for (i=0;i
Jiang-

> Is TCI6486 (6 core) made by TI?

http://focus.ti.com/lit/ml/spat174/spat174.pdf

-Jeff

> Recendly, I test the speed of C6713 (-255MHZ) with following simple program:
> >/*****/
> >int m1, m2, m3;
> >void main
> >{
> >m1 = 312;
> >m2 = 4536;
> >for (i=0;i
Jeff Brower wrote:
>> Recendly, I test the speed of C6713 (-255MHZ) with following simple program:
>> /*****/
>> int m1, m2, m3;
>> void main
>> {
>> m1 = 312;
>> m2 = 4536;
>> for (i=0;i<30000;i++)
>> for (j=0;j<3000;j++)
>> {
>> m3 = m1/m2;
>> m3 = m1*m2;
>> m3 = m1+m2;
>> m3 = m1-m2;};
>> }
>> It spend about 34 seconds. If I run above program on my PC(CPU=AMD 3000+ 1.8GHz), IT SPEND ABOUT 4 SECONDS.
>> The C6713 is slower than PC about 10 times! I almost lost the hope for DSP!
>> May be: C6416 or other is fast, Because I only have C6713, Are there any man help me to test above program?
>> Thank all;
>>
>
> The C6713 is six (6) years old. At 300 MHz and 4 parallel MAC, it's 6x slower than
> new C6x devices. Compared to TCI6486 (6 core), it's 18x slower.
>
>
Does TI make a drop in replacement for the 6713 that takes advantage of
the last five years of speed improvements? The board I'm using has an
environmentally extended 6713 running at 200MHz. I'm using the floating
point features of the DSP. Unfortunately right now I'm not in a
position to have a new board laid out for me with all the RF data
acquisition that I need, but it would be good to have an idea how I
should think about moving to new platforms.

Wim
Dear jeff,
TCI6486 is made by TI?, It is faster than PC?
best regards!
JYZHZ

Recendly, I test the speed of C6713 (-255MHZ) with following simple program:
>/*****/
>int m1, m2, m3;
>void main
>{
>m1 = 312;
>m2 = 4536;
>for (i=0;i