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

Feasibility of developement of a general OPAE like framework

Pulak1
Beginner
778 Views

I am part of research group which is looking to build a GPGPU framework for FPGAs.

After digging through the internet for similar projects, we came across open source "Vortex GPGPU". From what I understood they built a gpu block, and accompanying language/compiler framework for us to allow running OpenCL code onto FPGA. The downside is that it heavily relies on OPAE driver framework (proprietary to Intel) for communication with FPGA.


We wish to develop a similar open source driver framework for a general FPGA (i.e. which could work on any vendor's FPGA). While scrutinizing the feasibility of this idea, we came across an OPAE implementation for some Xilinx FPGAs.
We are a group with a solid understanding of old-school hardware but lack exposure in the FPGA world.
I would be grateful if you could point out the actual feasibility of this idea of building OPAE like interface which could work on any given FPGA in the market right now. I'm afraid that the very difference in the hardware architecture of different FPGAs would lead to big problems.

 

Thanks

Labels (2)
0 Kudos
1 Solution
khtan
Employee
716 Views

Hi Pulak ,

Welcome to our Intel forums and apologies in the delay of replying to your query.


On your question whether is it feasible or not to do a generic open source driver framework for generic vendors (AMD/Xilinx / Lattice etc..), generally it is possible to do something like what Intel OPAE has but we don't recommend it as it might cause other issues as different FPGA (or vendors) in this case has their own customization/configuration or special handling needs to take care of.


Your generic driver must be robust enough to handle different types of vendor drivers and different set of commands and reinterpret it into same generic command for user to use. You might also need to factor in handling those user custom board FPGA using vendor FPGA chipset.


In my opinion , even for Intel alone, the OPAE SDK does do some device detection to detect which intel FPGA family/model is installed on the system and and handles it differently when executing certain commands.


*taken from opae.github.io , high level overview whereby basically you will need to handle different drivers in your framework


I think you meant this repository where they modify the OPAE to support Xilinx

https://github.com/RSPwFPGAs/opae-xilinx

basically it could work on basic functionality but certain specialize functionality will not be available as the OPAE is not configured for Xilinx.


All in all, it is a possible project to make a generic framework for FPGA, but there will be alot of work under the hood just to handle different types of vendors and FPGA types(+support their own functionalities, configurations)


as a side note: Intel FPGA SDK for opencl is being discontinued and moving towards Intel OneAPI (https://www.intel.com/content/www/us/en/docs/programmable/683846/22-4/eol.html)


Thanks

Regards

Kian


View solution in original post

0 Kudos
3 Replies
khtan
Employee
717 Views

Hi Pulak ,

Welcome to our Intel forums and apologies in the delay of replying to your query.


On your question whether is it feasible or not to do a generic open source driver framework for generic vendors (AMD/Xilinx / Lattice etc..), generally it is possible to do something like what Intel OPAE has but we don't recommend it as it might cause other issues as different FPGA (or vendors) in this case has their own customization/configuration or special handling needs to take care of.


Your generic driver must be robust enough to handle different types of vendor drivers and different set of commands and reinterpret it into same generic command for user to use. You might also need to factor in handling those user custom board FPGA using vendor FPGA chipset.


In my opinion , even for Intel alone, the OPAE SDK does do some device detection to detect which intel FPGA family/model is installed on the system and and handles it differently when executing certain commands.


*taken from opae.github.io , high level overview whereby basically you will need to handle different drivers in your framework


I think you meant this repository where they modify the OPAE to support Xilinx

https://github.com/RSPwFPGAs/opae-xilinx

basically it could work on basic functionality but certain specialize functionality will not be available as the OPAE is not configured for Xilinx.


All in all, it is a possible project to make a generic framework for FPGA, but there will be alot of work under the hood just to handle different types of vendors and FPGA types(+support their own functionalities, configurations)


as a side note: Intel FPGA SDK for opencl is being discontinued and moving towards Intel OneAPI (https://www.intel.com/content/www/us/en/docs/programmable/683846/22-4/eol.html)


Thanks

Regards

Kian


0 Kudos
khtan
Employee
672 Views

Hi Pulak,

We didnt hear back from you for awhile now. Is there anything else we could help you with?

Otherwise I would like to set this as resolved and close the case


0 Kudos
Pulak1
Beginner
656 Views

Thank you very much for replying and providing insights. I would be sure hit up the forum if i hit other roadblocks in future!

0 Kudos
Reply