Les bruits de couloir de Snow Leopard (10.6)

  • Créateur du sujet Créateur du sujet etienne000
  • Date de début Date de début
Statut
Ce sujet est fermé.
ça m'étonnerait que les performances de flash soient fort différentes à l'heure actuelle entre Leopard et Snow Leopard : le plugin doit avant tout être recompilé avec ces nouvelles technologies, ce qui n'est pas près d'être le cas ... quand on voit comment flash est délaissé sur notre plateforme ...

Perso, si je pouvais me passer du flash, je ne demande que ça !

Sinon merci à elsedorm pour toutes ces infos.
Ca me rappelle un peu le dev de Leopard où j'avais accès eu accès aux dernières build et où j'étais assailli de questions :D génial !

Vraiment hâte d'être le 8 juin pour voir ce que phil va nous sortir de son chapeau !
 
Pour faire bref (:mad:) voici les résultats pour un encodage QuickTime.
Machine : MacBook Unibody 2Ghz, 2Go, 9400M,
Test sur batterie,
Leopard 10.5.7 à jour
Snow Leopard 10.6 (build 10354)

Encodage d'un trailer récupéré en HD sur le site d'Apple.
Le fichier original est une vidéo 1080p ayant une taille de 133Mo.

Le test à été effectué deux fois pour chaque système. Les temps sont les mêmes à 2 secondes près.

Résultats :
QuickTime 7.6
4 minutes 29 secondes
4 minutes 14 secondes

(CPU @2*100%)
(en fin de l'essai, les ventilateurs commencent à souffler !)

QuickTime X (Snow Leopard 10A354)
1 minute 29 secondes
1 minute 28 secondes
(CPU @2*100)+GPU

(toujours aussi silencieux à la fin de l'essai)

Ce qui nous donne un rapport de 3x entre l'encodage CPU et l'encodage CPU+GPU.

En mode "trim", en pressant "alt", on à le graph son qui apparait.

Har du någonsin tror att det var en dum meningen?

Erìk
 
et niveau qualité d'image, ça donne la même chose des deux côtés ?
on sait jamais ...

mais c'est vrai que c'est impressionnant !
je me demande ce qui intervient dans ce bond : gestion des multicoeurs (% utilisé lors de l'encodage ?) ou la carte graphique ? ou encore les 2 ?
 
Les CPUs (total) sont dans les deux cas à 100% (soit 200% parce que 1 cœur = 100%).
Donc, la difference, c'est… le chip 9400M.
Il y a un process CoreMediaQuelquechose qui prend tout le CPU. Surement une image du système de dispatch (car QT ne consomme que quelques %) et que sous Leopard, le process qui encode est QTHelper (hors la, c'est CoreMedia, c'est plus general dans le nom, à confirmer lors d'essais supplémentaires... qui seront menés demain).

Enfin, pas completement, car l'architecture de Snow Leopard est optimisée Intel. Déjà QuickTime (algos d'encodages) puis le système de dispatch et surement les drivers de carte graphique.

@toumak : oui, les images sont identiques

Pour infos, les deux tests ont été fait juste après un reboot (le temps de passer d'un système à un autre).

Har du någonsin tror att det var en dum meningen?

Erìk
 
  • J’aime
Réactions: Toumak
Les mesures sont toujours faites sur la même machine, sur CINEBENCH (il se reconnaitra :coucou:).

Les résultats sont les suivants:
Léopard
2229 CB-CPU (mono)
4318 CB-CPU (2*)
4027 CB-GFX

Snow Leopard
2278 CB-CPU (mono)
4095 CB-CPU
3836 CB-GFX

Encodage… QT, codec iPhone:
1:14 pour Leopard
1:16 pour Snow Leopard

Remarque : Peut-être la durée est trop courte pour voir un écart significatif (durée trop courte car encodage trop 'simple').

Har du någonsin tror att det var en dum meningen?

Erìk
 
C'est une chance d'avoir eseldorm pour faire plein de tests ! :up:
Dommage qu'on ne trouve pas trop d'outils (benchmarks) pour OS X. ;)
Un jeu ? Des filtres sous CS4 ?


Toumak : tu as d'autres idées de mesures ?
 
De toutes façons, pour voir une différence il faut des applications optimisée SL/OpenCL et les applications actuelles ne le sont pas. ;) Si il y a une différence, elle doit être très faible. ;)
 
Que je n'aimerais pas être modérateur en cette période pré wwdc :p
 
Ces bruits de couloir ne laissent rien augurer d'exceptionnel, voir de désirable, dans ce futur système...
"On" nous a "vendu" une refonte complète pour une amélioration des performances, et il semble que l'on se dirige vers un empilement de nouveautés se superposants aux anciennes fonctions, lesquelles ne sont donc aucunement ré-écrites ou optimisées... Encore une fois, il semblerait (j'espère me tromper) que l'on attende des progrès du matériel qu'il masque les déficiences du logiciel.
Je donne un exemple basique (d'instinct):
- text edit, le texteur made in apple minimal, fournit avec tous macs: 19,5 Mo
- Bean, le texteur gratuit pour OSX, avec une interface plus "apple" (faut le faire!) et les mêmes possibilités : 3 Mo

J'en déduis donc que le texteur d'apple est, au bas mot, 5 fois trop lourd. Et inutile de me dire que cela n'a aucune importance vu la capacité moderne en RAM et disque: ce serait reconnaître de fait que le matériel seul est à l'origine des progrès et que le "design" logiciel est à la rue. Un logiciel moins lourd, c'est un acces plus rapide, une meilleure réactivité, l'assurance de l'utiliser sur un large panel de config, même anciennes, une prompte réponse aux attentes des utilisateurs, une mise à jour rapide sans encombrer les réseaux et bouffer de la bande passante...
Colin Chapman avait raison: le poids, voilà l'ennemi.

SL devait corriger cela, on dirait bien que ce ne sera pas le cas. Mais, qui sait, je ne demande qu'à être positivement surpris...
 
Ces bruits de couloir ne laissent rien augurer d'exceptionnel, voir de désirable, dans ce futur système...
"On" nous a "vendu" une refonte complète pour une amélioration des performances, et il semble que l'on se dirige vers un empilement de nouveautés se superposants aux anciennes fonctions, lesquelles ne sont donc aucunement ré-écrites ou optimisées... .

Ah bon? Bah on doit pas avoir les mêmes sources d'informations alors. Depuis le début perso j'ai lu que Snow Leopard sera équipé d'un noyau optimisé 64bits avec des drivers 64bits et des fonctionnalités d'amélioration de performances pour mieux tirer partie à la fois des processeurs multi-coeurs (Grand Central) et des cartes graphiques en tant qu'unité de calcul (OpenCL), et au dernières nouvelles ces vers cela que cela s'oriente toujours, du moins selon les dernières infos qu'on peu lire notamment dans ce sujet.

Eseldrom avait notamment publié (retiré par les moderateurs evidemment pour cause de violation envers les NDAs liant Apple et les développeurs) des résultats de Quicktime X de Snow Leopard optimisé OpenCL et certainement tirant aussi parti de Grand central VS Quicktime 7.6 de Leopard et la différence était très notable donc ce qui semble démontrer que les nouveautés de Snow Leopard sont bien concentrés sur les performances.

Mais bon si tu as vu des nouveauté autres, j'aimerais bien savoir lesquelles, parce que justement c'est bien le reproche que font certains à Snow Leopard, il n'y a pas beaucoup de nouveauté vraiment visuelles, c'est surtout au niveau des performances que sont les nouveautés. C'est pas les quelques frioriture tel que l'interface de QTX autre petits détails mineures qui vont faire plaisir à ceux qui auraient aussi aimé de bonne grosses nouveauté bien visible à la Exposé, Dashboard, Spaces & co.

Personnellement ca n'est pas pour me déplaire qu'il en soit ainsi. Car ca ne fera pas de mal d'avoir un peu plus de performance, surtout pour moi qui ai connu des OS orientés réactivité avant (AmigaOS, MorphOS, BeOS...).

Quand à TextEdit et Bean, on parle de l'optimisation du logiciel, pas du poid des ressources. Or toi tu donne la taille des packages en entier, langues, images et autres ressources comprises. Or TextEdit comprend bien plus de langue par exemple (18 langues) que Bean (3 langues). Rien que cela suffirait ) expliquer la différence.

Pour comparer les packages de façon objectif, il faut retirer toutes les langues additionnelles et ne conserver que l'anglais, ainsi que ne garder qu'une seule architecture (i386 pour l'exemple), et dans ce cas TextEdit fait 1.77Mo et Bean 2.77Mo tout deux xslimmé en i386 only et avec comme seule langue, l'anglais afin qu'ils aient le même nombre d'architecture et de ressources linguistiques (sinon la comparaison est ridicule).

A noter que les executables i386 seuls font pour TextEdit 136Ko et pour Bean 504Ko. Ce qui démontre que TextEdit est bel et bien moins lourd que Bean, ce qui est logique et que donc ton exemple est en réalité mauvais car basé sur un mauvais calcul de la taille en ne retirant pas les éléments qui ne rentrent pas en compte dans l'optimisation d'une application.

J'ai tenu à donner en plus de la taille des executable, la taille du package avec suelement une langue et une architecture, car c'est en réalité seulement cela qui est chargé en RAM. Quand on lance TextEdit sur un Mac Intel, la partie PowerPC de l'executable est totalement ignorée et donc jamais chargée en RAM, tout comme les langues autres que celle préférée par l'utilisateur, une seule langue est chargé. Donc même si le package de TextEdit pèse 19Mo, une fois lancée les fichiers en eux même ne prendront jamais plus que 1.77Mo sur un Mac Intel en langue anglaise. Evidement, or chargement des documents externe (puisque TextEdit est un mini traitement de texte, il charge des fichiers texte qui ont aussi leur poid), chargement de librairies partagées et autres traitement d'allocation mémoire effectué par le programme lui même, je ne parle que du poid des fichiers de TextEdit en lui même.

Conclusion: TextEdit est au niveau du binaire environ 3.7 fois plus LEGER que le binaire de Bean et avec toutes ses resources réellement chargées (la langue anglaise + les éléments d'interface graphique (images, fichier nib...etc) + autres ressources internes au programme, 1.5 fois plus léger). Et je parle ici de sa version Leopard.

Ceci amène à constater que le système de package d'Apple qui permet de mettre tout le nécessaire dans un répertoire qui apparaît comme un seul icône dans le Finder, a comme défaut de faire croire à beaucoup de gens, y compris apparemment à des "initiés" tel que DrFatalis, que les poids des executables Mac sont particulièrement lourds, parce que beaucoup prenne l'icône d'une application Mac comme l'exécutable de l'application, alors qu'en réalité c'est un répertoire qui contient non seulement l'exécutable (et même plusieurs executable dans le fichier executable quand il est Universal Binary), mais aussi des tas d'autres ressources qui sur PC apparaîtraient séparés dans l'explorateur, tel que les framework internes, les langues, les images et autres ressources du logiciel.
Et donc par exemple si on se fait berner de la sorte, et si une version PC de textEdit existait, le fichier TextEdit.exe sous PC pèserait autour de 136Ko (je dis autour, car l'usage des APIs Windows et d'un compilateur différent (par définition) le ferait évidemment varier sa taille par rapport à la version Mac OS X), alors que l'icône TextEdit sur Mac pèse 19Mo, et on ne manquerait pas de voir des gens s'interroger sur le pourquoi de cela? Alors qu'en réalité le réel executable de TextEdit sur Mac est bien de 136Ko.
 
  • J’aime
Réactions: Steph-24
Merci à Frodon de m'avoir montré mon erreur (que j'espérais !). J'aurais du en effet avoir la curiosité d" "ouvrir le paquet" comme le propose OSX. Il est vrai que je n'ai pas du tout pensé aux langues (mais une question me taraude: chaque applis emporte t'elle avec elle son package de langues ? je pensais que cela était centralisé... j'en suis resté à opendoc ou bien existe t'il un gestionnaire de langue commun à toutes les applis dans OSX ?)

Je puis donc espérer de voir SL combler mes attentes, à savoir plus de performances (et seulement cela, ce serait pas mal), mais quelque chose de mesurable (si c'est pour gagner 4% en vitesse, cela n'intéressera que les pros), sensible avec les softs et les machines actuelles...
 
Merci à Frodon de m'avoir montré mon erreur (que j'espérais !). J'aurais du en effet avoir la curiosité d" "ouvrir le paquet" comme le propose OSX. Il est vrai que je n'ai pas du tout pensé aux langues (mais une question me taraude: chaque applis emporte t'elle avec elle son package de langues ? je pensais que cela était centralisé... j'en suis resté à opendoc ou bien existe t'il un gestionnaire de langue commun à toutes les applis dans OSX ?)

En effet chaque applications embarque dans son package les traductions qui lui sont propre. Je trouve cela bien plus propre et dans l'esprit des packages que si c'était centralise. D'autant que cela évite de garder des fichiers de langues inutiles une fois le package supprimé, puisque mettre le package a la corbeille (et la vider) efface non seulement l'exécutable en lui même mais aussi toutes les ressources internes a l'application, langues incluses.

A titre d'information, les données de langues se trouve dans le répertoire Contents/Resources/<nom_langue>.lproj (ex: TextEdit.app/Contents/Resources/English.lproj).

Quant a tes espoirs de performances pour Snow Leopard, ils seront d'autant plus visible exploitant les nouveaux framework orientes performance que sont OpenCL et GrandCentral, car même si il y aura une amelioration general des performances de l'OS du fait de son noyau entièrement 64bits et que ses applications fournies seron pour la plupart voire en totalité optimise avec OpenCL et GrandCentral, les applications tierce ne montront une différence significative qu'une fois optimisées et recompilees pour Snow Leopard.
 
  • J’aime
Réactions: iluro_64
Salut.

des fonctionnalités d'amélioration de performances pour mieux tirer partie à la fois des processeurs multi-coeurs (Grand Central) et des cartes graphiques en tant qu'unité de calcul (OpenCL)
Contrairement à ce que le gens pensent, openCL ne sert pas (seulement tout du moins) à utiliser la puissance des GPU.
OpenCL est un framework (et un langage) qui facilitent la programmation parallèle en environnement hétérogène.
L'objectif est de répondre à un problème simple : Comment écrire un code unique et optimisé pour des architectures différentes.
En effet, on ne conçois pas un programme de la même façon si il doit être exécuté par exemple, sur un GPU en lieu et place d'un CPU.

Une autre problématique est la suivante, si demain j'écris un programme et le commercialise, celui-ci sera exécuté sur des machines totalement différentes. Certains utilisateurs vont utiliser le dernier Mac Pro (8 cores physiques, 16 processeurs logiques, potentiellement un gros GPU), d'autres un simple Mac mini dual core avec un GPU intégré.
Comment concevoir mon programme pour qu'il soit optimisé (autant que possible) pour ces deux configurations ? OpenCL apporte des éléments de réponse mais Apple semble vouloir aller plus loin. C'est là que GrandCentral entre en jeu.

L'objectif est d'intercepter les flots d'instructions, les analyser, les découper et les rediriger vers les différentes unités de calcul disponibles (CPU ou GPU). Il y a un point sur lequel je n'ai pas réussi à trouver d'information, est-ce que GrandCentral est capable d'identifier les traitements qui peuvent être mis en parallèle. Je m'explique, imaginons que j'ai écrit un programme qui est totalement séquentiel (pas de traitement parallèle). Dans les faits, en analysant un peu mon programme, il y a de grande chance que je puisse identifier des morceaux de traitements indépendants (qui peuvent donc être traités en parallèle). GrandCentral est-il capable de faire, à la volée, ce travail ? Si c'est le cas, une application non prévue pour fonctionner en parallèle pourrait tout de même profiter des avantages des processeurs multicore.

Ces deux technologies soulèvent cependant un problème. Actuellement, quand j'ai terminé mon programme il faut que je le compile. En d'autres termes, je transforme mon code (un ensemble de fichiers texte) en un ensemble d'instructions compréhensibles par un processeur.
Tous les processeurs ne comprennent pas les même instructions. En effet ils sont prévus pour exécuter un jeu d'instructions spécifique, x86 pour les processeurs intel, PowerPC pour IBM. Ceci est également vrai pour nos GPU, ils disposent d'un jeu d'instruction qui leur est propre (qui n'est pas le même chez ATI et NVidia).

Si vous avez bien suivi, quand je compile mon programme, je le lie de facto à une architecture particulière. Ce problème est bien connu des utilisateurs Mac, le parc de machine étant équipé à la fois de processeurs intel (x86), IBM (PowerPC) et Motorola/Freescale (PowerPC). L'Universal Binary est la réponse à ce problème (en fait, on compile deux fois le programme et on obtient deux exécutables, un pour les x86 et un pour les PowerPC).

Avec OpenCL et GrandCentral ce problème devient encore plus complexe. En effet, l'unité de calcul (CPU ou GPU) qui sera utilisée pour exécuter le code que j'ai créé ne sera déterminée qu'au moment de l'exécution. Comment compiler mon code pour qu'il soit à la fois exécutable par un processeur PowerPC, x86 ou encore un GPU NVidia ou ATI ?
La solution Universal Binary ne suffira pas (et de toute façon ne conviendra pas) ici.
Pour faire face à cette problématique, Apple a eu la bonne idée d'utiliser le compilateur LLVM (Low Level Virtual Machine).

En vulgarisant (beaucoup ;)) LLVM est composé de deux éléments principaux, un compilateur et des machines virtuelles de bas niveau. Le compilateur de LLVM se contente en réalité de traduire un programme (écris dans un langage quelconque) en un jeu d'instructions à destination d'un processeur virtuel (à la manière du ByteCode Java). Lorsque l'on va exécuter le programme, les instructions virtuelles seront exécutées par une machine virtuelle qui se chargera de traduire les instructions virtuelles en "vraies" instructions compréhensibles par le processeur (intel par exemple) de la machine (on parle de compilation à la volée, ou JIT = "Just In Time"). Il suffit alors pour Apple de créer une machine virtuelle optimisée pour chaque type de processeur. LLVM se chargera de choisir la bonne machine virtuelle au moment de l'exécution. Si vous me suivez toujours (et que vous avez eu le courage d'arriver jusqu'ici) vous devriez comprendre tout l'intérêt de LLVM si il est utilisé conjointement avec GrandCentral (au passage, Universal Binary devient complètement inutile).

Si je résume, voici comment vont interagir les différentes nouveautés de Snow Leopard.
En m'appuyant sur OpenCL, je peux écrire plus facilement une application profitant de la programmation parallèle.
En compilant avec LLVM, je m'assure que mon programme pourra fonctionner sur des environnements hétérogènes (jeu d'instructions virtuelles).
À l'exécution, GrandCentral se chargera de répartir les différents flots d'instructions vers les unités de calcul appropriées (CPU ou GPU).
Cette répartition effectuées, LLVM utilisera alors la bonne machine virtuelle pour compiler à la voler les instructions virtuelles et les faire exécuter par l'unité de calcul désignée par GrandCentral.

Au final, ce qu'il faut retenir, c'est que les nouveautés apportées par SnowLeopard ne sont pas dissociables. On ne peut pas parler de GrandCentral sans parler d'OpenCL ou de LLVM. C'est la synergie entre toutes ces technologies qui devraient permettre à Snow Leopard de se distinguer.

@+
iota
 
Un bon petit résumé sur ce quoi j'ai lu tout plein d'articles ces derniers jours !

Merci iota :)
 
  • J’aime
Réactions: iota
Merci Frodon et merci iota pour ces analyses particulièrement intéressantes.
C'est vraiment passionnant de lire vos deux récits ;) J'en ai appris pas mal en l'espace de quelques minutes
 
Tiens, j'ai lu quelque chose d'assez troublant sur un forum, à propos de ce fameux driver hfs+ pour bootcamp.

Il semblerait que ça ne soit pas un driver "complet" :
d'après les dires d'un utilisateur, seule la partition du Mac est accessible (par les dd externes ou autres), et on aurait pas accès à toutes les données, et notamment pas accès aux données des différents utilisateurs.
Ah oui; et biensûr les autres données ne seraient accessibles qu'en lecture ...

Vous en pensez quoi ? des conneries ?
si ça s'avère vrai, je trouve ça assez idiot de la part d'Apple !
 
  • J’aime
Réactions: Tucpasquic
Statut
Ce sujet est fermé.