OpenCL* for CPU
Ask questions and share information on Intel® SDK for OpenCL™ Applications and OpenCL™ implementations for Intel® CPU.
Announcements
This forum covers OpenCL* for CPU only. OpenCL* for GPU questions can be asked in the GPU Compute Software forum. Intel® FPGA SDK for OpenCL™ questions can be ask in the FPGA Intel® High Level Design forum.
1719 Discussions

Does the OpenCL2.0 SVM support allocate memory for images?

yi_l_
Beginner
374 Views

Does the OpenCL2.0 SVM support allocate memory for images?

We can test the SVM performance like:

d_a=(float*)clSVMAlloc(context,(CL_MEM_READ_WRITE|CL_MEM_SVM_FINE_GRAIN_BUFFER|CL_MEM_SVM_ATOMICS),size,0);
d_b=(float*)clSVMAlloc(context,(CL_MEM_READ_WRITE|CL_MEM_SVM_FINE_GRAIN_BUFFER|CL_MEM_SVM_ATOMICS),size,0);
d_c=(float*)clSVMAlloc(context,(CL_MEM_READ_WRITE|CL_MEM_SVM_FINE_GRAIN_BUFFER|CL_MEM_SVM_ATOMICS),size,0);
for(int i=0;i<size;i++)
{
   d_a=Initial_value;
   d_b=Initial_value;
}
clSetKernelArgSVMPointer(kernel, 0, d_a);
clSetKernelArgSVMPointer(kernel, 0, d_b);
clSetKernelArgSVMPointer(kernel, 0, d_c);


The SVM performance has been verified good in the example of calculation of a vector,but the clSVMAlloc() cannot allocate memory for images,
how should we do to utilize the SVM for image processing?
Thank you!

The test device is like:

        CL_DEVICE_NAME: Genuine Intel(R) CPU 0000 @ 1.60GHz
        CL_DEVICE_VENDOR:       Intel(R) Corporation
        CL_DRIVER_VERSION:      4.0.0.8228
        CL_DEVICE_PROFILE:      FULL_PROFILE
        CL_DEVICE_VERSION:      OpenCL 2.0 (Build 8228)
        CL_DEVICE_OPENCL_C_VERSION:     OpenCL C 2.0

0 Kudos
1 Reply
Aharon_A_Intel
Employee
374 Views

Hello, Yi.

Although creating an image from an SVM buffer is not explicitly mentioned in the spec (it just specifies creating buffers out of memory allocated by clSVMAlloc), there is no reason why creating an image object with such a pointer and CL_MEM_USE_HOST_PTR shouldn't be valid.

0 Kudos
Reply