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.

[参考译文] SK-AM68:Yocto SDK 10.1版本的推理问题

Guru**** 2468610 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1469885/sk-am68-inference-problems-with-yocto-sdk-10-1-build

器件型号:SK-AM68

工具与软件:

如果我使用 SDK 10.1中的 Yocto (ti-processor-sdk-linux-edgeai-j721s2-evm-10_01_00_04-linux-x86-Install.bin)构建系统、最终会得到一个无法执行推理的系统。  我已经尝试了使用 SDK 版本本身附带的配置文件(configs/processor-sdk-analysis/processor-sdk-analysis-10_01-config.txt)和通过 repo https://git.ti.com/git/arago-project/oe-layersetup.git (configs/processor-sdk-analytics/processor-sdk-analysis-10.01.00-config.txt)获得的配置文件。 我希望这些内容是相同的、但实际上不同(引用的 meta-edgeai 提交在它们之间有所不同)。

使用任一配置进行编译会在从 GST 流水线中提取张量数据时导致错误:

root@am68a-sk:/opt/edgeai-gst-apps# cd apps_python/
root@am68a-sk:/opt/edgeai-gst-apps/apps_python# ./app_edgeai.py -n -v ../configs/image_classification.yaml

Number of subgraphs:1 , 34 nodes delegated out of 34 nodes

APP: Init ... !!!
22603.275840 s: MEM: Init ... !!!
22603.275908 s: MEM: Initialized DMA HEAP (fd=6) !!!
22603.276082 s: MEM: Init ... Done !!!
22603.276110 s: IPC: Init ... !!!
22603.312964 s: IPC: Init ... Done !!!
REMOTE_SERVICE: Init ... !!!
REMOTE_SERVICE: Init ... Done !!!
22603.319090 s: GTC Frequency = 200 MHz
APP: Init ... Done !!!
22603.321311 s: VX_ZONE_INIT:Enabled
22603.321544 s: VX_ZONE_ERROR:Enabled
22603.323104 s: VX_ZONE_WARNING:Enabled
22603.328488 s: VX_ZONE_INIT:[tivxPlatformCreateTargetId:124] Added target MPU-0
22603.328804 s: VX_ZONE_INIT:[tivxPlatformCreateTargetId:124] Added target MPU-1
22603.328938 s: VX_ZONE_INIT:[tivxPlatformCreateTargetId:124] Added target MPU-2
22603.329067 s: VX_ZONE_INIT:[tivxPlatformCreateTargetId:124] Added target MPU-3
22603.329085 s: VX_ZONE_INIT:[tivxInitLocal:136] Initialization Done !!!
22603.331131 s: VX_ZONE_INIT:[tivxHostInitLocal:106] Initialization Done for HOST !!!
==========[INPUT PIPELINE(S)]==========

[PIPE-0]

multifilesrc location=/opt/edgeai-test-data/images/%04d.jpg index=1 stop-index=-1 loop=True ! jpegdec ! videoscale qos=True ! capsfilter caps="video/x-raw, width=(int)1280, height=(int)720;" ! tiovxdlcolorconvert ! capsfilter caps="video/x-raw, format=(string)NV12;" ! tiovxmultiscaler name=split_01
split_01. ! queue ! capsfilter caps="video/x-raw, width=(int)1280, height=(int)720;" ! tiovxdlcolorconvert out-pool-size=4 ! capsfilter caps="video/x-raw, format=(string)RGB;" ! appsink max-buffers=2 drop=True name=sen_0
split_01. ! queue ! capsfilter caps="video/x-raw, width=(int)454, height=(int)256;" ! tiovxdlcolorconvert out-pool-size=4 ! capsfilter caps="video/x-raw, format=(string)RGB;" ! videobox qos=True left=115 right=115 top=16 bottom=16 ! tiovxdlpreproc out-pool-size=4 channel-order=1 data-type=3 ! capsfilter caps="application/x-tensor-tiovx;" ! appsink max-buffers=2 drop=True name=pre_0


==========[OUTPUT PIPELINE]==========

appsrc do-timestamp=True format=3 block=True name=post_0 ! tiovxdlcolorconvert ! capsfilter caps="video/x-raw, format=(string)NV12, width=(int)1280, height=(int)720;" ! queue ! mosaic_0.sink_0

tiovxmosaic target=1 background=/tmp/background_0 name=mosaic_0 src::pool-size=4
sink_0::startx="<320>" sink_0::starty="<150>" sink_0::widths="<1280>" sink_0::heights="<720>"
! capsfilter caps="video/x-raw, format=(string)NV12, width=(int)1920, height=(int)1080;" ! queue ! tiperfoverlay title=Image Classification ! kmssink sync=False max-lateness=5000000 qos=True processing-deadline=15000000 driver-name=tidss connector-id=40 plane-id=31 force-modesetting=True fd=44

[ERROR] Error pulling tensor from GST Pipeline

如果我下载预编译的10.01.00.04映像并使用它、那么推理操作会正常进行。

此外、如果我使用 Yocto 编译将预编译映像的`/usr/lib` dir 的内容复制到 SD 卡、那么推理工作!

在查看预构建图像的内容时、我看到多个 TI 特定库之间存在差异。  这里有一个示例: Yocto 构建字段为`/usr/lib/libtivision_apps.so.10.0.0`。  预构建映像具有 `/usr/lib/libtivision_apps.so.10.1.0`。  我希望版本是相同的、但却不同。  根据其 md5sums、还有其他与 edgeai 相关的库也不同。  我希望所有内容都相同、但事实并非如此。

有什么想法吗?  有人可以尝试使用 Yocto for am68-SK 从零开始构建、并确认最终得到可以执行推理的操作吗?

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

    我已经为 bitbake 编译设置了"常用"下载位置、以便加快编译过程。  我发现、如果我不使用它、构建"edgeai-gst-apps"会在 libtivision_apps.so.10.1.0中生成、而不是 libtivision_apps.so.10.0.0。  我检查了,看起来相关的下载是不同的,即使它们的命名相同:

    # my "common" download location:

    ~/downloads/repo_git.ti.com.git.processor-sdk.psdk_repo_manifests.git_vision_apps_yocto.xml_refs/tags$ cd
    tisdk@isgf-adv-eng-v1:~$ md5sum ~/downloads/repo_git.ti.com.git.processor-sdk.psdk_repo_manifests.git_vision_apps_yocto.xml_refs/tags/REL.PSDK.ANALYTICS.10.01.00.04.tar.gz
    8522647addd165134712600f74f3f603 /home/tisdk/downloads/repo_git.ti.com.git.processor-sdk.psdk_repo_manifests.git_vision_apps_yocto.xml_refs/tags/REL.PSDK.ANALYTICS.10.01.00.04.tar.gz

    # the default download location as part of the build/ path:

    tisdk@isgf-adv-eng-v1:~$ md5sum ~/yocto-build/build/downloads/repo_git.ti.com.git.processor-sdk.psdk_repo_manifests.git_vision_apps_yocto.xml_refs/tags/REL.PSDK.ANALYTICS.10.01.00.04.tar.gz
    b8a53367b4b0083fefdfe0af84c828bb /home/tisdk/yocto-build/build/downloads/repo_git.ti.com.git.processor-sdk.psdk_repo_manifests.git_vision_apps_yocto.xml_refs/tags/REL.PSDK.ANALYTICS.10.01.00.04.tar.gz

    相同的文件命名。  不同的 md5sum。  简单看一下每个的内容确实显示了.tar.gz 中包含的源代码的更新。

    这不是很好的副作用。

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

    我已经擦除了我的下载目录、正在进行全面的重新构建。  我将更新该主题中的结果。  持续关注。

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

    Tim、您好!

    这已经被分配给 Jared (Yocto 构建小组)、他正在监控它。   另外、看起来你是在首先尝试一些东西。  如果您需要我的直接帮助、请致电或发送电子邮件给我。

    此致、

    Chris

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

    Tim、您好!

    我的猜测是没有指定 需要哪个版本的 libtivision_apps、因此当 Yocto 看到已经构建了之前的版本时、它会跳过构建更新版本。

    清理目录并从头开始构建(就像您已经完成的那样)应该会修复它。

    此致!
    Jared

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

    从零开始删除我的下载目录并编译成功了。