Se connecter avec
S'enregistrer | Connectez-vous

Une application bien plus rapide en OpenCL

Par - Source: Hardmac | B 42 commentaires

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 »).

Commentaires
Afficher les 42 commentaires.
Cette page n'accepte plus de commentaires
  • Basilic et Pistou , 18 septembre 2009 09:10
    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 septembre 2009 09:11
    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 septembre 2009 09:14
    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 septembre 2009 09:16
    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 septembre 2009 09:17
    urschucaBasilic 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 septembre 2009 09:20
    Basilic et PistouPour 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 septembre 2009 09:27
    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.
  • -1 Masquer
    Basilic et Pistou , 18 septembre 2009 09:36
    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 septembre 2009 09:47
    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 septembre 2009 09:52
    Basilic et PistouAh, 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 septembre 2009 10:11
    Basilic et PistouChez 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 ?
  • Anonyme , 18 septembre 2009 10:14
    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 septembre 2009 10:25
    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 septembre 2009 10:42
    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 septembre 2009 10:45
    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 septembre 2009 11:06
    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 septembre 2009 11:14
    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
  • pluies , 18 septembre 2009 11:14
    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.

    MictateurOK 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 septembre 2009 11:31
    Je vote pour un retour aux CPU mono-core :o 
  • -1 Masquer
    malfretup , 18 septembre 2009 13:04
    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
Afficher plus de commentaires