Profile工具

Tengine使用环境变量 export PROF_TIME=1,可以统计各层耗时,并输出网络各层的shape


执行

export PROF_TIME=1

 ./build/tests/bin/bench_sqz -r1


得到的profile日志信息为


 ==== ./models/sqz.prototxt: time stats by operator: ====

 total time: 88320 us, repeat 2

 PER RUN: time 44160 us on 775.50 Mfops, RATE: 17561.03 Mfops

 0: Softmax used 184 us (0.21%)

 1: Convolution used 75168 us (85.11%)

 2: Pooling used 6845 us (7.75%)

 3: Concat used 6117 us (6.93%)

 4: Dropout used 6 us (0.01%)

 0 [ 12.80% : 5.654 ms ] Node_idx: 90  Convolution      512 x  14 x    14  -> 1000 x  14 x    14        1 x 1 / 1_p0      Mfops: 200.70        Rate: 35498

 1 [ 8.69% : 3.837 ms ] Node_idx:  3   Convolution        3 x 227 x   227  ->   64 x 113 x   113        3 x 3 / 2_p0      Mfops: 44.13 Rate: 11501

 2 [ 6.16% : 2.722 ms ] Node_idx: 12   Convolution       16 x  56 x    56  ->   64 x  56 x    56        3 x 3 / 1_p1      Mfops: 57.80 Rate: 21235

 3 [ 6.14% : 2.712 ms ] Node_idx: 22   Convolution       16 x  56 x    56  ->   64 x  56 x    56        3 x 3 / 1_p1      Mfops: 57.80 Rate: 21314

 4 [ 5.67% : 2.506 ms ] Node_idx: 21   Convolution      128 x  56 x    56  ->   16 x  56 x    56        1 x 1 / 1_p0      Mfops: 12.85 Rate: 5127

 5 [ 4.87% : 2.148 ms ] Node_idx: 33   Convolution       32 x  28 x    28  ->  128 x  28 x    28        3 x 3 / 1_p1      Mfops: 57.80 Rate: 26904

 6 [ 4.86% : 2.145 ms ] Node_idx: 43   Convolution       32 x  28 x    28  ->  128 x  28 x    28        3 x 3 / 1_p1      Mfops: 57.80 Rate: 26941

 7 [ 4.68% : 2.067 ms ] Node_idx: 74   Convolution       64 x  14 x    14  ->  256 x  14 x    14        3 x 3 / 1_p1      Mfops: 57.80 Rate: 27965

 8 [ 4.14% : 1.830 ms ] Node_idx: 84   Convolution       64 x  14 x    14  ->  256 x  14 x    14        3 x 3 / 1_p1      Mfops: 57.80 Rate: 31586

 9 [ 3.42% : 1.510 ms ] Node_idx:  6      Pooling        64 x 113 x   113  ->   64 x  56 x    56          x    /   _

 10 [ 2.94% : 1.298 ms ] Node_idx: 27      Pooling       128 x  56 x    56  ->  128 x  28 x    28          x    /   _

 11 [ 2.90% : 1.280 ms ] Node_idx: 64   Convolution       48 x  14 x    14  ->  192 x  14 x    14        3 x 3 / 1_p1      Mfops: 32.51 Rate: 25402

 12 [ 2.88% : 1.273 ms ] Node_idx: 11   Convolution       64 x  56 x    56  ->   16 x  56 x    56        1 x 1 / 1_p0      Mfops: 6.42  Rate: 5047

 13 [ 2.88% : 1.271 ms ] Node_idx: 42   Convolution      256 x  28 x    28  ->   32 x  28 x    28        1 x 1 / 1_p0      Mfops: 12.85 Rate: 10106

 14 [ 2.85% : 1.258 ms ] Node_idx: 54   Convolution       48 x  14 x    14  ->  192 x  14 x    14        3 x 3 / 1_p1      Mfops: 32.51 Rate: 25846

 15 [ 2.82% : 1.247 ms ] Node_idx: 16       Concat        64 x  56 x    56  ->  128 x  56 x    56          x    /   _

 16 [ 2.13% : 0.941 ms ] Node_idx: 13   Convolution       16 x  56 x    56  ->   64 x  56 x    56        1 x 1 / 1_p0      Mfops: 6.42  Rate: 6825

 17 [ 1.87% : 0.825 ms ] Node_idx: 73   Convolution      384 x  14 x    14  ->   64 x  14 x    14        1 x 1 / 1_p0      Mfops: 9.63  Rate: 11684

 18 [ 1.78% : 0.785 ms ] Node_idx: 83   Convolution      512 x  14 x    14  ->   64 x  14 x    14        1 x 1 / 1_p0      Mfops: 12.85 Rate: 16353

 19 [ 1.74% : 0.768 ms ] Node_idx: 24       Concat        64 x  56 x    56  ->  128 x  56 x    56          x    /   _

 20 [ 1.61% : 0.709 ms ] Node_idx: 23   Convolution       16 x  56 x    56  ->   64 x  56 x    56        1 x 1 / 1_p0      Mfops: 6.42  Rate: 9059

 21 [ 1.47% : 0.647 ms ] Node_idx: 32   Convolution      128 x  28 x    28  ->   32 x  28 x    28        1 x 1 / 1_p0      Mfops: 6.42  Rate: 9919

 22 [ 1.39% : 0.616 ms ] Node_idx: 63   Convolution      384 x  14 x    14  ->   48 x  14 x    14        1 x 1 / 1_p0      Mfops: 7.23  Rate: 11729

 23 [ 1.04% : 0.458 ms ] Node_idx: 34   Convolution       32 x  28 x    28  ->  128 x  28 x    28        1 x 1 / 1_p0      Mfops: 6.42  Rate: 14038

 24 [ 1.03% : 0.454 ms ] Node_idx: 44   Convolution       32 x  28 x    28  ->  128 x  28 x    28        1 x 1 / 1_p0      Mfops: 6.42  Rate: 14131

 25 [ 0.94% : 0.417 ms ] Node_idx: 53   Convolution      256 x  14 x    14  ->   48 x  14 x    14        1 x 1 / 1_p0      Mfops: 4.82  Rate: 11565

 26 [ 0.78% : 0.345 ms ] Node_idx: 48      Pooling       256 x  28 x    28  ->  256 x  14 x    14          x    /   _

 27 [ 0.77% : 0.340 ms ] Node_idx: 45       Concat       128 x  28 x    28  ->  256 x  28 x    28          x    /   _

 28 [ 0.75% : 0.331 ms ] Node_idx: 37       Concat       128 x  28 x    28  ->  256 x  28 x    28          x    /   _

 29 [ 0.68% : 0.299 ms ] Node_idx: 75   Convolution       64 x  14 x    14  ->  256 x  14 x    14        1 x 1 / 1_p0      Mfops: 6.42  Rate: 21516

 30 [ 0.65% : 0.285 ms ] Node_idx: 85   Convolution       64 x  14 x    14  ->  256 x  14 x    14        1 x 1 / 1_p0      Mfops: 6.42  Rate: 22535

 31 [ 0.61% : 0.270 ms ] Node_idx: 91      Pooling      1000 x  14 x    14  -> 1000 x   1 x     1          x    /   _

 32 [ 0.52% : 0.229 ms ] Node_idx: 55   Convolution       48 x  14 x    14  ->  192 x  14 x    14        1 x 1 / 1_p0      Mfops: 3.61  Rate: 15741

 33 [ 0.49% : 0.216 ms ] Node_idx: 65   Convolution       48 x  14 x    14  ->  192 x  14 x    14        1 x 1 / 1_p0      Mfops: 3.61  Rate: 16725

 34 [ 0.26% : 0.116 ms ] Node_idx: 86       Concat       256 x  14 x    14  ->  512 x  14 x    14          x    /   _

 35 [ 0.25% : 0.109 ms ] Node_idx: 78       Concat       256 x  14 x    14  ->  512 x  14 x    14          x    /   _

 36 [ 0.21% : 0.092 ms ] Node_idx: 92      Softmax      1000 x   1 x     1  -> 1000 x   1 x     1          x    /   _

 37 [ 0.17% : 0.075 ms ] Node_idx: 58       Concat       192 x  14 x    14  ->  384 x  14 x    14          x    /   _

 38 [ 0.17% : 0.073 ms ] Node_idx: 68       Concat       192 x  14 x    14  ->  384 x  14 x    14          x    /   _

 39 [ 0.01% : 0.003 ms ] Node_idx: 89      Dropout       512 x  14 x    14  ->  512 x  14 x    14          x    /    _




从该日志,我们可得到的信息有:

 · 网络计算量:775.50 Mfops

 · 网络涉及的算子及耗时占比

 0: Softmax used 184 us (0.21%)

 1: Convolution used 75168 us (85.11%)

 2: Pooling used 6845 us (7.75%)

 3: Concat used 6117 us (6.93%)

 4: Dropout used 6 us (0.01%)


 · 各层的shape信息,格式为

 idx [%: time(ms)] Node_idx OP inc x inh x inw -> outc x outh x outw   kh x kw/stride_pad  Mfops Rate


各层排序为各层的耗时占比从高到低排序