NVIDIA domina el sector de la computación paralela gracias sobre todo a su propia solución, CUDA. Como respuesta a dicho dominio, AMDha publicado el código fuente de GPUFORT, un proyecto que estará bajo Radeon Open eCosystem (ROCm) y que tiene como objetivo ofrecer una herramienta de traducción para que grandes bases de código en CUDA puedan funcionar fuera del cerrado ecosistema del gigante verde.
El dominio de CUDA y el hecho de que sea privativo y propiedad de NVIDIA limita mucho la capacidad de los desarrolladores a la hora de migrar hacia alguna alternativa, así que AMD trabaja desde hace tiempo en mecanismos que ayuden a migrar código específico de CUDA hacia interfaces compatibles con su pila de computación paralela apoyada en la tecnología de Radeon.
La mayoría de los esfuerzos de AMD se han centrado hasta ahora en código escrito en C y C++. GPUFORT, por su parte, lo que hace es dotar de soporte para la traducción de fuente a fuente (source to source) de CUDA Fortran y código Fortran basado en OpenACC a OpenMP 4.5+ para la ejecución en GPU o código Fortran + HIP C++.
Es importante tener en cuenta que GPUFORT no es un compilador, sino un proyecto de investigación con una base de código en Python que lleva a cabo el proceso de traducción de fuente a fuente. Esto quiere decir que, al menos de momento, GPUFORT no es una solución automatizada y completamente funcional, por lo que es probable que sea necesario realizar un proceso de revisión y corrección manual de lo generado a partir de grandes bases de código de CUDA.
Los ingenieros de AMD no cierran la puerta a que GPUFORT se convierta en un compilador, pero por ahora no es el objetivo. En su estado actual, el proyecto y su código en Python solo se encargan de realizar “una pequeña cantidad de verificaciones de sintaxis”, ya que los responsables han asumido que los desarrolladores lo aplicarán solo a “código que se puede ejecutar correctamente en dispositivos CUDA”. La herramienta es capaz de traducir algunas aplicaciones para Computación de Alto Rendimiento (HPC) a formatos de código que están correctamente soportados por el ecosistema ROCm de AMD.
De hecho, GPUFORT arrastra algunos inconvenientes en su actual estado debido a que, según han reconocido los ingenieros de AMD, hace un mal trabajo a la hora de “analizar qué partes del código se pueden descargar y cuáles no” y “reorganizar los bucles y las asignaciones para maximizar el paralelismo disponible”, además que de momento “no implementa el estándar OpenACC completo”.
El código fuente de GPUFORT está publicado en GitHub bajo la licencia MIT, que es la que suele emplear AMD cuando decide liberar un proyecto. En el repositorio de código también se pueden encontrar la guía de instalación y una presentación de diapositivas explicando qué es el proyecto que nos ocupa y qué abarca.