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.

[参考译文] 可以在 ALG 插件上使用多个线程。

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/570775/possibility-of-using-multiple-threads-on-alg-plugin

Thread 中讨论的其他器件:SYSBIOS

您好!

我正在将 Vision SDK 2.11用于 TDA 3x。 我想知道、是否可以在任何内核(DSP/EVE/IPU)上的单个 ALG 插件上创建多个线程。 如果可能、它可能提供什么优势(即它是否会运行

并行)。 如果你给我提供任何方法(LMSD 除外)来在同一个内核上并行运行两个模块、这将非常有帮助。

此致、

尼尔

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

    VSDK 专家已收到通知。 他们将在这里作出回应。

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

    在 Vision SDK 框架中、每个链接通常在单个任务(Thread)中运行。 但是、在 DSP/EVE 上、所有算法链接都在单个任务(线程)中运行。 实现此方案的原因是、我们不想在算法过程调用的中间抢占优先级。 如果算法过程被抢先、则意味着当前算法将丢失高速缓存/临时缓冲区并产生保存/恢复上下文的开销。
    如果算法在不同的内核上运行、则最有可能通过并行运行来提高性能。

    在任何情况下、Vision SDK 都基于 TI RTOS (SYSBIOS)、您可以根据需要在算法插件中创建新任务(线程)。
    只需使用 BSP 中的 BspOsal_taskCreate()即可。 您可以从 index.htm 的 vision_sdk/docs/文件夹中找到 API 指南 bsp_apiGuide.chm。

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

    感谢您的回复。 我只想确认一点,如果我使用 BspOsal_taskCreate()在同一插件(在同一内核上)上创建两个(或更多)任务,我是否能够实现一些性能提升。 我之所以提出这个问题、是因为我有许多优化模块、我希望并行运行这些模块。 正如您所说的、可以在不同的内核上运行、但如果我有更多的模块(例如10个)、是否可以并行运行它们。 如果不是、我是否有任何方法可以实现某种性能增益。

    此致、
    尼尔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尼尔
    VSDK Alg 链接不限制您在任何内核(DSP/EVE/IPU)上的单个 ALG 插件上创建多个线程。 但这应该与您的算法设计保持一致/取决于您的算法设计。
    理想情况下、如果要在单个内核上运行多个算法、可以为每个算法创建多个算法链接(多个实例)。 所有这些链接都将在具有基于优先级的调用的同一个内核上运行。 例如、DSP1是单核、一次只能运行一个算法。 因此、DSP1上的不同 ALG 链接将一个接一个运行。 但不同内核上的 ALG 链接、例如 DSP1或 EVE1将同时运行

    此致、Shiju
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Shiju、
    假设我在单个 ALG-PLUGIN 上创建4个线程而不是创建4个 ALG-PLUGINS,它会给我带来一些性能优势吗?

    此致、
    尼尔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尼尔
    实际上、一次只能运行一个任务、我的意思是每个线程只能一个接一个地运行。
    保留多个链接可为您提供处理数据流的更灵活的方式、即使是链接也变得简单。
    在 DSP 和 EVE 上、我们有一种特殊的机制、即使有多个 ALG 链接、也只创建一个任务、我们在其中选择 Utils_tskMultiMbxCreate 而不是 Utils_tskCreate。

    此致、Shiju
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Shiju、
    感谢您的回复。
    此致、
    尼尔