This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TIDL SSD based object detection - partitioning into EVE & DSP

Other Parts Discussed in Thread: TDA2

Hi,

In TIDeepLeraningLibrary_DataSheet.pdf (TIDL 01.01.00.00), folloiwng comment is shown in TABLE.4B on page 4.

 " Initial part of the network is executed / profiled on EVE and the later part is on C6x DSP (Later part of the network is best optimal on C6x DSP). "

SSD based detection network in Caffe-Jacinto-Model contains 45 layers as below.
   0, TIDL_DataLayer
   1, TIDL_BatchNormLayer
   2, TIDL_ConvolutionLayer
   3, TIDL_ConvolutionLayer
   4, TIDL_ConvolutionLayer
   5, TIDL_ConvolutionLayer
   6, TIDL_ConvolutionLayer
   7, TIDL_ConvolutionLayer
   8, TIDL_PoolingLayer
     ...
   40, TIDL_FlattenLayer
   41, TIDL_ConcatLayer
   42, TIDL_ConcatLayer
   43, TIDL_DetectionOutputLayer
   44, TIDL_DataLayer

[Q1] To get both EVE and DSP performance shown in TABLE.4B, how do we partition into EVE and DSP ? For instance, which layers are executed on DSP and which other layers are executed on EVE ?

[Q2] To get both EVE and DSP performance shown in TABLE.4B, how do we test on target EVM ?  I need to duplicate the test.

Best regards,
Saito

  • Hi Saito,

    I have explained that in below e2e thread, please refer to my last two responses in this thread,

    e2e.ti.com/.../690888

    Thanks,
    Praveen
  • Thanks Praveen.

    On Q2, should we run TIDL OD usecase in VSDK ?   If so, the TIDL OD usecase can run on TDA2 SoC only ?

    Best regards,
    Saito

  • Hi Satio,

    You can get the performance numbers by running .out files on standalone, refer to section 3.3.5 (Building the Test Application Executable through GMAKE) to know the steps.

    Thanks,
    Praveen
  • Hi Praveen,

      I have already run .out file on EVE standalone. However I did not get the performance numbers described in TABLE 4B TIDeepLeraningLibrary_DataSheet.pdf.

      Please find attached CCS log.

    Processing config file C:\ti\psdk\PSDKV33\ti_components\algorithms\REL.TIDL.01.01.00.00\modules\ti_dl\test\testvecs\config\infer\tidl_config_jdetnet.txt !
      0, TIDL_DataLayer                ,  0,  -1 ,  1 ,  x ,  x ,  x ,  x ,  x ,  x ,  x ,  x ,  0 ,    0 ,    0 ,    0 ,    0 ,    1 ,    3 ,  320 ,  768 ,
      1, TIDL_BatchNormLayer           ,  1,   1 ,  1 ,  0 ,  x ,  x ,  x ,  x ,  x ,  x ,  x ,  1 ,    1 ,    3 ,  320 ,  768 ,    1 ,    3 ,  320 ,  768 ,
      2, TIDL_ConvolutionLayer         ,  1,   1 ,  1 ,  1 ,  x ,  x ,  x ,  x ,  x ,  x ,  x ,  2 ,    1 ,    3 ,  320 ,  768 ,    1 ,   32 ,  160 ,  384 ,
      3, TIDL_ConvolutionLayer         ,  1,   1 ,  1 ,  2 ,  x ,  x ,  x ,  x ,  x ,  x ,  x ,  3 ,    1 ,   32 ,  160 ,  384 ,    1 ,   32 ,   80 ,  192 ,
      4, TIDL_ConvolutionLayer         ,  1,   1 ,  1 ,  3 ,  x ,  x ,  x ,  x ,  x ,  x ,  x ,  4 ,    1 ,   32 ,   80 ,  192 ,    1 ,   64 ,   80 ,  192 ,
      5, TIDL_ConvolutionLayer         ,  1,   1 ,  1 ,  4 ,  x ,  x ,  x ,  x ,  x ,  x ,  x ,  5 ,    1 ,   64 ,   80 ,  192 ,    1 ,   64 ,   40 ,   96 ,
      6, TIDL_ConvolutionLayer         ,  1,   1 ,  1 ,  5 ,  x ,  x ,  x ,  x ,  x ,  x ,  x ,  6 ,    1 ,   64 ,   40 ,   96 ,    1 ,  128 ,   40 ,   96 ,
      7, TIDL_ConvolutionLayer         ,  1,   1 ,  1 ,  6 ,  x ,  x ,  x ,  x ,  x ,  x ,  x ,  7 ,    1 ,  128 ,   40 ,   96 ,    1 ,  128 ,   40 ,   96 ,
      8, TIDL_PoolingLayer             ,  1,   1 ,  1 ,  7 ,  x ,  x ,  x ,  x ,  x ,  x ,  x ,  8 ,    1 ,  128 ,   40 ,   96 ,    1 ,  128 ,   20 ,   48 ,
      9, TIDL_ConvolutionLayer         ,  1,   1 ,  1 ,  8 ,  x ,  x ,  x ,  x ,  x ,  x ,  x ,  9 ,    1 ,  128 ,   20 ,   48 ,    1 ,  256 ,   20 ,   48 ,
     10, TIDL_ConvolutionLayer         ,  1,   1 ,  1 ,  9 ,  x ,  x ,  x ,  x ,  x ,  x ,  x , 10 ,    1 ,  256 ,   20 ,   48 ,    1 ,  256 ,   10 ,   24 ,
     11, TIDL_ConvolutionLayer         ,  1,   1 ,  1 , 10 ,  x ,  x ,  x ,  x ,  x ,  x ,  x , 11 ,    1 ,  256 ,   10 ,   24 ,    1 ,  512 ,   10 ,   24 ,
     12, TIDL_ConvolutionLayer         ,  1,   1 ,  1 , 11 ,  x ,  x ,  x ,  x ,  x ,  x ,  x , 12 ,    1 ,  512 ,   10 ,   24 ,    1 ,  512 ,   10 ,   24 ,
     13, TIDL_PoolingLayer             ,  1,   1 ,  1 , 12 ,  x ,  x ,  x ,  x ,  x ,  x ,  x , 13 ,    1 ,  512 ,   10 ,   24 ,    1 ,  512 ,    5 ,   12 ,
     14, TIDL_PoolingLayer             ,  1,   1 ,  1 , 13 ,  x ,  x ,  x ,  x ,  x ,  x ,  x , 14 ,    1 ,  512 ,    5 ,   12 ,    1 ,  512 ,    3 ,    6 ,
     15, TIDL_PoolingLayer             ,  1,   1 ,  1 , 14 ,  x ,  x ,  x ,  x ,  x ,  x ,  x , 15 ,    1 ,  512 ,    3 ,    6 ,    1 ,  512 ,    2 ,    3 ,
     16, TIDL_ConvolutionLayer         ,  1,   1 ,  1 ,  7 ,  x ,  x ,  x ,  x ,  x ,  x ,  x , 16 ,    1 ,  128 ,   40 ,   96 ,    1 ,  256 ,   40 ,   96 ,
     17, TIDL_ConvolutionLayer         ,  1,   1 ,  1 , 12 ,  x ,  x ,  x ,  x ,  x ,  x ,  x , 17 ,    1 ,  512 ,   10 ,   24 ,    1 ,  256 ,   10 ,   24 ,
     18, TIDL_ConvolutionLayer         ,  1,   1 ,  1 , 13 ,  x ,  x ,  x ,  x ,  x ,  x ,  x , 18 ,    1 ,  512 ,    5 ,   12 ,    1 ,  256 ,    5 ,   12 ,
     19, TIDL_ConvolutionLayer         ,  1,   1 ,  1 , 14 ,  x ,  x ,  x ,  x ,  x ,  x ,  x , 19 ,    1 ,  512 ,    3 ,    6 ,    1 ,  256 ,    3 ,    6 ,
     20, TIDL_ConvolutionLayer         ,  1,   1 ,  1 , 15 ,  x ,  x ,  x ,  x ,  x ,  x ,  x , 20 ,    1 ,  512 ,    2 ,    3 ,    1 ,  256 ,    2 ,    3 ,
     21, TIDL_ConvolutionLayer         ,  1,   1 ,  1 , 16 ,  x ,  x ,  x ,  x ,  x ,  x ,  x , 21 ,    1 ,  256 ,   40 ,   96 ,    1 ,   16 ,   40 ,   96 ,
     22, TIDL_FlattenLayer             ,  1,   1 ,  1 , 21 ,  x ,  x ,  x ,  x ,  x ,  x ,  x , 22 ,    1 ,   16 ,   40 ,   96 ,    1 ,    1 ,    1 ,61440 ,
     23, TIDL_ConvolutionLayer         ,  1,   1 ,  1 , 16 ,  x ,  x ,  x ,  x ,  x ,  x ,  x , 23 ,    1 ,  256 ,   40 ,   96 ,    1 ,   16 ,   40 ,   96 ,
     24, TIDL_FlattenLayer             ,  1,   1 ,  1 , 23 ,  x ,  x ,  x ,  x ,  x ,  x ,  x , 24 ,    1 ,   16 ,   40 ,   96 ,    1 ,    1 ,    1 ,61440 ,
     25, TIDL_ConvolutionLayer         ,  1,   1 ,  1 , 17 ,  x ,  x ,  x ,  x ,  x ,  x ,  x , 26 ,    1 ,  256 ,   10 ,   24 ,    1 ,   24 ,   10 ,   24 ,
     26, TIDL_FlattenLayer             ,  1,   1 ,  1 , 26 ,  x ,  x ,  x ,  x ,  x ,  x ,  x , 27 ,    1 ,   24 ,   10 ,   24 ,    1 ,    1 ,    1 , 5760 ,
     27, TIDL_ConvolutionLayer         ,  1,   1 ,  1 , 17 ,  x ,  x ,  x ,  x ,  x ,  x ,  x , 28 ,    1 ,  256 ,   10 ,   24 ,    1 ,   24 ,   10 ,   24 ,
     28, TIDL_FlattenLayer             ,  1,   1 ,  1 , 28 ,  x ,  x ,  x ,  x ,  x ,  x ,  x , 29 ,    1 ,   24 ,   10 ,   24 ,    1 ,    1 ,    1 , 5760 ,
     29, TIDL_ConvolutionLayer         ,  1,   1 ,  1 , 18 ,  x ,  x ,  x ,  x ,  x ,  x ,  x , 31 ,    1 ,  256 ,    5 ,   12 ,    1 ,   24 ,    5 ,   12 ,
     30, TIDL_FlattenLayer             ,  1,   1 ,  1 , 31 ,  x ,  x ,  x ,  x ,  x ,  x ,  x , 32 ,    1 ,   24 ,    5 ,   12 ,    1 ,    1 ,    1 , 1440 ,
     31, TIDL_ConvolutionLayer         ,  1,   1 ,  1 , 18 ,  x ,  x ,  x ,  x ,  x ,  x ,  x , 33 ,    1 ,  256 ,    5 ,   12 ,    1 ,   24 ,    5 ,   12 ,
     32, TIDL_FlattenLayer             ,  1,   1 ,  1 , 33 ,  x ,  x ,  x ,  x ,  x ,  x ,  x , 34 ,    1 ,   24 ,    5 ,   12 ,    1 ,    1 ,    1 , 1440 ,
     33, TIDL_ConvolutionLayer         ,  1,   1 ,  1 , 19 ,  x ,  x ,  x ,  x ,  x ,  x ,  x , 36 ,    1 ,  256 ,    3 ,    6 ,    1 ,   24 ,    3 ,    6 ,
     34, TIDL_FlattenLayer             ,  1,   1 ,  1 , 36 ,  x ,  x ,  x ,  x ,  x ,  x ,  x , 37 ,    1 ,   24 ,    3 ,    6 ,    1 ,    1 ,    1 ,  432 ,
     35, TIDL_ConvolutionLayer         ,  1,   1 ,  1 , 19 ,  x ,  x ,  x ,  x ,  x ,  x ,  x , 38 ,    1 ,  256 ,    3 ,    6 ,    1 ,   24 ,    3 ,    6 ,
     36, TIDL_FlattenLayer             ,  1,   1 ,  1 , 38 ,  x ,  x ,  x ,  x ,  x ,  x ,  x , 39 ,    1 ,   24 ,    3 ,    6 ,    1 ,    1 ,    1 ,  432 ,
     37, TIDL_ConvolutionLayer         ,  1,   1 ,  1 , 20 ,  x ,  x ,  x ,  x ,  x ,  x ,  x , 41 ,    1 ,  256 ,    2 ,    3 ,    1 ,   16 ,    2 ,    3 ,
     38, TIDL_FlattenLayer             ,  1,   1 ,  1 , 41 ,  x ,  x ,  x ,  x ,  x ,  x ,  x , 42 ,    1 ,   16 ,    2 ,    3 ,    1 ,    1 ,    1 ,   96 ,
     39, TIDL_ConvolutionLayer         ,  1,   1 ,  1 , 20 ,  x ,  x ,  x ,  x ,  x ,  x ,  x , 43 ,    1 ,  256 ,    2 ,    3 ,    1 ,   16 ,    2 ,    3 ,
     40, TIDL_FlattenLayer             ,  1,   1 ,  1 , 43 ,  x ,  x ,  x ,  x ,  x ,  x ,  x , 44 ,    1 ,   16 ,    2 ,    3 ,    1 ,    1 ,    1 ,   96 ,
     41, TIDL_ConcatLayer              ,  1,   5 ,  1 , 22 , 27 , 32 , 37 , 42 ,  x ,  x ,  x , 46 ,    1 ,    1 ,    1 ,61440 ,    1 ,    1 ,    1 ,69168 ,
     42, TIDL_ConcatLayer              ,  1,   5 ,  1 , 24 , 29 , 34 , 39 , 44 ,  x ,  x ,  x , 47 ,    1 ,    1 ,    1 ,61440 ,    1 ,    1 ,    1 ,69168 ,
     43, TIDL_DetectionOutputLayer     ,  1,   2 ,  1 , 46 , 47 ,  x ,  x ,  x ,  x ,  x ,  x , 48 ,    1 ,    1 ,    1 ,69168 ,    1 ,    1 ,    1 ,  560 ,
     44, TIDL_DataLayer                ,  0,   1 , -1 , 48 ,  x ,  x ,  x ,  x ,  x ,  x ,  x ,  0 ,    1 ,    1 ,    1 ,  560 ,    0 ,    0 ,    0 ,    0 ,
    TEST_REPORT_INIT_PROFILE_DATA : TSC cycles = 1125769866, SCTM VCOP BUSY cycles = 0, SCTM VCOP Overhead = 0
    I/O Bytes :        0 (        0 +        0 ) :        0 (        0 +        0 ) 
    
    Processing Frame Number : 0 
    
    TEST_REPORT_PROCESS_PROFILE_DATA : TSC cycles = 1607498494, SCTM VCOP BUSY cycles = 70089004, SCTM VCOP Overhead = 0
    I/O Bytes :        0 (        0 +        0 ) :        0 (        0 +        0 ) 
    
    


      [Q2] How do we get the performance numbers in TALBE 4B ?

    Best regards,
    Saito

  • Hi Satio,

    Can you share infer config file used for running the .out file?

    Thanks,
    Praveen
  • Hi Praveen,

    I used "tidl_config_jdetnet.txt" in directory REL.TIDL.01.01.00.00\modules\ti_dl\test\testvecs\config\infer.

    Best regards,
    Saito

  • Hi Satio,

    This "tidl_config_jdetnet.txt" file runs full Net on EVE, but we need to part of network in EVE and later part on DSP to get the performance numbers, so please use attached config files

    First run "tidl_config_jdetnet_eve.txt" on EVE which gives performance numbers of EVE

    Then run "tidl_config_jdetnet_dsp.txt" on DSP which gives performance numbers of DSP

    Thanks,

    Praveen

    rawImage    = 1
    numFrames   = 1
    preProcType  = 4
    #inData   = "D:\work\vision\dsp_git\dsp_apps\modules\ti_dl\test\testvecs\config\caffe_models\SSD\000535.jpg"
    #inData   = D:\work\vision\dsp_git\dsp_apps\modules\ti_dl\test\testvecs\config\caffe_models\SSD\000220.jpg
    #inData   = "D:\work\vision\CNN\data\tiscapes\VIRB0003_200frames_00.11\out000018_crop.png"
    #inData   = "D:\work\vision\CNN\data\tiscapes\V105Crop_200frames_0249\out000026.png"
    traceDumpBaseName   = ".\trace_dump_"
    updateNetWithStats   = 0
    netBinFile     = ..\..\test\testvecs\config\tidl_models\jdetnet\tidl_net_jdetNet_ssd.bin
    paramsBinFile        = ..\..\test\testvecs\config\tidl_models\jdetnet\tidl_param_jdetNet_ssd.bin
    
    readQ  = 1
    writeQ = 1
    #inData   = "..\..\test\testvecs\input\trace_dump_0_768x384.y"
    inData   = "..\..\test\testvecs\input\trace_dump_0_768x320.y"
    outData   = ".\stats_tool_out_eve.bin"
    #inData   = ".\stats_tool_out_eve.bin"
    #outData   = ".\stats_tool_out.bin"
    layersGroupId = 1
    runFullNet = 0
    
    
    
    

    rawImage    = 1
    numFrames   = 1
    preProcType  = 4
    #inData   = "D:\work\vision\dsp_git\dsp_apps\modules\ti_dl\test\testvecs\config\caffe_models\SSD\000535.jpg"
    #inData   = D:\work\vision\dsp_git\dsp_apps\modules\ti_dl\test\testvecs\config\caffe_models\SSD\000220.jpg
    #inData   = "D:\work\vision\CNN\data\tiscapes\VIRB0003_200frames_00.11\out000018_crop.png"
    #inData   = "D:\work\vision\CNN\data\tiscapes\V105Crop_200frames_0249\out000026.png"
    traceDumpBaseName   = ".\trace_dump_"
    updateNetWithStats   = 0
    netBinFile     = ..\..\test\testvecs\config\tidl_models\jdetnet\tidl_net_jdetNet_ssd.bin
    paramsBinFile        = ..\..\test\testvecs\config\tidl_models\jdetnet\tidl_param_jdetNet_ssd.bin
    
    readQ  = 1
    writeQ = 1
    #inData   = "..\..\test\testvecs\input\trace_dump_0_768x384.y"
    #inData   = "..\..\test\testvecs\input\trace_dump_0_768x320.y"
    #outData   = ".\stats_tool_out_eve.bin"
    inData   = ".\stats_tool_out_eve.bin"
    outData   = ".\stats_tool_out.bin"
    layersGroupId = 2
    runFullNet = 0
    
    
    
    

  • Hi Praveen,

    My issue resolved. Thank you.

    Best regards,
    Saito