# qtimlsnpe

Source: [https://docs.qualcomm.com/doc/80-70022-50/topic/qtimlsnpe.html](https://docs.qualcomm.com/doc/80-70022-50/topic/qtimlsnpe.html)

The qtimlsnpe plugin shows the Qualcomm^®^ Neural Processing SDK
        capabilities (load and run the models).

It accepts a tensor prepared by preprocessing elements such as qtimlvconverter and
            produces an output tensor that's parsed by postprocessing plugins such as
            qtimlvclassification, qtimlvdetection, qtimlvsegmentation, and qtimlvpose.

This plugin does the following:

- Accepts a tensor prepared by the preprocessing elements such as
                qtimlvconverter.
- Produces the output tensor that's parsed by the postprocessing plugins such as
                qtimlvclassification, qtimlvdetection, qtimlvsegmentation, and qtimlvpose.
- Uses the Qualcomm Neural Processing SDK library.
- Uses the ION/DMA buffers assigned by the GstMLBufferPool custom buffer pool class
                through IOCTL commands to the kernel.

The model and delegate usage is as follows:

- To use a model, provide the absolute path of the model through the model
                    property.
    For some models, you may have to set the extra layers
                    property.

    After it's loaded, the model file provides the input and output
                    capabilities:

    - Number of tensors
    - Dimensions
    - Type
- If a delegate isn't specified, the plugin executes the model operations on the
                CPU.
- To select a different delegate, set the delegate property accordingly. For more
                information, see the [Table : Element properties of qtimlsnpe](https://docs.qualcomm.com/doc/80-70022-50/topic/qtimlsnpe.html#qtimlsnpe__table_ids_q34_myb).

Figure : Tensor mode qtimlsnpe architecture
            
            <!--?xml version="1.0" encoding="UTF-8"?-->
<svg xmlns="http://www.w3.org/2000/svg" width="1113.368011474609375" height="595.999999999999091" viewbox="0 0 1113.368011474609375 595.999999999999091">
  <g id="Layer_1" data-name="Layer 1">
    <g>
      <rect x=".499847412109375" y=".500122070311591" width="1112.36767578125" height="595" rx="7.5" ry="7.5" style="fill: #fafafa;"></rect>
      <path d="M1105.368011474609375,1c3.85986328125,0,7,3.14013671875,7,7v579.999999999999091c0,3.85986328125-3.14013671875,7-7,7H8.000137329101562c-3.85986328125,0-7.000137329101562-3.14013671875-7.000137329101562-7V8c0-3.85986328125,3.140274047851562-7,7.000137329101562-7h1097.367874145507812M1105.368011474609375,0H8.000137329101562C3.58184814453125,0,0,3.581710815428778,0,8v579.999999999999091c0,4.41827392578125,3.58184814453125,8,8.000137329101562,8h1097.367874145507812c4.41827392578125,0,8-3.58172607421875,8-8V8c0-4.418289184571222-3.58172607421875-8-8-8h0Z" style="fill: #d2d7e1;"></path>
    </g>
    <text transform="translate(526.289398193359375 28.268850199877306)" style="font-family: Roboto-Bold, Roboto; font-size: 16px; font-weight: 700;"><tspan x="0" y="0">GST BIN</tspan></text>
    <g>
      <rect x="376.094312131785045" y="46.465786682249927" width="361.179417728646513" height="214.270053161500073" rx="4" ry="4" style="fill: #007884;"></rect>
      <text transform="translate(520.203765869140625 67.137969970702216)" style="fill: #fff; font-family: Roboto-Medium, Roboto; font-size: 16px; font-weight: 500;"><tspan x="0" y="0">GstBuffer </tspan></text>
      <text transform="translate(389.179351806640625 97.154388427733466)" style="fill: #fff; font-size: 16px;"><tspan x="0" y="0" style="font-family: Roboto-Medium, Roboto; font-weight: 500;">+ GstMemory:</tspan><tspan x="100.609375" y="0" xml:space="preserve" style="font-family: Roboto-Regular, Roboto;"> Contains a single tensor</tspan><tspan style="font-family: Roboto-Regular, Roboto;"><tspan x="10.171875" y="19.2001953125" xml:space="preserve">                       Example: 1x513x513x3</tspan></tspan></text>
      <text transform="translate(389.179351806640625 139.798736572264716)" style="fill: #fff; font-size: 16px;"><tspan x="0" y="0" style="font-family: Roboto-Medium, Roboto; font-weight: 500;">+ GstMemory:</tspan><tspan x="100.609375" y="0" xml:space="preserve" style="font-family: Roboto-Regular, Roboto;"> Next tensor and so on...</tspan></text>
      <text transform="translate(389.109054565429688 200.308624267577216)" style="fill: #fff; font-size: 16px;"><tspan x="0" y="0" style="font-family: Roboto-Medium, Roboto; font-weight: 500;">+ GstVideoMeta:</tspan><tspan x="119.125" y="0" xml:space="preserve" style="font-family: Roboto-Regular, Roboto;"> Describes the raw data </tspan><tspan style="font-family: Roboto-Regular, Roboto;"><tspan x="0" y="19.2001953125" xml:space="preserve" style="letter-spacing: 2.00244140625em;">		</tspan><tspan x="72" y="19.2001953125" xml:space="preserve">             of a single tensor</tspan></tspan></text>
      <text transform="translate(389.109054565429688 242.382110595702216)" style="fill: #fff; font-size: 16px;"><tspan x="0" y="0" style="font-family: Roboto-Medium, Roboto; font-weight: 500;">+ GstVideoMeta:</tspan><tspan x="119.125" y="0" xml:space="preserve" style="font-family: Roboto-Regular, Roboto;"> Meta for the next tensor entry</tspan></text>
      <text transform="translate(389.109046936035156 164.894958496092841)" style="fill: #fff; font-family: Roboto-Medium, Roboto; font-size: 16px; font-weight: 500;"><tspan x="0" y="0">+ ...</tspan></text>
      <line x1="376.094312131785045" y1="76.470329738575856" x2="737.273729860431558" y2="76.470329738575856" style="fill: none; stroke: #b3b7bf; stroke-miterlimit: 10;"></line>
      <line x1="376.094312131785045" y1="174.879020160993605" x2="737.273729860431558" y2="174.879020160993605" style="fill: none; stroke: #b3b7bf; stroke-miterlimit: 10;"></line>
    </g>
    <line x1="556.684020996108302" y1="276.836907714900917" x2="556.684020996108302" y2="260.73583984375" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
    <g>
      <g>
        <text transform="translate(913.52392578125 572.091476440428778)" style="font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">Qualcomm </tspan></text>
        <rect x="893.272894639132574" y="559.999999999999091" width="16" height="16" rx="2" ry="2" style="fill: #2a2aea;"></rect>
      </g>
      <g>
        <text transform="translate(1012.105712890625 572.091476440428778)" style="font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">Open source</tspan></text>
        <rect x="991.854676051991191" y="559.999999999999091" width="16" height="16" rx="2" ry="2" style="fill: #007884;"></rect>
      </g>
    </g>
  </g>
  <g id="Layer_2" data-name="Layer 2">
    <g>
      <rect x="20.000071230711924" y="292.37460986574024" width="190" height="50" rx="3.999999999999992" ry="3.999999999999992" style="fill: #007884;"></rect>
      <text transform="translate(35.992095947265625 322.050750732420966)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 16px;"><tspan x="0" y="0">ML pre-process plugin</tspan></text>
    </g>
    <g>
      <line x1="211.500095367431641" y1="317.374603271483466" x2="459.785369873047784" y2="317.374603271483466" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
      <polygon points="458.618179321289062 321.363677978514716 465.526351928710938 317.374603271483466 458.618179321289062 313.385559082030341 458.618179321289062 321.363677978514716"></polygon>
    </g>
    <g>
      <line x1="649.68402099609375" y1="317.374603271483466" x2="905.126983642578125" y2="317.374603271483466" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
      <polygon points="903.959747314453125 321.363677978514716 910.867950439453125 317.374603271483466 903.959747314453125 313.385559082030341 903.959747314453125 321.363677978514716"></polygon>
    </g>
    <g>
      <rect x="466.684020996108302" y="292.37460986574024" width="180" height="50" rx="4" ry="4" style="fill: #2a2aea;"></rect>
      <text transform="translate(521.363800048828125 322.050323486327216)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 16px;"><tspan x="0" y="0">qtimlsnpe</tspan></text>
    </g>
    <text transform="translate(265.388870239257812 337.974975585936591)" style="font-family: Roboto-Regular, Roboto; font-size: 16px;"><tspan x="0" y="0">neural-network/tensors</tspan></text>
    <text transform="translate(712.073089599609375 337.974975585936591)" style="font-family: Roboto-Regular, Roboto; font-size: 16px;"><tspan x="0" y="0">neural-network/tensors</tspan></text>
    <g>
      <rect x="209.014176859149302" y="388.470223636380069" width="695.339688273918" height="151.186655053183131" rx="4" ry="4" style="fill: #d2d7e1;"></rect>
      <text transform="translate(221.484630584716797 411.139099121092841)" style="font-size: 16px;"><tspan x="0" y="0" style="font-family: Roboto-Medium, Roboto; font-weight: 500;">neural-network/tensors</tspan><tspan x="168.1796875" y="0" xml:space="preserve" style="font-family: Roboto-Regular, Roboto;"> have the following common rules: </tspan><tspan x="0" y="19.2001953125" style="font-family: Roboto-Medium, Roboto; font-weight: 500;">dimensions: (</tspan><tspan x="96.7734375" y="19.2001953125" style="font-family: Roboto-Regular, Roboto;">GstArray) - format is tensor dimension values separated by ',' and marked with </tspan><tspan style="font-family: Roboto-Regular, Roboto;"><tspan x="0" y="38.39990234375">delimiters ‘&lt;’ for beginning and ‘&gt;’ for end. </tspan></tspan><tspan style="font-family: Roboto-Regular, Roboto;"><tspan x="0" y="57.60009765625" xml:space="preserve"># Example-&gt;  &lt; &lt;5, 300, 300, 1&gt;, &lt;1, 1, 1000, 1&gt; &gt;</tspan></tspan><tspan style="font-family: Roboto-Regular, Roboto;"><tspan x="0" y="76.7998046875">#</tspan></tspan><tspan style="font-family: Roboto-Regular, Roboto;"><tspan x="0" y="96">#</tspan></tspan><tspan x="0" y="115.2001953125" style="font-family: Roboto-Medium, Roboto; font-weight: 500;">type: </tspan><tspan x="38.921875" y="115.2001953125" style="font-family: Roboto-Regular, Roboto;">(string) {UINT8, INT8, UINT16, INT16, UINT32, INT32, UINT64, INT64, FLOAT32, FLOAT64} </tspan></text>
      <g>
        <line x1="369.012443542480469" y1="471.987182617186591" x2="369.012443542480469" y2="489.740722656249091" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="365.02337646484375 488.573486328124091 369.012443542480469 495.481689453124091 373.001510620117188 488.573486328124091 365.02337646484375 488.573486328124091"></polygon>
      </g>
      <g>
        <line x1="491.51025390625" y1="471.987182617186591" x2="491.51025390625" y2="489.740722656249091" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="487.521194458007812 488.573486328124091 491.51025390625 495.481689453124091 495.49932861328125 488.573486328124091 487.521194458007812 488.573486328124091"></polygon>
      </g>
      <text transform="translate(324.687469482421875 507.138793945311591)" style="font-family: Roboto-Regular, Roboto; font-size: 16px;"><tspan x="0" y="0">First tensor</tspan></text>
      <text transform="translate(435.818572998046875 507.298400878905341)" style="font-family: Roboto-Regular, Roboto; font-size: 16px;"><tspan x="0" y="0">Second tensor</tspan></text>
    </g>
    <g>
      <polyline points="795.025970458984375 309.839324951170966 795.025970458984375 276.8369140625 318.046234130859375 276.8369140625 318.046234130859375 309.839324951170966" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></polyline>
      <polygon points="799.015045166015625 308.672149658202216 795.025970458984375 315.580322265624091 791.036956787109375 308.672149658202216 799.015045166015625 308.672149658202216"></polygon>
      <polygon points="314.057170867919922 308.672149658202216 318.046234130859375 315.580322265624091 322.035297393798828 308.672149658202216 314.057170867919922 308.672149658202216"></polygon>
    </g>
    <line x1="556.684020996108302" y1="370.369155765228243" x2="556.684020996108302" y2="388.470223636380069" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
    <g>
      <polyline points="795.025970458984375 349.366729736327216 795.025970458984375 370.369140624999091 318.046234130859375 370.369140624999091 318.046234130859375 349.366729736327216" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></polyline>
      <polygon points="791.036956787109375 350.533935546874091 795.025970458984375 343.625762939452216 799.015045166015625 350.533935546874091 791.036956787109375 350.533935546874091"></polygon>
      <polygon points="322.035297393798828 350.533935546874091 318.046234130859375 343.625762939452216 314.057170867919922 350.533935546874091 322.035297393798828 350.533935546874091"></polygon>
    </g>
    <rect x="939.464726240405071" y="333.519593363186686" width="127.806489042197427" height="29.362132395812296" rx="4" ry="4" style="fill: #007884;"></rect>
    <g>
      <rect x="913.367970761504694" y="292.37460986574024" width="180" height="77.994545899488003" rx="4" ry="4" style="fill: none; stroke: #4d4d4d; stroke-miterlimit: 10;"></rect>
      <text transform="translate(934.922760009765625 322.050323486327216)" style="font-family: Roboto-Regular, Roboto; font-size: 16px;"><tspan x="0" y="0">Postprocess plugin</tspan></text>
      <text transform="translate(961.066741943359375 353.876312255858466)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 16px;"><tspan x="0" y="0">Sub module</tspan></text>
    </g>
  </g>
</svg>

## Inheritance chain

[GObject](https://docs.gtk.org/gobject/) → [GstObject](https://gstreamer.freedesktop.org/documentation/gstreamer/gstobject.html?gi-language=c) → [GstElement](https://gstreamer.freedesktop.org/documentation/gstreamer/gstelement.html?gi-language=c) → [GstBaseTransform](https://gstreamer.freedesktop.org/documentation/base/gstbasetransform.html?gi-language=c) → GstMLSnpe

The following tables provide information on pad templates and element properties of
                qtimlsnpe. For use cases, see [Qualcomm Neural Processing SDK use cases](https://docs.qualcomm.com/doc/80-70022-50/topic/qualcomm-neural-processing-sdk-use-cases.html).

## Pad configuration

| Pad Name | Capabilities | Capabilities | Capabilities |
| --- | --- | --- | --- |
| SINK template: 'sink'<br><ul class="ul" id="qtimlsnpe__ul_phv_ymv_q1c"><br>                                    <li class="li"><em class="ph i">Availability:</em> Always</li><br><br>                                    <li class="li"><em class="ph i">Direction:</em> sink</li><br><br>                                </ul> | neural-network/tensors | type: | { (string)UINT8, (string)INT32, (string)FLOAT32 } |
| SRC template: 'src'<br><ul class="ul" id="qtimlsnpe__ul_xdg_zmv_q1c"><br>                                    <li class="li"><em class="ph i">Availability:</em> Always</li><br><br>                                    <li class="li"><em class="ph i">Direction:</em> source</li><br><br>                                </ul> | neural-network/tensors | type: | { (string)UINT8, (string)INT32, (string)FLOAT32 } |

## Element configuration

Table : Element properties of qtimlsnpe

| Property | Description |
| --- | --- |
| name | The name of the object.<ul class="ul" id="qtimlsnpe__ul_jds_q34_myb"><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li">String. Default: "mlsnpe0"</li><br><br>                                </ul> |
| parent | The parent of the object.<ul class="ul" id="qtimlsnpe__ul_kds_q34_myb"><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li">Object of type "GstObject"</li><br><br>                                </ul> |
| model | Model filename.<ul class="ul" id="qtimlsnpe__ul_lds_q34_myb"><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li">String. Default: null</li><br><br>                                </ul> |
| delegate | Delegate the graph execution to another executor.<ul class="ul" id="qtimlsnpe__ul_mds_q34_myb"><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li">Enum "GstMLSnpeDelegate" Default: 0, "none"<ul class="ul" id="qtimlsnpe__ul_iyb_2j4_myb"><br>                                            <li class="li"> (0): none - No delegate, CPU is used for all<br>                                                operations</li><br><br>                                            <li class="li"> (1): dsp - Run the processing on the Hexagon<br>                                                DSP</li><br><br>                                            <li class="li"> (2): gpu - Run the processing on the Adreno<br>                                                GPU</li><br><br>                                            <li class="li"> (3): aip - Run the processing on Snapdragon AIX +<br>                                                HVX</li><br><br>                                        </ul><br></li><br><br>                                </ul> |
| layers | List of output layers. Should be set if the model has more than<br>                                one output.<ul class="ul" id="qtimlsnpe__ul_nds_q34_myb"><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li">GstValueArray of GValues of type "gchararray"</li><br><br>                                </ul> |

**Parent Topic:** [Configure ML plugins](https://docs.qualcomm.com/doc/80-70022-50/topic/inferencing-plugins.html)

Last Published: Feb 20, 2026

[Previous Topic
qtibatch](https://docs.qualcomm.com/bundle/publicresource/80-70022-50/topics/qtibatch.md) [Next Topic
qtimltflite](https://docs.qualcomm.com/bundle/publicresource/80-70022-50/topics/qtimltflite.md)