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
