Hi,

I've been testing the new APU model what was recently committed and I have
some doubts.

The main problem I'm having is that it seems like the kernel is not
properly getting a pointer to a memory object (an array of 10 int, to make
it simple) passed as a kernel parameter.
I always get:

733526000: system.cpu1.CUs-port0: Wave 1 couldn't tranlate vaddr 0

whenever I try to access the parameter within the kernel.

Now, I see that in the reduced openCL runtime you provide there are no
clSVMAlloc functions implemented, so I am first declaring and allocating my
array on the host with a simple malloc.
Based on the openCL 2.0 spec (table 3-2, page 41), this is the only other
way of having SVM, and it should not require the use of buffers, so I am
just passing the pointer to the array directly to the clSetKernelArg
function:

clSetKernelArg(clKernel, 0, sizeof(int)*10, myarray);

The kernel declares the parameter as global

__kernel void mykernel (__global int* myarray)

but whenever I try to access any element I get the error above, as if the
pointer were NULL.

I have also tried creating a buffer with clCreateBuffer and
the CL_MEM_USE_HOST_PTR / CL_MEM_ALLOC_HOST_PTR flags, as well as mapping
the buffer with clEnqueueMapBuffer, and using them in the clSetKernelArg
function, but I nothing seems to work.

So my question is, what am I doing  wrong? What is the procedure to get
system SVM with the new gpu_compute changes and the reduced openCL runtime?

Thanks

VĂ­ctor
_______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to