Xbox 360 vs. PS3 (Part 3 of 4)

GPU
Even ignoring the bandwidth limitations the PS3’s GPU is not as powerful as the Xbox 360’s GPU.

Below are the specs from Sony’s press release regarding the PS3’s GPU.

RSX GPU
? 550 MHz
? Independent vertex/pixel shaders
? 51 billion dot products per second (total system performance)
? 300M transistors
? 136 ?oshader operations? per clock

The interesting ALU performance numbers are 51 billion dot products per second (total system performance), 300M transistors, and more than twice as powerful as the 6800 Ultra.

The 51 billions dot products per cycle were listed on a summary slide of total graphics system performance and are assumed to include the Cell processor. Sony’s calculations seem to assume that the Cell can do a dot product per cycle per DSP, despite not having a dot product instruction.

However, using Sony’s claim, 7 dot products per cycle * 3.2 GHz = 22.4 billion dot products per second for the CPU. That leaves 51 ?” 22.4 = 28.6 billion dot products per second that are left over for the GPU. That leaves 28.6 billion dot products per second / 550 MHz = 52 GPU ALU ops per clock.

It is important to note that if the RSX ALUs are similar to the GeForce 6800 ALUs then they work on vector4s, while the Xbox 360 GPU ALUs work on vector5s. The total programmable GPU floating point performance for the PS3 would be 52 ALU ops * 4 floats per op *2 (madd) * 550 MHz = 228.8 GFLOPS which is less than the Xbox 360’s 48 ALU ops * 5 floats per op * 2 (madd) * 500 MHz= 240 GFLOPS.

With the number of transistors being slightly larger on the Xbox 360 GPU (330M) it’s not surprising that the total programmable GFLOPs number is very close.

The PS3 does have the additional 7 DSPs on the Cell to add more floating point ops for graphics rendering, but the Xbox 360’s three general purpose cores with custom D3D and dot product instructions are more customized for true graphics related calculations.

The 6800 Ultra has 16 pixel pipes, 6 vertex pipes, and runs at 400 MHz. Given the RSX’s 2x better than a 6800 Ultra number and the higher frequency of the RSX, one can roughly estimate that it will have 24 pixel shading pipes and 4 vertex shading pipes (fewer vertex shading pipes since the Cell DSPs will do some vertex shading). If the PS3 GPU keeps the 6800 pixel shader pipe co-issue architecture which is hinted at in Sony’s press release, this again gives it 24 pixel pipes* 2 issued per pipe + 4 vertex pipes = 52 dot products per clock in the GPU.

If the RSX follows the 6800 Ultra route, it will have 24 texture samplers, but when in use they take up an ALU slot, making the PS3 GPU in practice even less impressive. Even if it does manage to decouple texture fetching from ALU co-issue, it won’t have enough bandwidth to fetch the textures anyways.

For shader operations per clock, Sony is most likely counting each pixel pipe as four ALU operations (co-issued vector+scalar) and a texture operation per pixel pipe and 4 scalar operations for each vector pipe, for a total of 24 * (4 + 1) + (4*4) = 136 operations per cycle or 136 * 550 = 74.8 GOps per second.

Given the Xbox 360 GPU’s multithreading and balanced design, you really can’t compare the two systems in terms of shading operations per clock. However, the Xbox 360’s GPU can do 48 ALU operations (each can do a vector4 and scalar op per clock), 16 texture fetches, 32 control flow operations, and 16 programmable vertex fetch operations with tessellation per clock for a total of 48*2 + 16 + 32 + 16 = 160 operations per cycle or 160 * 500 = 80 GOps per second.

Overall, the automatic shader load balancing, memory export features, programmable vertex fetching, programmable triangle tesselator, full rate texture fetching in the vertex shader, and other ?owell beyond shader model 3.0? features of the Xbox 360 GPU should also contribute to overall rendering performance.

I have closed comments on this series of posts, except part 4 in order to keep the discussion around this in one area. You can comment here