AMD FireStream

From Wikipedia, the free encyclopedia
Jump to: navigation, search
AMD FireStream
Design firm Advanced Micro Devices
Introduced 2006
Discontinued 2012[1]
Type stream processing, GPGPU

AMD FireStream is AMD's brand name for their product line targeting stream processing and/or GPGPU in supercomputers. Originally developed by ATI Technologies until the company was acquired by AMD in 2006, the product line was previously branded as both ATI FireStream and AMD Stream Processor.[2] The AMD FireStream can also be used as a floating-point co-processor for offloading CPU calculations, which is part of the Torrenza initiative.

Overview[edit]

Since the release of the past-generation Radeon R520 and GeForce G70 GPU cores, the programmable shaders architecture with large floating-point (FP) throughput has drawn more attention from academic and commercial interest groups, primarily for its ability to process data besides its original intended use of rendering visual effects. Due to the displayed interest, more resources were allocated towards developing GPGPU products — responsible for calculating general purpose mathematical formulas — to process heavy calculations which were previously running on mainstream servers, desktop Central Processing Units (CPU), and specialized floating-point math co-processors. GPGPUs were projected to have performance gains upwards of a factor of 10 when compared to CPU-only projections.

Similar GPGPUs appeared as early as the early 2000s. BionicFX was experimenting with processing audio data with a GeForce 6800 video card, announcing the Audio Video EXchange (AVEX) framework,[3] with similar trials being performed by ATI at about the same time. Another example is the Folding@home distributed computing research program from Stanford University. This was the first piece of software to use the Radeon R580 GPU and other ATI GPU cores, equipped with a special beta version of the ATI Catalyst driver (version 6.5), to perform computations unrelated to graphics. Since May 2006, it has used the GPU cores to accelerate the simulation of protein folding in order to investigate protein-related diseases. At this time, the ATI FireStream was in its planning stages.

With the acquisition of ATI complete, AMD officially announced the reconstruction of branding and announced the AMD Stream Processor (originally the ATI FireStream) on November 15, 2006 as the industry's first commercially available hardware stream processing solution. Based on an ATI Radeon X1900 video card, the AMD Stream Processor is a specialized add-on card that implements the R580 Graphics Processing Unit (GPU). However, it was targeted at complex floating-point calculations used in scientific and financial fields instead of 3D graphics acceleration. AMD claimed that this processor had 8 times the floating-point performance over traditional graphics data processing.[4]

In fact, ATI had put considerable effort into research and development (R&D) of a GPGPU product before their purchase by AMD,[5] and announced the adoption of the stream processing/GPGPU concept in its line of GPU cores in 2006, codenamed Radeon R580.

The brand was further renamed to AMD FireStream with the second generation of stream processors (based on a 55 nm process), released on November 8, 2007.[6] Future plans include the development of a stream processor on an MXM module, intended for embedded applications and next generation products in the fourth quarter of 2008.[7]

Hardware[edit]

See also: Close to Metal

The Radeon series graphics processors are 32-bit single-precision floating point vector processors. Due to the highly parallel nature of vector processors, these processors have had a huge impact in specific data processing applications. The mass client project Folding@home has reported speed improvements of 20 to 40 times using an R580-based graphics card.[8]

The Radeon R580 core includes a total of 48 pixel and vertex shaders, which become parallel processors in floating-point calculations. The ATI FireStream add-on card uses the PCI Express x16 interface to provide 8 GiB/s bandwidth. The card is equipped with 1 GB GDDR3 local memory while the GPU runs at 600 MHz core frequency and 1.3 GHz memory frequency. The core has the ability to execute 512 threads simultaneously (Simultaneous multithreading, SMT), at a rated thermal design power (TDP) of 165 W. The main difference between the AMD FireStream and ordinary Radeon series video cards is that the stream processor on the FireStream lacks video output connectors.

The stream processing hardware comes with a hardware interface called THIN (Thin Hardware INterface), or Close to Metal (CTM, previously named Data Parallel Virtual Machine), to open the GPU architecture in addition to native instruction sets to program developers. This allows to direct control of the stream processors/ALUs and the memory controllers, and permits bypassing of the 3D API layer.

The AMD Stream Processing lineup saw an update to the latest GPU architecture (the Radeon R600) with the release of the latest-generation FireGL video cards on August 7, 2007, which are also capable of stream processing. The architecture was manufactured on the same 80 nm fabrication process node as R580, with more parallel processors and stream processing units. In addition, the maximum GDDR4 memory was increased to 2 GB, providing a maximum of 128 GiB/s of memory bandwidth. The R600 XTX core-based FireGL products released (FireGL V8600 and FireGL V8650) consume more power than the first-generation ATI FireStream, with rated TDP of under 225 W and over 255 W respectively.

The second generation, the AMD FireStream 9170, is based on the RV670 core and is constructed using a 55 nm fabrication process. It features industry's first hardware-based support for double-precision floating-point numbers, asynchronous DMA (giving the stream processors and onboard memory the ability to exchange data without CPU intervention), memory export functionality, and reduced power consumption (less than 150 W with 2 GB GDDR3 memory onboard on a PCI-E 2.0 interface, providing 16 GiB/s device I/O bandwidth).[9]

The latest generation of products in the AMD FireStream line is FireStream 9250 and 9270. The AMD FireStream 9250, announced on June 16, 2008, is based on the RV770 core and is manufactured using 55 nm fabrication process. It features 1 TFLOPS of raw floating-point power on single-precision operations, 1 GiB of GDDR3 memory and a single-slot cooler. While the other variant, the AMD FireStream 9270, announced on November 13, 2008, also features the RV770 core but with a higher floating point operation performance at 1.2 TFLOPS peak, 2 GB of GDDR5 memory and a dual-slot cooler.

AMD stream processing lineup[edit]

The hardware specifications of stream processors released by AMD (and previously ATI) are summarized as follows:

Generation Model Video card
equivalent
GPU Core Threads
max.
Core Memory Raw processing power
(Floating-Point Operations per Second)
Peak TDP (watts) Others
SPUs NB1 Clock
(MHz)
Bandwidth (GiB/s) Type Bus width
(bit)
Amount
(MiB)
Clock
(MHz)
FP32 GFLOPs FP64 GFLOPs
1st NB2 580[7]/2U[10] Radeon X1900 XTX R580 512 48 600 83.2 GDDR3 256 1024 650 375[11] N/A ≤165
2nd NB2 9170[9][12] Radeon HD 3870 RV670 ? 64
(320)
800 51.2 GDDR3 256 2048 800 512 102.4 NB3[13] ≤105
3rd NB2 9250[14] Radeon HD 4850 RV770 16,384[15] 160
(800)
625 63.5 GDDR3 256 1024 993 1000 200 NB3 ≤150
9270[16] Radeon HD 4870 750 108.8 GDDR5 256 2048 850 1200 240 NB3 <160
4th NB2 9350 Radeon HD 5850 Cypress (RV870) 31,744[17] 288
(1440)
700 128 GDDR5 256 2048 1000 2016 403.2 150 codenamed Kestrel
9370 Radeon HD 5870 320
(1600)
825 147.2 256 4096 1150 2640 528 225 codenamed Osprey

Notes:

NB1: The number of Stream Processing Units (SPU) can only be applied to DirectX 10-compatible hardware and above, which contains unified shaders. Also note that the Stream Processing Units in ATI hardware implementations is architecturally different from NVIDIA's implementation of Stream Processors in Tesla products. The SP in NVIDIA's implementation has a hot clock domain which runs higher frequency than the other parts of the core, while SPUs in ATI's implementation have the same clock frequency as the core and don't feature a hot clock domain.
NB2: The first generation of products originally used the ATI FireStream brand, and were re-branded as AMD Stream Processor after the brand reconstruction act that was followed by AMD's acquisition of ATI. AMD refers to the RV670-based AMD FireStream 9170 because no R600-based AMD Stream Processors were released under the stream processing lineup (although prototype cards were publicly demonstrated with similar configurations as the FireGL V8650 without video output capabilities). Since the FireGL 2007 series, the high-end and ultra high-end FireGL products have implemented stream processing support. This feature is also available on all ATI FirePro cards.
NB3: Estimated to be one-fifth of the theoretical figure for single-precision operations.

Software[edit]

The AMD FireStream was launched with a wide range of software platform support. One of the supporting firms was PeakStream (acquired by Google in June 2007), who was first to provide an open beta version of software to support CTM and AMD FireStream as well as x86 and Cell (Cell Broadband Engine) processors. The FireStream was claimed to be 20 times faster in typical applications than regular CPUs after running PeakStream's software[citation needed]. RapidMind also provided stream processing software that worked with ATI and NVIDIA, as well as Cell processors.[18]

Software Development Kit[edit]

After abandoning their short-lived Close to Metal API, AMD focused on OpenCL. AMD first released its Stream Computing SDK (v1.0), in December 2007 under the AMD EULA, to be run on Windows XP.[18] The SDK includes "Brook+", an AMD hardware optimized version of the Brook language developed by Stanford University, itself a variant of the ANSI C (C language), open-sourced and optimized for stream computing. The AMD Core Math Library (ACML) and AMD Performance Library (APL) with optimizations for the AMD FireStream and the COBRA video library (further renamed as "Accelerated Video Transcoding" or AVT) for video transcoding acceleration will also be included. Another important part of the SDK, the Compute Abstraction Layer (CAL), is a software development layer aimed for low-level access, through the CTM hardware interface, to the GPU architecture for performance tuning software written in various high-level programming languages.

In August 2011, AMD released version 2.5 of the ATI APP Software Development Kit,[18] which includes support for OpenCL 1.1, a parallel computing language developed by the Khronos Group. The concept of compute shaders, officially called DirectCompute, in Microsoft's next generation API called DirectX 11 is already included in graphics drivers with DirectX 11 support.

APP SDK[edit]

AMD Stream SDK was replaced by AMD APP SDK, available for Microsoft Windows and Linux, 32-bit and 64-bit. APP stands for "Accelerated Parallel Processing".[19] and also targets Heterogeneous System Architecture.

Advantages[edit]

According to an AMD-demonstrated system[20] with two dual-core AMD Opteron processors and two Radeon R600 GPU cores running on Microsoft Windows XP Professional, 1 teraflop (TFLOP) can be achieved by a universal multiply-add (MADD) calculation. By comparison, an Intel Core 2 Quad Q9650 3.0 GHz processor at the time could achieve 48 GFLOPS.[21]

Recent demonstrations showed that, in Kaspersky SafeStream anti-virus scanning tests optimized for AMD stream processors, the system with two AMD stream processors with dual Opteron processors spotted 6.2 Gbit/s (775 MiB/s) bandwidth, 21 times faster when compared to other dual-processor systems. The stream processor systems also showed only 1-2% CPU use, which indicates significant offloading from the CPU to the stream processor.[22]

Limitations[edit]

  • Recursive functions are not supported in Brook+ because all function calls are inlined at compile time. Using CAL, functions (recursive or otherwise) are supported to 32 levels.[23]
  • Only bilinear texture filtering is supported; mipmapped textures and anisotropic filtering are not supported at this time.
  • Functions cannot have a variable number of arguments. The same problem occurs for recursive functions.
  • Conversion of floating-point numbers to integers on GPUs is done differently than on x86 CPUs; it is not fully IEEE-754 compliant.
  • Doing "global synchronization" on the GPU is not very efficient, which forces the GPU to divide the kernel and do synchronization on the CPU. Given the variable number of multiprocessors and other factors, there may not be a perfect solution to this problem.
  • The bus bandwidth and latency between the CPU and the GPU may become a bottleneck, which may be alleviated in the future by introducing interconnects with higher bandwidth.

See also[edit]

References[edit]

  1. ^ "R.I.P: FireStream (2006 - 2012)". AnandTech. 2012-08-14. 
  2. ^ AMD Press Release
  3. ^ ExtremeTech report, retrieved July 17, 2007
  4. ^ AMD “Close to Metal” Technology Unleashes the Power of Stream Computing: AMD Press Release, November 14, 2006.
  5. ^ ATI DPVM SIGGRAPH 2006 sketch PDF (134 KiB), ATI DVPM SIGGRAPH 2006 Presentation PDF (671 KiB)
  6. ^ AMD Press Release, retrieved November 12, 2007
  7. ^ a b AMD WW HPC 2007 presentation  PDF (8.81 MiB), page 37 of 53
  8. ^ AnandTech report: ATI's Stream Processing & Folding@home, September 30, 2006
  9. ^ a b Business Wire coverage, retrieved November 8, 2007
  10. ^ ATI Vendor ID page, retrieved February 26, 2008. "Product name, GPU, PCI Device ID: ATI FireStream 2U, R580, 724E; ATI FireStream 2U Secondary, R580, 726E"
  11. ^ R580 shader core FLOPs
  12. ^ AMD FireStream 9170 - Product page
  13. ^ "AMD's RV670 does double-precision at half the speed". Tigervision Media. 1 February 2008. 
  14. ^ AMD FireStream 9250 - Product page
  15. ^ Mantor, Michael (2008). Entering the Golden Age of Heterogeneous Computing – C-DAC PEEP2008. AMD. p. 11. 
  16. ^ AMD FireStream 9270 - Product page
  17. ^ Heterogeneous Computing: OpenCL and the ATI Radeon HD 5870 (“Evergreen”) Architecture, slide 56 of 80, accessed on August 21, 2010
  18. ^ a b c AMD APP SDK download page and Stream Computing SDK EULA, retrieved December 29, 2007
  19. ^ "AMD APP SDK OpenCL™ Accelerated Parallel Processing". 
  20. ^ HardOCP report, retrieved July 17, 2007
  21. ^ Intel microprocessor export compliance metrics
  22. ^ The Inquirer report, retrieved September 12, 2007
  23. ^ AMD Intermediate Language Reference Guide, August 2008

External links[edit]

Applications[edit]