GPU Data Flow Architecture

directxgpu

I am currently working on CUDA, DirectX. I want to know the data flow architecture of GPUs. The one presented for CUDA and DirectX are parallel programming model and graphics pipelines respectively. But, I want to know the data flow architecture (like, the data flow architecture of 8086 processors).

Best Answer

You're making the mistake of assuming that GPU architectures are as well-defined and consistent as CPU architectures; this isn't the case. GPU architectures can and will vary between different manufacturers, and can and do vary even between different hardware generations from the same manufacturer.

What APIs model is a graphics pipeline, which describes at quite a high level how the various stages interact. A recent example (for D3D11) may be viewed here: http://msdn.microsoft.com/en-us/library/windows/desktop/ff476882%28v=vs.85%29.aspx

Microsoft also publish register specs for D3D versions; for example the specs for vs_3_0 are here: http://msdn.microsoft.com/en-us/library/windows/desktop/bb172963%28v=vs.85%29.aspx

Both of these are still at a fairly high level and are API-specific rather than hardware-related. As explained above, there is not going to be any single set of hardware-specific info. Even if there was, you would not be able to make use of it as modern operating systems disallow direct access to hardware, and even if you could, any code you write making use of it would have a high risk of not being valid on other manufacturer's hardware, or on other hardware from the same manufacturer.

That's one of the reasons why graphics APIs exist - because all hardware is so different it's just not possible to meaningfully and usefully access the hardware at a lower level. In other words, the kind of info you're asking for is something that you shouldn't have to worry about - that's the job of the API and driver; you worry about your own code.

Related Topic