I'm looking for a way to intelligibly name OCLxxx.tml.dll generated when I build a kernel. It would be useful to know which of my kernel crashed when it does.
I am unable to follow your question. Could you please be more explicit?
When you build a kernel with CL_DEVICE_TYPE_CPU on Windows, the driver generates a dll that contains the kernel code. This dll is named randomly. I have an application with hundreds of kernels, often build at runtime, and sometimes I set wrong inputs to a kernel and the code crashes in the .dll containing its code. If the dll was named e.g. MyKernelDoingThisAndThat.dll instead of OCLxxx.tmp.dll I could immediately find out which kernel crashed. Stack trace alone can not in my case.
OpenCL APIs offers the following way for offline compilation. How a binary can be save and reused using clCreateProgramWithBinary() is given by the following link-
GPGPU etc.: Emitting and Reading OpenCL Binary
But if you are using same procedure as given in the link above, naming the binaries should be in your control, and the problem you report should not arise.
Please elaborate more on how are you creating dll files.
program binaries and .dll are two very different things. This is out of topic but I already save my binaries with a .bin extension to create a cache of already compiled kernels. When I use clCreateProgramWithBinary() I give it this .bin to build from, but still, when using CL_DEVICE_CPU, the driver will create a dll to put the kernel actual x86 code in. It is that very .dll I'd like to control the name.
Can you send a screenshot of the dll you are getting, and in which directory these dlls are being written?
Reviving the thread. Can you send us a screenshot of the dll and provide us with details of the directory?
Retrieving data ...