Comparing rusticl performance vs rocm on a 6700 XT

I just tried compiling mesa git with the patch for the black images in darktable included and ran some quick and dirty tests on one of my latest images.

rusticl

time /opt/darktable/bin/darktable-cli --verbose _51A2353.CR3 .
notice: output location is a directory. assuming './$(FILE_NAME).jpg' output pattern
●  Chromatische Aberration
●  Objektivkorrektur
●  Retusche
●  Zuschneiden
●  Retusche
●  Zuschneiden
●  Drehen und Perspektive
●  Farbbalance RGB
●  Retusche
●  Diffusion / Schärfe Schärfen Demosaicing: AA-Filter
●  Belichtung 1
●  Tonwert-Equalizer
●  Verlaufsfilter
●  Belichtung
●  Zuschneiden
●  Belichtung 2
●  Belichtung 1
●  Belichtung 1
●  Drehen und Perspektive
●  Drehen und Perspektive
●  Diffusion / Schärfe Objektivschärfe: stark
●  Zuschneiden
●  Belichtung 1
●  Belichtung 1
●  Belichtung 2
●  Zuschneiden
●  Belichtung 2
●  Belichtung
●  Zuschneiden
●  Farbbalance RGB
●  Retusche
●  Farbbalance RGB
●  Belichtung 1
●  Retusche
●  Retusche
●  Retusche
●  Belichtung 1
●  Belichtung
●  Zuschneiden
●  Tonwert-Equalizer
●  Belichtung
●  Retusche
●  Sigmoid
●  Tonwert-Equalizer
●  Diffusion / Schärfe Schärfen Demosaicing: AA-Filter
●  Diffusion / Schärfe Lokaler Kontrast
●  Entrauschen (Profil)
●  Belichtung
●  Farbkalibrierung
●  Sigmoid Vorgabe szenenbezogene Bearbeitung
●  Belichtung Vorgabe szenenbezogene Bearbeitung
●  Farbkalibrierung Vorgabe szenenbezogene Bearbeitung
●  Spitzlicht-Rekonstruktion
●  Ausgabefarbprofil
●  Eingabefarbprofil
●  Entrastern
●  Drehung auto
●  Weißabgleich
●  Ausgabekodierung
●  Raw-Schwarz-/Weißpunkt
     0,8498 [libraw_open] extensions whitelist: `cr3'
    10,7248 [export_job] exported to `./_51A2353_03.jpg'

real	0m11,143s
user	0m22,329s
sys	0m8,363s

latest amd opencl drivers:

time /opt/darktable/bin/darktable-cli --verbose _51A2353.CR3 .
notice: output location is a directory. assuming './$(FILE_NAME).jpg' output pattern
●  Chromatische Aberration
●  Objektivkorrektur
●  Retusche
●  Zuschneiden
●  Retusche
●  Zuschneiden
●  Drehen und Perspektive
●  Farbbalance RGB
●  Retusche
●  Diffusion / Schärfe Schärfen Demosaicing: AA-Filter
●  Belichtung 1
●  Tonwert-Equalizer
●  Verlaufsfilter
●  Belichtung
●  Zuschneiden
●  Belichtung 2
●  Belichtung 1
●  Belichtung 1
●  Drehen und Perspektive
●  Drehen und Perspektive
●  Diffusion / Schärfe Objektivschärfe: stark
●  Zuschneiden
●  Belichtung 1
●  Belichtung 1
●  Belichtung 2
●  Zuschneiden
●  Belichtung 2
●  Belichtung
●  Zuschneiden
●  Farbbalance RGB
●  Retusche
●  Farbbalance RGB
●  Belichtung 1
●  Retusche
●  Retusche
●  Retusche
●  Belichtung 1
●  Belichtung
●  Zuschneiden
●  Tonwert-Equalizer
●  Belichtung
●  Retusche
●  Sigmoid
●  Tonwert-Equalizer
●  Diffusion / Schärfe Schärfen Demosaicing: AA-Filter
●  Diffusion / Schärfe Lokaler Kontrast
●  Entrauschen (Profil)
●  Belichtung
●  Farbkalibrierung
●  Sigmoid Vorgabe szenenbezogene Bearbeitung
●  Belichtung Vorgabe szenenbezogene Bearbeitung
●  Farbkalibrierung Vorgabe szenenbezogene Bearbeitung
●  Spitzlicht-Rekonstruktion
●  Ausgabefarbprofil
●  Eingabefarbprofil
●  Entrastern
●  Drehung auto
●  Weißabgleich
●  Ausgabekodierung
●  Raw-Schwarz-/Weißpunkt
     0,8109 [libraw_open] extensions whitelist: `cr3'
     7,1358 [export_job] exported to `./_51A2353_01.jpg'

real	0m7,230s
user	0m21,255s
sys	0m8,445s

So the time difference using 45 MP images and compute heavy modules is ~7 s vs ~11 s. Not great but as a completely open source stack it shows a lot of potential I’d say! :slight_smile: Maybe there’s things I didn’t do right, so please shoot.

1 Like

Ah nice, I’ve talked to Karol a few days ago and asked if you also could check if zooming works. As that also produced black images. Since then I saw a new push to the MR. Can you confirm that zooming works?

everything I tested so far works completely as expected just a bit slower

Nice! Especially for older cards that aren’t supported any longer by AMD ROCm. Regrettably, they only support the latest few cards. I actually “had to” replace my computer two years ago for that reason.

What card did you have? Even my old rx 580 is still working with the current drivers. If good or without bugs is another question.

I had a Vega 64. The oddball one that was shipped on the same package as a 10th gen Intel processor in a wonderfully compact NUC PC. A match made in heaven, than unsurprisingly was immediately abandoned by both parties in some corporate dispute. Windows drivers were therefore outdated and terrible, but it worked really well in Linux. Then AMD dropped it from the ROCm support matrix and it became useless for my purposes.

Running Darktable 4.7 with mesa 24.0.1 now:

rusticl:

time /opt/darktable/bin/darktable-cli --verbose _51A2353.CR3 .
notice: output location is a directory. assuming './$(FILE_NAME).jpg' output pattern
●  Chromatische Aberration
●  Objektivkorrektur
●  Retusche
●  Zuschneiden
●  Retusche
●  Zuschneiden
●  Drehen und Perspektive
●  Farbbalance RGB
●  Retusche
●  Diffusion / Schärfe Schärfen Demosaicing: AA-Filter
●  Belichtung 1
●  Tonwert-Equalizer
●  Verlaufsfilter
●  Belichtung
●  Zuschneiden
●  Belichtung 2
●  Belichtung 1
●  Belichtung 1
●  Drehen und Perspektive
●  Drehen und Perspektive
●  Diffusion / Schärfe Objektivschärfe: stark
●  Zuschneiden
●  Belichtung 1
●  Belichtung 1
●  Belichtung 2
●  Zuschneiden
●  Belichtung 2
●  Belichtung
●  Zuschneiden
●  Farbbalance RGB
●  Retusche
●  Farbbalance RGB
●  Belichtung 1
●  Retusche
●  Retusche
●  Retusche
●  Belichtung 1
●  Belichtung
●  Zuschneiden
●  Tonwert-Equalizer
●  Belichtung
●  Retusche
●  Sigmoid
●  Tonwert-Equalizer
●  Diffusion / Schärfe Schärfen Demosaicing: AA-Filter
●  Diffusion / Schärfe Lokaler Kontrast
●  Entrauschen (Profil)
●  Belichtung
●  Farbkalibrierung
●  Sigmoid Vorgabe szenenbezogene Bearbeitung
●  Belichtung Vorgabe szenenbezogene Bearbeitung
●  Farbkalibrierung Vorgabe szenenbezogene Bearbeitung
●  Spitzlicht-Rekonstruktion
●  Ausgabefarbprofil
●  Eingabefarbprofil
●  Entrastern
●  Drehung auto
●  Weißabgleich
●  Ausgabekodierung
●  RAW-Schwarz-/Weißpunkt
     0,9234 [libraw_open] extensions whitelist: `cr3'
     9,1110 [export_job] exported to `./_51A2353_06.jpg'

real	0m9,551s
user	0m25,183s
sys	0m8,928s

rocm opencl (driver version 3602.0)

time /opt/darktable/bin/darktable-cli --verbose _51A2353.CR3 .
notice: output location is a directory. assuming './$(FILE_NAME).jpg' output pattern
●  Chromatische Aberration
●  Objektivkorrektur
●  Retusche
●  Zuschneiden
●  Retusche
●  Zuschneiden
●  Drehen und Perspektive
●  Farbbalance RGB
●  Retusche
●  Diffusion / Schärfe Schärfen Demosaicing: AA-Filter
●  Belichtung 1
●  Tonwert-Equalizer
●  Verlaufsfilter
●  Belichtung
●  Zuschneiden
●  Belichtung 2
●  Belichtung 1
●  Belichtung 1
●  Drehen und Perspektive
●  Drehen und Perspektive
●  Diffusion / Schärfe Objektivschärfe: stark
●  Zuschneiden
●  Belichtung 1
●  Belichtung 1
●  Belichtung 2
●  Zuschneiden
●  Belichtung 2
●  Belichtung
●  Zuschneiden
●  Farbbalance RGB
●  Retusche
●  Farbbalance RGB
●  Belichtung 1
●  Retusche
●  Retusche
●  Retusche
●  Belichtung 1
●  Belichtung
●  Zuschneiden
●  Tonwert-Equalizer
●  Belichtung
●  Retusche
●  Sigmoid
●  Tonwert-Equalizer
●  Diffusion / Schärfe Schärfen Demosaicing: AA-Filter
●  Diffusion / Schärfe Lokaler Kontrast
●  Entrauschen (Profil)
●  Belichtung
●  Farbkalibrierung
●  Sigmoid Vorgabe szenenbezogene Bearbeitung
●  Belichtung Vorgabe szenenbezogene Bearbeitung
●  Farbkalibrierung Vorgabe szenenbezogene Bearbeitung
●  Spitzlicht-Rekonstruktion
●  Ausgabefarbprofil
●  Eingabefarbprofil
●  Entrastern
●  Drehung auto
●  Weißabgleich
●  Ausgabekodierung
●  RAW-Schwarz-/Weißpunkt
     0,8117 [libraw_open] extensions whitelist: `cr3'
     6,8929 [export_job] exported to `./_51A2353_08.jpg'

real	0m6,993s
user	0m26,408s
sys	0m7,027s

It’s now 9.6 s vs 7.0 s. The improvement in speed is noticeable in every day work

My setup: AMD RX 5600XT, Mesa 24.0.1, ROCm 6.0.2, darktable 4.6.1

I exported 9 Images. It took 25 seconds with RustiCL and 6 seconds with ROCm.

1 Like

Looks like CPU path vs rocm. Are you sure you had opencl support while testing?

I re-checked with RustiCL after I saw that ROCm is so much faster. I’ll do it again and look at the CPU usage in top.

Edit: I repeated the test. darktable -d perf reported GPU procressing, and the CPU is almost idle in top during that time. Again, exporting the 9 images took 25 seconds.

2 Likes

At least on intel hardware rusticl uses far less cl memory than NEO drivers, that leads to a big per penalty while eporting. Worth to check on AMD if you are comparing perf via -d opencl