Application Acceleration With FPGAs
Programmable Acceleration Cards (PACs), DCP, FPGA AI Suite, Software Stack, and Reference Designs
489 Discussions

@Intel support: ask a question about openvino and DLA

YJing8
Novice
1,612 Views

There are three different locations about the usage of model.

1. DLA architecture generator generate xxx. prototxt

2.The file used by linux command line  is xxx. aocx and then programmed into the PAC FPGA

3.In X86 C++ code plugin class, there is no mention about the FPGA bitstream.

What is the relation between this three location?

 

0 Kudos
8 Replies
JohnT_Intel
Employee
1,375 Views

Hi,

 

The .aocx file will be link to prototxt file where OpenVINO will refer to as to understand what is supported by the FPGA.

 

The plugin class will only execute the acceleration into the FPGA depending on what type of design is being programmed into the FPGA by referring to prototxt. It will be done automatically by the OpenVINO tools.

0 Kudos
YJing8
Novice
1,375 Views

 

​Thanks for your response @JohnT_Intel

There are still some puzzles with me.

  1. xxx. prototxt is also caffe NN model file. Is there any relationship between caffe NN model file and architecture file
  2. The format of  caffe NN model file  seems to be different to architecture file?
  3. As you mentioned "The .aocx file will be link to prototxt file ", whether it means that there are serveral different NN model can be infer to the same bitstream file?
  4. If I customize a primitive, I think it will change the FPGA bitstream. That is the .aocx will also change, not only the .prototxt file?
  5. Where is OpenCL API run? in the software stack of FPGA or in the software stack of X86? 

 

0 Kudos
JohnT_Intel
Employee
1,375 Views

Hi,

 

The prototxt for FPGA will only provide the information on what is available in the FPGA and depending on what Model you are running. If the function can be performed in FPGA then it will be run in FPGA and if it is not able to be performed then it will be run in CPU. The FPGA will not have any architecture but just the function that is able to performed convolution and other features depending on which bitstream is being programmed.

The OpenCL API is only contain the driver to interface with the FPGA. OpenVINO will communicate with the driver where it will send the data to FPGA if it need to be performed in FPGA.

0 Kudos
YJing8
Novice
1,375 Views

 

In my understand, the prototxt contains the description of this figure. If there is a custom primitive, the more description will be added according to the manual <<dlas-compile-and-customize.pdf>.

Is it right?

 

YJing8
Novice
1,375 Views
0 Kudos
JohnT_Intel
Employee
1,375 Views

Hi,

 

You understanding is correct. You may also understand more on this from https://www.youtube.com/watch?v=UNoEflEM2IQ.

0 Kudos
YJing8
Novice
1,375 Views

Thank you very much.

One more question.  I read the source code of openvino and get the information that Cldnn already support about fifty primitives.

(1)Whether all of those primitives are implemented by FPGA?

(2)If some primitives in DNN can be merged in FPGA, that is the first primitive's output can be the input of the second primitive, how to write the source code and see the compiler result?

 

0 Kudos
JohnT_Intel
Employee
1,375 Views

Hi,

 

It will depend on which model you are running. If the layer is able to executed in FPGA then it will be performed in FPGA.

You may run the "Per Layer performance" in order to understand where the layer is being performed. You will need to modify your host code in order to derive the model to run on specific location.

0 Kudos
Reply