How to Use an Amazon Afi Fpga Image on Local Hardware

Hey there! I'm Maeda, one of Hacarus's FPGA interns. Just like the title says, I joined the form called Amazon EC2 F1 Instance.

In this report, I'll explicate what I learned indicate-by-point.

So, what's an F1 Instance?

The F1 Case is a compute example with Field Programmable Gate Arrays, abbreviated every bit FPGA.

The F1 instance (Formula ane, includes Xilinx Virtex UltraScale+ VU9P) is an EC2 (Elastic Compute Cloud) equipped with FPGA.

In FPGA, users can plan the logic functions that can be implemented in ASIC (Application Specific Integrated Circuits) as hardware on the FPGA.

Logic and wiring can be reconfigured freely to suit the application.

F1 Case's specific configuration is listed below:

  • Intel Xeon E5-2686v4 (2.3GHz, compatible with Turbo mode)
  • i-8 FPGA (Xilinx Virtex UltraScale+ VU9P)
  • NVMe-connected SSD max approximately up to 4TB

Besides,

A developing environment for F1 Instance is listed below:

  • AWS FPGA Developer Forum
  • FPGA Developer AMI (Vivado, SDAccel) (Costless of charge)
  • Hardware Programmer Kit

In recent years, FPGAs have been evaluated for their low power consumption and first-class parallel processing because they exercise not depend on a predetermined pedagogy sequence similar the CPU (Central Processing Unit of measurement). There are other uses for edge calculating like preprocessing when processing in cloud calculating.

I recollect the biggest advantage of using an FPGA in an F1 instance is that hardware accelerators implemented in FPGA can be used in the cloud. By making good use of this, it is possible to speed up the processing on the cloud.

The Execution Process Used in F1 Instance

In this workshop, it was causeless that the functions implemented in the FPGA would exist invoked from the software.

The general menstruation when using an existing FPGA image is:

  1. Deploy OS image called Amazon Machine Epitome (AMI) on F1 instance and get-go your OS.
  2. Invoke the API from the F1 instance OS and download the Amazon FPGA Image (AFI) to the FPGA on the F1 example.
  3. Execute the application on the F1 example Os and execute processing on the FPGA.

AFI is sold on the AWS Market place. If a product that matches your intended use is on the market, yous may be able to use a hardware accelerator implemented in an FPGA without having to develop it yourself. Yet, considering there are only a few things that have been released, the features you may want are not e'er available, and the cost is loftier. In this case, you take the option of designing and developing your own product.

FPGA-practical Hardware Accelerator Design and Creating an AFI

In the previous department, we explained how to load a created AFI image on an F1 instance.

Now, how do you lot create an AFI with the features you want to use?

I'll explain the basics of development using Xilinx's SDAccel or AWS HDK (Hardware Development Kit).

Beginning, a kernel (.xo) is generated from lawmaking written in C / C ++, OpenCL, or RTL using the SDAccel compiler. From this kernel, SDAccel assembles the FPGA design, and then the logic (synthesis and placement and routing) is performed on the FPGA design to generate a binary (.xclbin). Amazon FPGA Image (AFI) is generated from the generated binary.

The xclbin file is converted to encrypted AFI and the generated AFI is deeply stored by the AWS backend service. It is as well possible to simulate the logic described past the functions provided past SDAccel. The figure beneath shows what an AFI image looks like.

The following arrangements are required to generate AFI:

  • Verification of code by simulation
  • Build FPGA binary (.xclbin) with SDAccel
  • AWS CLI and S3 bucket setup

One time this is done, you tin can create an AFI image using the create_sdaccel_afi.sh script provided by AWS. The create_sdaccel_afi.sh script performs the post-obit procedures:

  • Create AFI encrypted FPGA binary (.xclbin).
  • Generate a file containing the generated AFI Amazon FPGA Image ID (AFI ID) and Amazon Global FPGA Paradigm ID (AGFI ID).
  • Create an AWS FPGA binary file (.awsxclbin). Use this file to make up one's mind which AFI to load into the FPGA.

The Amazon Global FPGA Paradigm ID (AGFI ID) is an ID that is uniquely determined within the F1 case. Since this ID is stock-still globally, information technology isn't necessary to change the AGFI ID for each region when copying and using AFI or AMI.

Amazon FPGA Prototype ID (AFI ID) is an ID used to manage AFI with AWS CLI and SDI API.  The ID varies from region to region.

SDAccel besides provides a function to simulate the described logic, and so you are able to ostend whether your implementation is correct at an appropriate stage.

To sum upwards

In this workshop, we experienced how to run an existing AFI paradigm on an F1 instance.

Lucky for us, F1 instances do not require the initial investment of buying an FPGA board and instead, provides the power to share an AFI image which may make information technology easier to obtain FPGA implementations for typical applications in the future- which I think is an first-class feature of the F1. You can also utilize this instance when yous want to procedure a large amount of information at high speed using parallel operations, which is also suitable for processing on a GPU.

Definitely looking forward to how the F1 Instance (which first appeared in April 2017) will hold for the community and future!

Reference:

  • F1 Instance AWS Official Folio
  • Xilinx Official F1 Instance and SDAccel Description Page

0 Response to "How to Use an Amazon Afi Fpga Image on Local Hardware"

Post a Comment

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel