TeraScale is the codename for a family of graphics processing unit microarchitectures developed by ATI Technologies/AMD and their second microarchitecture implementing the unified shader model following Xenos. TeraScale replaced the old fixed-pipeline microarchitectures and competed directly with Nvidia's first unified shader microarchitecture named Tesla.
TeraScale is the codename for a family of graphics processing unit microarchitectures developed by ATI Technologies/AMD and their second microarchitecture implementing the unified shader model following Xenos. TeraScale replaced the old fixed-pipeline microarchitectures and competed directly with Nvidia's first unified shader microarchitecture named Tesla.
소개 자세히 읽기
TeraScale is the codename for a family of graphics processing unit microarchitectures developed by ATI Technologies/AMD and their second microarchitecture implementing the unified shader model following Xenos. TeraScale replaced the old fixed-pipeline microarchitectures and competed directly with Nvidia's first unified shader microarchitecture named Tesla.
TeraScale was used in Radeon HD 2000 manufactured in 80 nm and 65 nm, Radeon HD 3000 manufactured in 65 nm and 55 nm, Radeon HD 4000 manufactured in 55 nm and 40 nm, Radeon HD 5000 and Radeon HD 6000 manufactured in 40 nm. TeraScale was also used in the AMD Accelerated Processing Units code-named "Brazos", "Llano", "Trinity" and "Richland". TeraScale is even found in some of the succeeding graphics cards brands.
TeraScale is a VLIW SIMD architecture, while Tesla is a RISC SIMD architecture, similar to TeraScale's successor Graphics Core Next.
TeraScale implements HyperZ.
An LLVM code generator (i.e. a compiler back-end) is available for TeraScale, but it seems to be missing in LLVM's matrix. E.g. Mesa 3D makes use of it.
TeraScale 1 (VLIW5)
TeraScale was first announced and released with the Radeon HD 2000 series in 2007. At SIGGRAPH 08 in December 2008, AMD employee Mike Houston described some details of the TeraScale microarchitecture.
At FOSDEM09 Matthias Hopf from AMDs technology partner SUSE Linux presented a slide regarding the programming of open-source driver for the R600.
Unified shaders
Previous GPU architectures implemented fixed-pipelines, i.e. there were distinct shader processors for each type of shader. TeraScale leverages many flexible shader processors which can be scheduled to process a variety of shader types, thereby significantly increasing GPU throughput (dependent on application instruction mix as noted below). The R600 core processes vertex, geometry, and pixel shaders as outlined by the Direct3D 10.0 specification for Shader Model 4.0, in addition to full OpenGL 3.3 support.
The new unified shader functionality is based upon a very long instruction word (VLIW) architecture in which the core executes operations in parallel.
A shader cluster is organized into 5 stream processing units. Each stream processing unit can retire a finished single precision floating point MAD (or ADD or MUL) instruction per clock, dot product (DP, and special cased by combining ALUs), and integer ADD. The 5th unit is more complex and can additionally handle special transcendental functions such as sine and cosine. Each shader cluster can execute 6 instructions per clock cycle (peak), consisting of 5 shading instructions plus 1 branch.
Hardware tessellation
Ultra-threaded dispatch processor
Although the R600 is a significant departure from previous designs, it still shares many features with its predecessor, the Radeon R520. The Ultra-Threaded Dispatch Processor is a major architectural
Notably, the VLIW architecture brings with it some classic challenges inherent to VLIW designs, namely that of maintaining optimal instruction flow. Additionally, the chip cannot co-issue instructions when one is dependent on the results of the other. Performance of the GPU is highly dependent on the mixture of instructions being used by the application and how well the real-time compiler in the driver can organize said instructions.
An R600 core includes 64 shader clusters, while RV610 and RV630 cores have 8 and 24 shader clusters respectively.
TeraScale includes multiple units capable of carrying out tessellation. These are similar to the programmable units of the Xenos GPU which is used in the Xbox 360.
Tessellation was officially specified in the major APIs starting with DirectX 11 and OpenGL 4.0. TeraScale 1 based GPUs (HD 2000, 3000 and 4000 series) are only conformant to Direct3D 10 and OpenGL 3.3 and implements therefore a different tessellation principle which uses vendor specific API extensions. The TeraScale 2 based GPUs (starting with the Radeon HD 5000 series) were the first to conform with both Direct3D 11 and OpenGL 4.0 tesselation techniques. Although the TeraScale 1 tessellator is simpler in design, it is described by AMD as a subset of the later tesselation standard.
The TeraScale tessellator units allow the developers to take a simple polygon mesh and subdivide it using a curved surface evaluation function. There are different tessellation forms, such as Bézier surfaces with N-patches, B-splines and NURBS, and also some subdivision techniques of the surface, which usually includes displacement mapping some kind of texture. Essentially, this allows a simple, low-polygon model to be increased dramatically in polygon density in real-time with very small impact on the performance. Scott Wasson of Tech Report noted during an AMD demo that the resulting model was so dense with millions of polygons that it appeared to be solid.
The TeraScale tessellator is reminiscent of ATI TruForm, the brand name of an early hardware tessellation unit used initially in the Radeon 8500.
ATI TruForm received little attention from software developers. A few games (such as Madden NFL 2004, Serious Sam, Unreal Tournament 2003 and 2004, and unofficially Morrowind), had the support for ATI's tesselation technology included. Such a slow adaptation has to do with the fact that it was not a feature shared with NVIDIA GPUs, since those had implemented a competing tessellation solution using Quintic-RT patches which achieved even less support from the major game developers. Since the Xbox 360's GPU is based on the ATI's architecture, Microsoft saw the hardware-accelerated surface tessellation as a major GPU feature. A couple of years later the tesselation feature became mandatory with the release of the DirectX 11 in 2009.
While the tessellation principle introduced with TeraScale was not part of the OpenGL 3.3 or Direct3D 10.0 requirements, and competitors such as the GeForce 8 series lacked similar hardware, Microsoft added the tessellation feature as part of their DirectX 10.1 future plans. Finally, Microsoft introduced tessellation as a required capability not with DirectX 10.1 but DirectX 11.
GCN geometric processing is AMD's (which acquired the ATI's GPU business) most current solution for carrying out tessellation using the GPU.