Forum Discussion
Altera_Forum
Honored Contributor
7 years agoOn SoCs there is only one physical instance of DDR memory which is shared between the ARM processor and the FPGA. With shared memory on SoCs, you just malloc the data in memory and then create the OpenCL buffer using the host pointer, while with clEnqueueWriteBuffer, the data is copied one more time to the DDR memory. Using shared memory avoids the extra copy. "Intel FPGA SDK for OpenCL Programming Guide, Section 6.7" explains how to allocate shared memory on SoC boards.