Le novità di LabVIEW 2010
Dalla rivista:
Elettronica Oggi
LabVIEW è un ambiente grafico cross platform in grado di operare su più sistemi operativi, chipset, device embedded e FPGA. La versione 2010, rilasciata recentemente, offre diverse novità, ma la più importante è l’incremento delle prestazioni rispetto alla versione precedente. Le novità introdotte permettono infatti di far funzionare il codice il 20% più velocemente grazie alle tecnologie utilizzate nel compilatore back end e alle ottimizzazioni del codice.
Il tempo è tutto
LabVIEW 2010 punta sostanzialmente su due elementi, il risparmio di tempo in fase di esecuzione e la riduzione dei tempi di sviluppo dei progetti. Per il primo elemento, LabVIEW 2010 contiene un compilatore ottimizzato (sin dalle primissime versioni infatti LabVIEW è un linguaggio compilato) che accelera i tempi di esecuzione dei programmi, senza la necessità di modificare il codice. La riduzione dei tempi di sviluppo, invece, è ottenuta grazie anche ai contributi della community di sviluppatori, agli add-on dei partner e alle partnership tecnologiche.
Un elemento fondamentale di LabVIEW è il compilatore che permette, per esempio, di astrarre i task come l’allocazione di memoria e la gestione dei thread. Per realizzare le ottimizzazioni NI è intervenuta sulla catena di compilazione. Tra le novità del compilatore, infatti, ci sono quelle introdotte nella gerarchia da LLVM e DFIR che consentono di migliorare l’esecuzione.
In realtà DFIR (Data Flow Intermediate Representation) era già presente nella edizione precedente di LabVIEW, quella 2009. Questa funzione di trasformazione (in pratica DFIR fornisce una rappresentazione intermedia di alto livello), nella catena di compilazione di LabVIEW, si colloca tra il diagramma a blocchi e il codice compilato sul target e permette, per esempio, di eliminare sottoespressioni comuni oppure parti di codice irraggiungibile. Per gli utenti, l’uso di DFIR offre tre importanti vantaggi che consistono nella maggiore velocità di esecuzione, nell’ottimizzazione meno vincolata al codice utente e nella rappresentazione intermedia degli script.
Fig. 1 – I punti nella catena di compilazione di LabVIEW 2010 in cui si inseriscono la sezione DFIR e l’LLVM
La seconda novità importante per il compilatore in LabVIEW 2010 è l’LLVM (Low Level Virtual Machine), sezione che si colloca nella catena di compilazione dopo quella di DFIR.
In pratica LLVM è un compilatore Open Source inventato dall’Università dell’Illinois e, oltre che in ambito universitario, è utilizzato da aziende del calibro di Adobe, Apple e Google. Le funzioni eseguite dall’LLVM permettono di fatto di semplificare le operazioni su target diversi.
LLVM viene utilizzato in numerose occasioni, come per esempio nel salto fra thread, per la combinazione di istruzioni, per la sostituzione scalare di aggregati, la propagazione condizionale, l’ eliminazione delle chiamate di coda, la riassociazione delle espressioni, l’unrolling dei loop, e molte altre.
I vantaggi offerti dall’adozione dell’LLVM risiedono essenzialmente nella maggiore velocità di esecuzione e nella possibilità di accesso a soluzioni open source per il miglioramento delle prestazioni e supporto hardware. Ovviamente occorre considerare che in alcuni casi i vantaggi sono minimi, per esempio, quando si ha a che fare con librerie già fortemente ottimizzate.
NI, a questo riguardo, ha fornito anche alcuni dati sul miglioramento di prestazioni di LabVIEW 2010 rispetto alla versione 2009 che sono strettamente legate al tipo di applicazione. Per esempio, l’incremento di prestazioni spazia da un minimo di pochi punti percentuali nel caso di matematica complessa a un guadagno del 100% nel caso di funzioni di manipolazione di bit a oltre il 180% nelle funzioni di parallel for loop.
Fig. 2 – Due esempi di intervento del DFIR per ottimizzare il codice, rispettivamente nel caso di eliminazione di sottoespressioni comuni e per l’eliminazione di parti di codice irraggiungibile
Agli utenti FPGA LabVIEW 2010 mette a disposizione un nuovo IP Integration Node, compatibile con il Core Generator di Xilinx, che permette di integrare qualsiasi IP FPGA di terze parti nelle applicazioni LabVIEW.
Sempre in ambito FPGA, sino all’edizione dello scorso anno NI ha utilizzato solo i tool ad alto livello, ma nella versione 2010 il processo è cambiato con i miglioramenti nella sequenza di compilazione. Sono stati usati infatti altri tool di Xilinx in modo da ottenere una maggiore quantità di informazioni su quelli che potrebbero essere risultati del processo di compilazione Il valore di queste informazioni risiede nella possibilità di risparmiare tempo utile in caso di errori o ripensamenti, e questo perché in questa versione per FPGA la compilazione è una operazione particolarmente dispendiosa in termini di tempi. L’ordine di grandezza per la fase di compilazione infatti non è quello dei millisecondi come negli altri casi, ma si parla anche di ore, e quindi il poter intervenire prima su eventuali correzioni permette di ridurre le perdite di tempo.
Le altre novità
Il miglioramento di LabVIEW è merito anche della community di sviluppatori e, infatti, la versione 2010 offre oltre una decina di nuove funzioni suggerite dagli utenti tramite il forum LabVIEW Idea Exchange, concepito per raccogliere online i feedback degli utenti. 14 suggerimenti degli utenti, come per esempio un diverso sistema per le label dei collegamenti, sono stati implementati su questa versione di LabVIEW e in generale i suggerimenti riguardano aspetti come l’ottimizzazione della documentazione e l’organizzazione del codice.
Con la presentazione di LabVIEW 2010, NI ha anche lanciato l’iniziativa LabVIEW Add-On Developer Program, che intende offrire ai partner l’opportunità di espandere la piattaforma tramite l’introduzione in LabVIEW di funzionalità personalizzate. Di fatto si tratta di una sorta di mercato online che fa parte del LabVIEW Tools Network che, per ora, mette a disposizione oltre 50 add-on realizzati sia dagli sviluppatori NI sia da terze parti. Ci sono anche librerie per il riutilizzo del codice, template, connettori di interfacce utente per altri pacchetti software. Alcuni prodotti sono gratuiti, mentre altri invece sono a pagamento.
Francesco Ferrari
Contenuti correlati
-
Le innovazioni di Altera basate su FPGA
Altera ha recentemente fornito nuovi dettagli sui suoi FPGA Agilex 3 di nuova generazione e ha annunciato nuovi kit di sviluppo e supporto software per gli FPGA Agilex 5. Gli FPGA Agilex 3 sono progettati per soddisfare...
-
Lattice amplia la sua gamma di FPGA
Lattice Semiconductor ha aggiunto alla sua offerta di dispositivi small FPGA i nuovi componenti logic-optimized Certus-NX-28 e Certus-NX-09. Questi dispositivi general-purpose sono basati sulla piattaforma FPGA Nexus e sono caratterizzati da consumi ridotti e ingombri limitati. I...
-
GOWIN amplia la famiglia di FPGA Arora-V
GOWIN Semiconductor ha presentato GW5AT-15, il più recente componente della famiglia FPGA Arora-V. Si tratta di una soluzione di bridging programmabile ad alta velocità per applicazioni nei settori dell’elettronica di consumo e automobilistico come per esempio il...
-
Progettare veicoli spaziali con FPGA “radiation-tolerant” riconfigurabili ad alta affidabilità
Un esame delle diverse tecnologie FPGA disponibili per applicazioni spaziali e del processo di sviluppo dei componenti Leggi l’articolo completo su EO518
-
Certificazione ISO 26262 per l’ambiente di progettazione FPGA di GOWIN
GOWIN Semiconductor ha annunciato che il suo ambiente di progettazione FPGA GOWIN EDA è stato certificato conforme agli standard di sicurezza funzionale ISO 26262 e IEC 61508 dal laboratorio di test TUV. La certificazione del design tool...
-
Microchip: architettura RISC-V per applicazioni spaziali
Microchip Technology ha introdotto un SoC FPGA RT (radiation-tolerant) PolarFire. Sviluppato su FPGA RT PolarFire, sempre di Microchip, si tratta del primo sottosistema di microprocessore realtime basato su RISC-V compatibile con Linux su una struttura FPGA RT...
-
Una scheda FPGA per semplificare lo sviluppo IA da Arrow Electronics
Arrow Electronics ha presentato CYC5000, una scheda FPGA in grado di semplificare lo sviluppo di applicazioni IA. La scheda plug-and-play ha un fattore di forma compatto (misura 25,0 x 70,7 mm), un radiatore compatibile con Arduino, un...
-
AMD annuncia la famiglia di FPGA Spartan UltraScale+
AMD ha presentato i nuovi FPGA della famiglia Spartan UltraScale+, destinata alle applicazioni edge a budget contenuto. Questi FPGA sono caratterizzati da un elevato numero di I/O, alta efficienza energetica e funzionalità di sicurezza per applicazioni embedded...
-
Intel ha presentato la sua nuova società indipendente per gli FPGA: Altera
Come preannunciato alcuni mesi fa, Intel ha reso autonoma la sua divisione PSG (Programmable Solutions Group) trasformandola in una società indipendente, focalizzata sugli FPGA, e dandole un nome molto noto: Altera. Il nome è quello dell’azienda acquisita...
-
Automotive: il ruolo degli FPGA nell’evoluzione della “In-cabin experience”
Per poter supportare in maniera adeguata l’evoluzione sia della tecnologia sia delle richieste dei consumatori, i produttori stanno sempre più focalizzando la loro attenzione sui dispositivi FPGA, che rappresentano la soluzione ideale per effettuare la regolazione della...