Sala de prensa de Intel

Herramienta de migración SYCLomatic de código abierto Intel para ayudar a los desarrolladores a crear código heterogéneo

SYCLomatic abre el desarrollo y libera a los desarrolladores para crear código heterogéneo portátil.

Noticias

author-image

Por

Qué hay nuevo: Intel ha lanzado una herramienta de código abierto para migrar código a SYCL1 a través de un proyecto llamado SYCLomatic, que ayuda a los desarrolladores a portar más fácilmente el código CUDA a SYCL y C ++ para acelerar la programación entre arquitecturas para arquitecturas heterogéneas. Este proyecto de código abierto permite la colaboración de la comunidad para avanzar en la adopción del estándar SYCL, un paso clave para liberar a los desarrolladores de un ecosistema propietario de un solo proveedor.

"La migración a C++ con SYCL proporciona una alineación ISO C++ más sólida del código, soporte de múltiples proveedores para aliviar el bloqueo del proveedor y soporte para multiarquitectura para proporcionar flexibilidad en el aprovechamiento de todo el poder de las nuevas innovaciones de hardware. SYCLomatic ofrece una herramienta valiosa para automatizar gran parte del trabajo, lo que permite a los desarrolladores centrarse más en el ajuste personalizado que en la portabilidad".

–James Reinders, evangelista de Intel oneAPI

Por qué es importante: Si bien la innovación de hardware ha llevado a un panorama arquitectónico heterogéneo diverso para la computación, el desarrollo de software se ha vuelto cada vez más complejo, lo que dificulta aprovechar al máximo las CPU y los aceleradores. Los desarrolladores de hoy en día y sus equipos tienen poco tiempo, dinero y recursos para acomodar la reescritura y las pruebas de código para aumentar el rendimiento de las aplicaciones para estas diferentes arquitecturas. Los desarrolladores están buscando alternativas abiertas que mejoren el tiempo de obtención de valor, e Intel está proporcionando un camino más fácil y corto para permitir la elección de hardware.

Qué es SYCL y Project SYCLomatic: SYCL, un estándar de Khronos Group basado en C++, amplía las capacidades de C++ para admitir configuraciones de memoria multiarquitectura y disjunta. Para iniciar este proyecto, Intel abrió la tecnología detrás de su herramienta de compatibilidad DPC ++ para avanzar aún más en las capacidades de migración para producir más aplicaciones basadas en SYCL. La reutilización de código en todas las arquitecturas simplifica el desarrollo, reduciendo el tiempo y los costos para el mantenimiento continuo del código.

Utilizando la licencia Apache 2.0 con la excepción de LLVM, el proyecto SYCLomatic alojado en GitHub ofrece una comunidad para que los desarrolladores contribuyan y proporcionen comentarios para abrir aún más el desarrollo heterogéneo en CPU, GPU y FPGA.

Cómo funciona la herramienta SYCLomatic: SYCLomatic ayuda a los desarrolladores a migrar código CUDA a SYCL, normalmente migrando el 90-95% del código CUDA automáticamente al código SYCL2. Para finalizar el proceso, los desarrolladores completan el resto de la codificación manualmente y luego ajustan de forma personalizada al nivel de rendimiento deseado para la arquitectura.

Cómo funciona el uso de la migración de código: Las organizaciones de investigación y los clientes de Intel han utilizado con éxito la herramienta de compatibilidad Intel® DPC++, que tiene las mismas tecnologías que SYCLomatic,para migrar el código CUDA a SYCL (o Data Parallel C++, la implementación de SYCL de oneAPI) en arquitecturas de múltiples proveedores. Los ejemplos incluyen la Universidad de Estocolmo con GROMACS 20223, Zuse Institute Berlin (ZIB) con easyWave, Samsung Medison y Bittware (ver contenido de oneAPI DevSummit para obtener más ejemplos). Múltiples clientes también están probando código en GPU actuales y futuras basadas en la arquitectura Intel® Xe , incluida la supercomputadora Argonne National Laboratory Aurora, el Centro de Supercomputación Leibniz (LRZ), GE Healthcare y otros.

Dónde obtener SYCLomatic: SYCLomatic es un proyecto de GitHub. El portal de GitHub incluye una guía de "contributing.md" que describe los pasos para las contribuciones técnicas al proyecto para garantizar la mayor accesibilidad. Se anima a los desarrolladores a utilizar la herramienta y proporcionar comentarios y contribuciones para avanzar en la evolución de la herramienta.

"CRK-HACC es un código de simulación cosmológica de cuerpos N activamente en desarrollo. Para prepararnos para Aurora, la herramienta de compatibilidad Intel DPC++ nos permitió migrar rápidamente más de 20 kernels a SYCL. Dado que la versión actual de la herramienta de migración de código no admite la migración a funtores, escribimos una herramienta de clang simple para refactorizar el código fuente SYCL resultante para satisfacer nuestras necesidades. Con el proyecto SYCLomatic de código abierto, planeamos integrar nuestro trabajo anterior para una solución más robusta y contribuir a hacer que los funtores formen parte de las opciones de migración disponibles", dijo Steve (Esteban) Rangel de HACC (Hardware / Hybrid Accelerated Cosmology Code), Cosmological Physics & Advanced Computing (anl.gov).

Recursos para desarrolladores:

Más contexto: Ventaja de software de Intel, decodificado | oneAPI.io | Intel oneAPI

 

La letra pequeña:

Avisos y exenciones de responsabilidad

1 SYCL es una marca comercial de Khronos Group Inc.

2 Estimaciones de Intel a septiembre de 2021. Basado en mediciones en un conjunto de 70 puntos de referencia y muestras de HPC, con ejemplos como Rodinia, SHOC, PENNANT. Los resultados pueden variar.

3 El equipo de desarrollo de GROMACS portó su código CUDA a Data Parallel C++ (DPC++), que es una implementación de SYCL para oneAPI, con el fin de crear nuevo código listo para arquitectura cruzada. Mira también Experiencias que agregan soporte SYCL a GROMACS, y GROMACS 2022 avanza en el descubrimiento de fármacos de código abierto con oneAPI.

El desempeño varía según el uso, la configuración y otros factores. Más información en www.Intel.com/PerformanceIndex. Los resultados pueden variar.

Los resultados de desempeño se basan en pruebas realizadas en las fechas indicadas en las configuraciones y es posible que no reflejen todas las actualizaciones públicamente disponibles.

Ningún producto o componente puede ser absolutamente seguro.

Sus costos y resultados pueden variar.

Las tecnologías Intel podrían requerir hardware habilitado, software específico o la activación de servicios.

Intel no controla ni audita los datos de terceros. Deberías consultar otras fuentes para evaluar la exactitud.