the OpenCL-standard says:
Max size of memory object allocation in bytes. The minimum value is max(1/4th of CL_DEVICE_GLOBAL_MEM_SIZE , 128*1024*1024)
But why is the minimum implemented? -.- I buy a graphic card with 1GB and can only use 256 in one buffer. Why can't i maximal alloc the global memory size?
Sry, but this is ****
Are AMD-Developers reading in this forum, or do i have to contact the AMD support?
Does anybody know, if DirectCompute and CUDA have some similar restrictions?
I'm not sure what I can say about this, so I'm replying more to let you know people are reading it and I'll see if someone can give a better answer.
This is a non-trivial technical issue, though. You have to remember that the windows driver layers have demands on GPU memory on short notice. OpenCL has to cleanly interact with that structure. How easy this is to achieve depends on how the driver is historically structured.
... You have to remember that the windows driver layers have demands on GPU memory on short notice...
Does that mean, that this is an windows related issue?
do you have some links or documents for me, where i can have a closer look at this problem to understand it?
I'm 100% sure that mechanisms this intimate will not be published anywhere on the web. Source code of the driver and functional layout is most likely considered to be industrial secret of some sort.
Same goes for the issue with the dual GPU cards that have been having issues for over a year now, hardwired optimizations of the internal CrossFire is hard to negate with softwares. But no information related to this topic will be given other than it is being worked on.
IMHO one of the problem is allocate that big continuous memory. as memory is most likely fragmentated. on CPU this is solved with pageable memory.