FPGARelated.com
Forums

Anybody used Amazon AWS for HW sims?

Started by Kevin Neilson December 5, 2019
Has anybody used Amazon AWS for FPGA hardware sims?  I don't know anything about it and I tried to read up on it but it's all a bit vague.  Amazon has farms of FPGAs (Xilinx, I think?) but they mostly market these as software accelerators, meant to be somewhat abstracted from most users.  But I'm wondering if I can upload bitfiles and do hardware sims.  For example, to characterize some of my error correction modules, I need to put in on the order of 1e16 bits, which would take maybe months in the simulator, or maybe a day in full-speed hardware (using a synthesizable testbench).  Is that something I could do with these AWS farms?  In this case, it wouldn't even have to use the same FPGA parts I'm targeting, nor would it need to run at full speed.

Furthermore, can AWS be used for synthesis/PAR?  Regression Verilog sims? 
Kevin Neilson <kevin.neilson@xilinx.com> wrote:
> Has anybody used Amazon AWS for FPGA hardware sims? I don't know anything > about it and I tried to read up on it but it's all a bit vague. Amazon > has farms of FPGAs (Xilinx, I think?) but they mostly market these as > software accelerators, meant to be somewhat abstracted from most users. > But I'm wondering if I can upload bitfiles and do hardware sims. For > example, to characterize some of my error correction modules, I need to > put in on the order of 1e16 bits, which would take maybe months in the > simulator, or maybe a day in full-speed hardware (using a synthesizable > testbench). Is that something I could do with these AWS farms? In this > case, it wouldn't even have to use the same FPGA parts I'm targeting, nor > would it need to run at full speed.
I've not used them, but AIUI they provide scaffolding for building a component that sits inside an F1 FPGA. In other words you don't get full access to all the pins etc, but your HDL sits inside that scaffolding and uses things like virtual LEDs and PCIe transactions that are communicated to your app on the CPU side via the AWS FPGA IP. But inside the FPGA logic you can mostly do whatever you want - subject to not violating constraints like taking too much power.
> Furthermore, can AWS be used for synthesis/PAR? Regression Verilog sims?
For driving F1 instances, the tools are free. For other things, as long as you can sort the licensing setup I don't see why not. https://github.com/aws/aws-fpga has lots of info. Theo
On Thursday, December 5, 2019 at 3:30:01 AM UTC-7, Theo wrote:
> Kevin Neilson <kevin.neilson@xilinx.com> wrote: > > Has anybody used Amazon AWS for FPGA hardware sims? I don't know anything > > about it and I tried to read up on it but it's all a bit vague. Amazon > > has farms of FPGAs (Xilinx, I think?) but they mostly market these as > > software accelerators, meant to be somewhat abstracted from most users. > > But I'm wondering if I can upload bitfiles and do hardware sims. For > > example, to characterize some of my error correction modules, I need to > > put in on the order of 1e16 bits, which would take maybe months in the > > simulator, or maybe a day in full-speed hardware (using a synthesizable > > testbench). Is that something I could do with these AWS farms? In this > > case, it wouldn't even have to use the same FPGA parts I'm targeting, nor > > would it need to run at full speed. > > I've not used them, but AIUI they provide scaffolding for building > a component that sits inside an F1 FPGA. In other words you don't get full > access to all the pins etc, but your HDL sits inside that scaffolding and > uses things like virtual LEDs and PCIe transactions that are communicated to > your app on the CPU side via the AWS FPGA IP. > > But inside the FPGA logic you can mostly do whatever you want - subject to > not violating constraints like taking too much power. > > > Furthermore, can AWS be used for synthesis/PAR? Regression Verilog sims? > > For driving F1 instances, the tools are free. For other things, as long as > you can sort the licensing setup I don't see why not. > > https://github.com/aws/aws-fpga > has lots of info. > > Theo
Thanks; I looked briefly at your link but it all sounds like it has a steep learning curve. Could you describe what an "F1 instance" is? The Amazon documentation is peppered with references to F1 without really explaining it.
Kevin Neilson <kevin.neilson@xilinx.com> wrote:
> Thanks; I looked briefly at your link but it all sounds like it has a > steep learning curve. Could you describe what an "F1 instance" is? The > Amazon documentation is peppered with references to F1 without really > explaining it.
AWS EC2 offers you a range of servers, labelled with various letters and numbers. They can be either VMs or dedicated servers: https://aws.amazon.com/ec2/instance-types/ An 'instance' is a particular virtual/dedicated server. If your workload requires a thousand copies of your VM running in parallel, each one is an instance. 'f1' is their particular name for their dedicated servers with FPGAs. For example 'f1.2xlarge' is an 8-core server with one FPGA, 'f1.16xlarge' is a 64 core server (or cluster) with 8 FPGAs. At present they're using Virtex Ultrascale+. 'F1' more generally is the name of their project that provides FPGAs in their cloud servers. So people talk about 'running it in Amazon F1' when they mean the whole action of renting a server from Amazon by the hour to run their workload on the FPGA in that machine. Theo
On Thursday, December 5, 2019 at 3:18:44 PM UTC-7, Theo wrote:
> Kevin Neilson <kevin.neilson@xilinx.com> wrote: > > Thanks; I looked briefly at your link but it all sounds like it has a > > steep learning curve. Could you describe what an "F1 instance" is? The > > Amazon documentation is peppered with references to F1 without really > > explaining it. > > AWS EC2 offers you a range of servers, labelled with various letters and > numbers. They can be either VMs or dedicated servers: > https://aws.amazon.com/ec2/instance-types/ > > An 'instance' is a particular virtual/dedicated server. If your workload > requires a thousand copies of your VM running in parallel, each one is an > instance. > > 'f1' is their particular name for their dedicated servers with FPGAs. For > example 'f1.2xlarge' is an 8-core server with one FPGA, 'f1.16xlarge' is a > 64 core server (or cluster) with 8 FPGAs. At present they're using Virtex > Ultrascale+. > > 'F1' more generally is the name of their project that provides FPGAs in > their cloud servers. So people talk about 'running it in Amazon F1' when > they mean the whole action of renting a server from Amazon by the hour to > run their workload on the FPGA in that machine. > > Theo
Thanks for the explanation. I'm going to have to learn some more. It sounds like this is not really targeted toward FPGA designers, but it could still be useful. After you get the framework set up, it should be easier for successive testbenches.