- Marcar como nuevo
- Favorito
- Suscribir
- Silenciar
- Suscribirse a un feed RSS
- Resaltar
- Imprimir
- Informe de contenido inapropiado
Hello,
I am using OpenCL 2.0 on a 6700 processor, and I am wondering why it does not support SVM Fine Grain Buffer, it says it only works with Course grain. Mainly I am looking for a way to have cross-device atomics which according to this article is not supported https://software.intel.com/en-us/articles/opencl-20-shared-virtual-memory-overview
Are there current devices that support Fine Grain Buffer and/or cross device atomics? Any suggestions on how to implement this?
Thanks,
Dan
- Etiquetas:
- OpenCL*
- Professors
- Students
Enlace copiado
- Marcar como nuevo
- Favorito
- Suscribir
- Silenciar
- Suscribirse a un feed RSS
- Resaltar
- Imprimir
- Informe de contenido inapropiado
Can you say more about your environment? What OS are you on, and what driver version are you using?
- Marcar como nuevo
- Favorito
- Suscribir
- Silenciar
- Suscribirse a un feed RSS
- Resaltar
- Imprimir
- Informe de contenido inapropiado
Sure,
I'm running Ubuntu 16.04
The driver is Beignet 1.3.1
Would using the Intel SDK driver (rather than open source Beignet) be any help? When I installed the SDK it said that 16.04 was not supported, and I don't see the OpenCL 2.0 version of the library- only the 1.2 version.
- Marcar como nuevo
- Favorito
- Suscribir
- Silenciar
- Suscribirse a un feed RSS
- Resaltar
- Imprimir
- Informe de contenido inapropiado
- Marcar como nuevo
- Favorito
- Suscribir
- Silenciar
- Suscribirse a un feed RSS
- Resaltar
- Imprimir
- Informe de contenido inapropiado
Can you try the latest SRB4.1 Linux driver package from here?
https://software.intel.com/en-us/articles/opencl-drivers
This package supports OpenCL 2.0 and should report the fine grain SVM capability, including SVM atomics.
- Marcar como nuevo
- Favorito
- Suscribir
- Silenciar
- Suscribirse a un feed RSS
- Resaltar
- Imprimir
- Informe de contenido inapropiado
@Sergey: When you create the context, are you setting the platform, device, and compiler versions to 2.0? (See below, OPENCL_VERSION_2_0 is 2.0f)
platformVersion(OPENCL_VERSION_2_0),
deviceVersion(OPENCL_VERSION_2_0),
compilerVersion(OPENCL_VERSION_2_0),
@Ben
I just installed it and tried. Ran ldd on my binary to make sure it was using the right library (it was). It successfully shows me I m using OCL2.0 but still no fine grain buffer. I'm thinking it is a HW limitation, perhaps the gfx on this chip just doesn't support fine grain sharing? Any other tricks you can think of to enable it?
Thanks,
Dan Gerzhoy
- Marcar como nuevo
- Favorito
- Suscribir
- Silenciar
- Suscribirse a un feed RSS
- Resaltar
- Imprimir
- Informe de contenido inapropiado
daniel gerzhoy wrote:
Any other tricks you can think of to enable it?
Strange. Would it be possible to attach run and attach the output from "clinfo"? Or at the very least, could you please send what you're seeing for CL_DEVICE_NAME, CL_DEVICE_VENDOR, CL_DEVICE_VERSION, and CL_DRIVER_VERSION when the device is only reporting coarse grain system SVM?
- Marcar como nuevo
- Favorito
- Suscribir
- Silenciar
- Suscribirse a un feed RSS
- Resaltar
- Imprimir
- Informe de contenido inapropiado
Sorry for the delay. Here is the output of my Device info function. The SVM stuff is at the very bottom. I print out the map itself, as well as the values of each of the different definitions, then the result itself. (The map & the definition)
Here is the code just in case:
info = CL_DEVICE_SVM_CAPABILITIES; err = clGetDeviceInfo(device, info, sizeof(ret_svm_cap), &ret_svm_cap, NULL); CHECK_ERRORS(err); printf("map :%X\n",ret_svm_cap); printf("Course :%X\n",CL_DEVICE_SVM_COARSE_GRAIN_BUFFER); printf("FINE :%X\n",CL_DEVICE_SVM_FINE_GRAIN_BUFFER); printf("SYS :%X\n",CL_DEVICE_SVM_FINE_GRAIN_SYSTEM); printf("ATOM :%X\n",CL_DEVICE_SVM_ATOMICS); if(ret_svm_cap & CL_DEVICE_SVM_COARSE_GRAIN_BUFFER){ ret_CharP = "CL_DEVICE_SVM_COARSE_GRAIN_BUFFER"; LogInfo("\t CL_DEVICE_SVM_CAPABILITIES returns: %s\n", ret_CharP); } if(ret_svm_cap & CL_DEVICE_SVM_FINE_GRAIN_BUFFER){ ret_CharP = "CL_DEVICE_SVM_FINE_GRAIN_BUFFER"; LogInfo("\t CL_DEVICE_SVM_CAPABILITIES returns: %s\n", ret_CharP); } if(ret_svm_cap & CL_DEVICE_SVM_FINE_GRAIN_SYSTEM){ ret_CharP = "CL_DEVICE_SVM_FINE_GRAIN_SYSTEM"; LogInfo("\t CL_DEVICE_SVM_CAPABILITIES returns: %s\n", ret_CharP); } if(ret_svm_cap & CL_DEVICE_SVM_ATOMICS){ ret_CharP = "CL_DEVICE_SVM_ATOMICS"; LogInfo("\t CL_DEVICE_SVM_CAPABILITIES returns: %s\n", ret_CharP); }
Printing Device info-------------------
CL_DEVICE_ADDRESS_BITS returns: 32
CL_DEVICE_MAX_COMPUTE_UNITS returns: 24
CL_DEVICE_MAX_WORK_GROUP_SIZE returns: 512
CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS returns: 3
CL_DEVICE_MAX_WORK_ITEM_SIZES 0 returns: 512
CL_DEVICE_MAX_WORK_ITEM_SIZES 1 returns: 512
CL_DEVICE_MAX_WORK_ITEM_SIZES 2 returns: 512
CL_DEVICE_DOUBLE_FP_CONFIG returns: 0l
CL_DEVICE_EXTENSIONS returns: cl_khr_global_int32_base_atomics
cl_khr_global_int32_extended_atomics
cl_khr_local_int32_base_atomics
cl_khr_local_int32_extended_atomics
cl_khr_byte_addressable_store
cl_khr_3d_image_writes
cl_khr_image2d_from_buffer
cl_khr_depth_images
cl_khr_spir
cl_khr_icd
cl_intel_accelerator
cl_intel_subgroups
cl_intel_subgroups_short
cl_khr_fp16
CL_DEVICE_MAX_CONSTANT_ARGS returns: 8
CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE returns: 134217728
CL_DEVICE_GLOBAL_MEM_CACHE_SIZE returns: 8192
CL_DEVICE_GLOBAL_MEM_SIZE returns: 4294967296
CL_DEVICE_MAX_ON_DEVICE_QUEUES returns: 1
CL_DEVICE_MAX_ON_DEVICE_EVENTS returns: 1024
CL_DEVICE_QUEUE_ON_HOST_PROPERTIES returns:
CL_QUEUE_PROFILING_ENABLE
CL_DEVICE_QUEUE_ON_DEVICE_PROPERTIES returns:
CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE
CL_QUEUE_PROFILING_ENABLE
CL_DEVICE_QUEUE_ON_DEVICE_MAX_SIZE returns: 262144
CL_DEVICE_QUEUE_ON_DEVICE_PREFERRED_SIZE returns: 16384
CL_DEVICE_VERSION returns: OpenCL 2.0 beignet 1.3
CL_DRIVER_VERSION returns: 1.3
CL_DEVICE_OPENCL_C_VERSION returns: OpenCL C 2.0 beignet 1.3
map :1
Course :1
FINE :2
SYS :4
ATOM :8
CL_DEVICE_SVM_CAPABILITIES returns: CL_DEVICE_SVM_COARSE_GRAIN_BUFFER
- Marcar como nuevo
- Favorito
- Suscribir
- Silenciar
- Suscribirse a un feed RSS
- Resaltar
- Imprimir
- Informe de contenido inapropiado
Got it - this is the key:
CL_DEVICE_VERSION returns: OpenCL 2.0 beignet 1.3
Looks like you're still finding the Beignet implementation, not the SRB4.1 implementation.
Do you have both implementations installed? If so, do you see that both Intel platforms are enumerating, and are you sure you're picking the right one?
You may find it helpful to temporarily disable Beignet by editing the contents of /etc/OpenCL/vendors while debugging - just remember to re-enable it when you're done!
- Marcar como nuevo
- Favorito
- Suscribir
- Silenciar
- Suscribirse a un feed RSS
- Resaltar
- Imprimir
- Informe de contenido inapropiado
Ops, I have a similar question about OpenCL SVM support... I am currently using i7-6700 core (with coarse-grain SVM). I want to know what kinds of device support fine-grain and the system SVM. I am looking for the device supporting system SVM.
Thanks,
- Marcar como nuevo
- Favorito
- Suscribir
- Silenciar
- Suscribirse a un feed RSS
- Resaltar
- Imprimir
- Informe de contenido inapropiado
Ben,
I looked and it was using the first Platform it was seeing "Intel Gen OCL Driver" which presumably is beignet.
However, when I make it use the other available Platform "Intel(R) OpenCL" I get CL_DEVICE_NOT_FOUND when i run a clGetDeviceIDs() on this platform.
If i switch the device type to CPU however, it works. But I need to be running on the GPU.
As for editing the /etc/OpenCL/vendors folder. How is that done exactly? I basically just renamed the intel-beignet.icd and intel-beignet-x86_64-linux-gnu.icd files to <their_name>.icd.bak
Seemed to work, only one platform showed up when I ran my program, but this method seems a little unclean.
According to Intel_SDK_for_OpenCL_2016_r3_release_notes.pdf (Page 11) The target application Platform for my 6th gen device is Ubuntu 14.04 GPU (w/ generic drive)
(I am using 16.04, if that makes any difference). But it seems to imply the regular version of the driver does not work.)
Page 12 specifies that I need to have an OpenCL graphics driver, but I was under the impression that I do have that driver. I will look into this further.
Thanks,
Dan

- Suscribirse a un feed RSS
- Marcar tema como nuevo
- Marcar tema como leído
- Flotar este Tema para el usuario actual
- Favorito
- Suscribir
- Página de impresión sencilla