Well, in your case I see the differences as only marginal - the time spent in the OpenCL pixelpipe differs only by 2% between the two setting (in favor of TRUE). Not sure if differences persist if you would repeat profiling several times to get out any fluctuations.

So it seems that your combination of GPU and driver does not profit from the opencl_use_pinned_memory flag. But in your case it would not harm either to change the default to TRUE.

To others: I am interested to see if there are systems where opencl_use_pinned_memory=TRUE gives a heavy negative impact on performance.

Ulrich

Am 15.09.2016 um 06:00 schrieb Jack Bowling:
On 09/14/2016 09:56 AM, Ulrich Pegelow wrote:
Well, there obviously is an issue with OpenCL and NVIDIA. However, a
quick check reveals that this is not related to 2.0.6 versus 2.0.5.

In fact it seems that NVIDIA did some changes to their drivers in the
way they handle memory transfers over the IDE interface.

There is a quick fix for that in darktable. You can switch config
variable opencl_use_pinned_memory to TRUE (can be found in darktablerc).
At least here on my this makes a difference of up to a factor of 30
(oldish GeForce GTS 450 and 367.35 driver).
<snip>

Setting pinned_memory=true leads to slower render times on my box. Here
is system info on my fully updated Ubuntu 16.04 box:

$ darktable --version
this is darktable 2.0.6
copyright (c) 2009-2016 johannes hanika
[email protected]

compile options:
  bit depth is 64 bit
  normal build
  OpenMP support enabled
  OpenCL support enabled
  Lua support enabled, API version 3.0.0
  Colord support enabled
  gPhoto2 support enabled
  GraphicsMagick support enabled

$ inxi
CPU~Octa core AMD FX-8300 Eight-Core (-MCP-) speed/max~1400/3300 MHz
Kernel~4.4.0-36-generic x86_64 Up~8 days Mem~2495.3/32090.4MB
HDD~23734.6GB(33.4% used) Procs~340 Client~Shell inxi~2.2.35

$ inxi -G
Graphics:  Card: NVIDIA GK107 [GeForce GT 740]
           Display Server: X.Org 1.18.3 drivers: nvidia (unloaded:
fbdev,vesa,nouveau)
           Resolution: [email protected]
           GLX Renderer: GeForce GT 740/PCIe/SSE2
           GLX Version: 4.5.0 NVIDIA 361.42

Here is the relevant paste from my darktable config:

opencl=TRUE
opencl_async_pixelpipe=false
opencl_avoid_atomics=false
opencl_checksum=4188966525
opencl_device_priority=*/!0,*/*/*
opencl_library=
opencl_memory_headroom=1000
opencl_memory_requirement=768
opencl_micro_nap=1000
opencl_number_event_handles=25
opencl_omit_whitebalance=
opencl_size_roundup=16
opencl_synch_cache=false
opencl_use_cpu_devices=false
opencl_use_pinned_memory=false

Note the high headroom necessary to prevent atrous dumping to CPU.

Attached are two text files of "darktable -d opencl -d perf" output, one
with pinned_memory=true and one with pinned_memory=false.

Jack


____________________________________________________________________________
darktable user mailing list
to unsubscribe send a mail to [email protected]

Reply via email to