High Performance Computing Usin Fpga
This paper describes how FPGA is compatible for the High Performance Computing System. In this paper High performance computing systems using FPGAs and FPGA use models are described. I. Introduction Due to high application demand conventional processors are unable to deliver desired performance. So hardware acceleration is required to meet high performance. This is done by parallel computing and by connecting application specification processors.
Because of low price, low power consumption and high performance FPGAs are used in the basic coprocessor design. Until 2000, single core CPU based systems are used for High Performance Computing (HPC) application. In single core processors to increase performance, if frequency is increased power also increases with it to an impractical level. So to meet high application demand General purpose CPU vendors changed the course and introduced multicore processors to meet high performance demand. CPU based system connected with hardware accelerators as coprocessors are an alternative to CPU-only systems.
GPUs, FPGAs are hardware accelerators with which system can attain high performance level which was previously unattainable. II. High Performance Computing System High performance computing is required for Servers and for embedded computers. A. High Performance Server Systems with high performance server are used by scientists, engineers and analysts to analyse large quantity of data. Systems having high performance servers range from server farms to super computers. A summary of different industries and application are provided in Table I. TABLE I Application for high performance server
IndustryApplication Financial servicesOptions valuation and risk analysis of assets Geoscience and engineeringSeismic modeling and analysis and simulation Government LabClimate modeling, nuclear waste modeling B. High Performance Embedded Computers These are the computers which are incorporated with equipment or appliance to compute intensive data task. Summary of different application in industries of embedded computers are given in Table II. Table II Application for High Performance Computer IndustryApplication
CommunicationEncryption in network routes Medical ImagingImage rendering in CT and MRI scanners DefenceBeam Foaming in Radars III. Computing Using FPGA Now a days FPGAs are used in wide range of applications in the HPC servers and embedded computers. In the beginning around 1980 FPGAs are used only for high performance in custom computed machines. Because of their relative high cost their usage was very less. But over the years due to advancement in process technology, increased number of transistors in single chip (multi-million) and their low cost their usage is now increased.
These developments have made it feasible to perform massive computation on single chip at higher efficiency and at lower cost. A. Parallelism Offered by FPGA Architecture: The FPGAs are composed of input/output blocks (IOB), digital signal processing blocks (DSP), Configurable logic blocks (CLB) and block RAM. In FPGA, CLBs and DSPs are programmed to perform ALU operations. We can also program CLBs for the functions which are only needed by the application. This increases the computation efficiency. In FPGA CLBs and DSPs can perform bitwise, floating point and integer operation depending upon operators used.
Results from these operations are stored in registers of CLBs, DSPs and block RAM. We can also connect the output of one operator to input of the next, means FPGA’s architecture lends itself to the design of data flow engines. Fig. 1 High level block diagram of FPGA In FPGA architecture both instruction and data level parallelism are available. This is because of the FPGA architecture which provides flexibility to create application based massive arrays. In FPGA data flows between operators. So there are no inefficiencies like processor cache missing.