Intel ha publicado una herramienta de código abierto para migrar el código a SYCL1 a través de un proyecto denominado 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 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. Mientras que la innovación del hardware ha dado lugar a un panorama arquitectónico heterogéneo y diverso para la informática, el desarrollo de software se ha vuelto cada vez más complejo, lo que dificulta el aprovechamiento total de las CPU y los aceleradores.

Los desarrolladores de hoy en día y sus equipos se encuentran con escasez de tiempo, dinero y recursos para acomodar la reescritura y las pruebas del código con el fin de aumentar el rendimiento de las aplicaciones para estas diferentes arquitecturas. Los desarrolladores buscan 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. SYCL, un estándar del Grupo Khronos basado en C++, amplía las capacidades de C++ para admitir configuraciones de multiarquitectura y de memoria disjunta.

Para iniciar este proyecto, Intel ha puesto en marcha la tecnología de su herramienta de compatibilidad DPC++ para avanzar en las capacidades de migración para producir más aplicaciones basadas en SYCL. La reutilización del código entre arquitecturas simplifica el desarrollo, reduciendo el tiempo y los costes del 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 aporten sus comentarios para avanzar en el desarrollo heterogéneo abierto a través de CPU, GPU y FPGA.

Cómo funciona la herramienta SYCLomatic: SYCLomatic ayuda a los desarrolladores a portar el código CUDA a SYCL, y suele migrar entre el 90 y el 95 % del código CUDA automáticamente al código SYCL2. Para finalizar el proceso, los desarrolladores completan el resto de la codificación de forma manual y, a continuación, realizan un ajuste personalizado hasta alcanzar el 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 cuenta con las mismas tecnologías que SYCLomatic, para migrar el código CUDA a SYCL (o Data Parallel C++, la implementación de oneAPI de SYCL) en arquitecturas de múltiples proveedores.

Algunos ejemplos son la Universidad de Estocolmo con GROMACS 20223, el Instituto Zuse de Berlín (ZIB) con easyWave, Samsung Medison y Bittware (consulte el contenido de la oneAPI DevSummit para ver más ejemplos). Asimismo, varios clientes están probando el código en las GPUs actuales y futuras basadas en la arquitectura Intel® Xe, como el superordenador Aurora del Laboratorio Nacional Argonne, el Centro de Supercomputación Leibniz (LRZ) y GE Healthcare, entre otros.