View Full Version : VC.NET + ottimizzazioni
Fenomeno85
03-03-2005, 19:45
Gente ho visto che come al solito si può fare delle ottimizzazioni quando si compilano le usate??
Soprattutto mi interesserebbe anche importare il compilatore intel c++ :D che da quanto ho visto sui libri che mi erano arrivati parecchio tempo fa dovrebbero fare delle ottimizzazioni un pò particolari e quindi avere programmi + performanti sotto architetture intel
~§~ Sempre E Solo Lei ~§~
beh sinceramente non so di che ottimizzazioni tu stia parlando ma mi interessa la cosa...
sapevo che integrando il compilatore intel con il VC++.NET2003 si poteva forzare il compilatore ad utilizzare le varie SSE2 (ora le SSE3) se si utilizzavano le architetture x86 emntre se si utilizzavano le architetture itanium based si poteva creare del codice macchina super-ottimizzato per quelle macchine dato che sembra ne traggano parecchio vantaggio ;)
magari ora è possibile abilitare la compilazione con le istruzioni x86-64 ;)...
cmq attendiamo gli esperti...
The3DProgrammer
03-03-2005, 22:19
il compilatore intel è estremamente semplice da utilizzare (parlo di VC++ 6). Basta installarlo, abilitarlo tramite il tool "select compiler" che compare automaticamente nel menù options, e sei pronto a compilare. E' possibile ottimizzare il codice per praticamente tutte le architetture intel esistenti ( dal PII Katmai in poi ) e consente di utilizzare le SSE ( /QaxK o /QxK) le SSE2 (/QxW e /QaxW se nn sbaglio) e nelle ultime versioni le SSE3. Ovviamente, adotta anche tecniche + generiche di ottimizzazione ( loop unrolling e allineamento dei dati in memoria tra i + noti) e consente di parallelizzare il codice ove possibile. Ovviamente, cmq, le migliori ottimizzazioni possibili sono sempre quelle effettuate dallo sviluppatore, usando, se proprio si vuole evitare l'assembler, magari gli intrinsics.
ciauz
ps. Il contratto di licenza prevede che il software ottenuto tramite il compiler intel può essere usato solo su makkine intel - based.
Originariamente inviato da The3DProgrammer
ps. Il contratto di licenza prevede che il software ottenuto tramite il compiler intel può essere usato solo su makkine intel - based.
Questa cosa non la sapevo... E' un po' un'assurdità... In pratica non ci si possono creare programmi commarciali...
The3DProgrammer
03-03-2005, 23:08
premetto che nn sono sicuro al 100% ( ricordo di averlo letto sicuramente nella licenza della versione 5, per la 7 e successive nn so, ma credo nn sia cambiato nulla ;) ) il motivo è condivisibile (se visto dall'ottica di intel, ovviamente ;) ): Il codice prodotto è utilizzabile infatti su qualsiasi CPU che supporti il set di istruzioni scelto (nn per forza intel). L'eseguibile è molto + ottimizzato rispetto ad uno prodotto con un altro compilatore ( x esempio quello di VC++), e l'esecuzione richiede meno tempo (ovviamente ;) ). Se si concedesse di usare il sw prodotto con compilatore intel su qualsiasi macchina, tutte le CPU avrebbero prestazioni superiori, e il p4 farebbe una magra figura ( lo dico per esperienza personale ;) ). In questo modo, invece, gli sviluppatori possono sfruttare il compilatore intel per creare DLL altamente ottimizzate da usare solo su CPU intel, senza rincitrullirsi nel cercare di ottimizzare a mano il codice, mentre per le altre CPU vengono usate DLL compilate con compiler x86 standard (o, in alternativa, mettersi ad ottimizzare il codice a mano, con conseguente aumento dei tempi di sviluppo e dei costi). Il vantaggio per intel è evidente ;)
ciauz
ps. E' la stessa cosa ke ho fatto io per lo sviluppo dell'engine raytracing di CPUBench...è l'unico modo, se si vuole che il p4 abbia performance decenti e nn si vuole diventare scemi ;)
veramente interessante la cosa :p ma la licenza del compilatore intel quanto costa???
Fenomeno85
04-03-2005, 16:43
la puoi tirare giù gratis se non erro :D
~§~ Sempre E Solo Lei ~§~
Originariamente inviato da Fenomeno85
la puoi tirare giù gratis se non erro :D
Erri...la licenza costa un bel po'... Si può scaricare, ma va attivato...
Fenomeno85
04-03-2005, 17:02
Originariamente inviato da cionci
Erri...la licenza costa un bel po'... Si può scaricare, ma va attivato...
ah ... va be non sarebbe tanto un problema ... ma si può capire con quale compilatore si è compilato il codice?
~§~ Sempre E Solo Lei ~§~
scusate ma non resisto: vc.net e il water e' pulito! :D
ok potete cancellare il mio inutile post! :sofico:
Certo...ogni compialtore lascia delle ottimizzazioni distinguibilissime...
Fenomeno85
04-03-2005, 17:18
Originariamente inviato da cionci
Certo...ogni compialtore lascia delle ottimizzazioni distinguibilissime...
ah capito
~§~ Sempre E Solo Lei ~§~
la mia domanda era solo indicativa dato che per adesso ho il VC++.NET 2003 Professional che è costato un botto, sicuramente soldi spesi bene grazie anche alle licenze education :sofico:
The3DProgrammer
04-03-2005, 22:43
ma, leggendo qui (http://msdn.microsoft.com/visualc/productinfo/overview/default.aspx)
mi pare di capire che il 2003 consenta di generare codice che sfrutti i set di istruzioni SIMD + recenti....magari fai un giro sull'MSDN....
ciauz
The3DProgrammer
04-03-2005, 22:48
preciso, VC++.NET 2003 consente di ottimizzare il codice per le architetture + recenti in commercio :cool:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dv_vstechart/html/vctchOptimizingYourCodeWithVisualC.asp
nn sarà il compilatore intel, ma è sicuramente un buon punto di partenza ;)
Fenomeno85
05-03-2005, 10:55
si le avevo notate e ci sono varie possibilità di ottimizzazione del codice ... miglior velocità etc e anche la possibilità di ottimizzazione per architetture intel.
~§~ Sempre E Solo Lei ~§~
beh effettivamente il 2003 è stato un enorme passo avanti rispetto alla versione 6.0 :) ora vado a vedere come modificare le opzioni per l'ottimizzazione ;)
io mi trovo bene con il 2005 beta1
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.