Field-programmable gate arrays (FPGAs) are versatile silicon chips that are proving to be extremely fast at certain operations. Laid out on silicon much like any other chip, FPGAs are packed with configurable logic blocks that are wired together with interconnects and switches, and a small amount of memory in the form of SRAM, EEPROM, or an antifuse for each programmable element. In addition, FPGAs also have some special hardware to govern global clock cycles (clock drivers) and can be fitted with specific-function embedded cores such as digital signal processors (DSP).
Unlike a traditional CPU or GPU, FPGAs do not run code. In essence, an FPGA is equivalent to a silicon chip that has been specially made for a very specific task. In a traditional CPU, the operating system queues up instructions for the processor to carry out one at a time. FPGAs on the other hand are hard wired in a way that, for sake of simplicity and visualization, essentially means that the FPGA is the program (rather than it running a program).
It is here that FPGAs get interesting. Although they run at much lower clockspeeds than “hardwired” CPUs and GPUs, they are truly parallel designs — from the loop and task level down to the bit and instruction level — that are further free from instruction fetching operations (because the instructions are built-in).
FPGAs can accelerate simulations, encryption and decryption tasks, Bitcoin mining, and can even be used to brute force passwords. Many of those tasks are either starting to or are already commonly run on graphics cards using software programming languages like CUDA and OpenCL. Today’s graphics cards are quite fast (especially on the AMD side with its Graphics Core Next architecture), and running programs on the GPU can greatly speed up tasks that involve large amounts of data and highly paralleled processes. Nvidia’s Tesla cards are a good example of the GPU’s speed, where a few graphics cards are able to be used in place of a small CPU cluster (generally for simulations and modeling tasks).
0 comments:
Post a Comment