Téléchargez l'application
Tom's Hardware sur l'App Store
Toute l'actu informatique de référence sur votre iPhone
Oui Non

Une application bien plus rapide en OpenCL

par - source: Hardmac

Christophe Ducommun, développeur de MovieGate, a mis son application à jour pour tirer parti de Grand Central Dispatch et OpenCL et le moins que l’on puisse dire est que le jeu en vaut la chandelle.

Les gains dans MovieGate

MovieGate est bien plus rapide une fois que l’on tire parti des nouveautés offertes par Snow Leopard. C’est un bond très important que l’on voit rarement dans ce genre de situation. La machine de test était un Mac Pro 2,66 GHz de 2007, utilisant une GeForce 8800 GT. La vitesse d’encodage d’un film en MPEG-2 est passée de 104 images par seconde à 150 images par seconde et le taux d’utilisation du CPU est passé de 165 % à 70 % lors du décodage de ce même codec.

Snow Leopard : les mises à jour bénéfiques

Une seule application peut difficilement témoigner des gains de performances moyens offerts par Grand Central et OpenCL. Néanmoins, ces premiers chiffres sont un très bon signe et le récent don d’Apple à la communauté open source devrait favoriser le développement d’applications utilisant ces nouvelles bibliothèques (cf. « Apple met Grand Central en open source »).

Partager:
42
Commentaires
X
Valider

Commentaires
Ajouter un commentaire
Basilic et Pistou 18/09/2009 09:10
Masquer
-9+

Citation :MovieGate est deux fois plus rapide une fois que l’on tire parti des nouveautés offertes par Snow Leopard. C’est un bond très important que l’on voit rarement dans ce genre de situation. La machine de test était un Mac Pro 2,66 GHz de 2007, utilisant une GeForce 8800 GT. La vitesse d’encodage d’un film en MPEG-2 est passée de 104 images par seconde à 150 images par seconde ...


Euh, c'est moi qui comprends mal ? Dois-je retourner à l'école ?

Depuis quand, 150/104 = 2 ???? Chez moi, chez les fadas de Marseille, ça fait encore 1,44 et des poussières !

A moins qu'une fois de plus Steve Jobs ... :whistle:

Citation :et le taux d’utilisation du CPU est passé de 165 % à 70 % lors du décodage de ce même codec.


Ah, bah, décidément, c'est ma fête, aujourd'hui !! Je n'ai personnellement jamais réussi à utiliser mon proco à plus de 100% !! Domaaaaaaaage !

Puis, bon, le "journaliste", dans le même temps, ne dit pas si le taux d'occupation du GPU n'est pas passé de 0 à 2135 % !

urschuca 18/09/2009 09:11
Masquer
-0+

Intéressant même s'il faut attendre d'avoir plus de programme utilisant grand central, afin de mesurer l'impact réel sur les performances, de cette technologie.

urschuca 18/09/2009 09:14
Masquer
-0+

Basilic et pistou, il me semble qu'un taux d'utilisation de 165% et du au fait que les deux cores tournent a 82,5% de leur capacité (aprés c'est juste une hypothèse dite moi si je me trompe).

David Civera 18/09/2009 09:16
Masquer
-5+

Pour le deux fois plus rapide -> effectivement, c'est une erreur, j'ai changé la news, mais j'ai oublier d'effacer ca avant la publication.

Pour ce qui est des 165 %, ca c'est les chiffres donnés par le developpeurs et j'imagine que cela correspond à l'utilisation de plusieurs cores comme dit plus haut

L'utilisation GPU n'est pas donnée par le developpeurs... le "journaliste" va donc eviter de les inventé..

Juste entre parenthèse... Basilic, t'a souvent des commentaires pertinents, mais c'est dommage que tu t'emportes et passe en mode attaque perso...

Basilic et Pistou 18/09/2009 09:17
Masquer
-0+

urschuca :
Basilic et pistou, il me semble qu'un taux d'utilisation de 165% et du au fait que les deux cores tournent a 82,5% de leur capacité (aprés c'est juste une hypothèse dite moi si je me trompe).


Ah, alors il va falloir que tu m'expliques mieux ce que tu entends par "processeur" ! ;)

Puis, comment tu répartis les 70% ?

Basilic et Pistou 18/09/2009 09:20
Masquer
-4+

Basilic et Pistou :
Pour ce qui est des 165 %, ca c'est les chiffres donnés par le developpeurs et j'imagine que cela correspond à l'utilisation de plusieurs cores comme dit plus haut


Bah, pour moi, un CPU, c'est l'ensemble de ses cores. Donc, il ne peut pas être "exploité" à plus de 100%. Parce que sinon, j'achète un hexacores et je peux le faire tourner à 600% de ses capacités ?

Citation :Juste entre parenthèse... Basilic, t'a souvent des commentaires pertinents, mais c'est dommage que tu t'emportes et passe en mode attaque perso...

Merci pour la remarque sur la pertinence de mes propos. Pour le coté attaque perso, en professionnel, j'ai toujours du mal à admettre qu'un autre professionnel puisse faire aussi facilement dans "l'approximation" de son métier.

Relayer une news, c'est bien. Sans faire la moindre vérification élémentaire, un peu moins. Tu n'es pas d'accord ?

dandu 18/09/2009 09:27
Masquer
-4+

Pour info, Mac OS X (et les Unix) comptent les % CPU en fonction du nombre de cores, si on a 2 cores, on a 200 % de CPU au max, si on a 4 cores, 400 %, etc. Donc oui, on peut avoir "165 % de CPU", c'est l'équivalent de 1,65 CPU utilisé.

Sous Windows, c'est 100 %, quel que soit le nombre de cores, donc "100 % d'un core" varie en fonction de la machine.

Basilic et Pistou 18/09/2009 09:36
Masquer
--1+

Citation :

Pour info, Mac OS X (et les Unix) comptent les % CPU en fonction du nombre de cores, si on a 2 cores, on a 200 % de CPU au max, si on a 4 cores, 400 %, etc. Donc oui, on peut avoir "165 % de CPU", c'est l'équivalent de 1,65 CPU utilisé.

Sous Windows, c'est 100 %, quel que soit le nombre de cores, donc "100 % d'un core" varie en fonction de la machine.



Ah, c'est bien ce que je pensais, alors, Steve Jobs ... :whistle: ;)

Chez Bilou, Intel, AMD et consors, on dit un CPU Quad Cores et chez SJ, on dit Quad CPU's Mono Core !! :lol:

En tout état de cause, merci pour cet éclairage.

kaktusss 18/09/2009 09:47
Masquer
-1+

Ambiance ici !
On s'est levé du mauvais pied Basilic ? ;)
Je pense qu'étant donné que MovieGate est une application qui tourne exclusivement sur Mac, il est normal de parler pour les MacUsers. On peut chipoter tant qu'on veut, le principal c'est de savoir qu'en encodage ET décodage, le gain est réel et qu'OpenCL devrait avoir un bel avenir si de nombreux développeurs s'y penchent.

dandu 18/09/2009 09:52
Masquer
-2+

Basilic et Pistou :
Ah, c'est bien ce que je pensais, alors, Steve Jobs ... Chez Bilou, Intel, AMD et consors, on dit un CPU Quad Cores et chez SJ, on dit Quad CPU's Mono Core !! En tout état de cause, merci pour cet éclairage.



Reste que c'est plus logique : sous Mac OS X (et les Unix en général), un core utilisé à 100 % = 100 % affiché. Sous Windows, si t'as un dual, 100 % = 50 %, et si t'as un QUad, 100 % = 25 %...

pluies 18/09/2009 10:11
Masquer
-3+

Basilic et Pistou :
Chez Bilou, Intel, AMD et consors, on dit un CPU Quad Cores et chez SJ, on dit Quad CPU's Mono Core !!


Le serveur dual-Xeon dual core sous Red Hat qui sert à faire tourner les serveurs Tomcat chez nous affiche souvent des process entre 200 et 350% d'occupation CPU lors de surcharges (mesuré à l'aide de la commande 'top').

C'est pas Steve contre le reste du monde là, c'est Billou contre les OS qui font tourner de vraies applis. :D

Sinon (allez tant qu'on y est dans le troll), les applis optimisées CUDA bénéficiaient pas de biens meilleurs résultats qu'OpenCL ici ?

anonymous 18/09/2009 10:14
Masquer
-3+

Basilic et Pistou, dans le monde UNIX on calcule la charge processeur sur une base de 100% par coeur, la charge maximale sur un quadcore sous UNIX est donc de 400%.

Mictateur 18/09/2009 10:25
Masquer
-0+

Citation :

On peut chipoter tant qu'on veut, le principal c'est de savoir qu'en encodage ET décodage, le gain est réel et qu'OpenCL devrait avoir un bel avenir si de nombreux développeurs s'y penchent.



Oui enfin ça fait bien trois ans que des applis GPGPU ont fait leur apparition... :sweat:
Ce qu'on veut, c'est des vrais benchs avec plusieurs types de GPU, avec des comparaisons CUDA/Stream/OpenCL pour des algos similaires. L'utilisation de Stream+CUDA dans MovieShow Expresso de Cyberlink était intéressante d'ailleurs.

Là on a trois chiffres et demi, mouarf quoi.
En plus, l'augmentation est pas énorme non plus. Exemple : CoreAVC en CUDA fait réellement passer la CPU load de plein de % à une poignée. Mais bon, au moins, c'est pas une valeur fantaisiste marketing powa, donc :).

MouuuuOK pour les nbCores x 100%, mais 165%, c'est un dual-core, ou un tri-core, ou un quad-core ? :heink:

kaktusss 18/09/2009 10:42
Masquer
-0+

Oui en effet ça fait plusieurs années pour les applis GPGPU, mais l'apparition de GPGPU open source est toute récente par contre. Comme tu le dis, il serait très intéressant de pouvoir confronter les performances et possibilités d'OpenCL face aux solutions propriétaires que sont CUDA et Stream.

Pour le nombre de cores, vu sur la source : "Mac Pro 2007 (Quad Core 2.66 GHz with a GeForce 8800 GT)". Que ce soit avec un système ou l'autre, sans préciser le nombre de coeurs et la fréquence, le pourcentage n'a aucun sens.

Basilic et Pistou 18/09/2009 10:45
Masquer
-0+

Citation :

Ambiance ici !
On s'est levé du mauvais pied Basilic ? ;)
Je pense qu'étant donné que MovieGate est une application qui tourne exclusivement sur Mac, il est normal de parler pour les MacUsers. On peut chipoter tant qu'on veut, le principal c'est de savoir qu'en encodage ET décodage, le gain est réel et qu'OpenCL devrait avoir un bel avenir si de nombreux développeurs s'y penchent.




Je ne me suis pas plus levé du mauvais pied que d'habitude, je te rassure. Quand des choses me "choquent", je le fais savoir avec mes mots et ma façon de les dire. L'info concernant les Macusers est diffusée sur un site où les windowsiens sont largement majoritaires. Ton argumentation ne tient pas complètement la route.

Citation :

Reste que c'est plus logique : sous Mac OS X (et les Unix en général), un core utilisé à 100 % = 100 % affiché. Sous Windows, si t'as un dual, 100 % = 50 %, et si t'as un QUad, 100 % = 25 %...




Reste que c'est plus dans TA logique. Si on parle de charge CPU, il faut redéfinir ce qu'est un CPU ou parler de charge cores !

Citation :

Le serveur dual-Xeon dual core sous Red Hat qui sert à faire tourner les serveurs Tomcat chez nous affiche souvent des process entre 200 et 350% d'occupation CPU lors de surcharges (mesuré à l'aide de la commande 'top').

C'est pas Steve contre le reste du monde là, c'est Billou contre les OS qui font tourner de vraies applis. :D

Sinon (allez tant qu'on y est dans le troll), les applis optimisées CUDA bénéficiaient pas de biens meilleurs résultats qu'OpenCL ici ?




Dans le cas de machines multi CPU, je suis d'accord. Moins dans le cas de machines mono CPU multicores. Parce qu'en pinaillant bien fort, pourquoi ne pas raisonner au niveau du thread en parlant de mono CPU multicores multi threads ?

Quant au fait que l'utilisation du GPU conjointement au CPU, quels que soient la technique ou les moyens utilisés, je n'ai JAMAIS contesté que ça améliorait grandement les performances globales !

Citation :Basilic et Pistou, dans le monde UNIX on calcule la charge processeur sur une base de 100% par coeur, la charge maximale sur un quadcore sous UNIX est donc de 400%.

Ouais, super, mais, ça ne rend pas les choses plus logiques pour moi tant qu'on n'aura pas redéfini ce qu'est un processeur. Est-ce la somme des coeurs ? Si non, comment je vais passer ma commande rue Montgallet ?

Siouplaît, m'sieu, vous pouvez n'emballer 4 mono core sous un même IHS ?

Bon, d'accord, on situe le débat au niveau carrément sémantique, là. Mais ça ne compte pas ?

batchy 18/09/2009 11:06
Masquer
-0+

Citation :

Pour info, Mac OS X (et les Unix) comptent les % CPU en fonction du nombre de cores, si on a 2 cores, on a 200 % de CPU au max, si on a 4 cores, 400 %, etc. Donc oui, on peut avoir "165 % de CPU", c'est l'équivalent de 1,65 CPU utilisé.


Faut pas confondre le pourcentage d'utilisation du CPU avec le ''load''.
Quand j'ai qu'un core sur deux d'utilisé, j'ai un pourcentage d'utilisation de 50%, et un load de 1, si j'ai les deux cores d'utilisé, j'ai un load de 2 et un pourcentage de 100%.

et il est possible d'avoir un load plus grand que le nombre de core, ça veut dire que la machine est en train de souffrir ;)

ultrabill 18/09/2009 11:14
Masquer
-4+

BnP > Si tu préfères, pour Unix un processeur logique = 100% :
1 CPU monocore à 2 CPU logiques (PentiumIV HT, par exemple) = 2 CPU monocores (bi-CPU) = 1 CPU dualcore = 200%.

Graphiquement, le "Gestionnaire des tâches" se comporte de la même façon en décomposant les CPU logiques.

Au final, Unix additionne les "100%" et Windows divise par le nombre de CPU logiques...
Chacun son trip [:ddr555]

pluies 18/09/2009 11:14
Masquer
-1+

Ca compte en fonction du nombre de coeurs et non du nombre de "processeurs physiques" (qui est d'ailleurs une notion un peu floue, vu que les premiers dual core étaient deux processeurs collés ensemble à l'arrache).

La notion de thread n'a pas à rentrer en compte ; la charge de deux threads sur un seul core étant équivalente (globalement) à celle de deux threads sur deux cores.

Mictateur :
OK pour les nbCores x 100%, mais 165%, c'est un dual-core, ou un tri-core, ou un quad-core ?


165%, c'est au moins deux coeurs. Après tu peux pas savoir : ça peut être 25 cores qui tournent en parallèle...

Ce système suppose certes que l'admin connaisse le nombre de coeurs de sa machine ; cat /proc/cpuinfo est là pour ça.

La "notation Windows" ici est pas naturelle pour moi. Après c'est une question d'habitude. ^^

(Edit : ultra grillé mais bon :()

Yannick G 18/09/2009 11:31
Masquer
-3+

Je vote pour un retour aux CPU mono-core :o

malfretup 18/09/2009 13:04
Masquer
--1+

Moi je pense qu'il y a du bon et du pas bon chez vous tous...
Le seul soucis, c'est qu'en fait UN processeur multi-cores est détecté par les OS comme étant du MULTI-processeur...
C'est vrai, après tout, nous autres, consommateurs que nous sommes (ou même professionnels de l'informatique), nous achetons 1 processeur, qu'il soit, dual, quad, hexa ou octo, son architecture réelle ne nous concerne pas...
Au final, sur les cartes mères multi-processeurs qui ont en général une mémoire vive dédiée par processeur, si je mets 2 processeurs dual-core les OS les détecteront comme étant 4 processeurs et je trouve celà assez illogique, comme le dirai surement Basilic & Pistou
Le jour où le système d'exploitation fera réellement la différence entre l'utilisation d'un processeur et de ses cores séparemment ça sera plus précis je trouve...
Sinon, j'aime bien le côté un peu SEC de Basilic & Pistou, car comme le disait David plus haut, ses remarques sont très souvent pertinentes

LVM 18/09/2009 13:19
Masquer
-0+

Intéressant de voir que Snow Leopard a peine sorti, on commence déjà à rencontrer des applications adaptées à OpenCL. Et vu que c'est un standard, tout le monde pourra en profiter. :)

kaiser42 18/09/2009 13:22
Masquer
-0+

Sachant que OpenCL est sur une Base CUDA, on peut penser que CUDA sera plus rapide (CUDA et spécifique aux nVIDIA).

Sinon pour ce qui est de la charge CPU, c'est vrai que c'est super-super con.

l'interprétation de 400% et de 100% d'utilisation pour un processeur n'est pas la même.

A l'échelle windows (la plus logique à mon gout), 100% d'utilisation CPU veut dire que peux importe le nombre de core, t'as plus de ressources CPU exploitable.

Alors que a l'échelle Unix, (on voit très bien qu'ils n'ont, en gros, pas re-touché leur code !), que tu es obligé de savoir le nombre de core présent dans ton PC pour savoir si oui ou non il a encore de la patate... (8coeur => 400% Unix, 50% windows, 4coeur => 400% Unix, 100% windows ).

pluies 18/09/2009 13:29
Masquer
-1+

kaiser42 :
Sachant que OpenCL est sur une Base CUDA


Pas vraiment non... :pt1cable:

batchy 18/09/2009 13:36
Masquer
-1+

Citation :

Moi je pense qu'il y a du bon et du pas bon chez vous tous...
Le seul soucis, c'est qu'en fait UN processeur multi-cores est détecté par les OS comme étant du MULTI-processeur..



Les OS peuvent très bien faire la différence entre du multi-processeur (sans NUMA, sinon c'est évident), du multicore, et du mélange des deux. Le seul truc c'est qu'ils s'en foutent. Ça change pas grand chose (si ce n'est rien) pour leur ordonnanceur, donc pourquoi il devrai faire la différence ?
Vos outils de visualisation de charge processeur pourrais très bien vous dire ''Processeur 1 core 2", au lieu de "Processeur 2" mais franchement, ce que ça change ...

Par contre, vos OS devrai pouvoir vous indiquer précisément le nombre de processeur physique, et le nombre de core qu'ils ont. Ça ils peuvent le faire (et certain le font déjà).

Basilic et Pistou 18/09/2009 13:36
Masquer
-0+

Citation :

BnP > Si tu préfères, pour Unix un processeur logique = 100% :
1 CPU monocore à 2 CPU logiques (PentiumIV HT, par exemple) = 2 CPU monocores (bi-CPU) = 1 CPU dualcore = 200%.

Graphiquement, le "Gestionnaire des tâches" se comporte de la même façon en décomposant les CPU logiques.

Au final, Unix additionne les "100%" et Windows divise par le nombre de CPU logiques...
Chacun son trip [:ddr555]




Trop :lol:

Citation :

... Sinon pour ce qui est de la charge CPU, c'est vrai que c'est super-super con.

l'interprétation de 400% et de 100% d'utilisation pour un processeur n'est pas la même.

A l'échelle windows (la plus logique à mon gout), 100% d'utilisation CPU veut dire que peux importe le nombre de core, t'as plus de ressources CPU exploitable.

Alors que a l'échelle Unix, (on voit très bien qu'ils n'ont, en gros, pas re-touché leur code !), que tu es obligé de savoir le nombre de core présent dans ton PC pour savoir si oui ou non il a encore de la patate... (8coeur => 400% Unix, 50% windows, 4coeur => 400% Unix, 100% windows ).



Merci Kaiser42. :jap:

Quand j'achète une bagnole, je ne demande pas la puissance par cylindre, mais la puissance du MOTEUR !

Quand un moteur donne sa pleine puissance, on ne dit pas qu'il tourne à 100, 200, 300, 400, 600, 800 ou 1200 % de sa puissance selon son nombre de cylindres !

Bizarre, cette propension de l'informatique à vouloir se différencier des normes ! Un exemple des plus flagrants est la valeur de kilo, qui fait 1000 partout et 1024 en info. :sarcastic:

kaiser42 18/09/2009 13:37
Masquer
-1+

http://www.hardware.fr/articles/74 [...] atise.html

Citation :OpenCUDA

En parcourant la documentation complète d’OpenCL, il apparaît d’une manière très évidente que la base d’OpenCL est… C pour CUDA. Rien ne sert en effet de réinventer une roue qui tourne. D’une manière simplifiée nous pouvons donc dire que le consortium a repris l’API de Nvidia et l’a étendue pour y intégrer tout ce que ses membres désiraient

Basilic et Pistou 18/09/2009 13:44
Masquer
--1+

Citation :

http://www.hardware.fr/articles/74 [...] atise.html

Citation :OpenCUDA

En parcourant la documentation complète d’OpenCL, il apparaît d’une manière très évidente que la base d’OpenCL est… C pour CUDA. Rien ne sert en effet de réinventer une roue qui tourne. D’une manière simplifiée nous pouvons donc dire que le consortium a repris l’API de Nvidia et l’a étendue pour y intégrer tout ce que ses membres désiraient



Bah, faut pas non plus demander l'impossible !! Et demander à un fan d'Apple d'admettre qu'Apple n'a, une fois de plus, rien inventé, si ça n'est pas demander l'impossible ... [:ptdr2]

batchy 18/09/2009 13:45
Masquer
-0+

Citation :

Quand un moteur donne sa pleine puissance, on ne dit pas qu'il tourne à 100, 200, 300, 400, 600, 800 ou 1200 % de sa puissance selon son nombre de cylindres !


Faudrai peut être changer d'OS, mon Unix il m'indique 100% quand tout ses cores sont actifs. S'il vous dit quelque chose d'autre, alors c'est peut être pas l'OS qu'il faut changer, c'est l'outil que vous utilisez pour avoir votre utilisation CPU.

kaiser42 18/09/2009 13:48
Masquer
-0+

Basilic et Pistou :
Bah, faut pas non plus demander l'impossible !! Et demander à un fan d'Apple d'admettre qu'Apple n'a, une fois de plus, rien inventé, si ça n'est pas demander l'impossible ...



Surtout que ne plus c'est un consortium composé de Apple, AMD, Intel, Nvidia et Sony, sans compter la grosse base CUDA qui a été très long a développer du coté de nVIDIA, il n'y a pas grand chose qui a été fait ....

kaktusss 18/09/2009 14:08
Masquer
-0+

Merci Kaiser pour ce lien, excellent article. Je n'avais pas du tout vu OpenCL sous cet angle... En plus de regrouper les différentes technologies, ils auraient quand même pu ajouter quelques instructions universelles qui permettraient de réaliser la même chose sur chacune des plateformes... quitte à pouvoir optimiser certains bouts de code ensuite. Après lecture de l'article on peut vraiment se demander quel serait le gain de temps entre développer 2X en OpenCL pour une Radeon et une GeForce ou développer en Cuda et en Stream. Qu'en pensez-vous ?

Publicité

Les offres du moment

Newsletters


OK