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.

[参考译文] PROCESSOR-SDK-AM62A:使用 AM62A 芯片开发板进行 AI 模型开发、遇到运行时问题、可以寻求帮助。

Guru**** 2482225 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1451931/processor-sdk-am62a-using-the-am62a-chip-development-board-for-ai-model-development-i-encountered-a-runtime-issue-and-seek-assistance

器件型号:PROCESSOR-SDK-AM62A

工具与软件:

   我目前有一个带有系统 SDK 9.2的 AM62A 开发板。 模型已成功转换并部署在电路板上、并且可以正确运行以产生预期结果。 但是,我遇到了一个问题:在模型推理期间,如果程序崩溃或被强制终止(例如使用Ctrl+C),简而言之,如果资源发布代码未正确执行,模型下一次无法正确运行。 唯一的解决方案是重新启动板。 错误消息如下所示:

libtidl_onnxrt_EP 已加载0xed32db0  

最终创建的子图数为:1、-卸载节点- 132、总节点- 135  

176789.252347 s: vx_zone_error:[ownContextSendCmd:875]命令确认消息返回失败 cmd_status:-1

176789.252405 s: vx_zone_error:[ownNodeKernelInit:590]目标内核 TIDLNode 的 TIVX_CMD_NODE_CREATE 失败

176789.252424 s: vx_zone_error:[ownNodeKernelInit:591]请确保已为此内核注册目标回调

176789.252439 s: vx_zone_error:[ownNodeKernelInit:592]如果目标回调已注册、请确保此内核的 create 回调中没有出现错误

176789.252457 s: vx_zone_error:[ownGraphNodeKernelInit:608] kernel init for node 0、kernel com.ti.tidl:1:1... failed!!

176789.252487 s: vx_zone_error:[vxVerifyGraph:2159] Node kernel init failed (176789.252487 s:vx_zone_error:[vxVerifyGraph:2159]内核初始化失败

176789.252500 s: vx_zone_error:[vxVerifyGraph:2213]图形验证失败

TIDL_RT_OVX:错误:正在验证 TIDL 图形...失败!!!

TIDL_RT_OVX:错误:验证 OpenVX 图形失败

   经过调研和初步分析、确定 TI 的模型推理不会直接调用硬件、而是与负责资源分配的其他进程进行通信。 当程序崩溃时、它无法将释放信号发送到相应的进程、从而导致资源占用。 由于缺少可用资源、因此在尝试再次运行模型时会出现错误。

[C7x_1 ]  28392.238061 s:ipc: echo status:a530-0[.] r5f0-0[P] c75ss0[s]  

[C7x_1 ] 176789.251932 s: vx_zone_error:[tivxAlgiVisionAllocMem:194]无法分配存储器记录13 @ space = 17 and size = 4964028!!!  

[C7x_1 ] 176789.251968 s: vx_zone_error:[tivxAlgiVisionCreate:358] tivxAlgiVisionAllocMem 失败

[C7x_1 ] 176789.251999 s: vx_zone_error:[tivxKernelTIDLCreate:926] tivxAlgiVisionCreate 返回 NULL

[C7x_1 ] 176789.548018 s: vx_zone_error:[tivxAlgiVisionAllocMem:194]无法分配存储器记录13 @ space = 17 and size = 3828764!!!  

[C7x_1 ] 176789.548052 s: vx_zone_error:[tivxAlgiVisionCreate:358] tivxAlgiVisionAllocMem 失败

[C7x_1 ] 176789.548082 s: vx_zone_error:[tivxKernelTIDLCreate:926] tivxAlgiVisionCreate 返回 NULL

[C7x_1 ] 176789.860206 s: vx_zone_error:[tivxAlgiVisionAllocMem:194]无法分配存储器记录5 @ space = 17 and size = 2935104!!!  

[C7x_1 ] 176789.860240 s: vx_zone_error:[tivxAlgiVisionCreate:358] tivxAlgiVisionAllocMem 失败

[C7x_1 ] 176789.860269 s: vx_zone_error:[tivxKernelTIDLCreate:926] tivxAlgiVisionCreate 返回 NULL

[C7x_1 ] 176790.194297 s: vx_zone_error:[tivxAlgiVisionAllocMem:194]无法分配内存记录5 @ space = 17 and size = 2826986!!!  

[C7x_1 ] 176790.194331 s: vx_zone_error:[tivxAlgiVisionCreate:358] tivxAlgiVisionAllocMem 失败

[C7x_1 ] 176790.194361 s: vx_zone_error:[tivxKernelTIDLCreate:926] tivxAlgiVisionCreate 返回 NULL

是否有任何 API 可用于手动发布这些资源? 或者、如何有效地解决该问题?

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

    您好!

    然而,我遇到一个问题:在模型推理期间,如果程序崩溃或被强制终止(例如,使用Ctrl+C),简而言之,如果资源发布代码未正确执行,模型下次无法正确运行。 唯一的解决方案是重新启动开发板。
    [quote userid="635238" url="~/support/processors-group/processors/f/processors-forum/1451931/processor-sdk-am62a-using-the-am62a-chip-development-board-for-ai-model-development-i-encountered-a-runtime-issue-and-seek-assistance 经调查初步分析后、确定 TI 的模型推理不是直接调用硬件、而是与负责资源分配的其它流程进行交流。 当程序崩溃时、它无法将释放信号发送到相应的进程、从而导致资源占用。 这种缺少可用资源的情况会导致在尝试再次运行模型时出现错误。

    这是一种已知的行为、并且您具有正确的理解。 当您在未告知远程内核/加速器关闭的情况下关闭应用程序时、它们将处于不确定状态。 有时这是可以的、但通常会导致未释放的内存分配、并导致故障、具体取决于内存分配的大小和非正常关机的次数。  

    我认为目前没有 API 可用于发布这些远程内核上可能使用的所有资源。 最佳方法是复位 SoC 并从干净状态开始。 最好通过特意捕获中断信号和释放资源来缓慢地关闭应用程序。

    BR、
    Reese