View Full Version : [MATLAB] Come incremento la velocità di calcolo?
Giulio83
14-11-2006, 16:59
Ho un problema con MatLab che vi vado a spiegare: devo acquisire un filmato (320x240) a cui applicare vari algoritmi con FFT, ma con il mio notebook (Dothan 1.5Ghz e 512Mhz) riesco ad ottenere solo 3-4fps. Per incrementare la velocità è possibile demandare il calcolo alla gpu invece che alla cpu? Otterrei qualche beneficio utilizzando una cpu multithread rispetto al singolo core? Un grazie a chi sa rispondermi :)
...un incremento anche se sicuramente al di sotto dell'ordine di grandezza (che come sai in base "10" corrisponde ad un fattore dieci in più od in meno) rispetto ai 3-4 f.p.s che rilevi attualmente, lo potresti avere "potenziando" la tua attuale configurazione di computer portatile.
Avrei bisogno di sapere però, ad esempio, che tipo di unità di memoria di massa ad disco fisso (leggi "hard disk") hai adesso, soprattutto la velocità di rotazione del motore spindle...spero che non si tratti di 4200 r.p.m.
Incrementando la memoria centrale ad 1GBi avresti ulteriore boost in termini di velocità generale del sistema, dato che in un ambiente con s.o Windows (XP, 2K ecc.) i 512 MBi garantiscono poco headroom.
Dalla mini foto intravedo la torre pendente per antonomasia, quella di Pisa... devo arguire che sei iscritto alla facoltà di ingegneria di Pisa ?
A proposito che versione di Matlab hai a disposizione ?
Con un sistema multithread (leggi quasi esclusivamente, per non dire totalmente, basato su Pentium 4) potresti notare uno speedup ma, tieni presente che quella "bestia" che chiamasi Pentium M negli algoritmi F.F.T può facilmente essere più efficiente di un sistema Pentium 4 stante il fatto che quest'ultimo ha lunghezza di pipeline maggiore, assenza di barrel shifter almeno fino al nucleo Prescott ecc. ecc.
A presto.
Marco71.
Giulio83
14-11-2006, 17:58
ciao, sto terminando la tesi in ingegneria biomedica ed all'ultimo momento ho deciso che invece di mostrare l'effetto di algoritmi di karman per il tracking di obiettivi in movimento dopo la creazione di un file su disco fisso (quindi 25fps ma con diversi minuti di attesa per caricare un buffer), di acquistare un notebook più potente e fare uno streaming in tempo reale dalla telecamera.
Pensavo ad un centrino dual core ma non so se matlab riesce sfruttarlo appieno. Soprattutto il mio dubbio era se potevo prendere magari una cpu meno potente (tipo CeleronM) abbinato ad una gpu veloce(GeforceGo7800) [tipo un PackardBell di cui non ricordo il modello] e spostare il peso del calcolo su quest'ultima. Non vorrei spendere tutti i miei ultimi risparmi per un computer che poi non riesce a soddisfare quello che mi serve.
Grazie per il consiglio sulla ram Marco, provo a vedere se migliora qualcosa potenziandola (mi faccio prestare un banco da qualche amico, non ci avevo pensato!)
...ingegneria biomedica nuovo o vecchio ordinamento (che marasma hanno fatto tra lauree v.o, diplomi, e varie revisioni del "nuovo" ordinamento è difficile orientarsi).
Un piccolo consiglio da ignorante quale sono...allo stato attuale cerca per quanto possibile di evitare accuratamente i sistemi portatili CeleronM based...
La ridotta quantità di memoria "cache" di cui sono dotati no farebbe che acuire i problemi con Matlab che è "famelico" nelle richieste al sottosistema di memoria, in modo speciale quando hai a che fare con il calcolo matriciale, vettoriale, tensoriale ecc.
So che i prezzi sono allettanti ma secondo me è solo una politica "svuota magazzini", purtroppo.
Se puoi, anche come "investimento" di medio-lungo termine acquista un sistema dual core anche se con Matlab non verrebbe utilizzato appieno (almeno con le versioni di Matlab senza supporto al S.M.P ma devi sapere che nel calcolo "parallelo" le cose si complicano e non di poco rispetto ai computers "seriali").
Il sottosistema video inizia oggi, grazie alla enorme potenza di calcolo molto spesso, latente, ad essere utilizzato per compiti anche non tradizionalmente deputati ad esso.
Cmq. sia il codice deve prevedere un sistema di sviluppo in grado di avvantaggiarsi della G.P.U altrimenti ricadiamo nel "paradosso" dell'epoca in cui esistevano i coprocessori matematici (anche per l'80486 che aveva (SX escluso) una F.P.U 387 derived) pluri M-F.L.O.P.S quasi mai utilizzati.
Spero di non averti tediato...
Marco71.
Giulio83
14-11-2006, 19:20
hai perfettamente ragione Marco, senza codice non si fa nulla con la gpu. Prima non ti ho detto che uso la versione 6.5 perchè con la 7 ho avuto dei problemi. Vedo se riesco a provare il mio sistemino su un portatile dual core, ti ringrazio ancora, giulio
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.