以Tensorflow Lite为例的说明

这里我们以TensorFlow Lite为例来说明如何用BMLang支持TFLite的框架算子和模型推理。

源码在SophonSDK的bmnet/bmtflite中。

TFLite算子的BMLang实现

这部分源码在bmnet/bmtflite/src/kernels中。

这里每个算子代码中的prepare是构建TFLite网络时的算子参数设置。

Eval则是推理实现,包括了FLOAT32的和INT8的。

TFLite模型转BModel

  1. examples中的executor.h/executor.cc是构建TFLite网络,初始化BMLang,遍历TFLite网络所有算子,启动BMLang编译的代码。

  2. BMLang的初始化在bmlang_util.cc的BmlangUtil::BmlangUtil中。这里设置BMLang的执行模式、量化计算模式等。

  3. 模式设置后,executor.cc启动ivoke从而遍历kernels内的算子Eval。

  4. 最后启动bmlang_util.cc中的Compile。