HomeEnglishPrestationsCMP ArgentiqueBoutiqueConcours PhotoArticlesLégalDans la presse

cmp-color@orange.fr


 


Etude de l'accélération matétérielle OpenCL sous Lightroom, DxO Optics Pro et Capture One

Dans cet article, nous allons essayer de déterminer à  quel point le type et la puissance des cartes graphiques influent sur la vitesse de traitement lors du développement d'une même série de fichiers raw sous Lightroom, DxO Optics Pro et Capture One.

En effet, ces logiciels peuvent ou non utiliser une accélération matérielle pour améliorer temps de traitement  des images grâce à un language de programmation développé pour exploiter la puissance de calcul disponible sur l'unité centrale: le language OpenCL. Les périphériques compatibles OpenCL sont donc utilisés lors des calculs, qu'il s'agisse du processeur ou de la carte graphique, le logiciel choisi la meilleure méthode pour distribuer les calculs à effectuer entre le processeur et la carte graphique.

La compatibilité OpenCL ne concerne pas seulement les cartes graphiques, elle est implémentée sur tous les processeurs et toutes les cartes graphiques depuis plus de 10 ans. Même les cartes graphiques basiques intégrées aux processeurs sont pourvues de ce mode.

Historiquement, les cartes graphiques professionnelles étaient sutout optimisée pour le langage OpenGL ( et pas pas OpenCL ) et ce n'est que récemment que l'openCL est réellement efficace sur ces cartes ( Nvidia Quadro et ATI FirePro ). Il m'a donc paru intéressant de faire le point sur l'efficacité réelle de différentes cartes graphiques pour le photographe: est il plus avantageux de choisir une grosse carte graphique destinée aux joueurs? une carte intégrée au processeur est elle suffisante ? une carte professionnelle Quadro d'entrée de gamme est elle à la traine face à une carte professionnelle plus puissante ?

Le test effectué ici pour déterminer l'efficacité de l'accélération matérielle de chaque carte est le suivant: sur une même machine, j'ai choisi de  chronométrer le temps de développement d'une même série de 50 fichiers raw issus d'un sony alpha 7R, en activant et désactivant OpenCL dans les logiciels. En répétant cette opération avec les différentes carte graphiques testées, nous aurons une bonne représentation de l'efficacité réelle de ces cartes graphiques et de leur exploitation par les logiciels de traitement raw.

La machine utilisée est un PC sous windows 10 pro 64 bits: la station graphique CMP Quadro équipée d'un processeur i5 4690, de 16 gb de mémoire vive ( 1600Mhz ) et des cartes graphiques suivantes :

          - Intel HD4600 carte de base, intégrée dans le processeur i5 4690
          - ATI
          Radeon R9-280, carte puissante destinées aux jeux 3D, 3Gb de mémoire vidéo GDDR5
          - Nvidia
          Quadro K620, carte professionnelle d'entrée de gamme, 2Gb de mémoire vidéo GDDR3
          - Nvidia
          Quadro K2200, carte professionnelle moyenne gamme, 4Gb de mémoire vidéo GDDR5

Sur le papier, en ne considérant que les spécifications techniques pures, la carte la plus puissante est la Radeon R9-280, suivie par la Quadro K2200, ensuite vient la K620 et la petite HD4600 intégrée au processeur ferme la marche. Il ne faut pas oublier que le matériel seul ne fait rien et que les drivers ont une influence non négligeable puisqu'ils permettent une utilisation optimisée du matériel. Les drivers permettent à Windows et aux logiciels un bon dialogue avec le matériel afin d'utiliser au mieux la puissance de calcul disponible.

L'accélération matérielle est utilisée de 2 façons distinctes:


les différents logiciels testés

CAPTURE ONE 8:

Capture One est optmisé pour OpenCL, dans le menu préférences, 2 options sont activables séparément: " Afficher" pour activer ou non l'accélération matérielle de l'affichage écran et " Traitement" pour activer OpenCL lors des calculs finaux ( développement et export des images ). Ne pas oublier d'activer ces options qui sont désactivées par défaut.


options d'activation de l'accélération matérielle OpenCL dans Capture One

DxO Optics Pro 10:

DxO Optics Pro prends en compte la présence ou non de périphériques compatibles OpenCL et analyse quels sont les plus puissants, c'est pour cette raison qu'à son lancement, lorsque le logiciel détecte un changement de matériel ( carte graphique ou processeur ) il passe plusieurs dizaines de secondes à  tester les capacités des différents éléments présents sur le système.
Comme dans Capture One, 2 activations distinctes: "
GPU" pour activer l'accélération matérielle de l'affichage et " OpenCL" pour les calculs finaux lors de l'export des images.

 


  options d'activation de l'accélération matérielle OpenCL dans DxO Optics Pro

Chose intéressante dans DxO Optics Pro: si lors du lancement du logiciel, l'analyse de départ détecte que votre carte graphique est moins puissante en OpenCL que votre processeur, en laissant la souris sur l'option " Activer OpenCL" vous verrez le message suivant vous indiquant qu'il vaut mieux ne pas activer OpenCL:


message indiquant que l'OpenCL de la carte graphique est moins puissant que
celui du processeur

Autre réglage intéressant dans DxO Optics Pro: le nombre d'images traitées simultanément peut être paramétré en fonction de votre matériel et de sa vitesse ( stockage, traitement, mémoire vive ). Par défaut le réglage recommandé est de 2, mais il est bon de faire ses propres essais. Sur le matériel qui a servi au test ( CMP Quadro ) j'ai trouvé que le réglage 5  donnait le meilleur temps de traitement, réduisant alors de temps de calcul de près de 20% par rapport au réglage d'origine.

Lightroom 5.7:

Cette version de Lightroom est tout simplement non compatible avec l'accélération matérielle, aucune option n'est donc disponible pour l'utilisateur. Comme nous le verrons plus loin dans cet article, logiquement les différences sont minimes quelles que soient les cartes graphiques utilisées.

Lightroom CC 2015 et Camera Raw 9:

Lightroom CC 2015 ( et camera raw 9 ) est maintenant compatible avec l'accélération OpenGL pour l'affichage. Quand l'option " utiliser un processeur graphique " est cochée, l'affichage de certaines corrections est plus fluide à l'écran mais il n'y a aucun bénéfice lors du développement d'une série d'images. C'est en fait la partie logicielle de Camera Raw 9 qui est accélérée, cela se traduit par un affichage plus fluide lors de réglages dans l'onglet " développement" de Lightroom CC 2015 et dans Camera Raw 9.


Les résultats du test

Le test consiste donc en un développement de 50 fichiers raw sur les différentes configurations matérielles. Les logiciels ont été configurés dans leur configuration de base ( avec corrections optiques activées, accentuation activée, export en tiff 16bits Prophoto ), c'est le temps de développement pour cette série de 50 fichiers raw qui est indiqué sur le graphique ( temps exprimé en secondes ). Concernant le stockage des fichiers sources et développés, un couple de SSD en RAID 0 a été utilisé afin de  ne pas ralentir les opérations, les conditions de tests ont été rigoureusement identiques pour chaque configuration. La mémoire vive de la station graphique étant de 16Gb, seulement 9,5Gb étaient en moyenne utilisés lors des calculs finaux, il n'y a donc pas eu de ralentissement dû à  une mémoire vive saturée.

5 configurations ont été testées pour chaque logiciel:

Les derniers drivers ont été installés et l'utilitaire CCleaner a été utilisé pour nettoyer la base de registre windows entre chaque changement de carte graphique.

Il est clair que les traitement activés dans les logiciels ( par exemple corrections optiques, réduction du bruit ... )   influent directement sur les temps de calculs. Difficile donc d'être parfaitement à égalité de traitement pour tous les logiciels, ces derniers ne proposant pas forcément les mêmes options de traitement. Pour essayer d'être le plus objectif possible, le tableau ci-dessous donne les réglages en détail des 3 logiciels testés.

   

Capture One

DxO Optics Pro

Lightroom

  Balance des blancs

oui

oui

oui

  Correction optique

oui

oui

oui

  Vignettage

oui

oui

oui

  Franges pourpres / aberration chromatique

oui

oui

oui

  Distortion

oui

oui

oui

  Accentuation

oui

oui

oui

  Réduction de bruit

oui

oui

oui

  Smart Lighting - DxO

-

non

-

  Export TIFF 16 bits espace prophoto

oui

oui

oui

 


temps de rendu exprimé en secondes pour un export de 50 fichiers raw issus d'un Sony Alpha 7R
la version CC 2015 de Lightroom donne les mêmes temps de traitement que la version 5.7 testée ici

 

Les temps de développement pour les 50 fichiers raw sont exprimés en secondes, donc plus court est le temps plus l'accélération matérielle est efficace. Globalement, " OpenCL désactivé" est le moins performant et la Quadro K2200 est la plus rapide des cartes graphiques testée ici, la K620 n'est pas loin dernière et la R9-280 est en léger retrait face aux 2 cartes Quadro. La HD4600 intégrée au processeur n'est pas totalement ridicule en OpenCL, mais sans surprise, c'est la moins puissante des cartes graphiques testées ici.

- sous Capture One, logiquement, le plus long temps de traitement est obtenu avec OpenCL désactivé, on s'aperçoit que même une petite carte professionnelle comme la Quadro K620 est plus rapide qu'une grosse carte de jeu comme la R9-280, chose que je n'aurais pas imaginé avant de réaliser ce test! La quadro K2200 quand à  elle est la plus rapide avec un temps final de 75 secondes! Comme vous pouvez le voir sur le graphique, Capture One est le logiciel le plus rapide pour les traitements par lot et tire un bénéfice réel de l'accélération OpenCL qui semble très bien optimisée.

- sous DxO Optics Pro, curieusement les temps de calcul sont assez longs, il semble que le dématriçage et/ou les calculs sont plus complexes que ceux des autres logiciels. Quoi qu'il en soit, la qualité des images développées avec DxO est tout à  fait comparables avec celle des autres logiciels, il est donc difficile de comprendre cette relative lenteur. Lors du lancement de DxO avec la carte graphique intégrée HD4600, il était indiqué que cette carte graphique était moins performante que le processeur seul, chose qui se vérifie dans les chiffres: le temps de traitement avec HD4600 étant plus long qu'en utilisant le processeur seul. Il est par contre incompréhensible que cette différence de performance HD4600 / processeur ne soit pas visible de façon comparable sous Capture One. Attention si vous développez de grandes séries d'images avec DxO, la fonction " SmartLighting" est une grosse consommatrice de puissante, prévoyez 30% de temps de calcul en plus avec cette fonction activée ( fonction désactivée lors du test ).

- sous Lightroom 5.7 et CC 2015, l'accélération matérielle est nulle puisque non prise en compte par le logiciel lors du développement des images. Quoi qu'il en soit, les performances sont bonnes, puisque situées entre celles de Capture One et celles de DxO. Il est quand même vraiment dommage qu'Adobe ne choisisse pas d'utliser ce type d'accélération qui donne de très bonnes améliorations lors du développement de lot d'images.

Pour essayer d'expliquer ces différences de performance entre les logiciels sur un même matériel, j'ai utlisé des moniteurs d'utilisation des ressources matérielles. Sur les graphiques ci-dessous, nous voyons clairement qu'il existe des différences de comportement dans l'utilisation des ressources matérielles lors du développement d'un lot d'images. La courbe verte nous permet de visualiser l'activité de la carte Quadro K2200 utilisée pour ce test, le graphique coloré à  droite montre l'activité du processeur qui comporte 8 coeurs ( numérotés " core 1 à 8" sur les captures d'écran ci-dessous  ).


utilisation des ressources matérielles dans Lightroom 5.7 et CC 2015
la carte nvidia Quadro K2200 n'est pas utilisée pour les calculs
mais uniquement pour l'affichage ( CC 2015 )


utilisation des ressources matérielles dans Capture One 8
le processeur est assez peu utilisé, la carte Quadro K2200 l'est beaucoup plus


  utilisation des ressources matérielles dans DxO Optics Pro 10
le processeur est utilisé presque à 100%, la carte Quadro K2200 est utilisée " avec parcimonie "

En comparant l'utilisation des ressources de Capture One et DxO, on voit une différence sensible entre les 2 logiciels: Capture One n'utilise le processeur que de façon discrète ( aux environs de 30 % de la puissante disponible est utilisée ) alors que la carte graphique est utilisée de façon intensive. Chez DxO, c'est plutôt le contraire: le processeur est soumis à une forte charge alors que la carte graphique est utilisée de façon ponctuelle. Une piste pour expliquer les différences de performance de ces 2 logiciels ?

Du point de vue de l'accélération matérielle de l'affichage, des différences sont bien visibles pour l'utilisateur: Les opérations de zoom, de  déplacement dans l'image et les calculs des prévisualistions des corrections effectuées sont plus véloces avec les cartes Quadro, la Radeon R9-280 étant un cran en dessous, la HD 4600 générant pas mal d'artéfacts à l'écran pendant les défilements horizontaux et verticaux. Les 3 logiciels ont à quelque chose près le même comportement et pour l'utilisateur la différence de confort de travail est assez sensible en fonction de la carte graphique utilisée.


article écrit en Avril 2015 - mis à jour Mai 2015


Copyright (c) 2019 christophe metairie photographie - Tous droits reserves