Hi all,

I am writing to solicit some feedback on what seems likely to become the
'next generation' of PyOpenCL:

https://github.com/inducer/pyopencl/pull/240

This branch switches to pybind11 for its C wrapping needs, and, in many
ways, is a revival of the old Boost.Python code base, though without any
of the Boost requirements. All that's needed is a reasonably recent C++
compiler.

Why do this, you ask? Smaller code base (by about 1500 lines), faster
(by around 2x, especially in tight kernel-calling loops!), more reliable
(especially in handling errors and Ctrl+C, cf [1]), simpler and more fun
to hack (subjective, admittedly). I do envision continuing to support
Pypy, although building on Pypy is currently broken because of a few
direct uses of the numpy interface from C. I think this should be
fixable without too much fuss.

[1] 
https://groups.google.com/forum/?hl=en#!searchin/python-cffi/mandatory$20cleanup%7Csort:date/python-cffi/eL16kocKe_E/nRcyEvbqFAAJ

There are no changes to the external interface--the tests from 2018.1
pass unmodified. All of my own workloads run without modification. Some
changes *have* been made to continue the process of adapting to OpenCL 2.

You may install directly using:

pip install git+https://github.com/inducer/pyopencl@pybind11

You may need to

pip install pybind11

in order for that to succeed.

Some notes and CI results are here:
https://gitlab.tiker.net/inducer/pyopencl/merge_requests/44

If all goes as planned, this branch will at some point turn into version
2018.2 of PyOpenCL.

Please test this against your workloads and report any issues. Also, if
you have any feedback, please do speak up.

Thanks!
Andreas

Attachment: signature.asc
Description: PGP signature

_______________________________________________
PyOpenCL mailing list
PyOpenCL@tiker.net
https://lists.tiker.net/listinfo/pyopencl

Reply via email to