I’ve been learning about C++ AMP, and everything I’ve seen stresses that AMP works on “accelerators”, not just GPUs. I think that today, all accelerators are GPUs, but in the future there may be different types of accelerators. So what else could be an accelerator? Are new types of accelerators being developed now or is AMP just trying to be future proof?
I’ve been learning about C++ AMP, and everything I’ve seen stresses that AMP works
Share
An accelerator represents a device which can execute C++ AMP code. You are right, in majority of cases it will be a GPU, but even in Visual Studio 2012 there are other types of accelerators available.
An example of such accelerator would be a Windows Advanced Rasterization Platform (WARP) device, it is a CPU fallback that takes advantage of multi-core and SSE2. For more information on WARP please see:
Yet another would be software reference device, an emulator which is useful for debugging. For more on reference device see:
http://blogs.msdn.com/b/nativeconcurrency/archive/2012/03/11/direct3d-ref-accelerator-in-c-amp.aspx
In the Visual Studio 2012, C++ AMP accelerator that can execute amp-restricted code is required to support DirectX11. Please note that such requirement does not mean that all accelerators would be a GPUs, e.g. WARP, reference device, AMD Fusion or Intel Ivy Bridge. In the future we might be relaxing the DirectX11 requirement to allow more accelerators that are capable of executing data parallel algorithms.