Changelog

1.4.0 [Processor Linux SDK 6.2]

Added

  1. Subgraph execution support.

1.3.3 [Processor Linux SDK 6.1]

Added

  1. Added imagenet python example.
  2. Added MobileNet v2 support.
  3. Added environment variables to control pre-allocated network memory sizes. TIDL_{PARAM,NETWORK}_HEAP_SIZE_{DSP,EVE}

Changed

  1. Trace data now also include dataQ/minValue/maxValue info.
  2. ssd_multibox example now can also run the whole netework on a single core.
  3. Shipped network binaries are in new file format, of size 484384 bytes.

1.3.0 [Processor Linux SDK 5.3]

Added

  1. Added DSP support for MNIST example.

Changed

  1. PSDK 5.3 and TIDL-API 1.3 use a slightly modified TIDL network binary format to support ONNX network import. TIDL-API 1.3, as well as tidl-viewer utility, can read both network formats before and after the change. Network binary in TIDL-API 1.2 and earlier is of size 483364 bytes, network binary in TIDL-API 1.3 is of size 484384 bytes.
  2. Improved performance of concat layer on C66x DSP.

1.2.2 [Processor Linux SDK 5.2]

Added

  1. Updated API implementation to minimize TIDL API/OpenCL dispatch overhead using multiple execution contexts in the ExecutionObject. Refer to MNIST example for details.

  2. Execution Graph generation

    Enable a two phase approach to generating execution graphs. Use the following API function to enable timestamp generation:

    bool EnableTimeStamps(const std::string& file = "timestamp.log", size_t num_frames=32);
    

    The generated log file can be viewed by using the execution_graph.py script. Refer to Execution Graph viewer for details.

  3. Added Python 3 bindings for TIDL API. See the examples/pybind directory for examples of using the Python bindings. Set PYTHONPATH to the location of tidl.so.

    root@am57xx-evm:~# export PYTHONPATH=/home/root/tidl-api/tidl_api
    root@am57xx-evm:~# python3
    >>> import tidl
    >>> help (tidl)
    

Removed

  1. Configuration::enableInternalInput. Not used by the API.

  2. Execution::GetExecutionObjects().

    Use Execution::operator[] and Execution::GetNumExecutionObjects() instead. See Examples for usage.

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

    • GetProcessTimeInMilliSeconds()
    • GetHostProcessTimeInMilliSeconds()

    These methods were replaced by a timestamp based approach because they were no longer accurate with multiple ExecutionObject contexts and pipelining. Refer to Execution Graph viewer for details.

1.1.0 [Processor Linux SDK 5.1]

Added

  1. ExecutionObjectPipeline class to hide complexity of executing network across C66x/EVE
  2. API methods for tracing outputs from intermediate network layers - see Accessing outputs of network layers.
  3. Support for updating layer group id assignment before execution - see Overriding layer group assignment.
  4. Provide feedback to the user on parameter and network heap size requirements - see Sizing device side heaps.

1.0.0 [Processor Linux SDK 5.0]

First release of the TI Deep Learning API. TIDL API brings deep learning to the edge by enabling applications to leverage TI’s proprietary, highly optimized CNN/DNN implementation on the EVE and C66x DSP compute engines. TIDL will initially target Vision/2D use cases.

Supported AM57x Sitara Processors

  • AM5749 (offload to EVEs and C66x DSPs)
  • AM571x (offload to C66x DSPs)
  • AM5728 (offload to C66x DSPs)
  • AM5748 (offload to C66x DSPs)

Supported Evaluation Modules (EVMs)