03-07-2018 07:41 PM
I developed an accelate kernel with SDAccel 2017.1 and got it compiled as a binary application, everything works great.
But how can I compile this OpenCL kernel as a dynamic library so others could use this library to build their application without the knowledge of FPGA design and OpenCL architecture?
Is there a tutorial available on it?
BTW, I found a official tutorial video at https://www.xilinx.com/video/software/using-sdaccel-compiled-libraries.html. But where can I get the reference design in this video? It looks like the "median filter" design in SDAccel Examples on Xilinx Github. But I can't find the "makeSo.mk" file in the video（as attached screenshot shows）.
Any help will be greatly appreciated.
03-13-2018 09:45 AM
Can you give me a little context into what you are trying to do?
Do you want it to be such that you can call the host application and kennel combined as a library for another user to link to?
Or do you want to have the kernel be a dynamic linked lib?
It would help to know a bit more of the detail of what you want to accomplish and I can provide feedback into how feasible it might be.
03-16-2018 03:40 PM
07-20-2018 10:43 AM
I had exactly the same questions about that demo.
What I want to do is provide a set of services to a software team. Ideally, I would provide a library that looks identical to a software-only library currently in use, but which leverages an fpga behind the scenes. That probably means I would provide a layer of software on the host that interfaced between the purely software world, and a C++ HLS kernel on the device. My library would include the OpenCL calls to interface with the kernel so legacy software (ideally) wouldn't need to know anything about it, other than how to know a device is available on the system. Even that should be a call into code I provide.
I'm having trouble making the leap between the SDAccel getting_started examples and how to bring non-trivial functionality to a production software environment. Short of tracing through all of what "make check" does, I'm running out of ideas. Any pointers appreciated.