Le contexte

Processing high resolution images is a demanding task requiring a modern computer. In terms of both memory and CPU power, getting the best out of a typical 15, 20 or 25 megapixel image can quickly take your computer to its limits.

Les exigences de darktable ne font pas exception. Tous les calculs se font en virgule flottante 4x32 bits. Ceci est plus lent que l’algèbre «ordinaire» en entiers 8 ou 16 bits mais élimine tous les problèmes de rupture de ton ou de pertes d’informations.

De nombreuses optimisations ont été mises en œuvre afin de rendre darktable aussi rapide que possible. Si vous avez une version actuelle de darktable sur un système moderne, vous ne devriez pas noter de ralentissement. Il y a cependant certaines conditions et certains modules où vous ressentirez (ou entendrez au vrombissement du ventilateur de votre CPU) la manière dont votre pauvre processeur multi-cœurs est en train de lutter.

C’est ici qu’OpenCL arrive. OpenCL nous permet de tirer avantage de l’énorme puissance des cartes graphiques modernes. Dans les jeux de tir modernes la demande des joueurs en mondes 3D très détaillés (tout comme le minage de crypto-monnaie) a favorisé le développement des GPU rapides . Afin de répondre à cette demande, AMD, NVIDIA et Co ont mis une énorme puissance de traitement dans leurs GPU. On obtient ainsi des cartes graphiques modernes avec des GPU hautement parallélisées qui peuvent calculer rapidement les surfaces et les textures à des fréquences d’images élevées.

Vous n’êtes pas un joueur et vous ne tirez pas parti de cette puissance ? Et bien vous pouvez l’utiliser au moins dans darktable ! Pour les tâches demandant des calculs fortement parallélisés en virgule flottante, les GPU modernes sont bien plus rapides que les CPU. Ceci est particulièrement vrai lorsque vous souhaitez répéter les mêmes étapes de traitement sur des millions d’éléments. Cas typique d’utilisation : traitement d’images comportant des millions de pixels.

translations