Intel SYCLomatic: Herramienta que facilita transferir código CUDA a SYCL y C++

Intel anunció el lanzamiento de una herramienta de código abierto que facilitará migrar códigos populares a SYCL. A través de un proyecto llamado SYCLomatic, se ayuda a los desarrolladores a transferir más fácilmente el código Nvidia 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", dijo James Reinders, de Intel oneAPI.

Código Intel SYCLomatic

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.

Migrando código CUDA con Intel SYCLomatic

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. 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 máxima facilidad. 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).

Artículos relacionados