NVIDIA porta il compilatore CUDA nella comunità Open Source

Roberto Imbastaro

NVIDIA annuncia oggi che LLVM, uno dei compilatori open source più conosciuti, supporta ora le GPU NVIDIA, aumentando significativamente il numero di ricercatori, di fornitori indipendenti di software (ISVs) e di linguaggi di programmazione che possono avvantaggiarsi dei benefici offerti dalle GPU.

LLVM è un ambiente di compilazione dal design modulare particolarmente diffuso, che semplifica il supporto di nuovi linguaggi di programmazione e nuove architetture di processore. Il compilatore CUDA® offre supporto a C, C++ e Fortran per accelerare le applicazioni utiizzando le GPU NVIDIA®. NVIDIA ha collaborato con gli sviluppatori LLVM fornendo il codice sorgente del compilatore CUDA e consentendo la modifica del core LLVM per l’esecuzione in backend dei thread. Come risultato, i programmatori possono sviluppare applicazioni per GPU utilizzando una più ampia selezione di linguaggi di programmazione, rendendo il GPU computing più accessibile e diffuso che mai.

LLVM supporta una vasta gamma di linguaggi di programmazione e front end, compresi C/C++, Objective-C, Fortran, Ada, Haskell, Java bytecode, Python, Ruby, ActionScript, GLSL e Rust. E’ anche l’infrastruttura di compilazione che NVIDA utilizza per la sua architettura CUDA C/C++ ed è stata largamente adottata da aziende leader come, ad esempio, Apple, AMD e Adobe.

“Double Negative ha portato il proprio fluid dynamics solver a utilizzare il loro linguaggio domain specific, Jet, basato su LLVM,” ha dichiarato Dan Bailey, Ricercatore presso la Double Negative e contributor del progetto LLVM. “In aggiunta alle architetture esistenti supportate, il nuovo compilatore open-source LLVM di NVIDIA gli ha consentito di compilare un codice altamente ottimizzato per architettura con GPU NVIDIA in grado di velocizzare in modo importante i calcoli delle simulazioni utilizzate per gli effetti speciali dei film."

“MathWorks utilizza gli elementi del toolchain LLVM per aggiungere il supporto delle GPU al linguaggio MATLAB,” ha detto Silvina Grad-Freilich, senior manager, parallel computing marketing, MathWorks. “Il supporto delle GPU da parte del compilatore open source LLVM è estremamente importante per la comunità cui ci rivolgiamo."

“Il codice che abbiamo fornito a LLVM è basato su collaudati prodotti mainstream CUDA, che danno ai programmatori la sicurezza dell’affidabilità e della piena compatibilità con le centinaia di milioni di GPU NVIDIA oggi installate nei PC e nei server,” ha detto Ian Buck, general manager, del GPU computing software di NVIDIA. “Questa è davvero una pietra miliare che cambia le regole del gioco per il GPU computing, in quanto dà ai ricercatori e ai programmatori un’incredibile flessibilità e scelta nei linguaggi di programmazione e nelle architetture hardware per le applicazioni di prossima generazione.”