C++ AMP es una biblioteca (y como parte de ella también se introdujo una extensión del lenguaje de claves). Como C++ AMP es una especificación abierta, puede implementarse en cualquier otro idioma de bajo nivel. La implementación de Microsoft se basa en DirectCompute (y por lo tanto en HLSL), pero está completamente oculta para usted cuando usa C++ AMP (razón por la cual C++ AMP puede ser una especificación abierta, no expone DirectX en la superficie API). Para más información sobre C++ AMP, por favor siga los recursos a la derecha de nuestro blog (vamos a seguir añadiendo a eso): http://blogs.msdn.com/b/nativeconcurrency/
Usted hizo una declaración acerca de Microsoft trabajando con NVIDIA para mejorar el rendimiento de C++ AMP - que no es cierto. Microsoft ha trabajado con NVIDA, AMD y otros socios para crear la especificación abierta C++ AMP. Microsoft también trabaja con proveedores de hardware para asegurarse de que los proveedores de hardware tengan controladores de tarjeta de video estables, que son necesarios para que cualquier tecnología de cómputo GPU funcione correctamente.
Usted también expresó confusión y tiró algunos términos. OpenCL es una aproximación a la computación GPU (por Khronos), al igual que DirectCompute (de Microsoft), al igual que CUDA (por NVIDIA). Todas estas son tecnologías separadas, cada una con su propio camino a la GPU (siempre a través de un controlador de algún tipo), cada una con sus propios méritos, fortalezas y desventajas. Uno no reemplaza al otro, y uno no es universalmente mejor que el otro. Ahora también tiene C++ AMP en esa mezcla, como una opción más, y las mismas afirmaciones se aplican a eso. La elección es suya en cuanto a cuál decide usar.
¿Importa si el compilador C++ - AMP genera código de máquina GPU directamente, o genera código C y lo pasa al compilador CUDA o OpenCL? De cualquier manera, escribe C++ - AMP en lugar de CUDA o OpenCL. –
Además, no existe una "tarjeta de video CUDA". CUDA no se implementa en hardware, se convierte (compila) al conjunto de instrucciones nativas de la GPU (es decir, Fermi). –
La [especificación AMP de C++] (http://download.microsoft.com/download/4/0/E/40EA02D8-23A7-4BD2-AD3A-0BFFFB640F28/CppAMPLanguageAndProgrammingModel.pdf) no hace mención de CUDA o OpenCL. – ildjarn