One of the most recent Qualcomm platform projects, where performance is demanding, we use OpenCL to achieve the main functionality, but bottlenecks occur in parts of the CPU that are copied from the GPU memory. Although the OpenCL map API was designed to solve this problem, in some inherent frameworks, map does not avoid all memory copies.
Qualcomm has two very useful extensions for OpenCL that can effectively solve this problem:
Https://www.khronos.org/registry/cl/extensions/qcom/cl_qcom_ion_host_ptr.txt
Https://www.khronos.org/registry/cl/extensions/qcom/cl_qcom_ext_host_ptr.txt
In this way, the Android ION Memroy and GPU can be shared, avoiding additional memory copies, significantly improving efficiency, and reducing the amount of energy used. is a very good solution.
Opencl:shared memory between CPU and GPU in Android development of Qaulcomm Plateform