aboutsummaryrefslogtreecommitdiffstats
blob: da4370f03238d21ea99f075eb8646d597cf5e235 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
#########
Changelog
#########

1.5.1 [Processor Linux SDK 6.3]
===============================
**Changed**

#. Cleaned up subgraph cfg file entries.  Added TIDL_SUBGRAPH_DIR and
   TIDL_SUBGRAPH_NUM_EVES env var.

1.4.0 [Processor Linux SDK 6.2]
===============================
**Added**

#. Subgraph execution support.

1.3.3 [Processor Linux SDK 6.1]
===============================
**Added**

#. Added imagenet python example.

#. Added MobileNet v2 support.

#. Added environment variables to control pre-allocated network memory sizes.
   TIDL_{PARAM,NETWORK}_HEAP_SIZE_{DSP,EVE}

**Changed**

#. Trace data now also include dataQ/minValue/maxValue info.

#. ssd_multibox example now can also run the whole netework on a single core.

#. Shipped network binaries are in new file format, of size 484384 bytes.

1.3.0 [Processor Linux SDK 5.3]
===============================
**Added**

#. Added DSP support for MNIST example.

**Changed**

#. 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.

#. Improved performance of concat layer on C66x DSP.

1.2.2 [Processor Linux SDK 5.2]
===============================
**Added**

#. Updated API implementation to minimize TIDL API/OpenCL dispatch overhead using multiple execution contexts in the :term:`ExecutionObject`.
   Refer to :ref:`mnist-example` example for details.

#. Execution Graph generation

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

    .. code:: cpp

        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 :ref:`execution-graph` for details.

#. 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``.

   .. code:: bash

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

**Removed**

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

#. Execution::GetExecutionObjects().

   Use Execution::operator[] and Execution::GetNumExecutionObjects() instead.
   See :ref:`examples` for usage.

#. 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 :ref:`execution-graph` for details.

1.1.0 [Processor Linux SDK 5.1]
===============================
**Added**

#. :term:`ExecutionObjectPipeline` class to hide complexity of executing network across C66x/EVE
#. API methods for tracing outputs from intermediate network layers - see :ref:`network_layer_output`.
#. Support for updating layer group id assignment before execution - see :ref:`layer-group-override`.
#. Provide feedback to the user on parameter and network heap size requirements - see :ref:`sizing_device_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)**

 * `AM574x IDK EVM`_
 * `AM572x EVM`_
 * `AM571x IDK EVM`_


.. _AM572x EVM:  http://www.ti.com/tool/tmdsevm572x
.. _AM571x IDK EVM:  http://www.ti.com/tool/tmdxidk5718
.. _AM574x IDK EVM:  http://www.ti.com/tool/tmdsidk574
.. _AM571x:     http://www.ti.com/processors/sitara/arm-cortex-a15/am57x/products.html#p2098=1%20C66x&p809=2;2
.. _AM5728:     http://www.ti.com/product/AM5728
.. _AM5748:     http://www.ti.com/product/am5748
.. _AM5749:     http://www.ti.com/product/am5749
.. _AM574x:     http://www.ti.com/processors/sitara/arm-cortex-a15/am57x/products.html#p2098=2%20C66x&p815=ECC