03-12-2018 03:16 PM
Hi every one,
I don't know if this is a good place to ask such question or not, but it's my last hope to find the answer.
These days we see a lot of cloud service companies (like Amazon) are providing their customers with a new service called FPGA-accelerated cloud. I want to know what's happening behind the seen and how do they manage such service?
I watched a lot of Xilinx and Amazon videos about this service (AWS EC2 F1), but none of them helped me to understand what's actually going on. My questions are as follow:
1. Does Amazon allocate a real FPGA chip for me, or it's a kind of virtual one like a VPS?
2. If Amazon allocates a real FPGA for me, is it also dedicated at the time I'm using it?
3. If we have a GIANT size RTL code (which could not be placed on a single FPGA chip), is it going to take a part our RTL and feed it to different chips automatically?
Thanks a lot.
03-12-2018 04:02 PM
03-12-2018 04:02 PM
03-12-2018 08:18 PM - edited 03-12-2018 08:27 PM
Thank you very much for your answer, helped me a lot. But still another question:
Is it simple because it should be, or because it needs a lot of efforts to solve such problems?
Two examples to make it clear about what I mean:
1. I think sharing FPGAs among instances would be a very good idea because it can reduce both the amount of FPGAs we need and over all power consumption, for a cloud service.
2. I think it would be a great idea to have endless FPGA resources for a designer. So we need a special synthesizer to break the RTL down into different parts and download them to FPGAs. It could also help us to benefit from using different generations of FPGAs along with each other. This is what I mean by virtualization.
03-12-2018 09:27 PM
@manili I said simpler because F1 is just an FPGA card inserted in a PCI-express slot. That's all.
You were talking about some sophisticated FPGA-virtualization mechanism on top of the Amazon AWS service.
Perhaps it makes economic sense, not sure. Amazon has not hinted in that direction yet.
05-07-2018 08:16 AM - edited 05-07-2018 08:31 AM
@manili, you loan a VM machine with an UltraScale+ VU9P and you pay the rent per hour.
So, if you need to do FPGA acceleration, let say scientific computing, encryption, compression, encoding, data streaming, etc, that requires only PCIe for data transfer it's a nice solution. In this case, you don't need to buy FPGA board (and we all know that it cost a lot of $$$) and we don't have to handle maintenance, upgrade, etc.
It's a real advantage to compute a business model to sell an product/application (but not enough) because you immediately know the Total Cost of Ownership (TCO) of the FPGA hardware.
Rent price are affordable compared to the device mounted on the board. it's less than $2/hr for the f1.2xlarge VM that only one FPGA card and around $16/hr for the f1.16xlarge VM with 8 VU9P boards.
AWS and Huawei are both based on Ultrascale+ VU9P devices that are more than enough for most of the designer.
Virtualization in the cloud is the fact to reprogram a part of the FPGA (Customer Logic) without erasing the shell design (SH).
This support is really important, else you spent time to reboot the VM each time your reprogram a board.
There is no auto-partitioning tool at this time, let see in the future if a smart solution occurs.
So, I'm wondering if you have in mind an application that need to be partitioned in several FPGA instances?