Hello.
When building Debian packages, I noticed few issues. Those are not even
problems
(they do not prevent building) but some tools complain about them.
1. examples/download-examples-from-wiki.py
It has #! only as third line - first two are "from __future__ import ...".
Can you fix that?
2. pyopencl/scan.py contains copyright pointing to Thrust at
code.google.com.
While URL still contains source code, it is now archival - i.e. it has old
release, etc.
Would it be better to point to Thrust at GitHub:
https://github.com/thrust/thrust
(similarly for PyCUDA)
3. NDArray (from compyte) has some non-Python3 code:
byte-compiling
/home/admin/A/pyopencl-2016.1/debian/tmp/usr/lib/python3/dist-packages/pyope
ncl/compyte/ndarray/test_gpu_ndarray.py to test_gpu_ndarray.cpython-35.pyc
File
"usr/lib/python3/dist-packages/pyopencl/compyte/ndarray/test_gpu_ndarray.py",
line 314
print shp, dtype, offseted, order1, order2
^
SyntaxError: Missing parentheses in call to 'print'
byte-compiling
/home/admin/A/pyopencl-2016.1/debian/tmp/usr/lib/python3/dist-packages/pyope
ncl/compyte/ndarray/gen_elemwise.py to gen_elemwise.cpython-35.pyc
File
"usr/lib/python3/dist-packages/pyopencl/compyte/ndarray/gen_elemwise.py",
line 955
print sio.getvalue()
^
SyntaxError: invalid syntax
Again - nothing critical (only test and dead-function code), but prevents
pre-compiling Python3 code.
Thanks in advance for fixing.
Best regards.
Tomasz Rybak
Marmaduke,
I would also be interested in making PyOpenCL self contained enough that it can be installed without any further dependencies, in particular no OpenCL implementation. Ideally, 'pip install PyOpenCL' would just succeed no matter what. Pocl seems like a reasonable vehicle for that. The problem is that it has a nontrivial build system... And then there's LLVM... It feels like a substantial amount of engineering effort.
Another avenue I explored for a bit was a conda package. I even got to the point of making that work. I can dig those package recipes up if you're interested. I believe I also put them up on github. For those I did the thing that you asked about, which is link PyOpenCL directly to pocl.
Hope that helps, and let me know if you'd like to try and work together to engineer something.
Andreas
Am 18. Mai 2016 03:16:04 GMT-05:00, schrieb Marmaduke Woodman <mmwoodman(a)gmail.com>:
>hi
>
>I'm curious if anyone has succeeded in building and using PyOpenCL,
>linked
>directly to the Beignet or PortableCL runtimes?
>
>In my case, I'm writing a library using PyOpenCL, and it would be
>useful to
>fall-back on such an alternative, if the user of my library does not
>have
>an OpenCL installation such as Intel's or Nvidia's.
>
>
>Thanks,
>Marmaduke
>
>
>------------------------------------------------------------------------
>
>_______________________________________________
>PyOpenCL mailing list
>PyOpenCL(a)tiker.net
>https://lists.tiker.net/listinfo/pyopencl
Hi all,
I am not quite getting the function of the event system together with
non-blocking copies.
I want to enqueue a non-blocking copy function which returns an event
for a kernel to wait on:
wev1 = cl.enqueue_copy(IOqueue, device_image, host_image,
is_blocking=False, origin=(0,0,0), region=host_image_shape)
program.kernel_name(workqueue,(work_group_shape,),None,device_image,wait_for
= [wev1])
Both queues are defined as OoO queues in the same context on the same
device.
In my profiling I can see the start of the kernel, before the copying is
finished. Does that mean, I have to use blocking copies,
or am I doing something else wrong?
Thanks for any help
Jonathan
Elliot Gorokhovsky <elliot.gorokhovsky(a)gmail.com> writes:
> If I have multiple devices in my system, will elementWise automatically
> split the work between them? If not, what's the cleanest way to map over
> multiple devices?
What you might be able to do is create a context spanning both devices,
slice the vector, and then run the elementwise kernel on both
pieces. Whether or not what the implementation does in that case is
efficient is another question. If not, then you really have to do more
work by doing the partitioning manually.
Andreas
If I have multiple devices in my system, will elementWise automatically
split the work between them? If not, what's the cleanest way to map over
multiple devices?