So it seems like our error catching layer is returning CL_INVALID_KERNEL_NAME ( https://github.com/Xilinx/XRT/blob/master/src/runtime_src/xocl/api/clCreateKernel.cpp L76). xocl::errror returns the correct error_code with a custom message to be printed on the console. I ran the program which I shared earlier and here is the pdb stack for it: I stepped into getattr function which took me to __getattr__ in L434. I stepped into knl = Kernel(self, attr) (L436) which took me to 767 'kernel_init'. Now in L 771 (kernel_old_init(self, prg, name) it gives me the error _source kernel not found.
> /scratch/sagarw/XRT/tests/demo.py(49)main() -> getattr(prg, "_source", None) (Pdb) s --Call-- > /usr/local/lib/python2.7/dist-packages/pyopencl/__init__.py(434)__getattr__() -> def __getattr__(self, attr): (Pdb) > /usr/local/lib/python2.7/dist-packages/pyopencl/__init__.py(435)__getattr__() -> try: (Pdb) > /usr/local/lib/python2.7/dist-packages/pyopencl/__init__.py(436)__getattr__() -> knl = Kernel(self, attr) (Pdb) --Call-- > /usr/local/lib/python2.7/dist-packages/pyopencl/__init__.py(767)kernel_init() -> def kernel_init(self, prg, name): (Pdb) > /usr/local/lib/python2.7/dist-packages/pyopencl/__init__.py(768)kernel_init() -> if not isinstance(prg, _cl._Program): (Pdb) n > /usr/local/lib/python2.7/dist-packages/pyopencl/__init__.py(769)kernel_init() -> prg = prg._get_prg() (Pdb) > /usr/local/lib/python2.7/dist-packages/pyopencl/__init__.py(771)kernel_init() -> kernel_old_init(self, prg, name) (Pdb) a self = <pyopencl._cl.Kernel object at 0x7f073f910b30> prg = <pyopencl._cl._Program object at 0x7f074c430470> name = _source (Pdb) s XRT build version: 2.3.0 Build hash: 8eb4d383b867c41879a3d462881d745d0a4f4671 Build date: 2019-07-23 10:44:38 Git branch: coverity_scan PID: 214890 UID: 31939 [Tue Jul 23 10:47:22 2019] HOST: xsjsagarwal EXE: /usr/bin/python2.7 [XRT] ERROR: kernel '_source' not found LogicError: <pyopenc...3f914340> > /usr/local/lib/python2.7/dist-packages/pyopencl/__init__.py(771)kernel_init() -> kernel_old_init(self, prg, name) (Pdb) c Best, Shivangi Agarwal On Mon, Jul 22, 2019 at 3:31 PM Andreas Kloeckner <li...@informa.tiker.net> wrote: > Shivangi Agarwal <shivangiagarwa...@gmail.com> writes: > > It still gives me the same error. Here is the program that I am running: > > OIC. Sure, the `getattr` will look up whether a kernel of that (bogus) > name exists in the program. The spec-conforming thing for an OpenCL > implementation to do [1] if the kernel is not found is to return > CL_INVALID_KERNEL_NAME from clCreateKernel. PyOpenCL relies on that. > > Andreas > > [1] > https://www.khronos.org/registry/OpenCL/specs/2.2/html/OpenCL_API.html#_kernel_objects >
_______________________________________________ PyOpenCL mailing list -- pyopencl@tiker.net To unsubscribe send an email to pyopencl-le...@tiker.net