Please refer to the sample code in utests/runtime_use_host_ptr_buffer.cpp and kernels/runtime_use_host_ptr_buffer.cl
To avoid internal copy, it requires libdrm version >= 2.4.58 and linux kernel version >= 3.16 From: Beignet [mailto:beignet-boun...@lists.freedesktop.org] On Behalf Of Gao, Sanshan Sent: Sunday, May 03, 2015 3:56 PM To: beignet@lists.freedesktop.org Subject: [Beignet] Shared Host Memory but not Share Hi, alls, I want to use CL_MEM_USE_HOST_PTR to create a buffer object which shares host memory, so the changes to the elements in kernel can be used by host program. But the result is that, I have changed the element in kernel, but the element in host program has not changed. I don't know why? Does this method still be a copy of host memory, so the change is not done to the host memory, but only device memory? Hope for helps! Device: GIGA Mini PC with core i7 and Iris Pro, integrated GPU Kernel function: 47 __kernel void PacketsIndexCalculation( 48 const unsigned int packets_info_size, 49 __global packet_info_t *packets_info, 50 const unsigned int flow_table_size ) 51 { 52 int gid = get_global_id(0); 53 __global packet_info_t *p = packets_info + gid; 54 55 //calculate hash value 56 p->index = ( ((p->flow_id).src_ip & 0xff) | (((p->flow_id).dst_ip & 0xff)<<8) | 57 (((p->flow_id).src_port & 0xff)<<16) | (((p->flow_id).dst_port & 0xff)<<24) )%flow_table_size; 58 59 } Problem: In host program, the memory pointed by &(p->index) has not changed by kernel function.
_______________________________________________ Beignet mailing list Beignet@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/beignet