C++ developers will be able to create massively parallel applications on GPUs from the next version of Visual Studio thanks to C++AMP.
Microsoft announced a new technology called C++ Accelerated Massive Parallelism, C++ AMP, at AMD’s Developer Fusion Summit this week which is to be included in the next version of Visual Studio.
Herb Sutter, Principal Architect, Native Languages at Microsoft gave a keynote in which he discussed the forthcoming changes to C++, and gave a demo of a C++ AMP application that makes use of a number of systems, from workstations to netbooks, switching from using CPU to integrated GPU to discrete GPU resources.
You can watch the video of the talk here:
Sutter described the problem of "the jungle of heterogeneity", in which multiple types of processing cores each are best for certain types of workloads, so a particular CPU might suit one type of workload while a GPU would be better for another. Sutter’s point is that it’s difficult for mainstream programmers to write a single app that makes use of the best processing core is used for different problems, but that programmers need to be able to write code that works with heterogeneous systems.
According to Microsoft’s Daniel Moth, who gave the demo at the conference, C++AMP lowers the barrier to entry for heterogeneous hardware programmability and brings performance to the mainstream, without sacrificing developer productivity or solution portability. He says developers won’t need to use a different compiler or learn different syntax as the technology is part of Visual C++, will be fully integrated and supported in Visual Studio vNext, and will introduce only one core C++ language extension.
While the full version of C++ Amp won’t be released till the next version of Visual Studio, elements of it will be made available as they are ready. As they say "watch this space"...
A video from SIGGRAPH 2014 presents a fully automatic approach to realtime facial tracking and animation which doesn't require calibration for different individuals and seems suitable for deployment i [ ... ]