CPU vs. GPU report, large deviations?

I get CPU versus GPU result deviations for almost all tests in darktable git master repo src/tests/integration. The 0001-exposure log is shown, but other test results are similar.

I find this deviation larger than expected. Is this normal, or do I have a GPU/opencl system which is not operating correctly?

If I produce darktable output, using my own pictures, with or without GPU, I see no visual difference. I have done other calculations using my GPU outside darktable and so far my GPU seem to operate correctly.

./run.sh 0001-exposure
Test 0001-exposure
      Image mire1.cr2
      CPU & GPU version differ by 77414 pixels
      CPU vs. GPU report :
      ----------------------------------
      Max dE                   : 25.74879
      Avg dE                   : 0.02992
      Std dE                   : 0.26501
      ----------------------------------
      Pixels below avg + 0 std : 97.23 %
      Pixels below avg + 1 std : 97.48 %
      Pixels below avg + 3 std : 98.91 %
      Pixels below avg + 6 std : 99.51 %
      Pixels below avg + 9 std : 99.74 %
      ----------------------------------
      Pixels above tolerance   : 0.28 %
 
      Expected CPU vs. current CPU report :
      ----------------------------------
      Max dE                   : 0.00000
      Avg dE                   : 0.00000
      Std dE                   : 0.00000
      ----------------------------------
      Pixels below avg + 0 std : 100.00 %
      Pixels below avg + 1 std : 100.00 %
      Pixels below avg + 3 std : 100.00 %
      Pixels below avg + 6 std : 100.00 %
      Pixels below avg + 9 std : 100.00 %
      ----------------------------------
      Pixels above tolerance   : 0.00 %
 
  OK

Total test 1
Errors     0
see test-20230122-170755.log
  • I am on Debian 11.6 stable
  • darktable master dev code release-4.3.0-277-g5890e107f
  • Quadro RTX 4000 GPU.
  • NVIDIA proprietary display driver on Debian, NVIDIA 470.161.03-1 amd64
  • Intel Core i7-3770K CPU @ 3.50GHz × 8

The output of ./darktable-cltest and clinfo are attached.

cltest.txt (2.6 KB)
clinfo.txt (16.3 KB)

Hej @KarlMagnusLarsson !

Since this is the first time I run this test, I might very well have misunderstood something 
 but as far as I understand, my darktable seems to be running OK:

Test 0001-exposure
Image mire1.cr2
CPU & GPU version differ by 77416 pixels
CPU vs. GPU report :
Expected CPU vs. current CPU report

OK

Total test 1
Errors 0

I am on Manjaro, Ryzen 3900X, 32 gig RAM, GTX-1660 Ti, Nvidia proprietary. dt version = 4.3.0+275~g2d51f435b

Just tell me if you want me to run some other tests.

Have fun!
Claes nerifrÄn Lund

Thank you, @Claes, for the feedback.

I am also a beginner when it comes to these tests. The git repo darktable-tests list this as typical output:

./run.sh 0001-exposure

Test 0001-exposure
      Image mire1.cr2
      CPU & GPU version differ by 25699 pixels
      ----------------------------------
      Max dE                   : 0.00000
      Avg dE                   : 0.00000
      Std dE                   : 0.00000
      ----------------------------------
      Pixels below avg + 0 std : 100.00 %
      Pixels below avg + 1 std : 100.00 %
      Pixels below avg + 3 std : 100.00 %
      Pixels below avg + 6 std : 100.00 %
      Pixels below avg + 9 std : 100.00 %
      ----------------------------------
      Pixels above tolerance   : 0.00 %
  OK

Now dinner time here 
 I’ll be back at about 19.30


Tada!

Evidently, it was a good dinner (with a matching wine). :slight_smile:

Since it protested “no module named ‘colour’”,
I python-installed colour as well as colour-science.

Test 0001-exposure
Image mire1.cr2
CPU & GPU version differ by 77416 pixels
CPU vs. GPU report :
----------------------------------
Max dE : 25.74879
Avg dE : 0.02992
Std dE : 0.26501
----------------------------------
Pixels below avg + 0 std : 97.23 Pixels below avg + 1 std : 97.48
Pixels below avg + 3 std : 98.91 Pixels below avg + 6 std : 99.51
Pixels below avg + 9 std : 99.74 ---------------------------------- Pixels above tolerance : 0.28

  Expected CPU vs. current CPU report :
  ----------------------------------
  Max dE                   : 0.00000
  Avg dE                   : 0.00000
  Std dE                   : 0.00000
  ----------------------------------
  Pixels below avg + 0 std : 100.00 %
  Pixels below avg + 1 std : 100.00 %
  Pixels below avg + 3 std : 100.00 %
  Pixels below avg + 6 std : 100.00 %
  Pixels below avg + 9 std : 100.00 %
  ----------------------------------
  Pixels above tolerance   : 0.00 %

OK

Total test 1
Errors 0
see test-20230122-194623.log

Hej @Claes,

Thank you for the report. I have also installed python colour and colour-science packages.

It looks like you get the same CPU vs. GPU report like me, that is:

(me) Pixels below avg + 1 std : 97.48 % (you) Πxelsbelowavg+1std:97.48

(me) Pixels below avg + 3 std : 98.91 % (you) Pixels below avg + 3 std : 98.91

(me) Pixels below avg + 9 std : 99.74 % (you) Pixels below avg + 9 std : 99.74

I get some strange rendering of your table ...Πxelsbelowavg, but the results are the same, as I see it.

That would be the letter “pi”??? :slight_smile:
As in PIxel — or 3.14159xels

What do you get on your screen? Do you get the same CPU vs. GPU report : as me?

Can’t check just now — I am running the entire list, and now it is on
#0081 of #0097.

I’ll check when finished.

dump.txt (1.2 KB)

Thanks, same result as me for ./run.sh 0001-exposure, besides that you have CPU & GPU version differ by 77416 pixels and I have 77414.

Actually, I do not think it is worth investigating why
 :-)))))))

You and I get the same CPU versus GPU result, Pixels below avg + <N> std , for different CPU and GPU. That assures me that my GPU/darktable/openCL works in the same way as your system.

Intuitively, I think Pixels above tolerance : 0.28 % is higher than expected, but I have not checked the code and perhaps all deviations are due to non significant differences in least significant bit, or similar. I do not know.

Just a note that the GPU vs CPU diff is “expected” and there since the start of the regression testsuite. Most diffs are for pixels on the borders. This has been worked as much as we could at this point (I’m not saying we couldn’t do better).

Note also that I tun the testsuite every night on my server and publish the results (one commit) in the darktable-tests Git repository.

1 Like

Hello @Pascal_Obry,

Thank you for the feedback.

OK, good to know.

I only found Expected CPU vs. current CPU report, and no CPU vs. GPU report, at logs.

Right, I don’t run the GPU version on my server.