主题中讨论的其他器件:C2000WARE、 TI-CGT
工具/软件:
TI E2E 团队大家好、
我正在尝试通过 Apache TVM 的 Tinie 后端使用片上 NPU ("ti-npu")编译量化 ONNX 模型并将其卸载到 TI C2000 F28P55 MCU。 我在 Windows (Git Bash)和 WSL2上都花了几天时间、但一直在阻止程序中运行。 下面是我的设置、所采取的步骤、遇到的错误和具体问题的简明纯文本摘要。 非常感谢提供任何指导或示例工作流程。
-
硬件和 SDK
-
MCU:C2000 F28P55具有嵌入式 DSP/NPU
-
C2000Ware 安装在 C:\ti\C2000Ware_5_04_00_00下
-
TI-CGT C2000 v22.6.2安装在 C:\ti\CGT_C2000_22.6.2.LTS 下
-
-
ONNX 模型
-
model_int8.onnx (选项集11)
-
输入形状[1、1、1256]、输出形状[1、2]
-
通过 onnx.checker;验证 onnxruntime 无法运行 ConvInteger 节点(预期)
-
-
编译环境
-
Windows 10 Git Bash 和 Ubuntu 22.04 WSL2
-
Python 3.10 venv、安装了 cython、psutil、typeing_extensions、NumPy 1.23.5
-
克隆的 Apache/TVM (dev tip)、尝试使用以下命令执行 CMake:
•-Duse_LLVM=on
•-Duse_Dinie=on
•-Duse_TVMC=on
但是在手动安装 cython 之前、看到了"use_Tinie not used"警告和 Cython 错误
-
-
Python 绑定问题
-
即使设置了 LD_LIBRARY_PATH (WSL)或 TVM_LIBRARY_PATH (Windows)、"pip install -e python /"也反复找不到 libtvm.so / libtvm_runtime.so
-
在 Windows 上安装 ti_mcu_nc-1.3.0滚轮成功、但没有显示 nnc.exe、"which nc"不返回任何值
-
-
tvmc 编译尝试和错误
a)缺少 ONNX 前端:
"未‘软件包"。 提示:pip install tlcpack[tvmc]"(未发布 tlcpack[tvmc])
b) CPU 回退:
tvmc compile --target="c"…
AssertionError:目标三重值不应为空
c) TI-NPU 分区崩溃:
属性错误: 'tvm.ir.type.tupletype'="">没有属性 dtype
(在转换整数填充期间、中继/后端/contrib/tini/prepare.py 深度) -
关键问题
-
在 WSL2和 Windows 下、哪些精确的 CMake 标志和 TVM_target 语法可以为"c;ti-npu"启用 Tinie + TVMC?
-
如何正确链接 libtvm.so/libtvm_runtime.so 以便"pip install -e python/"成功?
-
我是否可以在 Windows 版 Git Bash 上安装独立的 NNC 工作流程(NNC.exe)而无需从源代码重建 TVM ?
-
为 F28P55 + TI NPU 生成.a 库(包括目标三重行、目标主机、交叉编译器选项等)的精确 tvmc 编译命令是什么?
-
是否有 Tinie 填充提升通道中 TupleType.dtype AttributeError 的已知补丁或解决方法?
-
感谢您抽出宝贵时间、为您提供有关 ONNX→TVM→C2000 F28P55 + TI NPU 集成的官方示例或脚本的指南。
此致、
Junsuk
MS/PhD 候选人