Photoshop CS5 : 64 bits et Multithreading

Florian Innocente |
Ars Technica a publié un test de Photoshop Extended CS5 où l'on trouvera de nombreuses vidéos mettant en scène les nouveaux outils de retouche. L'auteur aborde également le point des performances. D'abord avec le 64 bits proposé par la réécriture en Cocoa de l'application (en 32 bits elle reste sur Carbon afin de ménager la compatibilité avec les plug-ins existants).

Par défaut donc Photoshop se lance en 64 bits et montre parfois des gains significatifs dans le traitement d'images et ce, sans utiliser obligatoirement des fichiers d'une définition démesurée. Exemple avec un fichier 10 mpx traité d'abord avec CS5 lancée en 32 bits puis en 64 bits.

photoshopCS5ars


A de rares exceptions le 32 bits l'emporte - notamment l'action de rotation - mais ailleurs il arrive que la version 64 bits fasse un peu, sinon beaucoup mieux. Au final les opérations en 64 bits s'achèvent au bout de 27,5 secondes contre 38,6 secondes en 32 bits.

En revanche Ars note le peu de progrès réalisé par la CS5 sur la gestion du multithread. Ce n'est pas grave sur des filtres qui s'exécutent en à peine quelques secondes mais sur d'autres, plus lourds, le logiciel ne sait toujours pas exploiter tous les coeurs en présence.

Pour le reste, Ars souligne la rigueur qui a présidé à la conception de cette nouvelle version, réécrite dans ses fondations et tout à fait stable.

lensblur1CPU


avatar HAL-9000 | 
Comme déja dit sur plusieurs news concernant la course aux performances des machines Mac (Core i5/i7), rien ne sert d'avoir une "machine de guerre" si les logiciels que l'on utilise ne savent pas tirer partie de la bête. Sachez enfin que tout ne peut pas être décomposé en multithread ; seulement les opérations qui ne sont pas imbriqués et interdépendantes les unes entre elles peuvent bénéficiées du multithread, le reste c'est du monothread… Donc les Trolls anti-Adobe, pas la peine de nous sortir la vielle rangaine [i]"Adobe des gros feignants, toujours pas de multithread, gnangnangnangnan…"[/i]
avatar ipascm | 
30% de gain de performance -> c'est déjà vraiment pas mal. Bravo adobe tout de même.
avatar jerome74 | 
@HAL-9000 Justement, le traitement d'image se prête assez bien, me semble-t-il, au mutithread: il suffit de découper l'image en 2, 4, 8... morceaux, et de traiter chaque morceau dans un thread. Bon, c'est pas toujours aussi simple, quand tu fais du flou par exemple les morceaux doivent "baver" l'un sur l'autre, mais bon... il y a quand même moyen de faire quelque chose!
avatar Yohmi | 
C'est un début, et c'est un bon début. J'aime ce côté agressif de Nono-9000 alors que personne n'a rien dit. L'important c'est que de bonnes résolutions soient prises. La direction est la bonne, et c'est ce qui compte, on ne va pas non plus demander des miracles. ^^
avatar route one usa | 
Question subsidiaire, quelle est cette chouette appliquette de la barre des menus, image qui illustre l'article ?
avatar your'z | 
C'est quoi le logiciel du screenshot qui affiche les utilisations CPU ? Je suis un grand utilisateur de CPU Meters mais il ne fait pas ce genre de choses :)
avatar popey | 
your'z : peut-être bien istat menu (gratuit, dons possibles), qui permet d'afficher les stats CPU (et bien d'autres choses encore) de différentes manières. http://www.islayer.com/apps/istatmenus/
avatar micware | 
@popey : Non ce n'est pas iStat que j'utilise moi même quotidiennement. Il semble que ce soit un outil de monitoring maison développé par Adobe.
avatar Goldevil | 
Il y a pas mal d'algorithmes de traitement d'images qui sont difficilement parallélisable car certains paramètres tiennent comptes de statistiques calculées sur l'ensemble de l'image. Et puis il faut dire que beaucoup d'algorithmes ont été améliorés et optimisés au fil des ans avec comme plateforme cible des machines mono-thread. Adapter certains algorithmes au multi-thread n'est pas trop compliqué mais arriver au même niveau d'optimisation que la version mono-thread prendra du temps. Avec la multuplication de coeurs, c'est un problème général dans l'informatique grand public auquel peu d'éditeur de logiciels ont encore des réponse très satisfaisantes. Par exemple, j'attendais vraiment une nouvelle version de la suite iLife avec Snow Leopard ou l'accent serait mis sur les gains de vitesse mais je ne vois toujours rien pour l'instant. iTunes aussi mériterait d'être grandement accéléré.
avatar HAL-9000 | 
@ jerome74 / Goldevil Attribuer des parties d'une tâche à executer à plusieurs coeurs nécessite de gérer de façon optimale les tempos entre process lancés, en plus des flux d'informations envoyés à l'un et l'autre coeur selon l'avancée de telle ou telle partie de la tâche décomposée. Bref c'est quand même assez complexz dans la partie technique. On connaît effectivement la méthodologie de décomposition de tâches, mais la pratique reste du cas par cas.
avatar PECourtejoie | 
jerome74, Photoshop fut une des premières applications à tirer parti des multi-cpu, puis des multi core. Certains ingénieurs Adobe (notamment Chris Cox et Scott Byer) sont des fanas de l'optimisation, et ils vont essayer de grapiller des performances partout où ils le peuvent. Si un filtre/une fonction n'est pas multi-core, c'est soit que cela n'apporte rien, est pire (car il faut rapatrier des données d'un autre CPU), ou est trop coûteux en temps de programmation par rapport au gain obtenu, et a d'autres fonctions plus urgentes. Aussi, Photoshop est un programme précis. Il est arrivé, par le passé, qu'une fonction d'une nouvelle version soit plus lente que l'ancienne, car le résultat était plus précis. (Dans le cas d'un flou, mais je ne me souviens plus duquel) Si un filtre est trop lent, il y a parfois des alternatives: box blur vs Gaussian blur, par example... Quant à Grand Central /Open CL, les applications Apple non plus ne les utilisent pas encore!
avatar Nesus | 
C'est effectivement un bon début. L'avoir réécrit sans que ça bug tenait presque du miracle !
avatar Dondic | 
Bien reécrit et plus table ? Ya quand même une bonne nouvelle donc. Pareil pour les autres éléments de la suite ? Flash en aurait bien besoin.
avatar PLaiLLeuR | 
@Dondic La prochaine MAJ du Flash player (v10.1) sera complètement réécrite en Cocoa. Il faudrait juste que l'on puisse avoir l'accélération graphique d'activée pour voir les choses évoluer un peu plus dans le bon sens.
avatar jerome74 | 
@Goldevil: calculer des statistiques sur l'ensemble de l'image peut déja se faire dans des threads; il suffit qu'ils se synchronisent avant d'attaquer le filtre proprement dit. Oui, ça peut compliquer pas mal les choses, oui, c'est difficile d'utiler chaque coeur à 100% sans avoir à attendre les autres, mais c'est toujours mieux d'utiliser 8 coeurs de façon imparfaite qu'un seul. @PECourtejoie: moi je ne sais pas; c'est Ars Technica qui le dit
avatar lechat666 | 
Le plus important pour un logiciel comme Photoshop c'est la stabilité, et apparement le pari est gagné avec cette version CS5, donc : cool !
avatar oomu | 
y a aucune raison que le "multi-coeur" ne soit pas massivement utilisé. les problèmes de parallélisme sont bien connus, ils deviennent important maintenant et avec le temps, tous les grands logiciels sauront bouffer vos coeurs de processeurs. - de plus, sur un mac, vous êtes rarement en train d'exécuter juste UN programme. Il y a de nombreux services en arrière plans, qui profitent de coeurs libres. La machine n'est pas forcément plus rapide au quotidien, elle est + réactive. - en long et en large, oui ça SERT, oui c'est utile, et oui ça sera toujours + utilisés. et de toute façon, la problématique de la synchronisation des résultats existent déjà dans les processeurs intels depuis les branchements prédictifs, l'hyperthread, etc. Ce ne sont pas des problématiques nouvelles. simplement, maintenant, elles sont _obligatoires_ à résoudre pour accélérer les calculs. On ne peut plus compter sur le simple doublement de la fréquence comme au bon vieux temps. - à noter que os X fournit (mais aussi le processeur lui même) de plus en plus de facilités pour se dépatouiller. Bref, je ne suis pas inquiet, et photoshop CS 6 mangera au petit déjeuner votre futur cpu 24-core. Adobe explique longuement ses choix concernant photoshop sur leur blog.
avatar Fingah | 
@HAL-9000 faux ... dans le domaine du traitement d'image il existe de nbx algos pouvant etre adaptes aux multi-coeurs quant a "seulement les opérations qui ne sont pas imbriqués et interdépendantes les unes entre elles peuvent bénéficiées du multithread, le reste c'est du monothread… " je ne vais meme pas réagir car ca prendrait trop de temps
avatar BitNic | 
Très intéressant ce test depuis le temps qu'on me parlait du Totoshop en 64 bits ! Et surtout un résultat surprenant qui semble montrer pour l'instant qu'on ne va pas encore "compresser" le temps pour les gros producteurs d'images. Mais c'est à suivre pour le futur...
avatar HAL-9000 | 
@ Fingah "seulement les opérations qui ne sont pas imbriqués et interdépendantes les unes entre elles peuvent bénéficiées du multithread, le reste c'est du monothread… " Faute d'avoir pu utiliser la fonction editer, j'ai posté un second message à la suite qui rectifie le tir. Tout code peut bénéficier du multithread, d'une complexité simple (fonctions indépendantes) à très poussée (interdépendances à différents niveaus de fonctions, pb de synchro/tempo, etc.).
avatar hawker | 
470 mo l'app !! mais ils mettent la doc en video Hd intégrée dedans ou quoi ?

CONNEXION UTILISATEUR