Why Use An FPGA Instead of a CPU or GPU? (Explained)

Why’s FPGA Instead of CPU or GPU? In the recent past, Intel purchased Altera, which is one of the largest producers of FPGAs. Intel company bought this at around $16.7 billion, making it their largest acquisition ever.

On the other hand, Microsoft is using FPGAs in its data centers while Amazon on other hand is providing them with its cloud services.

These FPGAs in the past were mainly used in electronics engineering but not that much in software engineering.

In our guide today, we are going to look at why use an FPGA instead of a CPU or GPU.

What is the meaning of an FPGA

In case you want to do something in computing, the most common way to do it is through writing some software for an instruction-based architecture ie a CPU or GPU.

The other tedious way could be designing a special circuit for a specific kind of computation, which is completely the opposite of writing instructions for a general purpose circuit such as a CPU or GPU.

After you finish designing this circuit, you will have to implement the design so that you can compute something. One way that requires quite deep pockets is to produce a circuit that implements this design.

The best alternative here to implement your circuit is through the use of an FPGA(Field Programmable Gate Array) which is a reconfigurable integrated circuit.

You can easily configure the FPGA so that it becomes any circuit that you would like to have as long as it fits on the FPGA.

This is completely the opposite of the instruction-based hardware most programmers are used to ie CPUs and GPUs.

Check this Out Related here ====== >>>  Why Do You Need a License From ARM to Design An ARM CPU? (Explained)

Instruction-based hardware is configured through software, on the other hand, FPGAs are configured by specifying a hardware circuit.

Advantages of FPGAs

Why do many people choose to use an FPGA for their computation more than their common CPU or GPU? The advantages of using an FPGA are as the following.

  • FPGAs are good when it comes to latency.
  • Connectivity with FPGA can be done directly through the inputs and can offer very high bandwidth.
  • The engineering cost is slightly higher than the instructions-based architectures, so the advantages must be worth it.
  • The energy needed to do the computation in FPGA is most of the time listed as its large benefit, but whether FPGAs are better than CPUs or GPUs depends on the application mostly.

Let us look at these factors in detail so that you can understand.

  • Low latency

This is what you need if you are programming the autopilot of a jet fighter or a high-frequency algorithmic trading engine: The time between an input and its response is as short as possible. This is where FPGAs are much better than CPUs.

With an FPGA, it is very possible to get a latency below 1 microsecond while with CPUs on the other hand a latency of fewer than 50 microseconds is already good.

However, the latency of an FPGA is much more deterministic. The main reason for this is that FPGAs can be much more specialized, they do not depend on the generic operating system and communication does not have to go through generic buses such as USB.

Why Use An FPGA Instead of a CPU or GPU? (Explained)
Why Use An FPGA Instead of a CPU or GPU? (Explained)
  • Connectivity

On an FPGA, you can easily hook up any data source such as a network interface or sensor directly to the pins of the chip.

Check this Out Related here ====== >>>  How Do I make my own CPU from scratch?(Explained)

This is the complete opposite of GPUs and CPUs, where you need to connect your source through standardized buses such as USB and depend on the operating system to deliver your application A connection that is direct to the pins of the chip offers you high bandwidth.

This bandwidth is what is needed for radio astronomy applications for example such as LOFAR and SKA.

There are lots of specialized sensors in these applications that generate a large amount of data. The volume of data is supposed to be reduced before being sent off to make it manageable.

  • Engineering cost

Before diving into the issue of engineering cost, let us first take a look at the main disadvantages of FPGAs; 

Programming them is much harder than instruction-based architectures such as CPUs. 

The reason why it is hard to program FPGAs is the long compilation times. If you are using Intel’s OpenCL for example, it will take around 4 and 12 hours to do a compilation of a typical program for the FPGA.

This is due to the place and route phase: the custom circuit that we want needs to be mapped to the FPGA resources that we have, with paths as short as possible.

This is a complete program that needs significant computation. Intel does offer an emulator, therefore testing for correctness does not need this long step, but determining and optimizing performance do need these overnight compile phases.

  • Overview and outlook

In some areas, it is not easy to do away with FPGAs. In the military application for example, such as missile guidance systems, FPGAs are used due to their low latency.

Check this Out Related here ====== >>>  AMD Or Intel Which Processors Brand is Better For Your Devices (Explained)

However, Intel did not just spend $16.7 billion on Altera for these somewhat niche markets, they have bigger plans for it.

The two markets they want to infiltrate as far as I can tell, are high-performance computing and cloud computing.

FPGAs for high-performance computing

In my view, I do not think that FPGAs will in any way make a big splash in the high-performance computing market in the coming years.

Even if they become slightly more energy-efficient GPUs, the development of software for FPGAs is still a lot harder than you can imagine.

The HPC community is already used to GPUs, getting people to switch from GPUs and FPGAs requires larger benefits.

In more than 5 years, it might turn out that FPGAs do offer such large benefits which is what Intel seems to be expecting.

Final thought

Why use an FPGA instead of CPUs or GPUs? From our discussions above, we have seen how using FPGA is better than using CPUs and GPUs.

A task that can take a CPU more than 5 hours can easily be done using FPGA in just a few minutes.

Related article: 

How Fast is single GPU Core compared to CPU Core? (Explained)

 

Leave a Comment

We use cookies to personalise content and ads, to provide social media features and to analyse our traffic. We also share information about your use of our site with our social media, advertising and analytics partners. View more
Cookies settings
Accept
Privacy & Cookie policy
Privacy & Cookies policy
Cookie name Active
  Our website address is: https://discovercpu.com.

Comments

When visitors leave comments on the site we collect the data shown in the comments form, and also the visitor’s IP address and browser user agent string to help spam detection. An anonymized string created from your email address (also called a hash) may be provided to the Gravatar service to see if you are using it. The Gravatar service privacy policy is available here: https://automattic.com/privacy/. After approval of your comment, your profile picture is visible to the public in the context of your comment.

Media

 If you upload images to the website, you should avoid uploading images with embedded location data (EXIF GPS) included. Visitors to the website can download and extract any location data from images on the website.

Cookies

If you leave a comment on our site you may opt-in to saving your name, email address and website in cookies. These are for your convenience so that you do not have to fill in your details again when you leave another comment. These cookies will last for one year. If you visit our login page, we will set a temporary cookie to determine if your browser accepts cookies. This cookie contains no personal data and is discarded when you close your browser. When you log in, we will also set up several cookies to save your login information and your screen display choices. Login cookies last for two days, and screen options cookies last for a year. If you select "Remember Me", your login will persist for two weeks. If you log out of your account, the login cookies will be removed. If you edit or publish an article, an additional cookie will be saved in your browser. This cookie includes no personal data and simply indicates the post ID of the article you just edited. It expires after 1 day.

Embedded content from other websites

 Articles on this site may include embedded content (e.g. videos, images, articles, etc.). Embedded content from other websites behaves in the exact same way as if the visitor has visited the other website. These websites may collect data about you, use cookies, embed additional third-party tracking, and monitor your interaction with that embedded content, including tracking your interaction with the embedded content if you have an account and are logged in to that website.

Who we share your data with

 If you request a password reset, your IP address will be included in the reset email.

How long we retain your data

 If you leave a comment, the comment and its metadata are retained indefinitely. This is so we can recognize and approve any follow-up comments automatically instead of holding them in a moderation queue. For users that register on our website (if any), we also store the personal information they provide in their user profile. All users can see, edit, or delete their personal information at any time (except they cannot change their username). Website administrators can also see and edit that information.

What rights you have over your data

If you have an account on this site, or have left comments, you can request to receive an exported file of the personal data we hold about you, including any data you have provided to us. You can also request that we erase any personal data we hold about you. This does not include any data we are obliged to keep for administrative, legal, or security purposes.

Where your data is sent

 Visitor comments may be checked through an automated spam detection service.
Save settings
Cookies settings