Microsoft ejecuta su AMP - Calendae | Informática, Electrónica, CMS, Ciberseguridad

Microsoft ejecuta su AMP

Hola de nuevo. En el teclado Simón Sánchez y esta vez hablaremos sobre Microsoft ejecuta su AMP

Microsoft anunció en junio pasado una nueva especificación llamada C ++ AMP (AMP significa Accelerated Massive Parallelism), un medio para aprovechar el hardware paralelo de datos en el lenguaje C ++. Siete meses después y con la ayuda de NVIDIA y AMD, Microsoft lanzó el Especificaciones de C ++ AMP.

Los programas escritos en la especificación AMP podrán usar tanto CPU como GPU, la idea es hacer que el procesamiento heterogéneo sea más transparente para el programador. El proceso es bastante sencillo para los desarrolladores porque los programas están esencialmente escritos en C ++, con algunas características de lenguaje adicionales y llamadas de biblioteca en tiempo de ejecución agregadas para permitir el procesamiento de datos en paralelo.

Microsoft Descripción se profundiza un poco:

“El modelo de programación AMP C ++ incluye matrices multidimensionales, indexación, transferencia de memoria, ordenamiento en teselas y una biblioteca de funciones matemáticas. Las extensiones del lenguaje C ++ AMP y las limitaciones del compilador le permiten controlar cómo se mueven los datos de la CPU a la GPU y viceversa, lo que le permite controlar el impacto en el rendimiento de mover datos de un lado a otro «.

Después del anuncio de C ++ AMP, Daniel Moth de Microsoft proporcionó Hello World ejemplo cambios entre C ++ estándar y C ++ AMP.

AMP no es la primera especificación que permite la paralelización heterogénea. En 2008, el grupo Khronos creó OpenCL, un estándar abierto e independiente del proveedor para la programación paralela que tiene muchos adeptos. OpenCL usa C como lenguaje base y, a diferencia de AMP, depende del programador para manejar gran parte de la mezcla de datos de bajo nivel. Según un Ars Technica artículo:

“El resultado es que en OpenCL hay una gran brecha entre el mundo de la CPU y el mundo de la GPU, y la conexión entre los dos requiere mucha gestión manual por parte del programador. C ++ AMP hace que el uso de la GPU sea mucho más sencillo; la gestión se realiza automáticamente, lo que permite a los desarrolladores escribir programas más naturales y de alto nivel «.

Puede haber preocupación sobre el rendimiento dada la naturaleza de nivel superior de C ++ AMP sobre OpenCL, pero Mark Ireton de AMD hace la misma comparación entre escribir en C ++ y ensamblar:

“En una CPU, el mejor rendimiento, para un fragmento corto de código que se ejecuta en un solo núcleo, se puede lograr escribiendo en ensamblador. Hay desarrolladores que todavía hacen esto. Sin embargo, muchos otros desarrolladores usan C ++. La productividad del programador es mayor con lenguajes como C ++ y el rendimiento puede ser ligeramente menor, pero sin lenguajes como C ++, muchas aplicaciones simplemente no son alcanzables. Se puede hacer un argumento similar para lenguajes de alto nivel como Java o la familia .NET «.

Por lo tanto, la principal ventaja de AMP parece ser su facilidad de uso, lo que podría abrir la computación heterogénea a una gama mucho más amplia de desarrolladores. Y dado que Microsoft ha abierto la especificación a la comunidad, los fabricantes de hardware y otros proveedores de compiladores podrían desarrollar otras implementaciones de AMP.

Deberías compartir en tu Facebook para que tus colegas lo flipen

??? ? ? ???

Comparte