29 août 2008
CUDA vs. SSE :-)
Je n'etais pas tres satisfait de mon test CUDA, et notamment du code que j'ai employe, je soupconnais qu'il n'etait pas optimal pour le Core2 Duo, pour deux raisons:
- Pas d'opimisation par le compilateur, des resultats trop bas
- Pas d'utilisation des instructions SIMD SSE concues pour accelerer ce type de calcul
J'ai re-ecrit la version Core2 Duo en utilisant les instructions SSE et en optimisant le code a la main, et la progression a ete assez extraordinaire : de 376ms en flottants "x87" non-optimise, je suis passe a 23.6ms en simple coeur (12ms en dual-core) en flottant "SSE" optimise (gcc -O3 et usage de xmmintrin.h pour l'acces au SSE).
La marge de progression entre du code C non-optimise et optimise pour l'architecture Intel est donc bien de 16X quasiment!
Ca recale donc les resultats de la GeForce 8600M GT par rapport au Core2 Duo, 5.3ms contre 12ms, soit juste un facteur 2.2X de performance globale. C'est deja ca de gagne, surtout qu'on peut envisager d'utiliser la CPU et la GPU en parallele pour aller 3X plus vite que la CPU seule ;-)
Un MacPro ecraserait facilement une petite carte GeFoce 8600M GT, mais serait largement en-dessous d'une 8800GT, sans parler d'une GTX 280.
Je tenais a recadrer en utilisant au maximum les possibilites du Core2 Duo Penryn, optimise au niveau SSE et notamment capable d'integrer la multiplication et l'addition successive en une seule operation (MULADD) grace au macro-fusion.
En resume:
La GeForce 8600M GT integree sans un MacBook Pro plafonne a 45Gflops/s et le Core2Duo Penryn a 2.4Ghz est aux alentours de 19GFlops/s reels.
La GeForce 8800GT du Mac Pro est autour des 450Gflops alors que les 8 coeurs a 3.2Ghz des 2 Xeon ne fournissent que 96Gflops, un facteur 4X plus impressionnant. ou 8X avec une GTX280!
Le code source de fmuladd en C pour Intel Core2 Duo ici.
PS: Notez qu'en mode 64bits (gcc -m64 -O3 sse4l.c), les performances sont quasiment divisees par 2 car le trick pour grouper les multiplications et les additions (macrofusion) ne fonctionne qu'en mode 32 bits :-(
28 août 2008
CUDA et fmuladd
J'ai realise des benchs hier soir en utilisant fmuladd, des multiplications/additions en sequence, destinees a produire le plus grand nombre de GFlops/s possible sur les architecture nVidia GeForce 8 et suivantes.
Le premier bench est celui de mon MacBook Pro, ou plutot d'un coeur de son Core2 Duo a 2.4 GHz : 0.66 Gflops/s
Le second bench est celui de la carte graphique GeForce 8600 : 48 Gflops/s, soit 72X la performance d'un des coeur du Core2 Duo.
Meme avec un MacPro 8x3.2Ghz, sur le meme test en C, la carte graphique d'entree-de-gamme serait 6X au-dessus des performances des 8 CPU, et meme en utilisant le SSE4.1, en optimisant a la main pour les Xeon, la carte graphique programmee en C aurait encore l'avantage allant probablement 50 a 70% plus rapidement!
Je suis impressionne, et je vais travailler plus avant la-dessus dans les jours qui viennent :-)
(mais pas aujourd'hui ou demain, ca commence a etre lourd)
PS: J'ai re-ecrit le meme code en SSE, et il tourne seulement 2* plus vite (latences 2* plus importantes mais travail sur 4 float a chaque operation), un coeur Intel a 3.2Ghz produit au mieux 1.66 Gflops/s sur ce test. Soit pas plus qu'une des thread de la GPU. Sauf qu'au lieu d'avoir 8 coeurs, une GeForce 8600 en possede 32, et une GeForce GTX280 en possede 240 et 50% plus rapides, soit 40X plus rapide! On retrouve bien nos postulats...
27 août 2008
CUDA 2.0 : les Benchs sur MacBook Pro
J'ai compile certains examples CUDA 2.0 sur mon MacBook Pro 2x2.4Ghz/4GB/GeForce 8600M GT 256MB.
Certains tests ont donnes des resultats etonnants, ecrasant litteralement le processeur interne.
Notez bien que le code n'est pas optimise SSE4.1 pour le processeur Intel, pour utiliser au maximum son cache et qu'un seul Core est utilise, mais de telles differences de performances sont neammoins signifiantes.
MersenneTwister - Random: 1463ms vs. 43ms (30X)
MersenneTwister - BoxMuller: 3270ms vs. 25ms (130X)
matrixMul : 458ms vs. 0.39ms (1200X)
scalarProd: 3990ms vs. 1.29ms (3000X)
Je rappelerais qu'un MacPro 8x3.2Ghz n'est que 10X plus performant en pointe qu'un seul coeur, et meme si on compte un facteur 10X d'optimisation SSE et cache (genereux), une simple GeForce 8600 (ou 9500) sera sur les tests jusqu'a 30X plus performante qu'un MacPro.
Et qu'investir le prix des 2 CPU du MacPro vous offre 2 GeForce GTX280, soit 20X la puissance d'un GeForce 8600 et la possibilite de faire tourner ces memes tests 20X plus rapidement, soit jusqu'a 600X plus vite qu'un MacPro meme en etant genereux pour Intel!
Le potentiel de CUDA est immense et je vais preparer une serie de tests de haut-niveau pour mettre en evidence ses forces, et ses faiblesses!
26 août 2008
CUDA 2.0 encore Beta pour Mac OS X
Apres quelques essais, de nombreux exemples posent problemes a compiler.
Une des causes possibles est d'avoir -deja- installe CUDA 1.1 sur Mac OS X, je vais investiguer la-dessus.
En revanche, pour les exemples qui passent, les performances peuvent etre epoustouflantes, demontrant qu'un simple GeForce 8600, qui correspond a l'entree-de-gamme actuelle GeForce 9500, peut depasser tres largement les performances d'un MacPro 8x3.2Ghz ...
CUDA le retour!
La version 2.0 est disponible pour Mac et pleinement supporte par Apple (sur cette page).
Vous trouverez le driver et les outils nVidia CUDA 2.0 sur la page Download CUDA.
Je rappelle que cela ne fonctionne que sur les Mac Intel, equipes de cartes nVidia Geforce 8 et suivantes.
- MacBook Pro GeForce 8600 256/512MB(attention les versions 128MB manquent de memoire pour faire tourner les tests)
- iMac 24" GeForce 8800GS 512MB
- MacPro 2nd generation avec GeForce 8800GT 512MB
Le developpement, en revanche, est possible sur tout Mac Intel, un mode de simulation est propose qui compile le code CUDA pour la CPU du Mac et permet de valider raisonnablement les algorithmes pour un premier jeu d'essai.
Occasions ... de s'abstenir!
Je vous avais dis avoir trouve un Mac Mini a vil prix, mais il s'est vendu avant que je m'en empare :-(
J'ai trouve, le surlendemain, un MacBook Pro 17" Hi-Res a 1400$, une super-affaire que j'escomptais saisir au vol...
Le plan etait de l'acheter, equipe similairement a mon MacBook Pro 15", d'echanger la memoire (seulement 2GB pour le 17"), d'acheter un disque de 500GB aux etats-unis (300$) et de le faire installer par micro-boutique ou un autre (cout 100$ approx.).
Bref d'obtenir un MacBook Pro 17" Hi-Res 4GB/500GB pour 1800$ tout compris et de revendre mon MacBook Pro 15" de 3 mois pour un prix similaire (plutot une bonne affaire pour l'acheteur eventuel).
Je n'avais pas eu de nouvelles et je pensais que la vente m'avait echappee...
Et voila que je recois un gentil email du vendeur, etudiant montrealais en angleterre me proposant de me l'expedier avec un paiement securise par DHL ou je ne sais quelle compagnie.
Si jamais ca vous arrive: oubliez tout de suite, ne repondez pas, c'est une arnaque!
Un Mac d'occasion s'achete de visu, apres avoir teste le bon fonctionnement du materiel (par exemple avec l'Apple Hardware Test), verifie l'etat visuel du Mac, ses caracteristiques (About thisMac/A propos de ce Mac) ainsi que la presence des accessoires attendus.
Et le paiement doit se faire en especes (un cheque peut voir sa valeur changee).
Soyez vraiment attentif, que ca soir sur CraigsList ou sur eBay, beaucoup de Mac proposes d'occasions sont des arnaques, que ce soit sur la qualite ou les specifications du Mac, ou sur le paiement.
23 août 2008
Cours LogicPro 8
J'avais annonce la sortie de LogicPro 8 et on m'avait demande si je connaissais des cours.
Voila qu'un nouveau post signale un site avec des cours pour LogicPro 8, ca me fait plaisir de repercuter l'info :-)
Les cours LogicPro 8 sur www.mjtutoriels.com
Deplacer des photos linkees dans Lightroom
Je travaille avec LightRoom, sur un MacBook Pro.
Comme nombre d'entre vous le voient bien, lorsqu'un PC portable a 600$ offre 250GB, et 320 ou plus a 800$, Apple ne mets que 200GB dans ses portables a 2000$ !!! Ca enerve! Et surtout ca gene pour le travail...
J'ai importe des photos dans LightRoom, celles du mariage de David & Flo (2393 photos RAW/plus de 23GB), apres les avoir recuperes sur mon MacBook Pro.
Mais voila j'ai besoin de la place (pour lancer des machines Virtuelles, mais c'est un autre sujet :-) ).
J'ai donc pris un disque externe 320GB au format 2.5" pour pouvoir stocker dessus ma photo et ma musique au complet (enfin tant que les photos n'auront pas trop grossies!).
Deplacer des photos Importees dans LightRoom
Quittez LightRoom, s'il est ouvert.
Deplacez vos photos sur le nouveau disque, detruisez ou renommer l'ancier folder (plus safe).
Relancez LightRoom...
La sur les Folder, faites un click-droit (ou alt-click sur mon trackpad), selectionnez "Missing Folder..." et utilisez la boite de selection pour indiquer a LightRoom le nouveau folder!
Simple, rapide et efficace :-)
22 août 2008
Ou en est le nouveau blog?
Ben je rame, la je decompresse, et j'ai trop d'idees a la fois :-(
je vais commencer petit et upgrader petit a petit...
AMD revient...
AMD vient d'annoncer sa roadmap de ses nouveaux processeurs, leur nom de code est celui de circuit de grand-prix de F1!
C'est assez gag au vu des performances actuelles des processeurs AMD, et vu que le coeur ne va pas changer ils seront toujours autant largues, voire plus :-)
Le plus drole est le nom de Magny-Cours pour 2010, alors que le grand-prix n'existera probablement plus, je ne sais pas si c'est de bonne augure pour le porte-drapeau 12-coeurs d'AMD ;-)
En revanche ils ont un chipset tres interessant, "IOMMU", qui est un chipset d'entree-sortie concu des le depart pour supporter la virtualisation et la retro-compatibilite des OS 64bits avec des peripheriques 32bits sans deficit de performance!
Ce chipset permettra de realiser des machines virtuelles securisees a 100% et notamment la creation de systeme d'antivirus, firewall et anti-malware qui "controlent" l'OS au lieu d'en faire partie!
Une grande avancee, surtout necessaire sous Windows ;-)
