NVIDIA expande el atractivo de CUDA con el último kit de herramientas - Calendae | Informática, Electrónica, CMS, Ciberseguridad

NVIDIA expande el atractivo de CUDA con el último kit de herramientas

Hola, un placer verte por aquí. Yo soy Simón Sánchez y hoy hablaremos sobre NVIDIA expande el atractivo de CUDA con el último kit de herramientas

NVIDIA está lista para lanzar un nuevo kit de herramientas CUDA para desarrolladores este viernes con la cuarta generación de su popular paquete de software GPU. La compañía dice que CUDA 4.0 está diseñado para facilitar la programación paralela, lo que atrae a más desarrolladores de aplicaciones al grupo GPGPU. Algunas de las nuevas características también presagian Project Denver, el nombre en código de la futura arquitectura CPU-GPU de la compañía para estaciones de trabajo, servidores y supercomputadoras.

Toolkit 4.0 trae consigo tres nuevas tecnologías: GPUDirect 2.0 para la comunicación peer-to-peer entre chips gráficos en el mismo nodo informático; Direccionamiento virtual unificado (UVA) para proporcionar un espacio de direcciones único que combina memorias de CPU y GPU; y Thrust, un conjunto de bibliotecas C ++ de estructuras de datos y algoritmos destinados a la programación paralela.

Según Sumit Gupta, gerente senior de productos de la Unidad de Computación GPU NVIDIA Tesla, las mejoras están orientadas a aumentar el nivel de abstracción para el programador GPGPU, lo que facilita que menos desarrolladores de GPU aprovechen el paralelismo de datos de alto rendimiento de la arquitectura. . CUDA ya tiene una buena cantidad de tracción en la comunidad HPC y también está recibiendo un buen apoyo de los proveedores de software CAE como ANSYS, SIMULIA y ACUSIM. Con 4.0, NVIDIA busca lanzar una red más grande y traer más desarrolladores convencionales al campo de la computación GPU.

«El objetivo para nosotros ahora es lograr que más personas usen GPU», dice Gupta. “Claramente, tenemos un buen intercambio de ideas en la comunidad de HPC en este momento. Ahora es cada vez más amplio y profundo «.

Por ejemplo, GPUDirect 2.0 es la segunda generación de la tecnología cuya versión original permitía que dispositivos PCI de terceros, como adaptadores de red y SSD, pasaran por alto la CPU y accedan directamente a la memoria de la GPU. La tecnología 1.0 es compatible con Mellanox y QLogic, que han incorporado GPUDirect inteligente en sus respectivos adaptadores InfiniBand.

De manera similar, la segunda versión de GPUDirect permite que múltiples GPU en el mismo nodo o estación de trabajo accedan a la memoria de las demás a través del bus PCI, sin tener que copiar datos a la memoria del sistema. Para aplicaciones de múltiples GPU, el nuevo GPUDirect promete un mejor rendimiento (menos copias de datos y menos sobrecarga de CPU) y una programación menos costosa (sin llamadas de rutina para copiar datos de un lado a otro en la memoria del sistema). Según Gupta, les gustaría aplicar esta capacidad de comunicación de GPU peer-to-peer a la interconexión del clúster en una fecha futura.

La nueva función de direccionamiento virtual unificado amplía aún más la abstracción de la memoria. En este caso, CUDA proporciona un único espacio de direcciones que fusiona virtualmente la memoria del sistema en el lado de la CPU con la memoria de una o más GPU conectadas, dando a la aplicación una vista de todas las memorias heterogéneas como un solo espacio de memoria.

Hoy en día, un desarrollador necesita realizar un seguimiento de dónde están los datos y copiar explícitamente los datos en la memoria de la GPU si no está presente antes de llamar a una función que usa los datos. Con UVA, la función en sí puede aclarar dónde están los datos y copiarlos de manera adecuada. Esto, en particular, ayuda a las bibliotecas a ser más autónomas y reduce la carga para el desarrollador de aplicaciones.

De manera similar, para múltiples GPU, las funciones que usan la GPU ahora pueden averiguar en qué dispositivo están los datos y copiar los datos entre ellos, en lugar de «preacondicionar» o copiar los datos del desarrollador antes de llamar a la función. La idea general aquí, dice Gupta, es acelerar la migración original de la aplicación de CPU a GPU y permitir que los desarrolladores utilicen las herramientas para realizar las optimizaciones necesarias.

La función UVA también tiene en cuenta la arquitectura del Proyecto Denver, que integrará CPU ARM y GPU NVIDIA en el mismo chip, presumiblemente haciendo que los espacios de memoria física separados sean cosa del pasado. Por lo tanto, todas las aplicaciones CUDA desarrolladas con UVA deberían fluir fácilmente en estas plataformas heterogéneas. “Siempre supimos que vendría la arquitectura de Denver, por lo que siempre la planificamos en modelos de programación CUDA”, dice Gupta. «Funciones como el direccionamiento virtual unificado están diseñadas para extenderse a arquitecturas futuras».

La otra gran mejora en CUDA 4.0 es Thrust, una biblioteca de plantillas C ++ que contiene algoritmos y estructuras de datos destinadas a la programación paralela. Nuevamente, la idea es elevar el nivel de abstracción, en este caso, para los programadores de C ++, para que desarrollar aplicaciones paralelizadas sea mucho más fácil. Aunque C ++ no se usa ampliamente en HPC tradicional (fuera de su uso por quanta para aplicaciones financieras), el lenguaje se adopta ampliamente en TI, desde el consumidor hasta el lado empresarial.

Para mejorar el rendimiento, Thrust intentará elegir la ruta de código más rápida para que el hardware se ejecute en tiempo de compilación. En este caso, eso significa que dividirá el trabajo entre GPU y CPU para maximizar el rendimiento, otro guiño a la futura arquitectura de Denver. NVIDIA afirma que las rutinas de impulso, como la clasificación en paralelo, son de 5 a 100 veces más rápidas que las implementaciones correspondientes de la biblioteca de plantillas estándar (STL) y los bloques de construcción de subprocesos (TBB).

Además de las tres grandes mejoras, CUDA 4.0 también presentará algunas características nuevas, como la capacidad de compartir una GPU con múltiples subprocesos de CPU. Entonces, por ejemplo, si tiene cuatro subprocesos ejecutándose en una CPU de cuatro núcleos, todos esos subprocesos pueden conducir los cálculos en una sola GPU. Anteriormente, habría necesitado cuatro GPU para hacer esto o se habría limitado a ejecutar secuencialmente cada hilo en el lado de la GPU. Por el contrario, CUDA 4.0 también le permitirá manejar múltiples GPU usando un solo hilo de CPU.

También se incluye en el nuevo kit de herramientas una implementación de MPI que mueve automáticamente datos hacia y desde la memoria de la GPU en InfiniBand cuando una aplicación envía o recibe un MPI, una nueva biblioteca de imágenes y visión artificial de NPP, una capacidad de análisis automático rendimiento para la herramienta Visual Profiler, un desensamblador binario de la GPU y algunas características nuevas en el depurador cuda-gdb.

El kit de herramientas CUDA 4.0 se lanzará de forma gratuita para los desarrolladores registrados el 4 de marzo. Al anunciar esto con unos días de antelación, NVIDIA espera sacar sangre nueva a la Programa de desarrolladores registrados de CUDA. No se ha fijado una fecha para el lanzamiento general del kit de herramientas, pero generalmente hay solo un par de meses de retraso entre el candidato de lanzamiento y la versión final.

Recuerda compartir en en tu Twitter y Facebook para que tus colegas opinen

??? ? ? ???

Comparte