Estudio de viabilidad de SYCL como modelo de programación unificado para sistemas heterogéneos basados en GPUs en bioinformática - Costanzo, Manuel (2024)
Por un lado, la computación de alto rendimiento (HPC) requiere de modelos de programación que aprovechen el paralelismo masivo de arquitecturas heterogéneas modernas como las plataformas CPU-GPU. Sin embargo, modelos de programación como CUDA y OpenCL presentan limitaciones en portabilidad y productividad. SYCL surge como alternativa prometedora al unificar la programación en C++ y abstraer las particularidades del hardware. Por otro lado, la bioinformática y la biología computacional representan dos campos que han estado explotando las GPUs durante más de dos décadas, y muchas de sus implementaciones se basan en CUDA, lo que impone limitaciones significativas en cuanto a la portabilidad en una amplia gama de arquitecturas heterogéneas. Es por lo que esta tesis doctoral propone evaluar la viabilidad de SYCL como modelo de programación paralelo unificado, portable y eficiente para sistemas heterogéneos con GPUs, específicamente en bioinformática. Considerando que el alineamiento de secuencias biológicas representa una operación fundamental con amplias aplicaciones en diversas áreas de la biología y la medicina, se seleccionó la suite SW# como caso de estudio por su relevancia y por estar desarrollado en CUDA. Mediante la herramienta SYCLomatic se migró completamente el código de SW# de CUDA a SYCL. Este proceso involucró la ejecución de la herramienta, modificación del código generado, corrección de errores, verificación funcional, optimizaciones y estandarización SYCL. Posteriormente, se realizaron múltiples experimentos en un amplio conjunto de GPUs y CPUs de diferentes tipos y fabricantes para evaluar la portabilidad de rendimiento del código migrado en contextos individuales, tanto de GPU como de CPU, multi-GPU y CPU+GPU, en un entorno híbrido. Los resultados de esta tesis muestran, en primer lugar, que la herramienta SYCLomatic resulta efectiva y útil para la migración automática, aunque no pueda considerarse una solución final. En segundo lugar, las pruebas realizadas revelan que SYCL presenta una eficiencia comparable a la de CUDA en las GPUs NVIDIA y ofrece una amplia portabilidad funcional con una aceptable portabilidad de rendimiento a GPUs y CPUs de otros fabricantes. En conclusión, SYCL se posiciona como una alternativa viable como modelo unificado de programación heterogénea, portable y eficiente, estableciendo un precedente importante para futuros desarrollos en el área.