'Is there any way to break the limit of openCL memory in android?

I want to allocate 4.5GB to my openCL program in android phone wiht 8GB memory. But I found the memory size from CL_DEVICE_GLOBAL_MEM_SIZE is much lower than the device memory size. There is only 3.63GB in a phone with 8GB memory ,and there is only 1.3GB in a phone with 3GB memory. Is there any way to break the limit?



Solution 1:[1]

You might want to consider the use of zero copy buffers. Map buffers without copy overhead and un-map buffers that are not in use. This way you are still limited to CL_DEVICE_GLOBAL_MEM_SIZE bytes of memory but unused buffers won’t take up space.

Arm has an OpenCL extension which allows direct memory import into OpenCL: https://www.khronos.org/registry/OpenCL/extensions/arm/cl_arm_import_memory.txt

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1