Just need some clarification on GPU bandwidth in relation to the PCI Express transfer rate. It will help me understand how graphic cards actually work...
So to calculate the bandwidth:
Memory Speed x Bus Width / 8 = Bandwidth (B/s)
So if my graphics card has a bus width of 256 bits and memory speed was 900MHz on a GDDR3:
Bandwidth = 900MHz * 256 / 8 = 28GB/s (28GB/s * 2 = 57GB/s because GDDR3 is double data rate)
A single lane on PCI Express v1.0 has a transfer rate of 250MB/s, so 16 lanes will be 4GB/s.
What is confusing me is that the interface (PCIe) has a transfer rate of 4GB/s but the graphics card has a transfer rate of 57GB/s.
Question: So would this not cause a bottleneck because the interface can only transfer 4GB/s?
You've correctly identified that the internal memory speed of a graphics card is significantly higher than the speed it can communicate with external devices (particularly system RAM).
Loading data (for GPGPU) or textures (for 3D rendering) from main memory to GPU memory is relatively slow, and this is well-known in the industry. Once the data is stored in the GPU's memory, the much higher internal bandwidth is what allows the GPU's compute units to work effectively and deliver far more performance than a CPU.