Anybody used Amazon AWS for HW sims?

K

Kevin Neilson

Guest
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.
 

Welcome to EDABoard.com

Sponsor

Back
Top