Progettazione e realizzazione di architetture parallele embedded per applicazioni di computer grafica basate sull'algebra di Clifford

    Progetto: Research project

    Dettagli progetto

    Description

    La rappresentazione degli oggetti geometrici e le loro trasformazioni rappresentano due aspetti chiave nelle applicazioni di computer grafica. L’approccio tradizionale per modellare lo scenario 3D fa ricorso all’algebra lineare e al calcolo matriciale che però si rivelano strumenti pesanti dal punto di vista computazionale e comportano una separazione tra i modelli geometrici da un lato e l’elaborazione basata su matrici dall’altro conducendo spesso a errori di implementazione. L’Algebra geometrica, altresì nota come Algebra di Clifford dal nome del suo ideatore, il matematico inglese W.K. Clifford, offre una soluzione a tali problemi poichè rappresenta un modo nuovo ed elegante di affrontare lo studio della geometria ed unifica in un unico framework l’algebra lineare, la geometria proiettiva, il calcolo vettoriale ed altre teorie matematiche formulate in precedenza. A differenza dell’algebra lineare fondata esclusivamente sui vettori, l’Algebra di Clifford utilizza oggetti di dimensione più elevata, quali piani e volumi, come elementi base di calcolo riducendo cosí le trasformazioni geometriche nello spazio 3D quali rotazioni e riflessioni alla semplice applicazione degli operatori fondamentali dell’Algebra. In letteratura sono presenti varie implementazioni software dell’Algebra geometrica che funzionano su processori general-purpose, mentre le implementazioni hardware sono pressoché inesistenti. Il presente progetto di ricerca sostiene la necessità di supportare in hardware i tipi di dati e gli operatori dell’Algebra geometrica in modo da sfruttarne pienamente la potenza di calcolo simbolico. Il progetto ha come obiettivo la progettazione e la realizzazione di una famiglia di coprocessori dedicati per applicazioni di computer grafica capaci di eseguire nativamente le operazioni dell’Algebra di Clifford consentendo quindi di migliorare la velocità di esecuzione rispetto alle applicazioni software finora utilizzate. Durante il primo anno del programma di ricerca è stata realizzata una architettura che esegue le operazioni dell’Algebra tra elementi omogenei nello spazio 4D [5]. Essa offre due vantaggi importanti: in primo luogo è un’architettura modulare che, potendo essere replicata in parallelo, consente di processare più istruzioni contemporaneamente ed in secondo luogo è totalmente riprogrammabile per cui può essere usata anche per eseguire operazioni in algebra vettoriale o in altri formalismi. E’ stato inoltre realizzato un prototipo di una seconda architettura, che utilizza come elementi base delle operazioni non gli elementi omogenei, che hanno dimensioni variabili, bensí un formato dati di lunghezza fissa [6],[7]. La seconda fase del programma di ricerca prevede l’ottimizzazione dell’architettura per l’algebra 4D già realizzata, attraverso l’introduzione di una pipeline delle istruzioni, nonché lo studio di architetture capaci di eseguire le operazioni nello spazio 5D (cinque dimensioni), ideale per le applicazioni di computer grafica.

    Layman's description

    Il programma di ricerca biennale si proponeva di progettare e realizzare una famiglia di prototipi di coprocessori paralleli embedded capaci di fornire supporto hardware diretto agli operatori dell’Algebra di Clifford. A differenza dei pacchetti software attualmente disponibili, che ricorrono a complesse traslazioni in equazioni matriciali, un supporto hardware diretto degli operatori di quest' Algebra consente di sfruttare pienamente la potenza di calcolo offerta dagli operatori stessi. Durante il primo anno del programma di ricerca è stata realizzata una prima architettura che opera su elementi dello spazio 4D, ma, a differenza dei sistemi già presenti in letteratura, esegue le operazioni in modalità seriale minimizzando quindi le risorse hardware impiegate. Si tratta inoltre di un’architettura modulare che, potendo essere replicata in parallelo, consente di processare più istruzioni contemporaneamente e di migliorare pertanto la velocità di esecuzione delle operazioni. E’ stato rilevato che gli elementi base delle operazioni dell’Algebra di Clifford sono meglio rappresentati utilizzando un nuovo formato di dimensione fissa ed è stato dimostrato che tale rappresentazione, oltre ad essere più adatta ad una realizzazione hardware, consente anche di ricondurre tutte le operazioni dell’Algebra ad una unica operazione che dà luogo quindi ad una implementazione hardware più semplice e compatta. Il secondo coprocessore realizzato, di cui è stato implementato un primo prototipo, esegue pertanto le operazioni dell’Algebra non più tra elementi omogenei di dimensione variabile, bensí tra elementi di lunghezza fissa opportunamente predisposti. L’utilizzo di tali operandi ha consentito di migliorare le prestazioni sia in termini di velocità di esecuzione che di risorse impiegate. I risultati ottenuti nella prima fase del programma di ricerca sono stati oggetto delle pubblicazioni scientifiche di seguito riportate. La seconda fase del programma di ricerca, che qui si propone come attività per il secondo anno, prevede l’ottimizzazione dell’architettura per l’algebra 4D già realizzata attraverso l’introduzione di una pipeline delle istruzioni, nonchè lo studio e la realizzazione di architetture dedicate capaci di eseguire le operazioni dell’Algebra di Clifford nello spazio 5D, ideale per le applicazioni di computer grafica. Per la realizzazione dei prototipi delle architetture digitali progettate verranno utilizzati dispositivi logici programmabili, in particolare dispositivi FPGA (Field Programmable Gate Array). I dispositivi logici programmabili, come gli FPGA, caratterizzati da un numero elevato di porte programmabili, e i relativi ambienti software di sviluppo rappresentano un’ottima soluzione per realizzare velocemente e a basso costo prototipi hardware riprogrammabili capaci di fornire elevate prestazioni computazionali. In particolare per implementare su dispositivi FPGA i sistemi qui presentati sono state e saranno utilizzate le schede di sviluppo RC1000, RC2000 ed RC203 della Celoxica, che contengono dispositivi FPGA della Xilinx e utilizzano la comunicazione attraverso un bus PCI o attraverso la rete Ethernet per il trasferimento dei dati e delle istruzioni tra la scheda e un programma host in esecuzione su un PC. E’ inoltre previsto l’acquisto di nuove schede con caratteristiche più avanzate, quali la XUPV2P e la Virtex 4 FX ML410 della Xilinx che consentono di implementare sullo stesso chip FPGA uno o più core PowerPC e di affiancare ad essi il coprocessore grafico evitando così i lunghi tempi di comunicazione attraverso la rete Ethernet o il bus PCI necessari invece nelle schede attualmente disponibili. Il processo di programmazione dei dispositivi logici programmabili consente di realizzare un dispositivo hardware a partire da un codice scritto adottando uno dei linguaggi per la descrizione dell’hardware attualmente
    StatoAttivo
    Data di inizio/fine effettiva1/1/07 → …

    Fingerprint

    Esplora i temi di ricerca toccati da questo progetto. Queste etichette sono generate sulla base dei riconoscimenti/sovvenzioni sottostanti. Insieme formano una fingerprint unica.