DLC Conversion to Deploy DeepLearning Models in Qualcomm Hardware.

Gandham Vignesh Babu
2 min readJun 5, 2021

--

SNPE: SnapDragon Nueral Processing Engine.

SNPE converts the DL framework specific model formats (*.protobuf, *.pb, *.onnx, etc) to a SNPE specific proprietary format called DLC (Deep Learning Container).
The layers that are supported by SNPE are https://developer.qualcomm.com/docs/snpe/network_layers.html
Limitations of SNPE : https://developer.qualcomm.com/docs/snpe/limitations.html

This webpage consists of the conversion from the tensorflow model to the deep learning contiainer file. Once the DLC conversion is done SNPE-NET-RUN will be performed over the converted DLC file.

What Snpe-Net-Run does is it loads a DLC file loads the data for the input tensor(s), and executes the network on the specified runtime.

Notes:

  1. If you have trained a nueral network but the qualcomm SNPE does not support these operations then we can change that particular layer and retrain the model and use it.
  2. For example RELU activation function is not supported then we replace it with the sigmoid as the activation function.
  3. Sometimes there will be constraint that the matmul operation takes the input only int he 1-Dimensional format. These things can modified accordingly to run the model on the target hardware.
  4. For example, NMS operation is not supported in SNPE we will convert the DLC till the NMS part and the C++ code for the NMS operation will be written manually and integrated.

Once the DLC is converted then it can be dployed on to the target hardware.

--

--

No responses yet