OpenVINO开发小组
直播中

南风一号

9年用户 1048经验值
擅长:EMC/EMI设计
私信 关注
[问答]

为什么无法从源代码推断OpenVINO™构建中的VPU?

为什么无法从源代码推断OpenVINO™构建中的 VPU

回帖(2)

杨帆

2025-3-6 10:45:38
对 Myriad-X 的支持并不完全可用于从源OpenVINO™构建(公开的源代码
举报

剑寒九州

2025-3-6 17:41:43

在 OpenVINO™ 中,无法直接从源代码推断出构建中是否包含 VPU(Vision Processing Unit,视觉处理单元)支持的原因主要有以下几点:




1. 硬件依赖性与构建配置



  • OpenVINO™ 是一个支持多种硬件加速器的框架,包括 CPU、GPU、VPU 等。是否支持 VPU 取决于构建时的配置和硬件驱动。

  • VPU 的支持通常依赖于特定的硬件驱动(如 Intel® Movidius™ Myriad™ X 的驱动)和插件(如 myriadPlugin)。如果这些驱动或插件未在构建时启用或未正确安装,VPU 支持将不可用。

  • 源代码本身可能包含 VPU 相关的代码,但如果没有正确的硬件和软件环境,这些代码不会被激活。




2. 插件和运行时加载机制



  • OpenVINO™ 使用插件机制来支持不同的硬件加速器。这些插件在运行时动态加载,而不是在编译时静态链接。

  • 即使源代码中包含 VPU 相关的逻辑,VPU 插件的加载也依赖于运行时环境(如是否存在 VPU 硬件、驱动是否安装、插件是否可用)。

  • 因此,从源代码无法直接推断出运行时是否支持 VPU。




3. 构建选项与条件编译



  • OpenVINO™ 的构建过程通常通过 CMake 进行配置,支持 VPU 的功能可能通过条件编译(#ifdef)来控制。

  • 如果构建时未启用 VPU 相关的选项(如 ENABLE_MYRIAD),相关代码不会被编译,从而无法推断出 VPU 支持。




4. 硬件检测与运行时验证



  • OpenVINO™ 在运行时通过硬件检测机制来确定可用的加速器。VPU 的支持需要在运行时通过检测硬件和驱动来确认。

  • 源代码中可能包含 VPU 相关的逻辑,但只有在运行时才能确定 VPU 是否可用。




5. VPU 支持的复杂性



  • VPU 支持涉及多个层次,包括硬件驱动、插件、运行时库等。源代码只是其中的一部分,无法涵盖所有依赖项。

  • 即使源代码中包含了 VPU 相关的实现,如果硬件或软件环境不满足要求,VPU 仍然无法使用。




总结


无法从源代码直接推断 OpenVINO™ 构建中是否包含 VPU 支持,主要是因为 VPU 的功能依赖于硬件、驱动、插件和构建配置等多方面的因素。要确定 VPU 是否可用,需要在运行时通过 OpenVINO™ 的 API 或工具(如 benchmark_app)进行检测。例如,可以使用以下代码检查 VPU 设备是否可用:


from openvino.runtime import Core

core = Core()
devices = core.available_devices
print("Available devices:", devices)

如果输出中包含 MYRIAD,则表示 VPU 设备可用。

举报

更多回帖

发帖
×
20
完善资料,
赚取积分