Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OpenCL resources not released in QueueDelay #18

Closed
speziale-ettore opened this issue Nov 23, 2012 · 0 comments
Closed

OpenCL resources not released in QueueDelay #18

speziale-ettore opened this issue Nov 23, 2012 · 0 comments

Comments

@speziale-ettore
Copy link

Hi,

OpenCL events used to time kernels are not released in QueueDelay.cpp.

Here is the patch:

diff --git a/src/opencl/level0/QueueDelay.cpp b/src/opencl/level0/QueueDelay.cpp
index 8497fcd..b81e971 100644
--- a/src/opencl/level0/QueueDelay.cpp
+++ b/src/opencl/level0/QueueDelay.cpp
@@ -137,18 +137,17 @@ void RunBenchmark(cl::Device& devcpp,
     size_t localWorkSize = (maxGroupSize >= 256 ? 256 : maxGroupSize);
     size_t globalWorkSize = localWorkSize * 256;

-    // Declare event objects for the kernels
-    Event evKernel1("Run Kernel1");
-    Event evKernel2("Run Kernel2");
-    Event evKernel3("Run Kernel3");
-    Event evKernel4("Run Kernel4");
-    
     //Test single kernel
     for (int j = 0; j < passes; j++)
     {
        double total = 0.0;
        for (int i = 0; i < reps; i++)
        {
+          Event evKernel1("Run Kernel1");
+          Event evKernel2("Run Kernel2");
+          Event evKernel3("Run Kernel3");
+          Event evKernel4("Run Kernel4");
+
           err = clEnqueueNDRangeKernel(queue, kernel1, 1, NULL,
                                        &globalWorkSize, &localWorkSize,
                                        0, NULL, &evKernel1.CLEvent());
@@ -191,6 +190,11 @@ void RunBenchmark(cl::Device& devcpp,
        double total = 0.0;
        for (int i = 0; i < reps; i++)
        {
+          Event evKernel1("Run Kernel1");
+          Event evKernel2("Run Kernel2");
+          Event evKernel3("Run Kernel3");
+          Event evKernel4("Run Kernel4");
+
           err = clEnqueueNDRangeKernel(queue, kernel1, 1, NULL,
                                        &globalWorkSize, &localWorkSize,
                                        0, NULL, &evKernel1.CLEvent());
@@ -240,6 +244,11 @@ void RunBenchmark(cl::Device& devcpp,
        double total = 0.0;
        for (int i = 0; i < reps; i++)
        {
+          Event evKernel1("Run Kernel1");
+          Event evKernel2("Run Kernel2");
+          Event evKernel3("Run Kernel3");
+          Event evKernel4("Run Kernel4");
+
           err = clEnqueueNDRangeKernel(queue, kernel1, 1, NULL,
                                        &globalWorkSize, &localWorkSize,
                                        0, NULL, &evKernel1.CLEvent());

Bye,
speziale.ettore@gmail.com

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants