]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - tidl/tidl-api.git/log
tidl/tidl-api.git
4 years agoreplace 2 dsp + 2 group layer use cases with 1 dsp
Caleb Robey [Tue, 7 Jan 2020 15:15:40 +0000 (09:15 -0600)]
replace 2 dsp + 2 group layer use cases with 1 dsp

reference to PLSDK-3189.

The BBAI only has enough CMEM for 4 EVEs, 1 DSP, and 2 group
layers. In the case of all of our networks, the difference between
1 and 2 dsps is essentially nonexistent.

The following is the benchmarks run side by side:

CMDLINE: ./mcbench -g 1 -d 2 -e 4 -c ../test/testvecs/config/ CMDLINE: ./mcbench -g 1 -d 2 -e 4 -c ../test/testvecs/config/
Input: ../test/testvecs/input/preproc_0_224x224_multi.y frame Input: ../test/testvecs/input/preproc_0_224x224_multi.y frame
Loop total time:   1189ms Loop total time:   1189ms
FPS:42.06 FPS:42.06
mcbench PASSED mcbench PASSED
CMDLINE: ./mcbench -g 1 -d 2 -e 4 -c ../test/testvecs/config/ CMDLINE: ./mcbench -g 1 -d 2 -e 4 -c ../test/testvecs/config/
Input: ../test/testvecs/input/preproc_0_224x224_multi.y frame Input: ../test/testvecs/input/preproc_0_224x224_multi.y frame
Loop total time:   3066ms Loop total time:   3066ms
FPS:16.31 FPS:16.31
mcbench PASSED mcbench PASSED
CMDLINE: ./mcbench -g 2 -d 1 -e 4 -c ../test/testvecs/config/ | CMDLINE: ./mcbench -g 2 -d 2 -e 4 -c ../test/testvecs/config/
Input: ../test/testvecs/input/preproc_2_224x224_multi.y frame Input: ../test/testvecs/input/preproc_2_224x224_multi.y frame
Loop total time:   1822ms       | Loop total time:   1835ms
FPS:27.44       | FPS:27.24
mcbench PASSED mcbench PASSED
CMDLINE: ./mcbench -g 2 -d 1 -e 4 -c ../test/testvecs/config/ | CMDLINE: ./mcbench -g 2 -d 2 -e 4 -c ../test/testvecs/config/
Input: ../test/testvecs/input/preproc_2_224x224_multi.y frame Input: ../test/testvecs/input/preproc_2_224x224_multi.y frame
Loop total time:   1823ms       | Loop total time:   1841ms
FPS:27.42       | FPS:27.16
mcbench PASSED mcbench PASSED
CMDLINE: ./mcbench -g 2 -d 1 -e 4 -c ../test/testvecs/config/ | CMDLINE: ./mcbench -g 2 -d 2 -e 4 -c ../test/testvecs/config/
Input: ../test/testvecs/input/preproc_2_224x224_multi.y frame Input: ../test/testvecs/input/preproc_2_224x224_multi.y frame
Loop total time:   1793ms       | Loop total time:   1817ms
FPS:27.89       | FPS:27.52
mcbench PASSED mcbench PASSED
CMDLINE: ./mcbench -g 2 -d 1 -e 4 -c ../test/testvecs/config/ | CMDLINE: ./mcbench -g 2 -d 2 -e 4 -c ../test/testvecs/config/
Input: ../test/testvecs/input/preproc_0_224x224_multi.y frame Input: ../test/testvecs/input/preproc_0_224x224_multi.y frame
Loop total time:   4269ms       | Loop total time:   4285ms
FPS:11.71       | FPS:11.67
mcbench PASSED mcbench PASSED
CMDLINE: ./mcbench -g 2 -d 1 -e 4 -c ../test/testvecs/config/ | CMDLINE: ./mcbench -g 2 -d 2 -e 4 -c ../test/testvecs/config/
Input: ../test/testvecs/input/preproc_0_224x224_multi.y frame Input: ../test/testvecs/input/preproc_0_224x224_multi.y frame
Loop total time:  892.9ms       | Loop total time:    915ms
FPS:55.99       | FPS:54.64
mcbench PASSED mcbench PASSED
CMDLINE: ./mcbench -g 2 -d 1 -e 4 -c ../test/testvecs/config/ | CMDLINE: ./mcbench -g 2 -d 2 -e 4 -c ../test/testvecs/config/
Input: ../test/testvecs/input/preproc_0_224x224_multi.y frame Input: ../test/testvecs/input/preproc_0_224x224_multi.y frame
Loop total time:   2008ms       | Loop total time:   2014ms
FPS:24.9       | FPS:24.82
mcbench PASSED mcbench PASSED

4 years agoMinor version update in docs
Yuan Zhao [Mon, 30 Dec 2019 21:21:04 +0000 (15:21 -0600)]
Minor version update in docs

4 years agoFix versioning for shared libary
Yuan Zhao [Thu, 12 Dec 2019 23:14:37 +0000 (17:14 -0600)]
Fix versioning for shared libary

- by putting proper SONAME in built shared libraries.
- MCT-1231

4 years agoMerge tag 'v01.04.00' into develop
Yuan Zhao [Sun, 8 Dec 2019 05:45:31 +0000 (23:45 -0600)]
Merge tag 'v01.04.00' into develop

TIDL-API v01.04.00 for Processor SDK 6.2

4 years agoMerge branch 'release/v01.04.00' v01.04.00
Yuan Zhao [Sun, 8 Dec 2019 05:44:50 +0000 (23:44 -0600)]
Merge branch 'release/v01.04.00'

4 years agoUpdate changelog for v01.04.00 release
Yuan Zhao [Sun, 8 Dec 2019 05:32:14 +0000 (23:32 -0600)]
Update changelog for v01.04.00 release

4 years agomcbench: Adjust network heap sizes, so that all test cases can fit into CMEM of 384MB
Djordje Senicic [Wed, 27 Nov 2019 23:28:14 +0000 (18:28 -0500)]
mcbench: Adjust network heap sizes, so that all test cases can fit into CMEM of 384MB

Signed-off-by: Djordje Senicic <x0157990@ti.com>
4 years agoexamples:classification: Detect number of EVEs, DSPs and CMEM size on SoC
Djordje Senicic [Wed, 27 Nov 2019 23:26:27 +0000 (18:26 -0500)]
examples:classification: Detect number of EVEs, DSPs and CMEM size on SoC

Signed-off-by: Djordje Senicic <x0157990@ti.com>
4 years agomcbench: Add test cases for AM5729
Djordje Senicic [Wed, 27 Nov 2019 17:52:47 +0000 (12:52 -0500)]
mcbench: Add test cases for AM5729

- Add one line of comment in each script, to indicate SoC used with specific the script
- Add all_5729.sh, script with benchmarking test cases for AM5729 device, 2xDSP+4xEVE
- PLSDK-3140

Signed-off-by: Djordje Senicic <x0157990@ti.com>
4 years agoBump up develop branch version to 1.5.0
Yuan Zhao [Mon, 25 Nov 2019 17:43:00 +0000 (11:43 -0600)]
Bump up develop branch version to 1.5.0

4 years agoSubgraph: use Layer2Group map in config file
Yuan Zhao [Mon, 25 Nov 2019 01:58:14 +0000 (19:58 -0600)]
Subgraph: use Layer2Group map in config file

- If Layer2Group map exists in subgraph config file, use it.
  Otherwise, try derive the map from network layer types.
- Added TidlFreeSubgraph() for subgraph resource de-allocation
- Code changes based on review comments.
- MCT-1223

4 years agoSubgraph example: multi-threaded batch processing
Yuan Zhao [Thu, 21 Nov 2019 05:38:12 +0000 (23:38 -0600)]
Subgraph example: multi-threaded batch processing

- Compared different batch size in subgraph execution example
- Compared async/future implementation vs thread pool implementation,
  async/future has slightly worse (~1%) performance,
  but it is much easier to program
- Recommended inference is multi-threaded batch processing, where
  batch_size can be obtained from TidlGetPreferredBatchSize(),
  number of threads can be set to 2.
- MCT-1223

4 years agoParse data conversion info from subgraph config
Yuan Zhao [Wed, 20 Nov 2019 17:30:35 +0000 (11:30 -0600)]
Parse data conversion info from subgraph config

- MCT-1224

4 years agoSubgraph: support batch processing
Yuan Zhao [Thu, 31 Oct 2019 20:17:38 +0000 (15:17 -0500)]
Subgraph: support batch processing

- MCT-1223

4 years agoSubgraph: add a mobilenet v1 example
Yuan Zhao [Thu, 31 Oct 2019 03:02:26 +0000 (22:02 -0500)]
Subgraph: add a mobilenet v1 example

- Using the TidlRunSubgraph() interface

4 years agoSubgraph: add top level API TidlRunSubgraph
Yuan Zhao [Thu, 31 Oct 2019 02:56:39 +0000 (21:56 -0500)]
Subgraph: add top level API TidlRunSubgraph

- TidlRunSubgraph() should be the interface function that TVM/TFLite
  calls to offload subgraph to TIDL
- MCT-1222

4 years agoSubgraph data conversion at boundaries
Yuan Zhao [Tue, 29 Oct 2019 07:14:54 +0000 (02:14 -0500)]
Subgraph data conversion at boundaries

- Data layout: NCHW <-> NHWC
- Data type: 8-bit quantized <-> float
- MCT-1222

4 years agoSubgraph offloading to TIDL: first commit
Yuan Zhao [Wed, 23 Oct 2019 19:21:09 +0000 (14:21 -0500)]
Subgraph offloading to TIDL: first commit

- ResM class provides top level encapsulation
- All allocation of core resources and buffers, and all creation of
  Executor, ExecutionObject, ExecutionObjectPipeline are encapsulated.
- Auto-partition last few layers to DSP if profitable, also encapsulated.
- MCT-1223, MCT-1224

4 years agoMerge tag 'v01.03.03' into develop
Yuan Zhao [Mon, 30 Sep 2019 14:41:54 +0000 (09:41 -0500)]
Merge tag 'v01.03.03' into develop

TIDL-API 1.3.3 for PSDK 6.1

4 years agoMerge branch 'hotfix/v01.03.03' v01.03.03
Yuan Zhao [Mon, 30 Sep 2019 14:39:55 +0000 (09:39 -0500)]
Merge branch 'hotfix/v01.03.03'

4 years agoUpdate the changelog
Yuan Zhao [Fri, 27 Sep 2019 21:34:32 +0000 (16:34 -0500)]
Update the changelog

4 years agoRevert "Adjust example heap sizes with new TIDL library"
Yuan Zhao [Fri, 27 Sep 2019 20:40:26 +0000 (15:40 -0500)]
Revert "Adjust example heap sizes with new TIDL library"

This reverts commit c3786ddb01e187a983811d1cd3e08f6dfa20dd2e.

4 years agoRevert "More example sizes adjustment with new TIDL lib"
Yuan Zhao [Fri, 27 Sep 2019 20:36:58 +0000 (15:36 -0500)]
Revert "More example sizes adjustment with new TIDL lib"

This reverts commit 268aecd993dec4faec1a414d6aac4c43b0c059ed.

4 years agomcbench: Add MobileNetV2 test cases
Djordje Senicic [Fri, 27 Sep 2019 19:52:49 +0000 (15:52 -0400)]
mcbench: Add MobileNetV2 test cases

- PLSDK-3078

Signed-off-by: Djordje Senicic <x0157990@ti.com>
4 years agoStart hotfix v01.03.03
Yuan Zhao [Fri, 27 Sep 2019 19:43:51 +0000 (14:43 -0500)]
Start hotfix v01.03.03

4 years agoMerge tag 'v01.03.02' into develop
Yuan Zhao [Mon, 16 Sep 2019 19:53:15 +0000 (14:53 -0500)]
Merge tag 'v01.03.02' into develop

TIDL-API 1.3.2 for Processor SDK 6.1

4 years agoMerge branch 'hotfix/v01.03.02' v01.03.02
Yuan Zhao [Mon, 16 Sep 2019 19:52:06 +0000 (14:52 -0500)]
Merge branch 'hotfix/v01.03.02'

TIDL-API 1.3.2 for Processor SDK 6.1

4 years agoFix min OpenCL version to 1.1.19.00
Yuan Zhao [Mon, 16 Sep 2019 19:36:36 +0000 (14:36 -0500)]
Fix min OpenCL version to 1.1.19.00

- MCT-1221

4 years agoAdded double quotes "" to input data file
Jianzhong Xu [Mon, 16 Sep 2019 16:16:26 +0000 (12:16 -0400)]
Added double quotes "" to input data file

4 years agoPLSDK-2956: add MobileNetV2 model (.bin files) and inference config files
Jianzhong Xu [Mon, 16 Sep 2019 13:40:28 +0000 (09:40 -0400)]
PLSDK-2956: add MobileNetV2 model (.bin files) and inference config files

4 years agoFix classification example for tensorflow models
Yuan Zhao [Thu, 12 Sep 2019 22:06:58 +0000 (17:06 -0500)]
Fix classification example for tensorflow models

- Copy original image to show image before pre-processing, because
  pre-processing will change BGR to RGB for tensorflow models
- Subtract 1 from output object class index, because tensorflow outputs
  1001 bytes and uses index-0 for background.  Regular imagenet labels
  only have 1000 entries.
- Fix path to inceptionnet net and params binaries in the config file.
- MCT-1221

4 years agoPLSDK-2986: Calibrate TIDL models for TF with correct raw image (preproc type 2).
Jianzhong Xu [Thu, 12 Sep 2019 13:42:28 +0000 (09:42 -0400)]
PLSDK-2986: Calibrate TIDL models for TF with correct raw image (preproc type 2).

4 years agoStart hotfix v01.03.02
Yuan Zhao [Mon, 9 Sep 2019 17:03:48 +0000 (12:03 -0500)]
Start hotfix v01.03.02

4 years agoMerge tag 'v01.03.01' into develop
Yuan Zhao [Fri, 6 Sep 2019 21:45:16 +0000 (16:45 -0500)]
Merge tag 'v01.03.01' into develop

TIDL-API 1.3.1 for Processor SDK 6.1

4 years agoMerge branch 'release/v01.03.01' v01.03.01
Yuan Zhao [Fri, 6 Sep 2019 21:44:40 +0000 (16:44 -0500)]
Merge branch 'release/v01.03.01'

TIDL-API 1.3.1 for Processor SDK 6.1

4 years agoMore example sizes adjustment with new TIDL lib
Yuan Zhao [Thu, 5 Sep 2019 20:40:36 +0000 (15:40 -0500)]
More example sizes adjustment with new TIDL lib

- MCT-1217

4 years agoUpdate changelog for version 1.3.1
Yuan Zhao [Tue, 3 Sep 2019 20:39:40 +0000 (15:39 -0500)]
Update changelog for version 1.3.1

4 years agoUpdate TIDL-API manifest for version 1.3.1
Yuan Zhao [Tue, 3 Sep 2019 16:37:08 +0000 (11:37 -0500)]
Update TIDL-API manifest for version 1.3.1

4 years agoUpdate squeeze net reference output
Yuan Zhao [Tue, 3 Sep 2019 15:58:18 +0000 (10:58 -0500)]
Update squeeze net reference output

- 6 out of 1000 outputs changed with the newly imported network

4 years agoPLSDK-2986: update TIDL models for mobilenetV1, inceptionNetV1, squeezeNetV1.
Jianzhong Xu [Fri, 30 Aug 2019 21:32:58 +0000 (17:32 -0400)]
PLSDK-2986: update TIDL models for mobilenetV1, inceptionNetV1, squeezeNetV1.

4 years agoAdjust example heap sizes with new TIDL library
Yuan Zhao [Fri, 30 Aug 2019 19:14:31 +0000 (14:14 -0500)]
Adjust example heap sizes with new TIDL library

- The latest TIDL library increased memory requirement slightly.
  Adjust heap sizes in the examples accordingly.
- MCT-1217

4 years agoBump develop branch to version 1.4.0
Yuan Zhao [Fri, 30 Aug 2019 18:11:12 +0000 (13:11 -0500)]
Bump develop branch to version 1.4.0

4 years agoPrint out imagenet object index in imagenet example
Yuan Zhao [Wed, 28 Aug 2019 21:28:18 +0000 (16:28 -0500)]
Print out imagenet object index in imagenet example

- The object index is helpful information, in addition to text label
  that has already been printed out.
- Offset tensorflow model output by 1 to remove backgroup index
- MCT-1216

4 years agoControl heap size and alloc opt using env vars
Yuan Zhao [Tue, 27 Aug 2019 18:56:02 +0000 (13:56 -0500)]
Control heap size and alloc opt using env vars

- TIDL_PARAM_HEAP_SIZE_EVE, TIDL_PARAM_HEAP_SIZE_DSP,
  TIDL_NETWORK_HEAP_SIZE_EVE, TIDL_NETWORK_HEAP_SIZE_DSP,
  TIDL_EXTMEM_ALLOC_OPT_EVE, TIDL_EXTMEM_ALLOC_OPT_DSP
  are provided to overwrite the heap sizes and heap allocation optimization
  level (1 or 2) that are specified by default or by application.
- MCT-1215

4 years agoChange develop version to 1.3.1 for patch release
Yuan Zhao [Mon, 26 Aug 2019 14:56:57 +0000 (09:56 -0500)]
Change develop version to 1.3.1 for patch release

4 years agoUpdate network binary in TIDL-API to new format
Yuan Zhao [Sun, 28 Jul 2019 05:17:44 +0000 (00:17 -0500)]
Update network binary in TIDL-API to new format

- New network format corresponds to the network data structure update,
  where strideOffsetMethod field moved from sTIDL_Network_t to sTIDL_Layer_t.
  Old format is 483364 bytes, new format is 484384 bytes.
- Relates to: commit 49401e64374a4f0999479245dcd01eab38bec304, MCT-1136
- MCT-1203

4 years agoAdd ssd_multibox_fullnet example
Yuan Zhao [Wed, 26 Jun 2019 14:36:54 +0000 (09:36 -0500)]
Add ssd_multibox_fullnet example

- To demonstrate running jdenet/jdetnet_voc on a single core,
  without paritioning the network.  This is useful for situations
  where SoC only has C66x cores but not EVE cores.
- MCT-1202

4 years agoDump dataQ/minValue/maxValue for TIDL trace
Yuan Zhao [Wed, 19 Jun 2019 15:40:22 +0000 (10:40 -0500)]
Dump dataQ/minValue/maxValue for TIDL trace

- MCT-1201

4 years agoFix g++ 8.3.0 compilation error
Yuan Zhao [Thu, 20 Jun 2019 17:01:24 +0000 (12:01 -0500)]
Fix g++ 8.3.0 compilation error

- Fix a syntax allowed in g++ 7.2.1 (PSDK5.3) but not in 8.3.0 (PSDK6.0)
- Make should report error from loop
- MCT-1199

4 years agoAdd imagenet python example
Yuan Zhao [Tue, 11 Jun 2019 14:37:03 +0000 (09:37 -0500)]
Add imagenet python example

- Show how to interface with EO/EOP's input/output buffer in python.
- Show how to use OpenCV to read and transform image,
  and how to process imagenet's output data.
- Fix EOP construction in examples
- MCT-1197

4 years agoFix unique_ptr that holds an allocated array
Yuan Zhao [Mon, 10 Jun 2019 20:12:03 +0000 (15:12 -0500)]
Fix unique_ptr that holds an allocated array

- Customer reported this problem.  unique_ptr that holds an allocated
  array was created as "unique_ptr<char>", which will call "delete"
  at destruction.  However, the array was created with "new char[]".
  The proper way should be "unique_ptr<char[]>", so that "delete []"
  will be called at destrution.
- One minor trace message update so that we know which type of device
  is being dispatched to.
- MCT-1196

5 years agoUse DSP Built-in Kernels in TIDL-API
Yuan Zhao [Tue, 12 Mar 2019 17:34:56 +0000 (12:34 -0500)]
Use DSP Built-in Kernels in TIDL-API

- Replace previously used kernel wrappers
- MCT-1143, MCT-1154

5 years agoMerge tag 'v01.03.00' into develop
Yuan Zhao [Mon, 4 Mar 2019 21:57:04 +0000 (15:57 -0600)]
Merge tag 'v01.03.00' into develop

TIDL-API 01.03.00 for Processor SDK 5.3

5 years agoMerge branch 'release/v01.03.00' v01.03.00
Yuan Zhao [Mon, 4 Mar 2019 21:56:34 +0000 (15:56 -0600)]
Merge branch 'release/v01.03.00'

5 years agoUpdate TIDL network data structure
Yuan Zhao [Thu, 28 Feb 2019 16:41:04 +0000 (10:41 -0600)]
Update TIDL network data structure

- To be in sync with TIDL library and TIDL import utility
- strideOffsetMethod field moved from sTIDL_Network_t to sTIDL_Layer_t
- Add ReadNetworkBinary util that can read both network formats,
  so that TIDL-API can be compatible with both old and new formats
- Update reference network output due to updated TIDL library
- MCT-1136

5 years ago[segmentation] Add video clip autorewind
Djordje Senicic [Mon, 4 Mar 2019 12:43:58 +0000 (07:43 -0500)]
[segmentation] Add video clip autorewind

Signed-off-by: Djordje Senicic <x0157990@ti.com>
5 years ago[segmentation] Add sample clip with traffic scenes (from pixabay)
Djordje Senicic [Mon, 4 Mar 2019 10:53:38 +0000 (05:53 -0500)]
[segmentation] Add sample clip with traffic scenes (from pixabay)

Signed-off-by: Djordje Senicic <x0157990@ti.com>
5 years agoUpdate documentation for TIDL-API 1.3.0
Yuan Zhao [Fri, 1 Mar 2019 22:14:37 +0000 (16:14 -0600)]
Update documentation for TIDL-API 1.3.0

- MCT-1136

5 years agoClean up ssd_multibox changes
Yuan Zhao [Fri, 1 Mar 2019 17:41:34 +0000 (11:41 -0600)]
Clean up ssd_multibox changes

- PLSDK-2597

5 years ago[ssd_multibox] Addressing review comments
Djordje Senicic [Thu, 28 Feb 2019 17:03:28 +0000 (12:03 -0500)]
[ssd_multibox] Addressing review comments

Signed-off-by: Djordje Senicic <x0157990@ti.com>
5 years agoBump develop branch version to 1.4.0
Yuan Zhao [Thu, 28 Feb 2019 16:59:41 +0000 (10:59 -0600)]
Bump develop branch version to 1.4.0

5 years agoPLSDK-2597
Djordje Senicic [Thu, 28 Feb 2019 13:47:43 +0000 (08:47 -0500)]
PLSDK-2597
  - SSD_Multibox: updated to include slider for run-time probability modification
  - SSD_Multibox: skip grabbing frame input multiple times, as real-time would very based on multicore configuration and network complexity
  - SSD_Multibox: resize and central cropping added; instead of showing rectangles in original image, network input is presented
  - Classification: Toydogs configuration added including models

Signed-off-by: Djordje Senicic <x0157990@ti.com>
5 years agoEnable DSP out-of-order execution in TIDL-API
Yuan Zhao [Fri, 28 Dec 2018 18:06:29 +0000 (12:06 -0600)]
Enable DSP out-of-order execution in TIDL-API

- MCT-1108

5 years agoEnable MNIST example on DSP
Yuan Zhao [Wed, 19 Dec 2018 16:53:18 +0000 (10:53 -0600)]
Enable MNIST example on DSP

- It turns out DSP implementation of InnerProduct layer in TIDL library
  requires input size to be multiple of 8, because it is doing
  aligned 8-byte loads.
- Original LeNet network used in the MNIST example has a second InnerProduct
  layer of size 500, which is not a multiple of 8.  Change the size to 504,
  re-train the network, re-import into TIDL format.  Now the MNIST example
  works correctly on DSP as well.
- MCT-1105

5 years agoMerge tag 'v01.02.02' into develop
Ajay Jayaraj [Wed, 12 Dec 2018 14:10:20 +0000 (08:10 -0600)]
Merge tag 'v01.02.02' into develop

5 years agoMerge branch 'hotfix/v01.02.02' v01.02.02
Ajay Jayaraj [Wed, 12 Dec 2018 14:09:23 +0000 (08:09 -0600)]
Merge branch 'hotfix/v01.02.02'

5 years agoFix memory leak in classification example
Yuan Zhao [Tue, 11 Dec 2018 14:59:22 +0000 (08:59 -0600)]
Fix memory leak in classification example

- MCT-1101

5 years agoclassification: Modify configuration structure to runFullNet before calling construct...
Djordje Senicic [Fri, 7 Dec 2018 12:40:36 +0000 (07:40 -0500)]
classification: Modify configuration structure to runFullNet before calling constructor for Execution Object

Signed-off-by: Djordje Senicic <x0157990@ti.com>
5 years agoUpdated patch version to 2 (TIDL API 1.2.2)
Ajay Jayaraj [Fri, 7 Dec 2018 17:35:46 +0000 (11:35 -0600)]
Updated patch version to 2 (TIDL API 1.2.2)

5 years agoMerge tag 'v01.02.01' into develop
Ajay Jayaraj [Thu, 6 Dec 2018 17:36:50 +0000 (11:36 -0600)]
Merge tag 'v01.02.01' into develop

5 years agoMerge branch 'hotfix/v01.02.01' v01.02.01
Ajay Jayaraj [Thu, 6 Dec 2018 17:35:48 +0000 (11:35 -0600)]
Merge branch 'hotfix/v01.02.01'

5 years agotidl-viewer: Remove executor.h inclusion in utils.cpp
Ajay Jayaraj [Thu, 6 Dec 2018 17:00:35 +0000 (11:00 -0600)]
tidl-viewer: Remove executor.h inclusion in utils.cpp

One of the files in the tidl-viewer build, utils.cpp, was updated to include
executor.h.  This header in turn includes a file from OpenCL, custom.h.

The yocto build of tidl-viewer is a native recipe and hence cannot
include opencl recipes as a dependency to obtain custom.h.

This commit updates utils.cpp to remove the include of executor.h and
custom.h.
(MCT-1100)

5 years agoMerge tag 'v01.02.00' into develop
Ajay Jayaraj [Wed, 28 Nov 2018 23:11:04 +0000 (17:11 -0600)]
Merge tag 'v01.02.00' into develop

5 years agoMerge branch 'release/v01.02.00' v01.02.00
Ajay Jayaraj [Wed, 28 Nov 2018 23:09:41 +0000 (17:09 -0600)]
Merge branch 'release/v01.02.00'

5 years agoAdd jdetnet_voc network and make it the default
Yuan Zhao [Wed, 28 Nov 2018 21:25:57 +0000 (15:25 -0600)]
Add jdetnet_voc network and make it the default

- jdetnet_voc is trained with more object categories than original
  jdetnet.  Make jdetnet_voc the default in the ssd example.  User can
  still use command line options to run the original jdetnet network.
- MCT-1091

5 years agoUpdate imagenet example with new softmax output
Yuan Zhao [Tue, 27 Nov 2018 23:36:44 +0000 (17:36 -0600)]
Update imagenet example with new softmax output

- MCT-1089

5 years agoAdded Python variant of mnist example
Ajay Jayaraj [Tue, 27 Nov 2018 20:56:19 +0000 (14:56 -0600)]
Added Python variant of mnist example

Also fix one_eo_per_frame.py to avoid creating an EVE executor if there are
no EVEs available.
(MCT-1088)

5 years agoAdd link in changelog for mnist example
Yuan Zhao [Tue, 27 Nov 2018 19:30:41 +0000 (13:30 -0600)]
Add link in changelog for mnist example

- MCT-1083

5 years agoAdd MNIST LeNet network model and test input
Yuan Zhao [Tue, 27 Nov 2018 15:58:46 +0000 (09:58 -0600)]
Add MNIST LeNet network model and test input

- Constrained to EVE only for now.
- Add documentation for mnist example.
- MCT-1083

5 years agoAdd mnist example with low compute
Yuan Zhao [Wed, 7 Nov 2018 20:50:59 +0000 (14:50 -0600)]
Add mnist example with low compute

- Show that TIDL API with multiple contexts and pipelined computation
  offers low overhead for small networks as well.
- MCT-1083

5 years agoUpdate reference output for unit tests
Ajay Jayaraj [Mon, 26 Nov 2018 22:28:05 +0000 (16:28 -0600)]
Update reference output for unit tests

A defect fix in the softmax layer necessitated updates to the reference
output of networks using the softmax layer.

(MCT-1087)

5 years agoDocumentation - update 'Using the API' chapter
Ajay Jayaraj [Thu, 15 Nov 2018 22:33:55 +0000 (16:33 -0600)]
Documentation - update 'Using the API' chapter

(MCT-1086)

5 years agoInitialize EO::current_frame_idx_m in constructor
Ajay Jayaraj [Thu, 15 Nov 2018 16:50:37 +0000 (10:50 -0600)]
Initialize EO::current_frame_idx_m in constructor

Initialize ExecutionObject::current_frame_idx_m array to 0 in the
ExecutionObject constructor to prevent out of range entries when
recording trace data.

In a pipelined processing loop, the application executes
ExecutionObject::ProcessFrameWait() on the first frame before it calls
ExecutionObject::ProcessFrameStartAsync. The side effect is that the
current_frame_idx_m is not initialized. This can result in negative
frame indices when writing trace data using ReportTrace or UpdateTrace
leading to memory errors.

Setting ExecutionObject::current_frame_idx_m to 0 in the constructor
avoids this scenario.

(MCT-1085)

5 years agoUpdated version on develop to 1.3.0
Ajay Jayaraj [Wed, 14 Nov 2018 17:18:11 +0000 (11:18 -0600)]
Updated version on develop to 1.3.0

5 years agoUpdated parameter description in doxygen comments
Ajay Jayaraj [Tue, 13 Nov 2018 21:46:30 +0000 (15:46 -0600)]
Updated parameter description in doxygen comments

(MCT-1084)

5 years agoBuild Python bindings library by default
Ajay Jayaraj [Wed, 7 Nov 2018 16:16:04 +0000 (10:16 -0600)]
Build Python bindings library by default

(MCT-1069)

5 years agoUpdated manifest for v1.2.0
Ajay Jayaraj [Thu, 1 Nov 2018 19:00:38 +0000 (14:00 -0500)]
Updated manifest for v1.2.0

(MCT-1060)

5 years agoAdd option to specify object classes list file
Yuan Zhao [Wed, 31 Oct 2018 21:53:30 +0000 (16:53 -0500)]
Add option to specify object classes list file

- so that user can specify a different object classes list file
  without re-compiling the application.
- MCT-1081

5 years agomcbench: image preprocessing, handle layergroups=1
Djordje Senicic [Wed, 31 Oct 2018 17:18:00 +0000 (13:18 -0400)]
mcbench: image preprocessing, handle layergroups=1

- Add image preprocessing for types 1 and 2.
- if layer groups is 1, force all layers to be in the same group

(MCT-1075)

5 years agoclassification: Support different network models
Djordje Senicic [Wed, 31 Oct 2018 17:14:34 +0000 (13:14 -0400)]
classification: Support different network models

jacinto11, mobilenet and inceptionet models can be used with this example.

5 years agoinfer: Add configuration files for inceptionnet and mobilenet that can run as two...
Djordje Senicic [Wed, 31 Oct 2018 17:12:00 +0000 (13:12 -0400)]
infer: Add configuration files for inceptionnet and mobilenet that can run as two layer groups

Signed-off-by: Djordje Senicic <x0157990@ti.com>
5 years agotidl_models: Add mobilenet and inceptionnet models, trained on ImageNet
Djordje Senicic [Wed, 31 Oct 2018 17:10:46 +0000 (13:10 -0400)]
tidl_models: Add mobilenet and inceptionnet models, trained on ImageNet

Signed-off-by: Djordje Senicic <x0157990@ti.com>
5 years agomcbench: Multicore benchmark with minimal overhead
Djordje Senicic [Wed, 24 Oct 2018 06:07:41 +0000 (02:07 -0400)]
mcbench: Multicore benchmark with minimal overhead

- Add required models, input test vectors and platform specific scripts
- Add inference configuration files for multicore benchmarking
- Rename input files to indicate multiple frames and add more inference
  configurations, covered in regression scripts

(MCT-1075)

5 years agoexamples: Add layers group command line parameter
Djordje Senicic [Wed, 24 Oct 2018 06:06:42 +0000 (02:06 -0400)]
examples: Add layers group command line parameter

Signed-off-by: Djordje Senicic <x0157990@ti.com>
5 years agoUpdated Python bindings to reflect API changes
Ajay Jayaraj [Wed, 31 Oct 2018 14:56:26 +0000 (09:56 -0500)]
Updated Python bindings to reflect API changes

(MCT-1080)

5 years agoAdd contextSize: hide OCL_TIDL_CACHE_ALIGN on host
Yuan Zhao [Tue, 30 Oct 2018 15:33:29 +0000 (10:33 -0500)]
Add contextSize: hide OCL_TIDL_CACHE_ALIGN on host

- MCT-1059

5 years agoAdded graph viewer for TIDL API timestamp data
Ajay Jayaraj [Wed, 24 Oct 2018 14:40:08 +0000 (09:40 -0500)]
Added graph viewer for TIDL API timestamp data

1. Created a python matplotlib based utility for viewing timestamp data
   generated from the TIDL API (viewer/execution_graph.py)
2. Minor updates to API internals to add ExecutionObject type, index to
   timestamp output

(MCT-1073)

5 years agoSimplify API for multiple contexts
Ajay Jayaraj [Mon, 15 Oct 2018 16:00:46 +0000 (11:00 -0500)]
Simplify API for multiple contexts

1.  Simplify context API in ExecutionObject. Replace context_id variants to
multiple existing APIs with these two APIs:

        bool AcquireAndRunContext(uint32_t& context_idx,
                                  int frame_idx,
                                  const IODeviceArgInfo& in,
                                  const IODeviceArgInfo& out);

        bool WaitAndReleaseContext(uint32_t  context_idx);

2. The timing methods for host execution in EOPs and EOs:

* GetProcessTimeInMilliSeconds()
* GetHostProcessTimeInMilliSeconds()

are no longer accurate with multiple contexts and pipelining.

Replace these methods and replace with a generic timestamp
based approach. There is a single API call to enable time stamps in an
application:

//! Enable time stamp generation for TIDL API events
bool EnableTimeStamps(const std::string& file = "timestamp.log", size_t
num_frames=32);
If this method is called before TIDL API frame processing, the API will
generate timestamps for events corresponding to each frame (e.g.
EOP::ProcessFrameStartAsync, EOP::ProcessFrameWait, etc.). These
timestamps are then written to file when the user's application
completes.

A separate script is used for post-processing the time stamps and
generating data for the user.

(MCT-1073, MCT-1074)

5 years agoEnqueue multiple frames at device side
Yuan Zhao [Thu, 4 Oct 2018 16:39:08 +0000 (11:39 -0500)]
Enqueue multiple frames at device side

- Previous implementation won't send/enqueue next frame to device
  until the host has received completion message for current frame.
  The improvement is to create multiple sets/contexts of internal
  TIDL input/output buffers at device side, and to send/enqueue next
  frame using a different set/context of internal TIDL input/output
  buffers to device while device is still processing the current frame.
  When device finishes current frame, it can immediately read
  its messageQ and start processing the next frame, without waiting
  for the completion message reaching the host and the hosting sending
  the next frame.
- In pipelined processing of multiple frames, this optimization can
  effectively hide the round-trip communication between host and device.
- Removed deprecated enableInternalInput feature
- MCT-1059

5 years agoQuantization history configuration parameters
Ajay Jayaraj [Mon, 15 Oct 2018 16:49:01 +0000 (11:49 -0500)]
Quantization history configuration parameters

Added the following parameters to Configuration:
* quantHistoryParam1
* quantHistoryParam2
* quantMargin

These parameters can be specified in the configuration file or set
directly in the code.

(MCT-1062)