Breve Storia 3d prima generazione (escludiamo Wolf3d, Doom e Duke3d, che erano una sorta di 2D)  per ogni triangolo che compone una mesh calcoliamo la.

Slides:



Advertisements
Presentazioni simili
…da von Neumann al computer quantistico
Advertisements

…da von Neumann al computer quantistico architettura dellelaboratore.
Meccanismi di IPC Problemi classici di IPC
CONCLUSIONE - Nucleo (o Kernel) Interagisce direttamente con lhardware Interagisce direttamente con lhardware Si occupa dellesecuzione.
Ricorsione Procedure e funzioni ricorsive. Definizioni Un oggetto si dice ricorsivo se è definito totalmente o parzialmente in termini di sé stesso La.
Procedure e funzioni ricorsive
MATLAB.
MATLAB. Scopo della lezione Programmare in Matlab Funzioni Cicli Operatori relazionali Esercizi vari.
Classi ed Oggetti in Java (Cenni). Richiami Ruolo delle Classi in Java Oggetti.
1 Processi e Thread Meccanismi di IPC, Inter Process Communication (1)
1 Processi e Thread Meccanismi di IPC (1). 2 Comunicazioni fra processi/thread Processi/thread eseguiti concorrentemente hanno bisogno di interagire per.
Informatica giuridica Hardware e software: glossario Lucio Maggio Anno Accademico 2000/2001.
Sincronizzazione fra processi
Introduzione al calcolo parallelo SISTEMI INFORMATIVI AZIENDALI Pierpaolo Guerra Anno accademico 2009/2010.
Il Software: Obiettivi Programmare direttamente la macchina hardware è molto difficile: lutente dovrebbe conoscere lorganizzazione fisica del computer.
Iterazione enumerativa (for)
2 Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione dati memorizzazione dati trasferimento.
Introduzione allinformatica. Cosè linformatica ? Scienza della rappresentazione e dellelaborazione dellinformazione ovvero Studio degli algoritmi che.
Informatica 2. Concetti fondamentali di programmazione Programmare vuol dire scrivere un algoritmo in un linguaggio che faccia funzionare un calcolatore.
Computer Graphics Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 Lezione.
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab m-file m-file script script Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali.
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali Esercizi vari Esercizi.
CORSO DI PROGRAMMAZIONE II
Algoritmi e Strutture Dati Introduzione. Gli argomenti di oggi Analisi della bontà degli algoritmi Modello Computazionale Tempo di esecuzione degli algoritmi.
Algoritmi e Strutture Dati Valutazione del tempo di esecuzione degli algoritmi.
Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 6 1 Programmi concorrenti: quanto è lungo un millisecondo? In un normale personal computer.
Linguaggi di programmazione
Sincronizzazione fra thread
Sistemi Operativi GESTIONE DEI PROCESSI.
Estensioni allarchitettura di Von Neumann Vito Perrone Corso di Informatica A per Gestionali.
Informatica giuridica Hardware e software: glossario Lucio Maggio Anno Accademico 2001/2002.
Smoothing Daniele Marini.
Università degli studi di Modena e Reggio Emilia
Modulo 1 - Concetti di base della Tecnologia dell'Informazione
Strutture dati per insiemi disgiunti
Algoritmi e Strutture Dati
VIRTUALIZZAZIONE Docente: Marco Sechi Modulo 1.
Architettura del calcolatore
Studente: Banovaz Diego Trieste, 15/12/2008AA: 2008/2009.
CONCETTI DI BASE 1.0 FONDAMENTI 1.1 HARDWARE 1.2 SOFTWARE 1.3 RETI
Daniele Marini, Maurizio Rossi
Corso JAVA Lezione n° 11 Istituto Statale di Istruzione Superiore “F. Enriques”
Antialiasing tratto da: Han-Wei Shen.
Corso di Programmazione Grafica e Laboratorio Daniele Marini
Programmazione Strutturata
Ripetizione La vera potenza dei programmi per computer risiede nella capacità di ripetere lo stesso calcolo o sequenza di istruzioni più volte, ogni volta.
I processi.
3  Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione  elaborazione dati  memorizzazione dati 
SCHEDA INFORMATIVA DI UNITÀ. Introduzione Applicazione della gerarchia di memoria –Memoria cache fra la CPU e la memoria centrale Il processore vedrà.
SCHEDA INFORMATIVA DI UNITÀ. Introduzione Applicazione della gerarchia di memoria –Memoria cache fra la CPU e la memoria centrale Il processore vedrà.
Luglio 2004Generalità Hardware1 Luglio Generalità Hardware2 MACCHINA DI VON NEUMAN (1947) BUS Processore Elaborazione Controllo Memoria Ingresso.
Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico:
Tecnologie Informatiche ed Elettroniche per le Produzioni Animali
Paola Disisto, Erika Griffini, Yris Noriega.  Insieme ordinato di operazioni non ambigue ed effettivamente computabili che, quando eseguito, produce.
Gestione dei thread in Java
13 ottobre Decisioni F. Bombi 13 ottobre 2002.
Operatori di incremento e decremento
1 Sommario lez 1 Concetti principali, domande ed esercizi Concetti principali –algoritmo, programma –struttura di controllo: condizionale (if …), iterativa.
Linguaggio C: Le basi Stefano Cagnoni e Monica Mordonini
Linguaggio C: Le basi Stefano Cagnoni e Monica Mordonini
Hardware Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche.
GPU - Graphics Processing Unit Corso di Sistemi Paralleli Luigi La Torre Giugno 2012.
Architettura del computer Il computer menù I L C O M P U T E R Il computer, quindi, é una macchina programmabile, cioè una macchina che può essere utilizzata.
Tipi di Computer MainframeSupercomputerMinicomputerMicrocomputerHome Computer Personal Computer WorkstationMicrocontrollori Sistemi Barebone.
UNIMORE University of Modena and Reggio Emilia Scratch Simone Calderara
Cicli e Array. 2 Costrutto while while(espressione) { … } Il codice dentro le parentesi graffe viene eseguito finché la condizione è vera Potrebbe non.
Basi di Java Strutture base di Java. Basi di java ▪Variabili ▪Operatori ▪Condizioni e Cicli ▪Array.
ALGORITMI, LINGUAGGI E PROGRAMMI Facoltà di Lingue e Letterature Straniere Corso di laurea in Relazioni Pubbliche.
Hardware Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche.
Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi Interconnessione tramite reti Lezione n°6.
Transcript della presentazione:

Breve Storia 3d prima generazione (escludiamo Wolf3d, Doom e Duke3d, che erano una sorta di 2D)  per ogni triangolo che compone una mesh calcoliamo la sua posizione sullo schermo, poi per ogni pixel che il triangolo copre sullo schermo calcoliamo il colore giusto a seconda della luce che colpisce il triangolo e del suo colore.  Successivamente, invece di avere il triangolo di un unico colore, e’ stato possibile spalmargli sopra un’immagine (texture)  Risultati molto netti (pixellosi) perche’ i filtri hanno costi immensi.

Quake aveva un rasterizer software ottimizzato in maniera molto profonda per processori

Schede video aggiuntive Inizialmente da usare in tandem con la normali VGA. 3dfx Voodoo e’ la piu’ famosa e usata.  Voodoo si occupa di coprire la parte piu’ costosa del processo di rendering: la parte in cui si leggono le texture e si applicano sui triangoli pixel per pixel. L’illuminazione e la trasformazione dei triangoli e’ ancora a carico della CPU. La scheda Voodoo2 aveva 8Mb di VRAM e operava a 90Mhz.

Breve storia La dimensione delle mesh aumenta: i triangoli sono diventati centinaia (erano decine) e si va verso le migliaia. La CPU non riesce piu’ a sostenere il carico dell’illuminazione e la trasformazione.  Geforce 256 (1999) si occupa di questo in hardware senza gravare sulla CPU.

Breve Storia Le offerte standard riguardo il tipo di materiali possibili con le schede grafiche iniziano ad andare strette. Si vorrebbe poter programmare il modo in cui la scheda grafica (GPU) si occupa di fare la trasformazione e l’illuminazione.  GeForce 3 (2001) offre la possibilita’ di programmare entrambi i passi tramite un linguaggio assembly (Shader model 1)

Breve storia Nel continuo volere di piu’, si vogliono poter fare shader piu’ lunghi (Shader model 1 ha limiti molto stringenti).  ATI Radeon 9700 e GeForce FX supportano lo Shader model 2, con shader consentiti nettamente piu’ lunghi e molte nuove istruzioni

Breve Storia Dopo lo shader model 3 (estensione del 2), esce il 4, che offre la possibilita’ di generare triangoli nello shader (cosa prima vietata).  Geforce serie 8 supporta lo shader model 4

Breve Storia La GPU e’ diventata una risorsa molto potente: puo’ calcolare in maniera estremamente efficiente calcoli vettoriali su enormi quantita’ di dati. Perche’ non usare questa potenza anche per conti che non siano necessariamente di rendering? GPGPU (General processing GPU) e’ disponibile nello shader model 5 (anche nel 4, ma limitato)  Geforce 400 e Radeon HD 5000 supportano lo shader model 5

Multithreading “Multithreading” e’ la capacita’ di eseguire delle operazioni in contemporanea. “Thread” e’ un flusso di esecuzione facente parte di un programma. Quindi, in un programma ci possono essere molti “thread” e ogni thread puo’ fare cose diverse. In genere si usano molti thread quando e’ possibile dividere un lavoro in pezzi che possono essere eseguiti separatamente, oppure se e’ possibile fare due cose diverse nello stesso momento.

Core1Core2 Single Core

Problemi del multithreading 1 2 Entrambi i thread vogliono scrivere un numero in un array. Chiedono all’array una posizione libera allo stesso momento. a a

Atomic int Un atomic int risolve il problema. Ogni operazione e’ garantita atomica. 1 2 a b

Compare and Swap function cas(p : pointer to int, old : int, new : int) returns bool { if *p ≠ old { return false } *p ← new return true } function add(p : pointer to int, a : int) returns int { done ← false while not done { value ← *p done ← cas(p, value, value + a) } return value + a }

Sezioni critiche Una sezione critica consente l’accesso a un solo thread alla volta CT1234

Confronto con GPU La GPU funziona in maniera diversa dalla CPU. CPU: pochi core che fanno tante cose diverse. In genere dai 2 agli 8 core (4 a 16 in hyperthreading) GPU: tanti core specializzati che fanno poche cose. In genere dagli 8 (iPad pro) ai 2048 (Geforce 980)

CPU VS GPU Funzionalita’CPUGPU Chiamate a funzioneSiNo (tutto inline) Cicli (for, while)SiLimitato Condizioni (If)SiLimitato Lunghezza programma limitataNoSi Accesso alla memoriaCompletoLimitato Lettura veloce textureNoSi

Organizzazione GPGPU

Esempio Tiled light collector. La base del sistema di illuminazione soprannominato “Forward +”.

Fine Domande?