os-fpga / 1st-CLaaS

Framework for developing and deploying FPGA logic in the cloud as a microservice for web and cloud applications
BSD 3-Clause "New" or "Revised" License
196 stars 42 forks source link

Microservices for on-premise Alveo u200/u250 #38

Closed mahinlma closed 4 years ago

mahinlma commented 4 years ago

Hi @stevehoover ,

What are the major changes I should make, to get run on on-premise Alveo cards.

stevehoover commented 4 years ago

@mahinlma So you want to run as a microservice, but your h/w is on-premises. Okay. I am not at all familiar with Alveo or Vitis, but it would be great to have support for this platform.

Obviously all the stuff with Terraform and AWS are not needed. Depending on your use model, you probably would not utilize the "time-bomb" concept and JavaScript methods that safely start and stop the microservice (and are built around AWS). Presumably, you would have your own method of starting/stopping the microservice. The Python Tornado server and connection with the host C++/OpenCL application can remain in place.

The build flow utilizes the Vivado RTL Wizard to generate template OpenCL code and then linux scripts modify the template all in the build flow. If it's possible to utilize Vivado with Alveo, you should start with that. Otherwise, you might use Vivado to create the OpenCL code that you can use as source for Alveo compilation (though the Xilinx copyright notices may require careful consideration). So, you'll have to make changes to the `frarmework/Makefile' OpenCL and host compilation commands.

Also, the synthesis commands are Vivado-based, and the bitstream is bundled and loaded in an AWS-specific way, so new Makefile commands would be needed for this. Makefiles get messy really fast when supporting various platforms, and it is already a nightmare.

Good luck. Let me know if you proceed.

mahinlma commented 4 years ago

Thank you @stevehoover , for your valuable suggestions. Definitely, I will let you know, Once I started to proceed.