[Bf-blender-cvs] [ad0a3de] master: Cycles / OpenCL: Let the OpenCL runtime determine its optimal work-group size automatically, by passing a NULL pointer here.

Thomas Dinges noreply at git.blender.org
Tue Dec 24 20:21:15 CET 2013


Commit: ad0a3de3ce7f84486047b11343405072f0972107
Author: Thomas Dinges
Date:   Tue Dec 24 20:20:35 2013 +0100
https://developer.blender.org/rBad0a3de3ce7f84486047b11343405072f0972107

Cycles / OpenCL: Let the OpenCL runtime determine its optimal work-group size automatically, by passing a NULL pointer here.

This is recommended in the Intel OpenCL optimization docs (http://software.intel.com/en-us/vcsource/samples/optimizing-opencl) and I can confirm a small performance increase here (1-2% on nVidia OpenCL, up to 8% on Intel OpenCL).

===================================================================

M	intern/cycles/device/device_opencl.cpp

===================================================================

diff --git a/intern/cycles/device/device_opencl.cpp b/intern/cycles/device/device_opencl.cpp
index 3a88b68..9117b70 100644
--- a/intern/cycles/device/device_opencl.cpp
+++ b/intern/cycles/device/device_opencl.cpp
@@ -931,7 +931,7 @@ public:
 		size_t global_size[2] = {global_size_round_up(local_size[0], w), global_size_round_up(local_size[1], h)};
 
 		/* run kernel */
-		ciErr = clEnqueueNDRangeKernel(cqCommandQueue, kernel, 2, NULL, global_size, local_size, 0, NULL, NULL);
+		ciErr = clEnqueueNDRangeKernel(cqCommandQueue, kernel, 2, NULL, global_size, NULL, 0, NULL, NULL);
 		opencl_assert(ciErr);
 		opencl_assert(clFlush(cqCommandQueue));
 	}




More information about the Bf-blender-cvs mailing list