Previous | Next --- Slide 48 of 56
Back to Lecture Thumbnails

Why didn't the GPUs before the latest Intel Integrated GPUs implement cache coherence? It is understandable to prioritize performance, but how would the GPUs deal with the problems brought by cache coherence? And why would the latest Intel Integrated GPUs implement cache coherence now?


@zvonryan there is really nothing in place for allowing discrete GPUs to be cache coherent with the CPU. The Intel GPUs can integrate cache coherence because they are on the same die as the CPU, and Intel can decide to make a hardware solution for cache coherence here. All cache coherence would have to be done over PCIe and through the processor, and due to the structure of GPUs the overhead incurs a tremendous overhead. This is all less than ideal.

A better system design would be having the bus used for external communication to cooperate with the accelerator and both having direct access to the memory system (essentially, treating the accelerator as another core). This would reduce the overhead, but aside from CAPI on POWER 8 there is not much out there along these lines.


@zvonryan. Because there isn't a strong need for memory coherence in 3D graphics applications, which is the primary application that GPUs are designed to execute. For example, in assignment 2 you wrote a fairly complex CUDA renderer on a NVIDIA GPU with no support for cache coherence, and your program ran just fine!