Part Number: TMS320F28P550SJ
Other Parts Discussed in Thread: C2000WARE
您好!
我正在使用 TMS320F28P550SJ 的片上 NPU。TI 的《神经网络处理单元(NPU)指南》提到,NPU 可以在主 CPU 处理其他任务的同时独立执行神经网络推理。我希望确认这一能力在实际软件中应如何实现。
板上测试时,我启用了全局中断,在主程序中调用由 TI 工具生成的模型执行函数 tvmgen_default_run ,并记录调用前后的程序状态。测试发现,模型执行函数返回时,NPU 的完成标志已经置位,而 CPU 主程序在函数调用期间没有继续执行其他计算;虽然可以观察到与 NPU 完成相关的中断处理,但没有观察到 CPU 计算与 NPU 推理真正重叠。将模型执行请求移出定时器中断后,CPU仍然只能在两次推理之间执行其他任务。因此,我暂时无法判断模型执行函数本身就是同步阻塞接口,还是当前调用或中断配置不正确。
想请教以下问题:
-
TI 工具生成的模型执行函数是同步阻塞接口,还是在启动 NPU 后应当立即返回?
-
F28P55 是否支持“NPU执行神经网络推理的同时,CPU继续运行应用程序代码”?如果支持,TI推荐的软件流程是什么?
-
是否存在非阻塞的NPU启动接口,使CPU可以先启动推理,再通过完成标志、状态查询或完成中断取得结果?
-
如果模型执行函数在NPU完成前不返回,这段时间内CPU是在轮询完成状态、执行NPU运行库代码,还是处于等待中断状态?
-
要实现CPU与NPU并行,是否需要绕过模型生成代码中的默认执行函数,改用更底层的NPU接口?如果需要,是否有对应的C2000Ware示例或应用文档可以参考?
-
NPU完成中断的推荐用途是什么?它是否可以用于通知CPU读取推理结果并启动下一次推理?
烦请协助确认F28P55x上CPU与NPU并行运行的正确实现方式,以及模型执行函数的预期行为。
谢谢!