|
|
本帖最后由 bobhi009 于 2018-8-16 12:00 编辑
! [2 ]' _6 k; y: p4 B; n/ u x* `( y' [: a5 d `/ ?
环境: 创龙提供的mcsdk (linux3.3 + bios6 + syslink)
# V0 l9 e7 a& Q自己的算法连续两次运行消耗时间差20倍, 而且跟算法本身应该没有关系, 因为算法在dsplink 的开发环境下是运行的没有问题的
' @4 t9 ]! N1 _$ e5 u应该是mcsdk这套开发环境的影响。 有谁知道是什么原因?: R/ s# I/ e* o9 t: r5 Z' h: E
% s |. ~7 ?: N" ?: o
$ N# Q0 V7 l% H3 E. N
下面是统计结果
7 p( f, X/ l% I: V& A统计方法: 通过EMUCNT0 EMUCNT1 寄存器统计算法执行周期 再除以主频得到运行时间 0 w4 J) ^4 g+ B* J# q. q9 a5 W
emucycle0_0 = EMUCNT0;
/ k0 e* U* H- c% `# lemucycle1_0 = EMUCNT1;! \; P1 h0 t, ^$ \( @
emucycle0_1 = EMUCNT0;
) S" {/ c+ D0 u. Wemucycle1_1 = EMUCNT1; ; N& R3 W; T" I2 X
emuoverhead = (emucycle0_1 - emucycle0_0);
+ K5 f/ l+ V% D R) E8 ^9 y0 Y: b
( d: z0 @; j$ g9 r算法();
9 F) d+ _, U8 b9 m% T P
) s# z* h: Q) x2 j) P6 H* Hemucycle0_1 = EMUCNT0;
+ x. o- s! H0 f5 {& r9 W% temucycle1_1 = EMUCNT1;7 V* F! Z4 z0 }% ?9 w [
" U& Q$ n2 V0 nCycle = ((emucycle0_1 - emucycle0_0) - emuoverhead) * 4;$ K8 d5 i5 w" [9 A$ Z
7 p) k+ u) G. G4 D( G4 V) E( c& J D
* \2 T7 w" L3 X' U/ ]" q0 S9 e( T
统计结果: 每隔一次, 数据处理的时间会是前一次的将近20倍
, d, j$ }7 |" d+ t1 b# l DSP> cycles: 196468 : 11814000" g5 E9 u# \( g' W9 {
DSP> times: 430.85 us with CPU 456.
& g( Y: g. o6 s# z, e3 f DSP> cycles: 3238292 : 11814000
1 l9 ] F/ _- P+ A0 f x( } DSP> times: 7101.52 us with CPU 456.
9 n) b+ y# i2 H$ H$ I7 a* D8 q DSP> cycles: 157860 : 11814000$ R, g3 ~: p) m3 d) J& r
DSP> times: 346.18 us with CPU 456.
8 i' u9 h# _' Y DSP> cycles: 3265684 : 11814000
6 U1 v0 r- S8 s& Q- d" l1 x$ b; c DSP> times: 7161.59 us with CPU 456.8 C6 ~. ]7 r! X
DSP> cycles: 156344 : 118140005 g6 I( M( H( Z7 d0 i
DSP> times: 342.86 us with CPU 456.4 V6 V6 [1 y; B; [0 x' E
DSP> cycles: 3304428 : 11814000
. {% D# d) ~+ F# A+ i7 [ f/ K( K DSP> times: 7246.55 us with CPU 456.( D8 y* s, q4 P+ H* [7 S
# o# }1 f; @" N
设置:相应的表放到IRAM中了
# _* `% O5 ^4 G& \) K6 i/ l2 u0 |( v/ iSECTIONS
: [ \& X q7 K' f( P{3 I4 p) S' z+ {, {# k/ Z
.edma_data>IRAM align = 0x80
- c P3 m( N5 C8 c .audio_glb> IRAM align = 0x807 V: E% p. B' K5 p2 Q2 w, m, b
.f_table> IRAM, align = 0x80
5 K% _* y4 S- z6 L6 i+ @) S- ] .f_text> DSP_PROG, align = 0x80
- A; K9 H7 G/ [) h" o .f_glb> IRAM align = 0x80
5 l. q! i! \+ Z8 M# E .ref_glb > IRAM align = 0x80
$ t* | K4 O! c- ]- L' r" q& A p}
' B% M, e7 M; Q; p% T2 X1 a" y2 Y
9 a9 n/ ]( I- b \3 V4 O i编译加了-O3 优化参数
/ ]) f( b6 V) x! J9 Q; v* x- x$ W7 K6 n
' r5 f+ b5 r0 u/ U9 \: G) L2 U( n& _' c' u
- D4 \, k, U8 h: q/ ~# M! ?: J
5 v7 t2 ?( ` @6 J6 g& O- D
+ [' C5 m, {% F) o* @. K |
|