推理设备支持¶
OpenVINO™ 运行时可以使用以下设备类型来推理深度学习模型:
有关更详细的硬件列表,请参见 支持的设备
对于与我们用于基准测试的设备类似的设备,可以使用 英特尔® DevCloud for the Edge (一种可以访问英特尔® 硬件的远程开发环境)和最新版本的英特尔® 发行版 OpenVINO™ 工具套件进行访问。 了解更多信息 或 在此处注册 。
功能支持表¶
下表展示了 OpenVINO™ 器件插件支持的关键功能。
功能 |
||||
---|---|---|---|---|
是 |
是 |
否 |
是 |
|
是 |
是 |
部分 |
是 |
|
否 |
是 |
否 |
否 |
|
是 |
是 |
否 |
是 |
|
是 |
部分 |
是 |
否 |
|
是 |
部分 |
否 |
否 |
|
是 |
否 |
是 |
否 |
|
是 |
是 |
否 |
部分 |
|
是 |
否 |
是 |
否 |
|
是 |
是 |
否 |
否 |
有关插件特定功能限制的更多详细信息,请参见相应的插件页面。
枚举可用设备¶
OpenVINO™ 运行时 API 具有枚举设备及其功能的专用方法。请参阅 Hello 查询设备 C++ 样本 。这是样本的示例输出(仅截断为设备名称):
./hello_query_device
Available devices:
Device: CPU
...
Device: GPU.0
...
Device: GPU.1
...
Device: HDDL
枚举设备并与多设备配合使用的简单编程方式如下:
ov::Core core;
std::shared_ptr<ov::Model> model = core.read_model("sample.xml");
std::vector<std::string> availableDevices = core.get_available_devices();
std::string all_devices;
for (auto && device : availableDevices) {
all_devices += device;
all_devices += ((device == availableDevices[availableDevices.size()-1]) ? "" : ",");
}
ov::CompiledModel compileModel = core.compile_model(model, "MULTI",
ov::device::priorities(all_devices));
除了典型的“CPU”、“GPU”、“HDDL”等之外,当设备的多个实例可用时,名称会更有限定性。例如,在 hello_query_sample 中这样枚举两个英特尔® Movidius™ Myriad™ X 电脑棒。
...
Device: MYRIAD.1.2-ma2480
...
Device: MYRIAD.1.4-ma2480
因此,使用这两者的显式配置将是“MULTI:MYRIAD.1.2-ma2480,MYRIAD.1.4-ma2480”。因此,循环遍历“MYRIAD”类型的所有可用设备的代码如下:
ov::Core core;
std::vector<std::string> GPUDevices = core.get_property("GPU", ov::available_devices);
std::string all_devices;
for (size_t i = 0; i < GPUDevices.size(); ++i) {
all_devices += std::string("GPU.")
+ GPUDevices[i]
+ std::string(i < (GPUDevices.size() -1) ? "," : "");
}
ov::CompiledModel compileModel = core.compile_model("sample.xml", "MULTI",
ov::device::priorities(all_devices));