Using vendor extensions

Not sure why nothing useful turns up when searching the forum for this. Key information seems missing or hidden in the spec.

How do I gain access to vendor specific extensions which are listed by clGetDeviceInfo using CL_DEVICE_EXTENSIONS?

I am using an RTX 2080ti and all I’ve wanted to do for the past 4 hours is query the warp size, which appears to be available via the extension cl_nv_device_attribute_query.

When I try to use that in clGetDeviceInfo, CL_DEVICE_WARP_SIZE_NV isn’t found.

It comes up here:

First hit:

And hits on the forums:

I have already looked at all of those you linked. None of them answer my question. I am specifically trying to use the information in the first one you linked. I tried to use links to show those things I had found, but I am not allowed. CL_DEVICE_WARP_SIZE_NV is an “undeclared identifier”.

The last link you provided shows the output someone got from using that warp size value, but nowhere am I able to find steps on how to get the actual extension functioning.

Also as a side note, the first thing I tried was CL_KERNEL_PREFERRED_WORK_GROUP_SIZE_MULTIPLE. Unfortunately it seems like nvidia gpus don’t report a useful value for that. I get 4318 which is just the total processing elements.

I finally got the answer to this from my professor. I think it would be very helpful to have a requirement added to the extension spec that vendors must specify what header file they put their extension in. This will also imply to the end user that they need a header file they may not have yet included, which was my entire problem. The extension I needed was in cl_ext.h.