Am I doing anything wrong? Or is this just device driver problem? (catalyst 11.2)
I'd appreciate any suggestions of how to fix this problem.
When I was doing CAL development with HD5870 1GB card I found that the largest single 2D image buffer I could create was 768MB. But when I was trying to store data in there I had problems if I tried to use more than 672MB (I think that was the number).
Overall it's a mess. There are so many hidden gotchas that I'm afraid to say you're basically on your own.
For example I discovered that you can't use arbitrary dimensions for a buffer. e.g. 2048, 2560, 3072, 3584 and 4096 are valid sizes for a float4 formatted buffer's width or height. But 2050 or 3840 are not valid sizes - they might work or they might not, depends what the other dimension is.
I wasted a month on this nonsense.
When I started work in OpenCL I discovered exactly the same problem.
can you specify the detail about the problem in opencl?
AFAIK there is only one limitation that is global NDrange should be perfectly divisible by the local NDRange.
I developed a work-around for this problem a year ago, for CAL.
When I tested a "pass through" kernel under OpenCL I found the problem recurred, so I re-used my work-around. The kernel consists simply of copying the data from an input 2D image to an output 2D image, with one work item processing each element in the buffer.
I last tested OpenCL for this misbehaviour in October.
I just tested my CAL app with the work-around removed. Catalyst 10.12 doesn't have the issue, so I presume it's fixed in OpenCL too. Since there are no release notes for Catalyst, I've no idea which version actually fixed the problem.
And, yes, I'm aware of the NDRange sizing restrictions in OpenCL.
Going back to my old notes, it seems that CAL was reporting 830MB as the maximum buffer size. But I could only create a buffer of 768MB.
672MB was a restriction on a particular data layout I was using, so that's irrelevant to this discussion.
Thanks for sharing your experience.
Anyway, I hope it can be fixed soon.