Hi,
I'm getting an error with my very first attempt at using pyopencl. I'm sure
this is something simple, but I can't work out what. Please could someone
take a moment to explain? Code and error below.
Thanks,
Andrew
PS The output is cut + pasted from Intellij Idea's output pane. It really
does repeat the messages about the kernel twice. No idea why.
import pyopencl as cl
import numpy as n
def main():
a = n.zeros(3, dtype=n.uint8)
a[0] = 32
a[1] = 43
a[2] = 129
ctx = cl.create_some_context()
queue = cl.CommandQueue(ctx)
prg = cl.Program(ctx, """
__kernel void test1(__global const uchar *a,
__global int *b,
__global int *c,
__global int *d) {
*b = a[0];
*c = a[1];
*d = a[2];
}
""").build()
b, c, d = map(n.int32, [0, 0, 0])
print(a,b,c,d)
event = prg.test1(queue, 1, None, a, b, c, d)
event.wait()
print(a,b,c,d)
if __name__ == '__main__':
main()
/home/andrew/projects/personal/kultrung/env/bin/python3.2
/home/andrew/projects/personal/kultrung/src/kultrung/test1.py
/home/andrew/projects/personal/kultrung/env/lib/python3.2/site-packages/pyopencl/cache.py:343:
UserWarning: Build succeeded, but resulted in non-empty logs:
Build on <pyopencl.Device 'Intel(R) Core(TM)2 CPU T5600 @ 1.83GHz' at
0x13778e0> succeeded, but said:
Build started
Kernel <test1> was successfully vectorized
Done.
warn("Build succeeded, but resulted in non-empty logs:\n"+message)
[ 32 43 129] 0 0 0
/home/andrew/projects/personal/kultrung/env/lib/python3.2/site-packages/pyopencl/__init__.py:174:
UserWarning: Build succeeded, but resulted in non-empty logs:
Build on <pyopencl.Device 'Intel(R) Core(TM)2 CPU T5600 @ 1.83GHz' at
0x13778e0> succeeded, but said:
Build started
Kernel <test1> was successfully vectorized
Done.
warn("Build succeeded, but resulted in non-empty logs:\n"+message)
Traceback (most recent call last):
File
"/home/andrew/projects/personal/kultrung/env/lib/python3.2/site-packages/pyopencl/__init__.py",
line 258, in kernel_set_args
arg_type_chars = self.__dict__["_arg_type_chars"]
KeyError: '_arg_type_chars'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File
"/home/andrew/projects/personal/kultrung/env/lib/python3.2/site-packages/pyopencl/__init__.py",
line 261, in kernel_set_args
self.set_arg(i, arg)
pyopencl.LogicError: clSetKernelArg failed: invalid arg size
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/andrew/projects/personal/kultrung/src/kultrung/test1.py", line
36, in <module>
main()
File "/home/andrew/projects/personal/kultrung/src/kultrung/test1.py", line
30, in main
event = prg.test1(queue, 1, None, a, b, c, d)
File
"/home/andrew/projects/personal/kultrung/env/lib/python3.2/site-packages/pyopencl/__init__.py",
line 238, in kernel_call
self.set_args(*args)
File
"/home/andrew/projects/personal/kultrung/env/lib/python3.2/site-packages/pyopencl/__init__.py",
line 278, in kernel_set_args
% (i+1, str(e)))
pyopencl.LogicError: when processing argument #1 (1-based): clSetKernelArg
failed: invalid arg size
Process finished with exit code 1
_______________________________________________
PyOpenCL mailing list
[email protected]
http://lists.tiker.net/listinfo/pyopencl