I accidentally past a memory object to the kernel for the constant argument, whose size is over the 64k limit of Radeon HD 5870. That made the kernel totally ignored. I could not find it in the timeline in APP Profiler.
With previous APP SDK, the program compiles and runs with no problem. I guess the __constant memory is simply treated as __global.
Isn't it better to ignore the __constant, or complain that constant memory overflows, rather than to ignore the kernel silently?
Thanks!
Solved! Go to Solution.
Thanks for reporting this issue. We've reproduced the problem and fixed it internally so expect a public release within the next month or two.
IMHO clEnqueueNDRangeKernel should return CL_OUT_OF_RESOURCES are you check for that? if it return CL_SUCCESS then it is bug in implementation.
Yes, please check your error return value for enqueue as nou suggested. If it does not return an error, please let us know.
The return values of both clSetKernelArg() and clEnqueueNDRangeKernel() were CL_SUCCESS. Nothing showed an error until I called clGetEventProfilingInfo(..., CL_PROFILING_COMMAND_START, ...), which returned CL_PROFILING_INFO_NOT_AVAILABLE. Thank you for your quick response. VisCocoa
Date: Tue, 14 Feb 2012 09:24:35 -0700
From: developer.forums@amd.com
To: viscocoa@live.ca
Subject: - Re: Oversized constant memory cause kernel dumb
AMD Developer Forums
Re: Oversized constant memory cause kernel dumb
created by MicahVillmow in OpenCL - View the full discussion
Yes, please check your error return value for enqueue as nou suggested. If it does not return an error, please let us know.
Reply to this message by replying to this email -or- go to the message on AMD Developer Forums
Start a new discussion in OpenCL by email or at AMD Developer Forums
Thanks for reporting this issue. We've reproduced the problem and fixed it internally so expect a public release within the next month or two.
Thank you Jeff!