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.

[参考译文] TMS320F28P550SJ:NPU 如何在 AI 模型中与 CPU 配合使用

Guru**** 2952510 points

Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1652978/tms320f28p550sj-how-npu-work-with-cpu-in-ai-model

器件型号: TMS320F28P550SJ
主题: C2000WARE 中讨论的其他器件

您好专家

我想了解使用 NPU 进行 AI 模型加速的时间消耗、以下是 2 种情况:

假设一个块是: Conv + BatchNorm + Relu

案例 1:  NPU 在模型中可以支持 3 个块: Block1->Block2->Block3

在本例中有问题:如果用户在主函数中调用 API 来运行 AI 模型、NPU 是否可以在不调度序列的情况下执行整个过程、或者块计算序列需要由 CPU 控制? 比如、 Block1 finish->NPU 需要触发一个中断 ->然后 CPU 将准备数据以输入到 Block2 -> 触发器 Block2 在 NPU 中的处理?

如果是第二种情况、CPU 是否可以在 NPU 运行时处理其他任务?

CASE2:NPU 支持 3 个块 2、CPU 支持的中间块:Block1-NPU -> Block1-CPU -> Block2-NPU

本例中的问题:a) NPU 或 CPU 或 NPU+CPU 中是否符合此模型?

b) 如果模型可以在 NPU+CPU 中编译(如果不存在,则问题 b)不存在)、数据交换是否将  由 CPU 完成处理计划? CPU 可以运行其他任务还是只是等待 NPU 运行?

谢谢

Joe

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

    您好 Joe、

    情形 1  

    NPU 是否会自主对块进行排序、或者 CPU 是否会安排每次转换?
    CPU 必须安排每个块转换。 NPU 一次处理一层。 当一层完成时、它会向 CPU 发出硬件中断 (DONE)。 然后、CPU 中断处理程序将下一层的权重/参数加载到 NPU 中并启动它。 这是根据设计确定 的;NPU 没有自主多层序列发生器。

    在 NPU 运行时、CPU 可以执行其他任务吗?
    整个执行过程由中断驱动。 启动每个 NPU 层后、CPU 从中断处理程序返回并且在下一个 DONE 中断到达之前是空闲的。 每个
    中断只需几微秒(只需加载下一层并启动它)、因此 CPU 可在每层的绝大多数执行时间内使用。
    C2000Ware 示例在启动模型后会执行忙等待、但这是应用程序的选择、而不是硬件要求。 您可以将其替换为 RTOS 任务调度或其他有用的工作、


    情形 2

    它会编译为 NPU、CPU 还是 NPU+CPU?
    它编译为单个 NPU+CPU 混合二进制文件。 TVM 编译器在编译时自动对图形进行分区。 NPU 兼容的层被卸载到 NPU 上、 NPU 不支持的层本机编译为 C28x CPU 代码。

    由谁来控制调度和数据交接? CPU 可以执行其他任务吗?
    CPU 控制整个序列。
    NPU 向 CPU 发出一个 DONE 中断。 然后、CPU 中断处理程序直接执行 MidBlock-CPU 层。
    它运行 CPU 运算符本身。 一旦 CPU 计算完成、处理程序就会将 Block2-NPU 加载到 NPU 中并启动它、然后返回。

    关于 CPU 可用性:
    在 NPU 运行时 (Block1 或 Block2):CPU 是空闲的、可以运行其他任务。
    当 CPU 块运行时 (MidBlock-CPU):CPU 已完全占用。 NPU 处于空闲等待状态。 此处不执行并行执行。



    此致、
    Lakshya Verma