Las GPUs de NVIDIA tienen altas capacidades de procesamiento en paralelo, pero esas capacidades son inútiles si los programas y sistemas no ofrecen compatibilidad para ellas, lo que significa que NVIDIA ha tenido que negociar ofertas especiales y firmar asociaciones con constructores de superordenadores y fabricantes de software.
Sin embargo, de ahora en adelante será más fácil aplicar Aceleración de GPU en nuevo software y máquinas, porque NVIDIA ha proporcionado el código fuente del Compilador CUDA a LLVM.
LLVM es uno de los compiladores de código abierto más populares con soporte para muchos lenguajes de programación como C/C++, Objective-C, Ada, Haskell, Java bytecode, Fortran, ActionScript, GLSL, Rust, Python y Ruby.
NVIDIA CUDA es una arquitectura C/C++. Sin embargo, tras este nuevo desarrollo los programadores serán capaces de desarrollar aplicaciones para aceleradores de GPUs usando cualquiera de los lenguajes mencionados anteriormente.
«El código que proporcionamos a LLVM se basa en productos CUDA comprobadas, estándar, dando a los programadores la garantía de la fiabilidad y compatibilidad total con los cientos de millones de GPUs NVIDIA instaladas en PCs y servidores hoy en día», dijo Ian Buck, gerente general de software informático de GPU en NVIDIA.
«Este es un hito realmente innovador para la computación de GPU, dando a los investigadores y programadores una cantidad increíble de flexibilidad y elección en lenguajes de programación y arquitecturas de hardware para sus aplicaciones de próxima generación.»
Las GPUs comenzaron como chips que procesaban elementos visuales, pero su altas capacidades de procesamiento en paralelo finalmente desvelaron su potencial en HPC (computación de alto rendimiento).
NVIDIA ya tiene aceleradores CUDA en algunos superordenadores, pero el nuevo compilador LLVM agregará una gran comodidad para su uso. Esperamos escuchar sobre la existencia de nuevos conglomerados basados en Tesla durante los próximos años. Bastante lejos de la predicción de Intel que la tecnología de NVIDIA se quedará una anécdota en la industria de supercomputación.
«Double Negative ha porteado su solver de dinámica de fluidos para utilizar su lenguaje específico de dominio, Jet, que se basa en LLVM», dijo Dan Bailey, investigador de Double Negative y colaborador del proyecto LLVM.
«Además de las arquitecturas existentes admitidas, el nuevo compilador LLVM de código abierto de NVIDIA les ha permitido compilar fácilmente código altamente optimizado para las arquitecturas de GPU de NVIDIA para acelerar masivamente la computación de las simulaciones usadas en los efectos visuales de cine.»