Start hotfix v01.01.00.01
Merge branch 'release/v01.01.00.00'
Updated TIDL API manifest for v1.1
(MCT-1050)
(MCT-1050)
examples:classification: Use configuration.numFrames instead of hard coded big value
Signed-off-by: Djordje Senicic <x0157990@ti.com>
Signed-off-by: Djordje Senicic <x0157990@ti.com>
examples:classification: Increase main window and update picture of TIDL SW stack
- MCT-1049
Signed-off-by: Djordje Senicic <x0157990@ti.com>
- MCT-1049
Signed-off-by: Djordje Senicic <x0157990@ti.com>
Classification example code refactor and clean up
- MCT-1049
- MCT-1049
Optimize examples with EOP double buffering
- Improve overall loop performance for imagenet and segmentation
- Update documentation on performance
- MCT-1039
- Improve overall loop performance for imagenet and segmentation
- Update documentation on performance
- MCT-1039
Updates to User's Guide and related examples
Changes:
* Overview chapter, includes a Terminology section.
* Section on different use cases in the "Using the API" chapter.
* Updated the Examples chapter to reflect new examples and AM5749
benchmarking.
* Added the two_eo_per_frame_opt example to illustrate double buffering.
(MCT-1043)
Changes:
* Overview chapter, includes a Terminology section.
* Section on different use cases in the "Using the API" chapter.
* Updated the Examples chapter to reflect new examples and AM5749
benchmarking.
* Added the two_eo_per_frame_opt example to illustrate double buffering.
(MCT-1043)
Wall cleanup, optimize ssd_multibox
- Fix -Wall errors
- Optimize pipeline execution for ssd_multibox
- MCT-1015
- Fix -Wall errors
- Optimize pipeline execution for ssd_multibox
- MCT-1015
Video input option and document update
- mp4/avi/mov as pre-recorded video input
- camera as live video input, let user choose video input port #
- refactor examples code
- bookkeep each EO's device/host time inside EOP since EO could be shared
- documentation update on 650MHz EVE
- documentation on video inputs and output
- MCT-1015
- mp4/avi/mov as pre-recorded video input
- camera as live video input, let user choose video input port #
- refactor examples code
- bookkeep each EO's device/host time inside EOP since EO could be shared
- documentation update on 650MHz EVE
- documentation on video inputs and output
- MCT-1015
Added example to illustrate pipelining across EOs
two_eo_per_frame is a simple example to illustrate using
ExecutionObjectPipeline to split processing a single frame across EVE
and DSP.
(MCT-1048)
two_eo_per_frame is a simple example to illustrate using
ExecutionObjectPipeline to split processing a single frame across EVE
and DSP.
(MCT-1048)
Refactor examples - test, one_eo_per_frame
- Remove code duplication across test/main.cpp,
test/multiple_executors.cpp and one_eo_per_frame/main.cpp
- Moved common code into common/utils.h, common/utils.cpp
(MCT-1047)
- Remove code duplication across test/main.cpp,
test/multiple_executors.cpp and one_eo_per_frame/main.cpp
- Moved common code into common/utils.h, common/utils.cpp
(MCT-1047)
classification - fixed zero size image clip
(PLSDK-2250)
(PLSDK-2250)
classification - adjust example for API updates
- Enable operation up to 36fps on AM5749 with EVEs at 650MHz
- DisplayHelp update for number of cores
(PLSDK-2250)
- Enable operation up to 36fps on AM5749 with EVEs at 650MHz
- DisplayHelp update for number of cores
(PLSDK-2250)
Added an example to illustrate 1 EO per frame
(MCT-1043)
(MCT-1043)
Documentation - refactoring and updates
Changes:
- Added a release notes section with notes for v1.0 and v1.1
- Reworked the intro section
- Added an overview section, changed the API software picture to show
more detail
- Removed duplicate documentation for tidl::Configuration in the rst
file, moved documentation to doxygen comments in configuration.h
- Moved "building from source" to FAQs
(MCT-1043)
Changes:
- Added a release notes section with notes for v1.0 and v1.1
- Reworked the intro section
- Added an overview section, changed the API software picture to show
more detail
- Removed duplicate documentation for tidl::Configuration in the rst
file, moved documentation to doxygen comments in configuration.h
- Moved "building from source" to FAQs
(MCT-1043)
Update imagenet to take mp4 input
- clean up command line options
- MCT-1015, MCT-1039
- clean up command line options
- MCT-1015, MCT-1039
Report memory usage when device allocation fails
TIDL API creates 2 device side heaps:
1. Parameter heap
2. Network heap
The sizes of these heaps are specified in the Configuration object, via
PARAM_HEAP_SIZE and NETWORK_HEAP_SIZE.
Existing behavior: If the heaps are not large enough, allocation on the
device triggers an assertion failure with no indication of how large the
heaps need to be for successfull allocation.
To improve the usability of the API, provide feedback to the user on the
heap sizes required to satisfy device side allocations when any
allocation fails.
Also added `-Wall -Werror` when building examples and fixed failures.
(MCT-1035)
TIDL API creates 2 device side heaps:
1. Parameter heap
2. Network heap
The sizes of these heaps are specified in the Configuration object, via
PARAM_HEAP_SIZE and NETWORK_HEAP_SIZE.
Existing behavior: If the heaps are not large enough, allocation on the
device triggers an assertion failure with no indication of how large the
heaps need to be for successfull allocation.
To improve the usability of the API, provide feedback to the user on the
heap sizes required to satisfy device side allocations when any
allocation fails.
Also added `-Wall -Werror` when building examples and fixed failures.
(MCT-1035)
ExecutionObjectPipeline for executing layersGroups
- Add top level ExecutionObjectPipeline class to execute multiple
layersGroups.
- An ExecutionObjectPipeline is constructed from multiple
ExecutionObjects, each ExecutionObject executes one layersGroup
in the network, together they execute consecutive layersGroups.
- Same look and feel as ExecutionObject, e.g. ProcessFrameStartAsync,
ProcessFrameWait, GetInputBufferPointer, GetOutputBufferPointer
- MCT-1017, MCT-1029
- Add top level ExecutionObjectPipeline class to execute multiple
layersGroups.
- An ExecutionObjectPipeline is constructed from multiple
ExecutionObjects, each ExecutionObject executes one layersGroup
in the network, together they execute consecutive layersGroups.
- Same look and feel as ExecutionObject, e.g. ProcessFrameStartAsync,
ProcessFrameWait, GetInputBufferPointer, GetOutputBufferPointer
- MCT-1017, MCT-1029
Modified IODeviceArgInfo to enable pipelining EOs
(MCT-1030)
(MCT-1030)
Remove implementation details from ArgInfo
Implementation details such as argument kind and PipeInfo should not be
a part of the user facing ArgInfo class. Also, PipeInfo is relevant only
for input/output arguments.
Moved implementation details out of ArgInfo and created 2 new classes:
DeviceArgInfo and IODeviceArgInfo.
DeviceArgInfo inherits from ArgInfo and adds an
argument kind (buffer, local or scalar). IODeviceArgInfo consists of
DeviceArgInfo and PipeInfo.
(MCT-1030)
Implementation details such as argument kind and PipeInfo should not be
a part of the user facing ArgInfo class. Also, PipeInfo is relevant only
for input/output arguments.
Moved implementation details out of ArgInfo and created 2 new classes:
DeviceArgInfo and IODeviceArgInfo.
DeviceArgInfo inherits from ArgInfo and adds an
argument kind (buffer, local or scalar). IODeviceArgInfo consists of
DeviceArgInfo and PipeInfo.
(MCT-1030)
Remove input, output buffers from process kernel
Input and output OpenCL buffers do not have to be passed into the process
kernel. The host will directly update input and output in the buffers
allocated by the TIDL library via the HostWriteNetInput and
HostReadNetOutput methods.
(MCT-1030)
Input and output OpenCL buffers do not have to be passed into the process
kernel. The host will directly update input and output in the buffers
allocated by the TIDL library via the HostWriteNetInput and
HostReadNetOutput methods.
(MCT-1030)
classification: Update static images, synthetic video clip
(MCT-1031)
Signed-off-by: Djordje Senicic <x0157990@ti.com>
(MCT-1031)
Signed-off-by: Djordje Senicic <x0157990@ti.com>
Support layer group id assignment updates
Provide API support for updating layer -> layer group id assignments
before executing network.
(MCT-1028)
Provide API support for updating layer -> layer group id assignments
before executing network.
(MCT-1028)
Add support for accessing layer output data
* Added API methods to enable tracing and dump layer output buffers to
file
1. ExecutionObject::WriteLayerOutputsToFile
2. ExecutionObject::GetOutputsFromAllLayers
3. ExecutionObject::GetOutputFromLayer
See examples/layer_output/main.cpp, ProcessTrace() for examples of
using these tracing APIs.
* Added a 'enableTrace' field to the configuration file. Set to true
to enable tracing.
* Update configuration file parser to allow comments, blank lines
Note:
Tracing requires ti-opencl, SHA-ID 188cc38627315d3041b80ee86e6ca33087348062
or newer.
(MCT-1023)
* Added API methods to enable tracing and dump layer output buffers to
file
1. ExecutionObject::WriteLayerOutputsToFile
2. ExecutionObject::GetOutputsFromAllLayers
3. ExecutionObject::GetOutputFromLayer
See examples/layer_output/main.cpp, ProcessTrace() for examples of
using these tracing APIs.
* Added a 'enableTrace' field to the configuration file. Set to true
to enable tracing.
* Update configuration file parser to allow comments, blank lines
Note:
Tracing requires ti-opencl, SHA-ID 188cc38627315d3041b80ee86e6ca33087348062
or newer.
(MCT-1023)
Merge tag 'v01.00.00.03' into develop
Hotfix v01.00.00.03 for PSDK 5.0
Hotfix v01.00.00.03 for PSDK 5.0
Merge branch 'hotfix/v01.00.00.03'
Update to version 01.00.00.03
classification example: Updated video clip and list of allowed classes
Signed-off-by: Djordje Senicic <x0157990@ti.com>
Signed-off-by: Djordje Senicic <x0157990@ti.com>
Restore version to 01.01.00.00 after merge
Merge tag 'v01.00.00.02' into develop
For PSDK 18Q2 (5.0) release
For PSDK 18Q2 (5.0) release
Merge branch 'hotfix/v01.00.00.02'
Rename test clips
Signed-off-by: Djordje Senicic <x0157990@ti.com>
Signed-off-by: Djordje Senicic <x0157990@ti.com>
classification: Modify readme.md for correct executable name
Signed-off-by: Djordje Senicic <x0157990@ti.com>
Signed-off-by: Djordje Senicic <x0157990@ti.com>
examples: classification example with command line defined labels and class filtering
Signed-off-by: Djordje Senicic <x0157990@ti.com>
Signed-off-by: Djordje Senicic <x0157990@ti.com>
Clarify imagenet example output
- Clarify that softmax layer output are not normalized to be
real probabilities.
- MCT-1010
- Clarify that softmax layer output are not normalized to be
real probabilities.
- MCT-1010
Emit a warning when running on 2 EVEs instead of 4
* By default, the OpenCL runtime is configured with sufficient memory to
offload TIDL networks to 2 devices. On devices with 4 EVEs (e.g.
AM5729), the amount of memory available to the runtime must be
increased. Refer the User's Guide, section "Insufficient OpenCL global
memory" for details
* Documentation
- Add a section on the "test" example
- Include a note on the need to increase the default OpenCL global
memory for 4 devices.
(MCT-1008)
* By default, the OpenCL runtime is configured with sufficient memory to
offload TIDL networks to 2 devices. On devices with 4 EVEs (e.g.
AM5729), the amount of memory available to the runtime must be
increased. Refer the User's Guide, section "Insufficient OpenCL global
memory" for details
* Documentation
- Add a section on the "test" example
- Include a note on the need to increase the default OpenCL global
memory for 4 devices.
(MCT-1008)
Documentation and top-level makefile updates
(MCT-1008)
(MCT-1008)
TIDL-API docu update: time, probability
- Elaborate device and host processing time in examples
- Clarify reported probability in imagenet example
- MCT-1008
- Elaborate device and host processing time in examples
- Clarify reported probability in imagenet example
- MCT-1008
Renamed compute engine to EVE
(MCT-1005)
(MCT-1005)
Update examples Makefile to use /usr/share/ti/tidl
Update Makefile(s) in the examples directory to use tidl-api headers and
libraries from /usr/share/ti/tidl/tidl_api.
(MCT-1005)
Update Makefile(s) in the examples directory to use tidl-api headers and
libraries from /usr/share/ti/tidl/tidl_api.
(MCT-1005)
tidl-viewer: fixes for yocto nativesdk build failures
1. Allow CXX to be overridden - this is required during a yocto
nativesdk build because the -isystem option is suffixed to CXX
2. Switch tidl-viewer to a 64bit x86/Linux binary. Building a 32bit
binary within a 64bit Yocto devkit is complicated.
(MCT-1001)
1. Allow CXX to be overridden - this is required during a yocto
nativesdk build because the -isystem option is suffixed to CXX
2. Switch tidl-viewer to a 64bit x86/Linux binary. Building a 32bit
binary within a 64bit Yocto devkit is complicated.
(MCT-1001)
tidl-viewer: fixes for yocto nativesdk build failures
1. Allow CXX to be overridden - this is required during a yocto
nativesdk build because the -isystem option is suffixed to CXX
2. Switch tidl-viewer to a 64bit x86/Linux binary. Building a 32bit
binary within a 64bit Yocto devkit is complicated.
(MCT-1001)
1. Allow CXX to be overridden - this is required during a yocto
nativesdk build because the -isystem option is suffixed to CXX
2. Switch tidl-viewer to a 64bit x86/Linux binary. Building a 32bit
binary within a 64bit Yocto devkit is complicated.
(MCT-1001)
Updated version to 1.1.0
Merge tag 'v01.00.00' into develop
Merge branch 'release/v01.00.00'
Updated manifest file from SRAS00005051
(MCT-961)
(MCT-961)
Documentation - additions and cleanup
(MCT-990)
(MCT-990)
Add documentation for examples
- MCT-982
- MCT-982
license headers: updated year, added where missing
(MCT-961)
(MCT-961)
Added version to tidl_viewer, build cleanup
(MCT-984)
(MCT-984)
Added manifest from SRAS00005051
(MCT-961)
(MCT-961)
Fixes for Klocwork issues
(MCT-987)
(MCT-987)
Viewer - add layer indices to graph output
(MCT-985)
(MCT-985)
Makefile changes to fix linking errors
- MCT-984
- MCT-984
Rename to TIDL
* Replace references to TINN in the sources and directory structure with
TIDL or TIDL API
* Moved the TIDL network viewer (tidl_viewer) from utils to viewer
(MCT-983)
* Replace references to TINN in the sources and directory structure with
TIDL or TIDL API
* Moved the TIDL network viewer (tidl_viewer) from utils to viewer
(MCT-983)
Documentation - renaming and additional content
(MCT-981)
(MCT-981)
Reduce complexity of ssd_multibox example
- Only support partitioned mode, remove single device mode
- Remove enableInternalInput mode due to no observable performance gain
- Make layersGroupId assignment part of Executor's construction
- MCT-974
- Only support partitioned mode, remove single device mode
- Remove enableInternalInput mode due to no observable performance gain
- Make layersGroupId assignment part of Executor's construction
- MCT-974
Partitioned execution of TI DL network
- Enable pipelined and partitioned execution of TIDL network
by setting the same ArgInfo:
- as the output of ExecutionObject for first layersGroup
- as the input of ExecutionObject for second layersGroup
See ssd_multibox for example.
- Enable internal input mode that intermediate results between
different layersGroup no longer need to be saved in user
application.
- Fixes for correct partitioned execution of TIDL network,
e.g. dataQ needs to be passed between layersGroups
- MCT-969, MCT-974
- Enable pipelined and partitioned execution of TIDL network
by setting the same ArgInfo:
- as the output of ExecutionObject for first layersGroup
- as the input of ExecutionObject for second layersGroup
See ssd_multibox for example.
- Enable internal input mode that intermediate results between
different layersGroup no longer need to be saved in user
application.
- Fixes for correct partitioned execution of TIDL network,
e.g. dataQ needs to be passed between layersGroups
- MCT-969, MCT-974
Compute input/output size based on network
- MCT-974
- MCT-974
Annotate graph with additional properties
* Additional layer specific annotations to nodes
* Generate SVG file if /usr/bin/dot is available
* Refactoring and cleanup
(MCT-975)
* Additional layer specific annotations to nodes
* Generate SVG file if /usr/bin/dot is available
* Refactoring and cleanup
(MCT-975)
Utility to dump TIDL networks to dot graphs
(MCT-973)
(MCT-973)
Fixed color array initialization problem
- Fixed label/color mappings for ssd
- MCT-974
- Fixed label/color mappings for ssd
- MCT-974
Add test images under CC0 license
- https://www.pexels.com/photo-license/
- MCT-974
- https://www.pexels.com/photo-license/
- MCT-974
Add ssd_multibox example to tinn (Part 1)
- Uses Single Shot Multibox Detector network in the example
- Implementation in part 1 runs a full network on a single device
- Add a separate object_class_table for labels and colors
- MCT-974
- Uses Single Shot Multibox Detector network in the example
- Implementation in part 1 runs a full network on a single device
- Add a separate object_class_table for labels and colors
- MCT-974
Use malloc for user application buffer allocation
- MCT-972 (follow-up cleanup)
- MCT-972 (follow-up cleanup)
Add segmentation example to tinn
- Also fixed relative path in config files
- MCT-972
- Also fixed relative path in config files
- MCT-972
Add imagenet example to tinn
- MCT-963
- MCT-963
Renamed namespace (tidl -> tinn), updated documentation
(MCT-964)
(MCT-964)
Add version information to Makefile, API
* Added version information in tinn_api/Makefile
* Added Executor::GetAPIVersion()
(MCT-962)
* Added version information in tinn_api/Makefile
* Added Executor::GetAPIVersion()
(MCT-962)
Initial commit
(MCT-958)
(MCT-958)