We recently announced the availability of C++ AMP GPU debugging on Windows 7 and Windows Server 2008 R2 platforms. Now that the RTM version of Windows 7 platform update has been released, we are happy to announce the availability of one more feature: C++ AMP CPU fallback support on Windows 7. So what does it mean?
Earlier, on a Windows 7 machine with no C++ AMP capable graphics card, if you try to enumerate over all the accelerators using accelerators::get_all() function you would have gotten the following output:
As you are familiar, CPU accelerator cannot be used for computation (not yet), while Software adapter (or direct3d_ref) is a single threaded software emulator. While you can run C++ AMP code on the direct3d_ref accelerator, this accelerator corresponds to the DirectX reference rasterizer and is very slow. It is meant to be used for driver validation and for debugging when GPU hardware debugging is not present. So for all practical purpose, there are no accelerators available in Windows 7 other than hardware GPUs. In fact if you run the sample code provided in the C++ AMP book by Kate Gregory and Ade Miller, you will get the message "No accelerators found that are compatible with C++ AMP".
When you install the platform update or Internet Explorer 10, apart from debugging support, you will get the CPU fallback support also. To install the platform update, select the appropriate file to download (based on your machine's architecture) and proceed through the series of steps to complete the installation. Restart the computer when prompted. Run the same code again and you will notice a difference
Apart from ref, there is one more software Adapter present, direct3d\warp. You can learn more about WARP, which stands for Windows Advanced Rasterization Platform (WARP), on this MSDN page. With this update, WARP now support DirectX11 DirectCompute 5.0, thereby enabling support for running C++ AMP code. Please do note that WARP does not have double precision support. As always, any feedback or comments are welcome either below or at the forum.