by Anton Shilov
04/15/2009 | 12:44 PM
In spite an old saying, sometimes you can teach an old dog new tricks. Microsoft DirectX 11 application program interface (API) due later this year will enable support of compute shaders 4.0 version on DirectX 10-class graphics chips, giving them additional programmability and simplifying implementation of the new technology.
General-purpose processing on graphics processing units (GPGPU) is gaining popularity slowly, but surely. Unfortunately, at present there is only one standard application programming interface – OpenCL - that supports all graphics chips available today. But apparently, DirectX 11, which will enable GPGPU, physics, artificial intelligence, etc. programming via compute shaders, will also be able to take advantage of present GPUs, albeit with some limitations.
In order to popularize compute shaders (CS) among developers, the DirectX 11 includes not only compute shaders 5.0, but also compute shaders 4.0 (for Direct X10 hardware) and 4.1 (for DirectX 10.1 hardware), which are not supported by DirectX 10. Compute shaders 4.0/4.x have a number of limitations compared to version 5.0, including maximum number of threads per group (768), thread group shared memory (16KB vs. 32KB in CS 5.0), absence of atomic operations or append/consume and so on. CS 5.0 will also offer better interaction with graphics pipeline (e.g., it can output to textures), double precision and so on.
The main aim of compute shaders 4.x is to allow game developers to practice with compute shaders technology, enable GPGPU via DirectX as well as let game developers to use CS for complex rendering-related tasks instead of pixel shaders so to gain performance.
Beta version of DirectX 11 as well as drivers that support compute shaders 4.x are available from Microsoft, ATI/AMD as well as Nvidia.