|
本帖最后由 bobhi009 于 2018-8-16 12:00 编辑 4 ~7 ?; X1 i: V j% Z8 i
3 N: B/ b# D' @$ a: N3 p! N
环境: 创龙提供的mcsdk (linux3.3 + bios6 + syslink)
+ W, G+ b; g7 M7 C9 s) j自己的算法连续两次运行消耗时间差20倍, 而且跟算法本身应该没有关系, 因为算法在dsplink 的开发环境下是运行的没有问题的
; P1 h3 H" H! c9 |0 [) N应该是mcsdk这套开发环境的影响。 有谁知道是什么原因?
M: v, B' i" Z' b- G) c M: ~# e5 ~5 }. A
1 {: d+ |! w0 i! b* z下面是统计结果
: }* i9 [% Q: t统计方法: 通过EMUCNT0 EMUCNT1 寄存器统计算法执行周期 再除以主频得到运行时间
( c; p, y1 n$ [5 d" }4 T! r2 ]/ y$ temucycle0_0 = EMUCNT0;
/ @# g, s+ X3 a3 D( H; pemucycle1_0 = EMUCNT1;& R. C5 w7 m8 {6 o/ p
emucycle0_1 = EMUCNT0;
, b5 M+ z/ @; H a. eemucycle1_1 = EMUCNT1;
2 w c3 ?5 Q C, H0 Y8 kemuoverhead = (emucycle0_1 - emucycle0_0);
" x# [$ `9 Q! z% b/ \
2 J4 Z1 \% w. M# i4 _算法();
( `4 H g3 Z8 z- ~# ^2 P* ]6 O0 r3 B+ t; D- E
emucycle0_1 = EMUCNT0;
; f% m* ?6 D' S& t: D0 jemucycle1_1 = EMUCNT1;. v1 p; M k5 c$ [" ^
" W2 ~7 `; Q" c. MCycle = ((emucycle0_1 - emucycle0_0) - emuoverhead) * 4;
: E) t" C4 ^! Z: _1 q7 P, L& ~, A) ~) _! V( s
* y6 \: ^$ |" J, P4 [5 ?统计结果: 每隔一次, 数据处理的时间会是前一次的将近20倍8 p( v( \) Q$ G$ t; ^0 o( u6 d3 L
DSP> cycles: 196468 : 11814000
, B: j* h4 o2 ] DSP> times: 430.85 us with CPU 456.2 {6 J2 E: M) ]1 R b, v* Y4 B
DSP> cycles: 3238292 : 11814000# b* o! \& i- a6 a- Z
DSP> times: 7101.52 us with CPU 456.
# ? K: F' l# T" s: u- n9 r) x DSP> cycles: 157860 : 11814000
, f6 @, B! p3 B" ~1 C& @ DSP> times: 346.18 us with CPU 456.
% {5 z) A& Y B; p) t4 i7 H DSP> cycles: 3265684 : 118140007 ]6 ?# z3 k6 l9 B" F7 F+ T5 }9 |: C
DSP> times: 7161.59 us with CPU 456.6 d4 j6 X1 O/ @$ t3 O
DSP> cycles: 156344 : 11814000( G- n; V. ?/ d* l6 f; M
DSP> times: 342.86 us with CPU 456.5 X `; a9 a" |) \0 T! @8 v% x
DSP> cycles: 3304428 : 11814000
4 s3 c7 \4 V- ]! b- W DSP> times: 7246.55 us with CPU 456.9 Y! s4 o* V% b3 G$ ?! N4 s
0 @8 `3 r$ U% K" z
设置:相应的表放到IRAM中了$ K: P4 b8 p8 E3 \8 B* s4 n& j
SECTIONS' @2 G3 q! ]2 S% w+ Y2 H
{* m; \& q2 p6 M6 L' r4 r3 @
.edma_data>IRAM align = 0x80
+ X( G. ~! I" H+ Y f1 a' W3 Q2 k .audio_glb> IRAM align = 0x80
* l' l( z* C- K1 e+ ]' i .f_table> IRAM, align = 0x80 8 Y1 c9 R( v2 s0 b1 J0 {( U$ |
.f_text> DSP_PROG, align = 0x80 2 I2 n- e1 H+ a9 C" b: T+ d
.f_glb> IRAM align = 0x80
$ G5 u! b* a0 p( U7 f3 @( |9 f .ref_glb > IRAM align = 0x80
, e' A' `9 u3 B; f" H}# k3 |9 D% d% C3 y
7 ^- c; ^! I# I2 G* c: W ]
4 v& a6 j4 M8 i编译加了-O3 优化参数
; {0 t2 b6 c' `) P- [7 d: K
( E: t0 U* f; d; R# r( K; N; V6 |3 Y; L& @
+ q3 E- O+ v' y' J5 c
+ \/ W0 [% g% F
1 O; S- y8 p6 M5 P
+ I5 |$ \+ n. S |
|