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.

[参考译文] AM62A7:TIDL 9.2编译模块生成 TVM 错误

Guru**** 2380520 points
Other Parts Discussed in Thread: TI-CGT
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1501562/am62a7-tvm-errors-generated-by-tidl-9-2-compilation-module

器件型号:AM62A7
主题中讨论的其他器件:TI-CGT

工具/软件:

你(们)好

我在示例中使用 TIDL9.2编译模块
生成 TVM 找不到类型 tidl.TIDLContext.错误


如何修改 TVM 以进行编译?
找不到 tidl.TIDLContext?

我使用以下版本的 TVM

https://github.com/TexasInstruments/tvm/tree/tidl-j7

这是编译日志

e2e.ti.com/.../7433.build_5F00_rel_5F00_09_5F00_02_5F00_log_5F00_4.txt

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

    您好 Martin、

    我看到、生成此处错误的脚本是 edgeai-tidl-tools/examples/osrt_pythp/TVM_DLR/TVM_compile_onnx_example.py。 我们重点介绍直接运行此脚本、而不是使用 run_python_examples.sh 脚本

    看起来 TVM 无法将 TIDL 作为后端导入。 位于以下目录中的内容:

    ls $TIDL_TOOLS_PATH
    ls $TIDL_TOOLS_PATH/osrt_deps
    

    [报价 userid="407563" url="~/support/processors-group/processors/f/processors-forum/1501562/am62a7-tvm-errors-generated-by-tidl-9-2-compilation-module

    我使用以下版本的 TVM

    https://github.com/TexasInstruments/tvm/tree/tidl-j7

    [/报价]

    "你在干什么?"

    我无法复制您的错误/警告。 最有可能出现安装问题。  

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

    你好
    这是我的编译日志
    最后、添加您所说的命令

    e2e.ti.com/.../3201.build_5F00_rel_5F00_09_5F00_02_5F00_log_5F00_5.txt

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

    尊敬的 Martin:

    让我们退一步。

    我假设您的应用需要 TVM。 如果没有、请告诉我。

    TI SDK 提供了一个与 TIDL 兼容的编译 TVM、供目标器件运行推理。 在 edgeai-tidl-tools 中、还将为 x86 PC 设置所需的 TVM/DLR 组件、以通过 TVM 编译模型。 无需自己构建 TI 的 TVM 分支。  

    • 这里有一个 ti_build.sh 构建脚本、但我看到了一些可能需要注释掉的代理行。 这看起来是为 TI 内部使用而制造的

    我看到生成此处错误的脚本是 edgeai-tidl-tools/examples/osrt_python/TVM_DLR/TVM_compile_onnx_example.py。 让我们重点关注直接运行此脚本、而不是使用 run_python_examples.sh 脚本

    请以这种方式运行 TI 示例以简化打印输出。  

    重建 TVM 似乎是这里的问题。 我的建议:

    • 为 python 设置一个新的虚拟环境、并在 edgeai-tidl-tools 中重新运行 setup.sh 脚本。 让它提供您的 TVM 库,而不是重建自己
    • 如果您有自己重建 TVM 的特定原因、则可能在该存储库中尝试 ti_build.sh 脚本。

    BR。
    Reese

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

    尊敬的 Martin:

      如果您使用由 edgeai-tidl-tools setup.sh 安装的预编译 TVM 软件包。  这些开箱即用的 TVM 示例应该可行。

      我们不希望用户自行构建 TVM 软件包。  如果您真的想自己构建 TVM、欢迎您尝试:

    • 下载 Processor SDK RTOS j721e 和 Processor SDK RTOS j784s4
    • 将 PDK 从一个 SDK 修补到另一个 SDK: cp -nr   / /packages/ti   / /packages/ti
    • 下载并安装 ti-CGT C7000编译器(应由 edgeai-tidl-tools setup.sh 设置)
    • 光盘 ; 创建从 tidl_j7*到 c7x-mma-tidl 的软线
    • export PSDKR_PATH=<downloaded j721e psdk rtos path>
      export TIDL_DIR_NAME=c7x-mma-tidl   # alt: tidl_j7*
      export CGT7X_ROOT=$HOME/ti/ti-cgt-c7000_4.1.0.LTS
    • in tvm, if you build against psdk 9.2, please checkout TVM tag: TIDL_PSDK_9.2.0  Otherwise, you will run into incompatibility issues between TVM and TIDL TOOLS
    • cmake -DUSE_MICRO=ON -DUSE_SORT=ON -DUSE_TIDL=ON -DUSE_LLVM="llvm-config --link-static" -DHIDE_PRIVATE_SYMBOLS=ON -DUSE_TIDL_RT_PATH=$(ls -d ${PSDKR_PATH}/${TIDL_DIR_NAME}/arm-tidl/rt) -DUSE_TIDL_PSDKR_PATH=${PSDKR_PATH} -DUSE_CGT7X_ROOT=${CGT7X_ROOT} ..
    • 生成-J16

      只需要指出、这不是一种受支持的使用模式。  我仍然建议使用与 edgeai-tidl-tools 版本关联的预编译 TVM 软件包。

    -元

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

    你(们)好

    好的、我会根据您的请求将 TVM 更改为默认编译。
    但仍存在编译错误。 这个问题似乎是以前提出的、但没有答复

    按照默认说明 source ./ setup.sh 进行操作
    仍会出现以下故障

    TIDL_RT_OVX:错误:指定的内核编号无效- 0、预期内核编号为1
    TIDL_RT_OVX:错误:创建 OpenVX 图形失败
    TIDL_RT_OVX:错误:验证 OpenVX 图形失败
    0.64326s:vx_zone_error:[tivxKernelTIDLCreate:907]网络版本- 0x00000000、预期版本- 0x20240401
    0.64517s:vx_zone_error:[ownContextSendCmd:875]返回命令 ack 消息失败 cmd_status:-1
    0.64524s:vx_zone_error:[ownNodeKernelInit:590]对于节点 node_79、目标内核 TIVx_CMD_NODE_CREATE 失败
    0.64530s:vx_zone_error:[ownNodeKernelInit:591]请确保已为此内核注册目标回调
    0.64534s:vx_zone_error:[ownNodeKernelInit:592]如果目标回调已注册、请确保在此内核的创建回调中没有发生错误
    0.64541s:vx_zone_error:[ownGraphNodeKernelInit:608]节点0的内核初始化、kernel com.ti.tidl:1:1……失败!!
    0.64548s:vx_zone_error:[vxVerifyGraph:2159]节点内核初始化失败
    0.64570s:vx_zone_error:[vxVerifyGraph:2213]图形验证失败
    0.64592s:vx_zone_error:[ownGraphScheduleGraphWrapper:885]图形未处于需要安排的状态
    0.64596s:vx_zone_error:[vxProcessGraph:813]计划图失败
    0.64612s:vx_zone_error:[vxProcessGraph:818]等待图形失败
    错误:运行 TIDL 图形...失败!!!
    运行推理 DLRModelImpl TVMError:TIDLRT_INVOKE 失败时出现2025年04月17日10:19:31,738错误

    e2e.ti.com/.../build_5F00_rel_5F00_09_5F00_02_5F00_log_5F00_6.txt

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

    好的、编译日志看起来要好得多。 感谢您按照建议更改设置以使用预构建的软件包。 这解决了原始错误、但不足以传递示例脚本。  

    我假设您的推理在主机上运行

    TIDL_RT_OVX:错误:指定的内核编号无效- 0、预期内核编号为1
    [/报价]

    我之前在您的日志中看到过此错误、但需要先解决构建问题。  似乎使用了可运行模型的加速器的无效 ID (对于 AM62A、只有一个 C7xMMA 实例、因此只能有一个值)。 我假设您没有接触任何与运行时的 core_number 参数相关的内容、对吧? 我正在查看此处使用的编译和推理脚本、此参数不会显示在任何位置。

    TVM 不是我的专业领域、因此我需要请另一位专家进行权衡。 再次、我将要求您确认 TVM 对您的应用很重要。

    • TFLite 和 ONNX 接口更稳定、强烈优先于 TVM。 即使在最新的10.1 SDK 上、我也看到 TVM 确实可以无错误地编译和执行推理、但输出不正确。  

    BR、
    Reese

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

    尊敬的 Martin:

      您的 DLR 软件包似乎没有正确安装、可能您安装了旧的 DLR 软件包、那么 setup.sh 无法安装与 rel_09_02分支兼容的 DLR 软件包?

      我使用 Docker 方法在本地进行测试。  我没有看到您遇到的问题。  请参阅随附的运行日志。

    -元

    在模型-../../../model-artifacts/cl-dlr-onnx_mobilenetv2上运行推理

    2025年04月17日21:20:57,217信息在模型工件中找不到 libdlr.so。 从/usr/local/lib/python3.10/dist-packages/dlr/libdlr.so 购买 DLR
    软限制为2048
    硬限制为2048
    MEM:初始化...!!!
    MEM:初始化...完成!!!
    0.0s:vx_zone_init:Enabled
    0.6s:vx_zone_error:Enabled
    0.8s:vx_zone_warning:已启用
    0.1794s:vx_zone_init:[tivxInit:190]初始化完成!!!

    处理时间(单位:ms):182.6

    、013.257734导弹、1 12.934375射弹、导弹、2 12.287656战机、军用飞机、 3艘12.287656型航空母舰,平顶航母,攻击航空母舰, 4艘10.347500型飞船,飞船

    将图像保存到./../../output_images


    Completed_Model:2、名称:cl-DLR-onnx_mobilenetv2、总时间:182.62,卸载时间:182.62、DDR RW MB:0,输出文件:py_out_cl-dlr-onnx_mobilenetv2_airshow.jpg


    MEM:Deinit ...!!
    内存:Alloc:25个分段、共37856006字节
    MEM:FREE's:25个 FREE'S、共37856006字节
    MEM:open 的:0个0字节的分配
    MEM:Deinit ...完成了!!!

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

    你好

    您说 libdlr.so 有问题
    我已检查且文件存在。

    log1

    2025年04月18日12:46:52,558信息在模型工件中找不到 libdlr.so。 从/home/user001/.local/lib/python3.10/site-packages/dlr/libdlr.so 购买 DLR

    log2

    user001@user001-CoffeeLake:~/edgeai-tidl-tools$/home/user001/.local/lib/python3.10/site-packages
    attr fsspec ninja platformdirs synr
    attrs fspect-2025.3.0.dist-info ninja-1.11.1.3.dist-info platformdirs-4.3.6.dist-info synr-0.6.0.dist-info
    attrs-25.1.0.dist-info functorch NumPy pluggy 测试
    autocfg goloncv NumPy-1.23.0.dist-info pluggy-1.5.0.dist-info 测试
    autocfg-0.0.8.dist-info gluoncv-0.10.5.post0.dist-info NumPy.libs portalocker tflite
    caffe2onnx google nvidia portalocker-3.1.dist-info tflite-2.18.0.dist-info
    caffe2onnx-1.0.2.dist-info graphviz nvidia_cublas_cu12-12.4.5.8.dist-info prototbuf-3.20.3.dist-info tflite_runtime
    cloudpickle graphviz-0.20.3.dist-info nvidia_CUDA_cupti_cu12-12.4.127.dist-info protobuf-3.20.3-py3.10-nspkg.pth tflite_runtime-2.12.0.dist-info
    cloudpickle-3.1.1.dist-info huggingface_hub nvidia_cuda_nvrtc_cu12-12.4.127.dist-info psutil Timm
    coloredlogs huggingface_hub-0.29.2.dist-info nvidia_CUDA_runtime_cu12-12.4.127.dist-info psutil-7.0.0.dist-info Timm-1.0.15.dist-info
    coloredlogs-15.0.1.dist-info 人性化 nvidia_cudnn_cu12-9.1.0.70.dist-info pybind11 tomli
    coloredlogs.pth Humanfriendy-10.0.dist-info nvidia_cufft_cu12-11.2.1.3.dist-info pybind11-2.13.6.dist-info tomli-2.2.1.dist-info
    contourpy iniconfig nvidia_curand_cu12-10.3.5.147.dist-info pybind11_global-2.13.6.dist-info 火炬
    contourpy-1.3.1.dist-info iniconfig-2.0.0.dist-info nvidia_cusolver_cu12-11.6.1.9.dist-info __pycache__ torch-2.6.0.dist-info
    cusparsert isympy.py nvidia_cuspars_cu12-12.3.1.170.dist-info pyelftools-0.32.dist-info torchgen
    cv2 jinja2 nvidia_cusparselt_cu12-0.6.2.dist-info pygments torchvision
    cycler jinja2-3.1.6.dist-info nvidia_nccl_cu12-2.21.5.dist-info pygments-2.19.1.dist-info torchvision-0.21.0.dist-info
    cycler-0.12.1.dist-info jsonschema nvidia_nvjitlink_cu12-12.4.127.dist-info pylab.py torchvision.libs
    dataclasses-0.6.dist-info jsonschema-4.23.0.dist-info nvidia_nvtx_cu12-12.4.127.dist-info py.py Tornado
    dataclasses.py jsonschema_specifications onnx _pythest Tornado-6.4.2.dist info
    dateutil jsonschema_specification-2024.10.1.dist-info onnx-1.13.0.dist-info pythest tqdm
    Decorator-5.2.1.dist-info kiwisolver onnx_graphseverator pythest-8.3.5.dist-info tqdm-4.67.1.dist-info
    decorator.py kiwisolver-1.4.8.dist-info onnx_graphsever-0.3.26.dist-info python_detutil-2.9.0.post0.dist-info Triton
    distlib markdown_it onnxruntime 引用 Triton-3.2.0.dist-info
    distlib-0.3.9.dist-info markdown_it_py-3.0.0.dist-info onnxruntime_tidl-1.14.0.dist-info reference-0.362.dist-info tvm
    _distutils_hack matplotlib onnxsim rich tvm-0.12.0.dist-info
    distutils-precedence.pth matplotlib-3.10.1.dist-info onnxsim-0.4.35.dist-info rich-13.9.4.dist-info typing_extensions-4.12.2.dist-info
    dr mdurl OpenCV_python-4.11.0.86.dist -info rpds typing_extensions.py
    dl-1.13.0.dist-info mdurl-0.1.2.dist-info Opencv_python.libs rpds_py-0.24.0.dist-info tzdata
    elftools meson-1.7.0.dist-info 打包 safetensors tzdata-2025.1.dist-info
    例外组 mesonbuild package-24.2.dist-info safetenser-0.5.3.dist-info virtualenv
    exceptiongroup-1.2.2.dist-info mpl_toolkits pandas scipy virtualenv-20.29.3.dist-info
    filelock mpmath pandas-2.2.3.dist-info scipy-1.13.1.dist-info YACS
    filelock-3.17.0.dist-info mpmath-1.3.0.dist-info pathspec scipy.libs YACS-0.1.8.dist-info
    flbuffers netron pathspec-0.12.1.dist-info setuptools yamlint
    flbuffer-1.12.dist-info nettron-8.2.dist-info pip setuptools-78.1.0.dist-info yamlint-1.37.0.dist-info
    fontTools networkx pip-25.0.1.dist-info sympy
    fonttools-4.56.0.dist-info networkx-3.4.2.dist-info pkg_resources sympy-1.13.1.dist-info
    user001@user001-CoffeeLake:~/edgeai-tidl-tools$/home/user001/.local/lib/python3.10/site-packages/dlr
    api.py 计数器 dlr_model.py 包括__init__.py libdlr.so libpath.py metadata.py neologger.py __pycache__
    user001@user001-CoffeeLake:~/edgeai-tidl-tools$

    它是否与 TIDL_RT_OVX 故障有关?

    TIDL_RT_OVX:错误:指定的内核编号无效- 0、预期内核编号为1
    TIDL_RT_OVX:错误:创建 OpenVX 图形失败
    TIDL_RT_OVX:错误:验证 OpenVX 图形失败
    0.65594s:vx_zone_error:[tivxKernelTIDLCreate:907]网络版本- 0x00000000、预期版本- 0x20240401
    0.65733s:vx_zone_error:[ownContextSendCmd:875]返回命令 ack 消息 failure cmd_status:-1
    0.65739s:vx_zone_error:[ownNodeKernelInit:590]对于节点 node_79、目标内核、TIVx_CMD_NODE_CREATE 失败
    0.65743s:vx_zone_error:[ownNodeKernelInit:591]请确保已为此内核注册目标回调
    0.65748s:vx_zone_error:[ownNodeKernelInit:592]如果目标回调已注册、请确保在此内核的创建回调中没有发生错误
    0.65753s:vx_zone_error:[ownGraphNodeKernelInit:608]节点0的内核初始化、kernel com.ti.tidl:1:1……失败!!
    0.65762s:vx_zone_error:[vxVerifyGraph:2159]节点内核初始化失败
    0.65765s:vx_zone_error:[vxVerifyGraph:2213]图形验证失败
    0.65785s:vx_zone_error:[ownGraphScheduleGraphWrapper:885]图形未处于需要安排的状态
    0.65789s:vx_zone_error:[vxProcessGraph:813]计划图失败
    0.65792s:vx_zone_error:[vxProcessGraph:818]等待图失败
    错误:运行 TIDL 图形...失败!!!
    运行推理 DLRModelImpl TVMError:TIDLRT_INVOKE 失败时出现2025年04月18日12:46:53,501错误

    如何将 libdlr.so 修改为正确的版本

    user001@user001-CoffeeLake:~/ edgeai-tidl-tools$查找. -name libdlr.so
    ./tidl_tools/osrt_deps/libdlr.so
    user001@user001-CoffeeLake:~/edgeai-tidl-tools$ cd tidl_tools/osrt_deps/
    user001@user001-CoffeeLake:~/edgeai-tidl-tools/tidl_tools/osrt_deps ls -al
    總用量3584
    drwxrwxr-x 6 user001 user001 4096 4月18 12:08。
    drwxrwxr-x 3 user001 user001 4096 4月18 12:36 ..
    drwxrwxr-x 3 user001 user001 4096 4月18 12:08 DLR_1.10.0_x86_u22
    -rwxrwxr-x 1 user001 user001 3643752 4月18 12:08 libdlr.so
    drwxr-xr-x 3 user001 user001 4096 4月18 12:07 onnx_1.14.0_x86_u22
    drwxrwxr-x 4 user001 user001 4096 4月18 12:08 OpenCV_4.2.0_x86_u22
    drwxr-xr-x 4 user001 user001 4096 3月21 2024 tflite_2.12_x86_u22
    user001@user001-CoffeeLake:~/edgeai-tidl-tools/tidl_tools/osrt_deps pwd.
    /home/user001/edgeai-tidl-tools/tidl_tools/osrt_deps
    user001@user001-CoffeeLake:~/edgeai-tidl-tools/tidl_tools/osrt_deps

    user001@user001-CoffeeLake:~/.local/lib/python3.10/site-packages/dlr ls
    api.py 计数器 dlr_model.py 包括__init__.py libdlr.so libpath.py metadata.py neologger.py __pycache__
    user001@user001-CoffeeLake:~/.local/lib/python3.10/site-packages/dlr ls -al
    總用量3636
    drwxrwxr-x 5 user001 user001 4096 3月10 10:02。
    drwxrwxr-x 181 user001 user001 12288 4月17 09:33 ..
    -RW-RW-r- 1 user001 user001 9291 3月10:02 api.py
    drwxrwxr-x 4 user001 user001 4096 3月10 10:02计数器
    -RW-RW-r- 1 user001 user001 18476 3月10:02 dlr_model.py
    drwxrwxr-x 4 user001 user001 4096 3月10 10:02包括
    -RW-RW-r- 1 user001 user001 223 3月10 10:02 __init__.py
    -rwxrwxr-x 1 user001 user001 3643752 3月10 10:02 libdlr.so
    -RW-RW-r- 1 user001 user001 2815 3月10 10:02 libpath.py
    -RW-RW-r- 1 user001 user001 40 3月10:02 metadata.py
    -RW-RW-r- 1 user001 user001 1072 3月10:02 neologger.py
    drwxrwxr-x 2 user001 user001 4096 3月10 10:02 __pycache__
    user001@user001-CoffeeLake:~/.local/lib/python3.10/site-packages/dlr echo LD_LIBRARY_PATH
    LD_LIBRARY_PATH
    user001@user001-CoffeeLake:~/.local/lib/python3.10/site-packages/dlr echo $LD_LIBRARY_PATH
    :/home/user001/edgeai-tidl-tools/tidl_tools:/home/user001/edgeai-tidl-tools/tidl_tools/osrt_deps:/home/user001/edgeai-tidl-tools/tidl_tools/osrt_deps/opencv
    user001@user001-CoffeeLake:~/.local/lib/python3.10/site-packages/dlr

    e2e.ti.com/.../build_5F00_rel_5F00_09_5F00_02_5F00_log_5F00_7.txt

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

    我检查了这里的 libdlr.so 文件
    事实证明、它们可能都使用同一个文件
    如果版本不同、libdlr.so 的大小也会不同吗?
    如下图所示

    我正在检查此错误的原因。

    2025年04月18日14:26:39,987信息在模型工件中找不到 libdlr.so。 从/home/user001/tflite_env/lib/python3.10/site-packages/dlr/libdlr.so 购买 DLR

    libdlr.so 是否是 TIDL_RT_OVX 的重要库?
    它是否与这些问题直接相关?

    TIDL_RT_OVX:错误:指定的内核编号无效- 0、预期内核编号为1
    TIDL_RT_OVX:错误:创建 OpenVX 图形失败
    TIDL_RT_OVX:错误:验证 OpenVX 图形失败