Problème de perf à l'export de raw vers jpeg

Bonjour,

Avec les confinements j’ai pas fait beaucoup de photos ces derniers mois, mais lorsque j’ai voulu m’y remettre il y a quelques jours, j’ai constaté que l’export de mes raw en jpeg était très lent. En gros aussi lent que lorsqu’il n’utilisait pas les 12 coeurs de mon CPU (un Ryzen 5 3600).
J’ai contrôlé ma conf système et les pilotes graphiques sont ok (AMD RX 570), openCL est bien détecté.
Je ne comprends pas ce qui s’est passé, sans doute au fil des mises à jour OS (archlinux). J’ai loupé quelque chose ? Est-ce que quelqu’un pourrait m’aider ?

Merci d’avance.
JF

Bonjour, avec quelle version de darktable, la version 3.6.0 est largement plus rapide. Après sous Arch, tu peux compiler les sources avec le dépôt AUR qui utilisera toutes les ressources de ta machine.

Oui pardon j’avais oublié de préciser que c’est bien la 3.6 que j’utilise.

La 3.6 a vu beaucoup d’améliorations de performances et donc de l’export (la durée d’export est avant tout lié à la fois à la configuration de l’ordinateur ET les modules/réglages utilisés).

Je vois plusieurs choses déjà :

  • s’assurer que les pilotes sont à jour, particulièrement de la carte graphique
  • si ça n’améliore rien, parfois une version antérieure du pilote est plus performante
  • quels réglages dans l’onglet CPU/GPU/Mémoire des préférences de darktable ?
  • la durée d’export varie probablement selon les images. Certains réglages de modules sont plus gourmands que d’autres. Par exemple, le module réduction de bruit de profil, performant mais gourmand.

J’ai déjà pas mal regardé les conseils du forum et une chose est sûre, pendant l’export des fichiers, mes CPU ne grimpent jamais en charge. Ils ne dépassent pas 2 ou 3 % et jamais simultanément, donc je ne pense pas à un driver un peu moins bon.
L’export est long et mes CPU dorment… Il y a quelques mois lorsque j’avais traité mes photos, je les voyais grimper en charge et ça prenait vraiment beaucoup, beaucoup moins de temps.
Et je n’avais pas changé mes réglages darktable entre temps. Mais c’est peut-être au niveau OS au fil des mises à jour qu’il y a un truc qui m’a échappé.

Cela dit, quand je lance des compilations de paquets AUR un peu gros, je vois bien que l’OS charge tous mes CPU, donc ça marche bien de ce côté là.
[hr]
Et question paramètres, les voici :

@Jean François, n’aurais-tu pas activé le mode échantillonnage haute qualité en haut dans le module exporter ?

Je viens de contrôler, et non ce n’est pas le cas.

Alors je sèche :frowning: Qu’appelles tu plus lent ? Le timing avant et après pourrait donner une indication…
[hr]
Tu peux aussi désactiver OpenCL et vérifier si ce ne serait pas plus rapide. Cela pourrait alors indiquer un problème de driver de la carte.

J’ai relancé des exports d’images qui avaient déjà été exportées en mai dernier.
Il met actuellement entre 3 et 4 mn par image (relevé à la date de création des fichiers successifs). En mai j’avais plusieurs fichiers qui indiquaient la même heure… donc exportés tous durant la même minute…

Voilà les specs d’un des fichiers exportés récemment :
5D3_1957.jpg: JPEG image data, JFIF standard 1.01, resolution (DPI), density 300x300, segment length 16, Exif Standard: [TIFF image data, little-endian, direntries=15, description=II*, manufacturer=Canon, model=Canon EOS 5D Mark III, orientation=upper-left, xresolution=222, yresolution=230, resolutionunit=2, software=darktable 3.6.0, datetime=2021:07:27 14:16:21], baseline, precision 8, 5793x3867, components 3

La dernière fois où j’avais développé des fichiers sans ce soucis, c’était avec darktable 3.4.1 d’après ce qu’indiquent les exports.
[hr]
Il a quasiment finit d’exporter les 19 images que j’avais lancé => 1h
Il y a quelques mois, il m’aurait fait ça en moins de 5mn. :frowning:

Ah oui c’est vraiment beaucoup plus lent :frowning: As-tu essayé sans OpenCL ?

Oui, ça ne change rien.
Ce qui est vraiment bizarre c’est qu’au moment où je lance l’export, pendant 2s je vois tous les CPU chargés puis, ça retombe et ça reste comme ça jusqu’à la fin.

As-tu essayé de supprimer (tu fasi un backup bien entendu) le fichier ~/.config/darktable/darktablerc et de faire des exports?

Ça ne change rien :frowning:

Au vu des écarts de perfs énormes, mon intuition (elle vaut ce qu’elle vaut !) me dit que ça vient probablement plus du système que de darktable. Peut-être un pilote, une version de noyau qui n’aide pas. J’ai souvenir d’avoir eu un gain de performances très notable sur darktable (et pas que) il y a quoi 1 an et demi de ça je crois, rien qu’en changeant de version du noyau Linux. Ca n’est peut-être pas ça mais a voir. Ou alors la gestion de la régulation du processeur qui merde dès que ça monte dans les tours.

As-tu d’autres logiciels gourmands (au moins autant que darktable) que tu utilises ? Peut-être qu’il faut creuser sur la gestion du processeur. Je ne sais pas quel environnement bureau tu utilises mais sous Gnome, j’ai déjà utilisé l’extension cpufreq qui permet de gérer/suivre la gestion de la régulation et usage du processeur.

C’est un peu technique mais au cas où :

Et l’extension Gnome cpufreq : https://extensions.gnome.org/extension/1082/cpufreq/

J’utilise Cinnamon comme environnement, mais j’ai aussi essayé depuis i3 et le résultat est le même.

J’ai lancé quelques tests Phoronix, des compilations, des découpes d’objets complexes avec Cura et à chaque fois je vois bien les cpu se charger (surveillés avec l’applet Cinnamon et htop).
Donc au niveau système justement ça semble bien se passer.

As-tu essayé de regarder ce que donnait les logs de console avec l’option :

-d perf

de darktable pendant l’export ?
[hr]
Une autre chose à tester, as-tu les mêmes problèmes de performance si tu exportes en TIFF, WebP,… ?

Les exports en jpeg2k sont beaucoup plus rapides, mais les tiff c’est 10mn par fichier.

Et voilà les perf pour l’export de 2 images en jpeg :

╰─>$ darktable -d perf
22,836092 [dev] took 0,184 secs (0,147 CPU) to load the image.
22,927108 [export] creating pixelpipe took 0,075 secs (0,256 CPU)
22,940870 [dev_pixelpipe] took 0,013 secs (0,062 CPU) initing base buffer [export]
22,968925 [dev_pixelpipe] took 0,028 secs (0,002 CPU) processed point noir/blanc raw' on GPU, blended on GPU [export] 22,974746 [dev_pixelpipe] took 0,006 secs (0,000 CPU) processed balance des blancs’ on GPU, blended on GPU [export]
22,977825 [dev_pixelpipe] took 0,003 secs (0,000 CPU) processed reconstruire hautes lumières' on GPU, blended on GPU [export] 23,015248 [dev_pixelpipe] took 0,037 secs (0,000 CPU) processed dématriçage’ on GPU, blended on GPU [export]
23,020685 [dev_pixelpipe] took 0,005 secs (0,000 CPU) processed exposition' on GPU, blended on GPU [export] 23,288589 [dev_pixelpipe] took 0,268 secs (0,899 CPU) processed correction des objectifs’ on GPU, blended on GPU [export]
23,294600 [dev_pixelpipe] took 0,006 secs (0,000 CPU) processed courbe de base' on GPU, blended on GPU [export] 23,300638 [dev_pixelpipe] took 0,006 secs (0,000 CPU) processed profil de couleur d’entrée’ on GPU, blended on GPU [export]
23,358987 [dev_pixelpipe] took 0,058 secs (0,000 CPU) processed ombres et hautes lumières' on GPU, blended on GPU [export] 23,369073 [dev_pixelpipe] took 0,010 secs (0,000 CPU) processed profil de couleur de sortie’ on GPU, blended on GPU [export]
23,604592 [dev_pixelpipe] took 0,236 secs (0,472 CPU) processed encodage écran' on CPU, blended on CPU [export] 23,604613 [dev_process_export] pixel pipeline processing took 0,677 secs (1,439 CPU) [export_job] exported to /NAS/photo/2021/07 Cap Coz/Concarneau/darktable_exported/5D3_1616.jpg’
248,955213 [dev] took 0,176 secs (0,129 CPU) to load the image.
249,031249 [export] creating pixelpipe took 0,069 secs (0,202 CPU)
249,044726 [dev_pixelpipe] took 0,013 secs (0,036 CPU) initing base buffer [export]
249,054966 [dev_pixelpipe] took 0,010 secs (0,001 CPU) processed point noir/blanc raw' on GPU, blended on GPU [export] 249,057992 [dev_pixelpipe] took 0,003 secs (0,000 CPU) processed balance des blancs’ on GPU, blended on GPU [export]
249,060996 [dev_pixelpipe] took 0,003 secs (0,000 CPU) processed reconstruire hautes lumières' on GPU, blended on GPU [export] 249,097031 [dev_pixelpipe] took 0,036 secs (0,001 CPU) processed dématriçage’ on GPU, blended on GPU [export]
249,102441 [dev_pixelpipe] took 0,005 secs (0,000 CPU) processed exposition' on GPU, blended on GPU [export] 249,338111 [dev_pixelpipe] took 0,236 secs (0,694 CPU) processed correction des objectifs’ on GPU, blended on GPU [export]
249,346318 [dev_pixelpipe] took 0,008 secs (0,000 CPU) processed recadrer et pivoter' on GPU, blended on GPU [export] 249,352000 [dev_pixelpipe] took 0,006 secs (0,000 CPU) processed courbe de base’ on GPU, blended on GPU [export]
249,357809 [dev_pixelpipe] took 0,006 secs (0,000 CPU) processed profil de couleur d'entrée' on GPU, blended on GPU [export] 249,407808 [dev_pixelpipe] took 0,050 secs (0,000 CPU) processed ombres et hautes lumières’ on GPU, blended on GPU [export]
249,423016 [dev_pixelpipe] took 0,015 secs (0,000 CPU) processed renforcer la netteté' on GPU, blended on GPU [export] 249,433476 [dev_pixelpipe] took 0,010 secs (0,000 CPU) processed profil de couleur de sortie’ on GPU, blended on GPU [export]
249,556796 [dev_pixelpipe] took 0,123 secs (0,463 CPU) processed encodage écran' on CPU, blended on CPU [export] 249,556814 [dev_process_export] pixel pipeline processing took 0,526 secs (1,198 CPU) [export_job] exported to /NAS/photo/2021/07 Cap Coz/Concarneau/darktable_exported/5D3_1617.jpg’
[hr]
Je crois que j’ai compris.
C’est l’écriture sur le disque du NAS qui prend du temps. Je ne comprend pas bien pourquoi, vu que je travaille régulièrement dessus pour plein de choses, mais je vais creuser les paramètres de montage. Il doit y avoir quelque chose qui gène.
[hr]
Je suis reparti des options de montage de base et ça marche.

En fait, j’avais bricolé les options de montage de mon NAS pour éviter que s’il est down ça bloque le démarrage de mon PC. Et j’ai du aller un peu loin…

Finalement avec « defaults,soft,timeo=200,bg » c’est bon. A voir maintenant si mon NAS est down ce qui se passera… Mais bon maintenant je sais qu’il faut que je teste darktable après chaque modif. :slight_smile:

Merci à tous pour votre aide.

Eh bien on aurait pas trouvé, mais la trace ci-dessus montre clairement que ce n’est pas la création du jpeg qui est lente !