Intel® Distribution of OpenVINO™ Toolkit
Community support and discussions about the Intel® Distribution of OpenVINO™ toolkit, OpenCV, and all things computer vision-related on Intel® platforms.
5766 Discussions

Unable to run OpenVINO on three or more FPGAs

Tony7
Beginner
308 Views

We tried to load the same neural network on three different FPGAs as shown in the program below.

#include "inference_engine.hpp"
int main(int argc, char *argv[])
{
InferenceEngine::Core core;
auto network1 = core.ReadNetwork(".xml");
auto exeNetwork1 = core.LoadNetwork(network1, "FPGA.0");
auto network2 = core.ReadNetwork(".xml");
auto exeNetwork2 = core.LoadNetwork(network2, "FPGA.1");
auto network3 = core.ReadNetwork(".xml");
auto exeNetwork3 = core.LoadNetwork(network3, "FPGA.2");
return 0;
}


However, the OpenVINO program crashed with the error shown below. However, commenting out any of the three networks would fix the problem.

Error initializing DMA: 5
Error initializing mmd dma
Error initializing bsp
Error Code: 147
Error Description: Error: Failure due to generic standard exception.User requested device 2 is invalid
File: /home/jenkins/agent/workspace/private-ci/ie/build-linux-ubuntu16/b/repos/fpga-plugin/thirdparty/dla/runtime/core/src/new_device.cpp
Function: initialize
Line #: 101
terminate called after throwing an instance of 'InferenceEngine::details::InferenceEngineException'
what(): Failed to create FPGA device handle with ID 2
Aborted (core dumped)

Environment:
Ubuntu 16.04
OpenVINO version: 2020.0301
Aocl version: 19.2
Intel® Programmable Acceleration Card Stack version: 1.2

0 Kudos
4 Replies
Zulkifli_Intel
Moderator
270 Views

Hello Tony7,

 

Thank you for contacting us.

 

The error of “Failure due to generic standard exception. User requested device 2 is invalid” is due to the Inference Engine Core class only supports 2 FPGA devices, FPGA.0 and FPGA.1. ID 2 is not recognized as mentioned in InferenceEngine::Core Class Reference GetAvailableDevices().

 

Regards,

Zulkifli


Tony7
Beginner
240 Views

Hi Zulkifli,

 

Thanks for the reply.

 

I created the program below to print the available devices, and FPGA.2 is recognized as one of the available devices. 

 

InferenceEngine::Core core;

auto devices = core.GetAvailableDevices();

for (auto device: devices){

    cout << device << endl;

}

 

The output of the program is shown below.

(aocl) autodrive@AUTODRIVE-BOLT:~/dla/new_openvino_test/benchmark_ws$ ./devel/lib/zeus_inference_engine/YoloTest 

CPU

FPGA.0

FPGA.1

FPGA.2

 

Regards,

Tony

Zulkifli_Intel
Moderator
208 Views

Hello Tony7,


Multiple FPGA devices can be supported for OpenVINO simultaneously if they are running different models in each respective cards as per below configuration example:

Card 1: Object Detection with SSD-VGG Sample

Card 2: Image Segmentation Sample with FCN-8.

Card 3: Object Detection for Faster R-CNN Sample

Card 4: Image Classification Sample with Alexnet.

 

The step can be obtained at FPGA Plugin - OpenVINO Toolkit

 

However, the current configuration only supports 2 FPGA devices for the same model.


Regards,

Zulkifli


Zulkifli_Intel
Moderator
187 Views

Hello,


This thread will no longer be monitored since we have provided a solution. If you need any additional information from Intel, please submit a new question.


Regards,

Zulkifli


Reply