This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TDA4VM:如何获得有关 TVM/NEO-AI-DLR + TIDL 异构执行?的性能(FPS)

Guru**** 2540720 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1008563/tda4vm-how-to-get-the-performance-fps-about-the-tvm-neo-ai-dlr-tidl-heterogeneous-execution

器件型号:TDA4VM

当我通过 TVM 编译模型并获取工件_**_target 时、包括 deploy_lib.so 和 subgraph0_net。

并在'test_tidl_j7_deploy.py'上添加以下代码。

并在 EVM 上运行、时间成本低于。

但是、该模型在 C71/MMA 上运行(不支持层运算除外)、其成本约 为~10ms。

因此、我怀疑它是准确的。

我想知道如何测试整个过程时间成本? 如何获得 ARM 内核的部分时间,并通过 TVM 进行优化?

感谢您的任何建议。


根目录@J7-EVM:/opt/tvm/tests/python/relay/ti_tests
root@j7-evm:/opt/tvm/tests/python/relay/ti_tests python3 test_tidl_j7_deploy.py
输入图像文件:./test.jpg
2020-11-19 18:13:14、606信息在模型工件中找不到 libdlr.so。 使用/usr/lib/python3.8/site-packages/dlr/libdlr.so 上的 DLR
2020-11-19 18:13:14、606信息在模型工件中找不到 libdlr.so。 使用/usr/lib/python3.8/site-packages/dlr/libdlr.so 上的 DLR
[18:13:14]./src/dlr_tvm.cc:66:未找到元数据
应用程序:初始化... !!!
MEM:初始化... !!!
MEM:已初始化的 DMA 堆(FD=6)!!!
MEM:初始化... 完成了!!!
IPC:初始化... !!!
IPC:初始化... 完成了!!!
远程服务:初始化... !!!
远程服务:初始化... 完成了!!!
应用程序:初始化... 完成了!!!
  248.3436 s: vx_zone_init:已启用
  248.3460 s: vx_zone_error:Enabled
  248.3465 s: vx_zone_warning:Enabled
  248.346302 s: vx_zone_init:[TIvxInit:71]初始化完成!!!
  248.348719 s: vx_zone_init:[TIvxHostInit:48]主机初始化已完成!!!
[18:13:15]./src/dlr.cc:162:找不到元数据文件!
时间:0.5211689472198486秒
ONNX_LaneDet DLR 运行时执行完成
ONNX_LaneDet 执行完成
[[[0 0 0 0... 0 0 0]
  [0 0 0 0 ... 0 0 0]
  [0 0 0 0 ... 0 0 0]
  (笑声)
  [0 0 0 0 ... 0 0 0]
  [0 0 0 0 ... 0 0 0]
  [0 0 0 0 ... 0 0 0]]]
根目录@J7-EVM:/opt/tvm/tests/python/relay/ti_tests

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我在 EVM 上测试"subgraph0_net"。 时间成本仅为~5ms。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    类似这样的模型。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    第一个推理调用将执行库加载和参数初始化。 因此、他们需要更多的时间来完成剩余的呼叫。

    因此、运行~100帧的推理并求平均值以 获得性能。

    我们还为 DLR 模型对象 "get_TI_benchmark_data"添加了 API、以获得子图级别性能和总 DDR BW。

    请参阅"ti_dl/test/tflrT/tflrT_Delegation.py"中的用法示例。相同的 API 可用于 TFlite/ONNXRT/DLR 运行时间