zxq6 发表于 2017-4-11 16:36:45

DSP和cortex A9做运算对比,感觉有点差异啊。

测试代码如下:

void img_test(void)
{
        volatile unsigned int i,j,k,l;
        volatile double a,b,c,d;
        a=1;
        b=2;
        c=3;
        d=4;
        for(i=0;i<1000;i++)
        {
                a+=0.3;
        }
        for(j=0;j<1000;j++)
        {
                b-=0.3;
        }
        for(k=0;k<1000;k++)
        {
                c*=0.3;
        }
        for(l=0;l<1000;l++)
        {
                d/=0.3;
        }
}

测试方法:使用一个led,测试其翻转速度,从而得到运行时间。
A9使用的是zynq,xc7z020,667Mhz,
DSP使用的BF531,40M晶振,倍频到600M,初始化代码如下,不知道是不是正确:
void Init_PLL(void)
{
        volatile int test=0;
        sysreg_write(reg_SYSCFG, 0x32);                //Initialize System Configuration Register
        *pVR_CTL = 0x00fB;
        idle();
        *pSIC_IWR = 0x1;
        *pPLL_CTL = 0x1e00;                                        // MSEL is 15, which gives:        VCO of 600 MHz (40*15=600)
        *pPLL_DIV = 0x5;                                        // SSEL is 5, which gives:        SCLK of 133 MHz (600/5=133)                               
        ssync();
        //*pVR_CTL = 0x00fB;
        ssync();
        idle();
}//end Init_PLL

测试结果:
A9大概需要105us左右,运算一次。
BF531大概需要500us。

看起来差别比较大啊,为啥DSP会比A9慢呢?是不是初始化配置不对?

Excellence 发表于 2017-4-11 16:50:10

用FFT之类的计算看看。

zxq6 发表于 2017-4-11 17:44:55

Excellence 发表于 2017-4-11 16:50
用FFT之类的计算看看。

在网上找了段FFT的代码
计算了256个点的fft
测试结果如下:
DSP需要5.6ms
A9需要780us
差距任然有点大

BFXY5433 发表于 2017-4-11 17:52:55

测试io翻转没有意义的
dsp就是设计来计算的
特别是迭代计算的

必须用计算类程序测试

zxq6 发表于 2017-4-11 17:57:16

BFXY5433 发表于 2017-4-11 17:52
测试io翻转没有意义的
dsp就是设计来计算的
特别是迭代计算的


好吧,可能是我没表述清楚,我测试方法是用的运行一段程序,运行完成后,翻转io,然后测量翻转时间,来测量程序运行时间。
虽然不是很准,但是应该能够很大程度上反应运算所需要的时间的。

eleqian 发表于 2017-4-11 18:21:02

因为你做的浮点运算

XA144F 发表于 2017-4-11 18:28:50

bf531是16位定点处理器吧?做浮点用模拟运算肯定慢了。a9好歹是有双精度浮点处理器的,自然比不上……你换28345试试?

xivisi 发表于 2017-4-11 19:07:41

DSP了解不多,Cortex-A9里面有NEON,矩阵并行运算,不算慢,

xivisi 发表于 2017-4-11 19:09:13

浮点比不上DSP,逻辑指令(ARM只要目的就是跑逻辑)比DSP快

gzhuli 发表于 2017-4-11 19:12:07

BF531是个定点DSP,你拿来跟带NEON FPU的Cortex-A9比浮点…… {:titter:}
更何况Cortex-A9的DSP性能本来就在Blackfin系列之上。

90999 发表于 2017-4-11 21:11:03

楼主有BF531的范例么,能发给我点么?

liurangzhou 发表于 2017-4-11 21:33:15

定点的肯定搞不赢浮点了,你要用定点计算来比较

dengxiaofeng 发表于 2017-4-11 21:44:58

531 多少钱A9 多少钱

NJ8888 发表于 2017-4-11 21:52:39

用定点来比比看

ziruo2002ab 发表于 2017-4-11 23:35:03

blackfin531比A9早好几年出的,比起来真是太不公平
我怀疑即便比定点数,531还是逊于A9
比浮点数真是差太多了,何况楼主没有优化过呢
否则真实差距二三十倍,那就叫被秒杀,哈哈哈哈
曾经纠结过用A9还是dsp
后来发现A9的计算能力真让人满意,比原先估计的快了好几倍
然后呢,不用去熟悉恐怖的dsp优化(dsp的浮点运算指令集都可以成一本书了,对外人太难用了吧?)

pazulin 发表于 2017-4-11 23:45:17

这么多DSP不选,你选个16bit定点DSP,你试试TI的67XX ,ADI的214XX系列对比下

canopen 发表于 2017-4-11 23:55:52

{:lol:}{:lol:}{:lol:}{:lol:}

感觉也是 531 太老了。

liurangzhou 发表于 2017-4-12 21:37:15

BF531是不是 很便宜?blackfin的其它型号似乎价格很贵吧,楼主用它用啥?

dellric 发表于 2017-4-12 23:04:34

你把BF531的CACHE开了试试 , 搞BF531 很多人都忘开CACHE , 如果程序小 , 就把程序放在芯片内部的SRAM里面运行,不要在SDRAM里面运行!还有 , 就是PK 定点数 , 不要把浮点数拿来搞BF531 ,这个太不公平了.

zhangsusu 发表于 2017-4-13 08:25:28

dsp做算法需要使用特定的规则才能调用其强大的加速功能 比如ti的dsp 最好是用内联函数和官方库 而不是标准C 编写算法

fengyunyu 发表于 2017-4-13 09:18:15

A9也是裸奔?

zxq6 发表于 2017-4-13 09:57:49

90999 发表于 2017-4-11 21:11
楼主有BF531的范例么,能发给我点么?

我用的是VDSP开发环境,你也需要么?

zxq6 发表于 2017-4-13 09:59:00

dengxiaofeng 发表于 2017-4-11 21:44
531 多少钱A9 多少钱

531价格50左右,A9贵点,zynq的最便宜的A9,100多点,不过他外围集成了FPGA,单就A9的价格,应该差不多。

zxq6 发表于 2017-4-13 09:59:52

NJ8888 发表于 2017-4-11 21:52
用定点来比比看

定点,没有优化的情况下,DSP跟A9的差距缩小,不过也还是比不过A9。
http://www.amobbs.com/thread-5672245-1-1.html

zxq6 发表于 2017-4-13 10:00:55

ziruo2002ab 发表于 2017-4-11 23:35
blackfin531比A9早好几年出的,比起来真是太不公平
我怀疑即便比定点数,531还是逊于A9
比浮点数真是差太多 ...

看来你是做过测试的,我今天再用fft,经过优化后测试了一下,DSP的性能提高了不少

http://www.amobbs.com/thread-5672242-1-1.html

zxq6 发表于 2017-4-13 10:01:29

pazulin 发表于 2017-4-11 23:45
这么多DSP不选,你选个16bit定点DSP,你试试TI的67XX ,ADI的214XX系列对比下

手里没有这个系列的dsp,只有BF531,所以就只有他顶上来测测了。

zxq6 发表于 2017-4-13 10:02:09

liurangzhou 发表于 2017-4-12 21:37
BF531是不是 很便宜?blackfin的其它型号似乎价格很贵吧,楼主用它用啥?

不做啥,就是准备用来做做图像处理,看看两个备选处理器的性能,然后决定用哪个。

zxq6 发表于 2017-4-13 10:02:50

dellric 发表于 2017-4-12 23:04
你把BF531的CACHE开了试试 , 搞BF531 很多人都忘开CACHE , 如果程序小 , 就把程序放在芯片内部的SRAM里面运 ...

请问您知道如何开启cache么?我没找到相关资料。

zxq6 发表于 2017-4-13 10:03:35

zhangsusu 发表于 2017-4-13 08:25
dsp做算法需要使用特定的规则才能调用其强大的加速功能 比如ti的dsp 最好是用内联函数和官方库 而不是标准C ...

确实,今天调用了ADI经过优化后的FFT函数,性能提升了非常非常多

http://www.amobbs.com/thread-5672242-1-1.html

zxq6 发表于 2017-4-13 10:03:59

fengyunyu 发表于 2017-4-13 09:18
A9也是裸奔?

是的,A9,裸奔的。没跑系统。

90999 发表于 2017-4-13 10:19:08

zxq6 发表于 2017-4-13 09:57
我用的是VDSP开发环境,你也需要么?

可以的,能有得看就不错了,能详细点最好。
我在网上找不到,淘宝问了至少要500,单买开发板只给接口范例。

zxq6 发表于 2017-4-13 11:25:58

90999 发表于 2017-4-13 10:19
可以的,能有得看就不错了,能详细点最好。
我在网上找不到,淘宝问了至少要500,单买开发板只给接口范例 ...



你看看附件,希望对你有帮助。

90999 发表于 2017-4-13 11:47:36

zxq6 发表于 2017-4-13 11:25
你看看附件,希望对你有帮助。

好,谢谢了。

huangqi412 发表于 2017-4-13 12:21:54

不知道价格差了多少

zhangsusu 发表于 2017-4-13 14:20:09

zxq6 发表于 2017-4-13 10:03
确实,今天调用了ADI经过优化后的FFT函数,性能提升了非常非常多

http://www.amobbs.com/thread-5672242 ...

赞一个

楼主进步非常快

blue.fox 发表于 2017-4-15 18:00:19

1。相同的数据类型运算对比。比如相同的256点单精度浮点fft。定点N阶fir滤波器
    楼主位的数据类型定义就不专业。double,int到底是多少位的没人知道。stdint等头文件里面有int32_t float64_t之类的标准类型
2. 完成相同的功能的速度对比
项目选型时只需要能完成相同的功能即可。对数据精度并不关注。可以拿16位dsp的256点定点fft速度和浮点dsp的255点fft速度做对比。
3。算法对比应该都是在足够的优化后对比
页: [1]
查看完整版本: DSP和cortex A9做运算对比,感觉有点差异啊。